Diseño de Modelos de Bases de Datos -...

29
Dise˜ no de Modelos de Bases de Datos Carlos A. Olarte ([email protected]) BDI Pontificia Universidad Javeriana Carlos A. Olarte ([email protected]) BDI Dise˜ no de Modelos de Bases de Datos

Transcript of Diseño de Modelos de Bases de Datos -...

Diseno de Modelos de Bases de Datos

Carlos A. Olarte ([email protected])BDI

Pontificia Universidad Javeriana

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Contenido

1 Diseno de Modelos de Bases de Datos

2 ODL

3 Modelo Entidad Relacion

4 Llaves

5 Conjuntos Entidad Debil

6 Subclases y relaciones ISA

7 Ejercicios

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

El diseno de Modelos de BD

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Diseno de Modelos de Bases de Datos

Las B.D ocultan detalles de almacenamiento a los usuarios

Un Modelo de Datos es un conjunto de conceptos quepueden servir para describir la estructura de una base de datos(vehıculo para describir la realidad)

Los modelos de datos se describen mediante:

Una estructuraUn conjunto de operacionesDefiniciones de Integridad

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Principios de Diseno

Fidelidad: El diseno ha de ser fiel a las especificaciones, esdecir, debe corresponder a la realidad

Evitar de la redundancia: Se debe tener mucho cuidado ydecir las cosas solo una vez

Simplicidad de Cuenta: En el diseno se debe introducir tansolo los elementos que sean absolutamente necesarios

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Modelos Logicos Basados en Objetos

Las ligaduras de datos se hacen explicitas

Ejemplos:E/R ODL

interface C \\{attr str X;relationship ...

}interface A{relationship ...

}

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Modelos Logicos Basados en Registros

Utilizados para describir los datos en un nivel logico y devistas (alto nivel)

Especifican la estructura logica de la BD y proporcionan unadescripcion de alto nivel de la implementacion

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Ejemplos

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Continuacion...

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Lenguaje ODL

ODL (Object Definition Language) es un lenguaje propuesto comoestandar para especificar la estructura de las B.D en terminosorientados a objetos.Es una extension de IDL (Interface Description Language) deCORBA

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Continuacion (ODL)

Declaracion de una interfaz:

interface <nombre>{<lista atributos>,<lista metodos>,<lista relaciones>}

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Continuacion (ODL)

Los atributos de una interfaz pueden ser:

Tipos atomicos: string , int, double, etc

Tipos no atomicos: struct X{<lista atributos>}Enumeraciones: enum Color {Rojo, Verde, Azul}

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Continuacion (ODL)

Las relaciones se representan de la siguiente forma:

relationship [Coleccion]<Clase> <Nombre>inverse <Clase>::<NombreInv>;

Por ejemplo, para representar que un usuario tienen un conjunto decuentas bancarias:

interface Cliente{...relationship Set<Cuenta> MisCuentas

inverse Cuenta::Propietario;}interface Cuenta{

...relationship Cliente Propietario

inverse Cliente::MisCuentas;}

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Continuacion (ODL)

La multiplicidad (aridad) de las relaciones puede ser:

Muchos a Muchos

Muchos a uno

Uno a Uno

Las relaciones con Muchos se construyen con tipos de coleccioncomo: Conjunto (Set), Bolsa (Bag), Lista (List), Arreglo (Array)

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Continuacion (Ejemplo ODL)

interface Banco{attribute str Nombre;attribute str Nit;}relationship Set<Sucursal>Sucursales

inverse Sucursal::BDueno;}

interface Sucursal{attribute str Direccion;relationship Banco BDueno

inverse Banco::Sucursales;relationship Set<Cuenta> Ctas

inverse Cuenta::Suc;}

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Continuacion (Ejemplo ODL)

interface Cuenta{attribute long Numero,attribute double Saldo,relationship Sucursal Sucinverse Sucursal::Ctas;

relationship Cliente Duenoinverse Cliente::MisCuentas;}

interface Cliente{attribute str cc;attribute str direccion;relationship Set<Cuenta> MisCuentasinverse Cuenta::Dueno;}

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Ejercicio

Modelar en ODL el siguiente problema: Se requiere almacenar lainformacion de los libros de una biblioteca. Por cada libro se debealmacenar el o los autores, las materias afines, la editorial quepublica el libro, el ISBN y la fecha de publicacion.

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Diagramas Entidad-Relacion

Se componen de:

Conjuntos entidad (rectangulos)

Atributos (Ovalos)

Relaciones (Rombos)

En este modelo, se asigna un solo nombre a una relacion en ambasdirecciones.Las relaciones pueden incluir mas de dos conjuntos entidad

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Continuacion (E/R)

Aspectos Importantes: Direccionalidad de las relaciones, relacionesmultidireccionales, atributos en las relaciones

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Relaciones Multidireccionales

Las Relaciones Multidireccionales pueden ser transformadas en unconjunto de relaciones binarias de mucho a uno introduciendo unconjunto entidad conexion. En el ejemplo anterior, el resultado es:

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Llaves

Las llaves son un conjunto de atributos que permiten identificar losobjetos pertenecientes a una clase (Interfaz en ODL o Conjuntoentidad en E/R) de manera unica.De manera formal, dados dos objetos O1 y O2 pertenecientes auna clase C con atributos A y llave K ⊆ A, siO1[K ] = O2[K ] → O1 = O2.

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Continuacion (Llaves)

ODL

interface X{key(<List Atributos>);...}

E/R

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Conjuntos Entidad Debiles

Se denomina un Conjunto Entidad Debil a un C.E cuya llave estacompuesta parcial o totalmente por atributos llaves de otroconjunto entidad. Esta situacion se puede presentar en lassiguientes situaciones:

El conjunto cae dentro de una jerarquıa

Se crea un conjunto entidad de conexion para eliminarrelaciones multidireccionales

Al eliminar una relacion mucho a muchos

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Notacion de los C.E.D

Condiciones:

La relacion R siempre debe ser binaria de Muchos (en ladebil) a uno

Los atributos que aporta A a B debe ser atributos llave de A

Si A tambien es debil, los atributos que aporta a B puedenpertenecer a otro conjunto entidad conectado a A por unarelacion muchos a uno

Si existen varias relaciones muchos a uno entre B y A, se debehacer una copia de los atributos llave de A por cada relacionpara formar la llave de B

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Subclases en ODL

Como en los lenguaje de programacion OO, en ODL es posibledefinir subclases (herencia). La subclase hereda todas laspropiedades (metodos, atributos, relaciones) de la superclave. Porejemplo:

interface Cuenta{...}interface CuentaCredito : Cuenta{

attr double CapSobregiro;}interface CuentaDebito: Cuenta{

attr int MaxTransacciones;}interface CuentaSuper:

CuentaCredito,CuentaDebito{attr double Costo;}

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Subclases en los diagramas E/R

Las subclases se representa en el MER por medio de relacionesISA. Por ejemplo:

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Ejercicio

Construya un MER para el siguiente problema:Se desea mantener la informacion de la nomina de los empleadosde la companıa. De cada empleado se conoce su identificacion,nombre, fecha de nacimiento , y opcionalmente un conjunto deempleados subordinados. Cada empleado adicionalmente tiene uncargo en la companıa y por cada cargo se conoce cuanto es elsalario basico. La nomina se genera mensualmente y en ella sealmacena por cada empleado su salario basico y sus deduccionesobligatorias (porcentajes sobre el salario basico)

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Ejercicio

Construya un MER para el siguiente problema:Se desea mantener la informacion de las cuentas de ahorros ycorrientes de un banco. Para lo anterior se tienen las siguientesconsideraciones:

Cada cuenta debe tener asociado una tarjeta

Para las cuentas de ahorros solo es requerido un titular

Las cuentas corrientes pueden tener uno o varios titulares

Las cuentas corrientes pueden tener amparados, es decir, unacuenta hace parte de otra cuenta (comparten recursos).

Por cada cuenta debe registrarse las transacciones de lasmismas. En cada una de las transacciones se debe almacenarla fecha, cajero, tarjeta, monto y tipo de la transaccion(retiro, consignacion o consulta de saldo)

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos

Ejercicio (MER/ODL)

Construya un MER y un diseno en ODL para el sgte problema:Se requiere un sistema para registro academico que cumpla con las siguientes caracterısticas:

Un estudiante puede matricularse en varias carreras. Por cada una de ellas debe tener un codigo propio

Cada carrera tiene asignado un plan de estudio, es decir, una serie de materias, las cuales pueden tenerprerequisitos.

En cada grupo el profesor debe estar en capacidad de indicar las notas con sus respectivos porcentajes (i.eP.Parcial 20%, Tareas 10%,etc)

Se debe registrar tanto las notas parciales como la nota definitiva por cada estudiante matriculado

Los cursos pueden tener varias ediciones (grupos). Dichas ediciones tambien deben tener en cuenta elperıodo academico, por ej. CC080, grupo A, 2005-01 es diferente a CC080-A, 2004-02.

Cada grupo (edicion) debe tener asociado el profesor quien lo dicata

Carlos A. Olarte ([email protected]) BDI Diseno de Modelos de Bases de Datos