diseño de modelos de bases de datos -...
TRANSCRIPT
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
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