Diseño de Modelos de Bases de Datos
Transcripción
Diseño de Modelos de Bases de Datos
Diseño de Modelos de Bases de Datos Carlos A. Olarte ([email protected]) BDI Pontificia Universidad Javeriana Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Contenido 1 Diseño de Modelos de Bases de Datos 2 Modelo Entidad Relación 3 Llaves 4 Conjuntos Entidad Débil 5 Subclases y relaciones ISA 6 Ejercicios Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos El diseño de Modelos de BD Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Modelo Conceptual Describe el contenido (información) de la base de datos, no las estructuras de almacenamiento. Tiene como propósito comprender el dominio del problema y facilitar la comunicación entre las personas interesadas (desarrolladores, usuarios, ...) Son completos y expresivos, y las descripciones que con ellos se construyen son simples, precisas y fáciles de usar. Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Diseño 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 que pueden servir para describir la estructura de una base de datos (vehı́culo para describir la realidad) Los modelos de datos se describen mediante: Una estructura Un conjunto de operaciones Definiciones de Integridad Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Principios de Diseño Fidelidad: El diseño ha de ser fiel a las especificaciones, es decir, debe corresponder a la realidad Evitar la redundancia: Se debe tener mucho cuidado y decir las cosas solo una vez Simplicidad de Cuenta: En el diseño se debe introducir tan sólo los elementos que sean absolutamente necesarios Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Modelos Lógicos Basados en Objetos Las ligaduras de datos se hacen explicitas Ejemplos: E/R Carlos A. Olarte ([email protected]) BDI ODL interface C \\ { attr str X; relationship ... } interface A { relationship ... } Diseño de Modelos de Bases de Datos Modelos Lógicos Basados en Registros Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Continuación... Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Diagramas Entidad-Relación Se componen de: Conjuntos entidad (rectángulos) Atributos (Óvalos) Relaciones (Rombos) En este modelo, se asigna un sólo nombre a una relación en ambas direcciones. Las relaciones pueden incluir más de dos conjuntos entidad Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Continuación (E/R) Aspectos Importantes: Direccionalidad de las relaciones, relaciones multidireccionales, atributos en las relaciones Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Componentes del MER Atributos Las propiedades de una entidad se describen mediante un conjunto de atributos. La entidad tiene un valor para cada uno de sus atributos. Ejemplo, el número de cédula es un atributo de una persona, y su valor podrı́a ser 29.092.939. El dominio de un atributo es el conjunto de valores permitidos para ese atributo. Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Componentes del MER Atributos Almacenado / Derivado Almacenado: se guarda en la base de datos Derivado: Su valor se obtiene a partir del valor de otros atributos o entidades relacionados. Se representa con un ovalo punteado. Ej. Edad. Valores Nulos Un atributo toma un valor null cuando una entidad no tiene un valor para él. Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Componentes del MER Conjunto de Entidades (o Tipo de Entidad) Es un conjunto de entidades del mismo tipo que comparten las mismas propiedades, o atributos. Ejemplo: el conjunto de todas las personas que son clientes de un banco. Las entidades individuales son la extensión del conjunto de entidades. El tipo de entidad define la intensión de la entidad. Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Componentes del MER Conjuntos Entidad Algunos ejemplo: Sujeto: Cliente, Proveedor, Empleado Objeto: Producto, Factura Evento: Solicitud de Pedido, Ajuste, Venta Lugar: Ciudad, Paı́s, Bodega Abstracción: Tipo de cliente, Unidad de medida Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Componentes del MER Relaciones Es una asociación entre dos o más entidades. Ejemplo: si se tienen las entidades “estudiante Perez” y “curso Bases de Datos” se puede definir una relación que asocie al estudiante con el curso. Una relación también puede tener atributos. Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Relaciones Multidireccionales Las Relaciones Multidireccionales pueden ser transformadas en un conjunto de relaciones binarias de mucho a uno introduciendo un conjunto entidad conexión. En el ejemplo del banco, el resultado es: Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Llaves Las llaves son un conjunto de atributos que permiten identificar los objetos pertenecientes a una clase (Interfaz en ODL o Conjunto entidad en E/R) de manera única. De manera formal, dados dos objetos O1 y O2 pertenecientes a una clase C con atributos A y llave K ⊆ A, si O1 [K ] = O2 [K ] → O1 = O2 . Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Continuación (Llaves) E/R ODL interface X{ key(<List Atributos>); ...} Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Conjuntos Entidad Débiles Se denomina un Conjunto Entidad Débil a un C.E cuya llave está compuesta parcial o totalmente por atributos llaves de otro conjunto entidad. Esta situación se puede presentar en las siguientes situaciones: El conjunto cae dentro de una jerarquı́a Se crea un conjunto entidad de conexión para eliminar relaciones multidireccionales Al eliminar una relación mucho a muchos Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Notación de los C.E.D Condiciones: La relación R siempre debe ser binaria de Muchos (en la débil) a uno Los atributos que aporta A a B debe ser atributos llave de A Si A también es débil, los atributos que aporta a B pueden pertenecer a otro conjunto entidad conectado a A por una relación muchos a uno Si existen varias relaciones muchos a uno entre B y A, se debe hacer una copia de los atributos llave de A por cada relación para formar la llave de B Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Subclases en los diagramas E/R Las subclases se representa en el MER por medio de relaciones ISA. Por ejemplo: Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Ejercicio Construya un MER para el siguiente problema: Se desea mantener la información de la nómina de los empleados de la compañı́a. De cada empleado se conoce su identificación, nombre, fecha de nacimiento , y opcionalmente un conjunto de empleados subordinados. Cada empleado adicionalmente tiene un cargo en la compañı́a y por cada cargo se conoce cuanto es el salario básico. La nomina se genera mensualmente y en ella se almacena por cada empleado su salario básico y sus deducciones obligatorias (porcentajes sobre el salario básico) Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Ejercicio Construya un MER para el siguiente problema: Se desea mantener la información de las cuentas de ahorros y corrientes de un banco. Para lo anterior se tienen las siguientes consideraciones: 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, una cuenta hace parte de otra cuenta (comparten recursos). Por cada cuenta debe registrarse las transacciones de las mismas. En cada una de las transacciones se debe almacenar la fecha, cajero, tarjeta, monto y tipo de la transacción (retiro, consignación o consulta de saldo) Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos Ejercicio (MER/ODL) Construya un MER y un diseño en ODL para el sgte problema: Se requiere un sistema para registro académico que cumpla con las siguientes caracterı́sticas: Un estudiante puede matricularse en varias carreras. Por cada una de ellas debe tener un código propio Cada carrera tiene asignado un plan de estudio, es decir, una serie de materias, las cuales pueden tener prerequisitos. En cada grupo el profesor debe estar en capacidad de indicar las notas con sus respectivos porcentajes (i.e P.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 también deben tener en cuenta el perı́odo académico, por ej. CC080, grupo A, 2005-01 es diferente a CC080-A, 2004-02. Cada grupo (edición) debe tener asociado el profesor quien lo dicata Carlos A. Olarte ([email protected]) BDI Diseño de Modelos de Bases de Datos