2do. Cuatrimestre de 2004 Elementos de Bases de Datos Dpto.Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Lic. María Mercedes Vitturini [mvitturi@cs.uns.edu.ar] Clase 4 1er. Cuatrimestre de 2004 Modelo Entidad-Relación Responde al tipo de modelo de datos lógico basado en objetos. Está basado en una representación del mundo real que consiste de: Una colección de objetos básicos llamados entidades. Yrelaciones entre las entidades. Cada entidad tiene asociado un conjunto de atributos Que la describe. Las relaciones pueden tener o no atributos propios que las describan. Clase 4 2 Entidades y Conjuntos de Entidades Entidad: es un objeto que existe y es distinguible de otros objetos. Ejemplo: Miguel Montero, con número de CUIL 20-22134567-1 es una entidad ya que identifica únicamente a una persona en el universo. Conjunto de Entidades: es un conjunto de entidades del mismo tipo. El conjunto de todas las personas que tienen cuenta en un banco define al conjunto de entidades Clientes. El conjunto de todas las cuentas de un banco define al conjunto de entidades Cuentas. Clase 4 3 Entidades y Conjuntos de Entidades Los conjuntos de entidades no necesariamente deben ser disjuntos. El conjunto de personas clientes de un banco. El conjunto de personas empleados en un banco. Una persona (i.e. entidad) podría ser empleado y cliente de un banco, esto es, pertenecer a los conjuntos de entidades clientes y empleados. Clase 4 4 Atributos Cada entidad está representada o descripta por un conjunto de atributos. Para cada atributo existe un conjunto de valores permitidos al que se denomina dominio del atributo. Formalmente, cada atributo es una función matemática que asigna un conjunto de entidades a un dominio. Ejemplos de Atributos Para el conjunto entidad Sucursales : Nombre-Sucursal, Ciudad-Sucursal, Activo. Para el conjunto entidad Clientes : Nombre-Cliente, Documento, Nro-Seguridad- Social, Domicilio-Cliente, Ciudad-Cliente. Para el conjunto entidad Cuentas. Nro-Cuenta, Saldo. Para el conjunto entidad Transacciones. Nro-Transacción,, Monto. Clase 4 5 Clase 4 6 1
2do. Cuatrimestre de 2004 Relaciones y Conjunto de Relaciones Relación: es una asociación dos o más entidades, no necesariamente disjuntas. Conjunto de relaciones: es el conjunto de relaciones de un mismo tipo. Relaciones y Conjunto de Relaciones Formalmente, si E 1, E 2,, E n (n > 1) son conjuntos de entidades, entonces el conjunto de relaciones R es un subconjunto de: {(e 1,e 2,,e n ): e 1 E 1, e 2 E 2,, e n E n } Trabaja para: es una relación que vincula los conjuntos de entidades empleado y empleador. Titular: es una relación que vincula los conjuntos de entidades cliente y cuenta. Clase 4 7 Clase 4 8 Cardinalidad de Relaciones Una a una: una entidad en A está asociada a lo sumo con una entidad en B. A a1 a2 a3 a4 B b1 b2 b3 b4 Clase 4 9 Relaciones una a una Es capital de: definida entre los conjuntos de entidades Provincias y Ciudades Capitales. Director: definida entre los conjuntos de entidades Departamentos y Directores. No es un tipo de relación frecuente. Clase 4 10 Cardinalidad de Relaciones Una a muchas: una entidad en A está asociada con cero o varias entidades en B. A a1 a2 a3 B b1 b2 b3 b4 b5 Relaciones una a muchas Pertenece: definida entre los conjuntos de entidades Ciudades y Provincias. Departamento Responsable: definida para los conjuntos de entidades Materias y Departamentos. Clase 4 11 Clase 4 12 2
2do. Cuatrimestre de 2004 Cardinalidad de Relaciones Muchas a una: una entidad en A está asociada, a lo sumo, con una entidad en B pero una entidad en B puede estar asociada con cero o varias entidades en A. A a1 a2 a3 a4 a5 B b1 b2 b3 Clase 4 13 Cardinalidad de Relaciones Muchas a muchas: una entidad en A está asociada con cero o varias entidades en B y viceversa. A a1 a2 a3 a4 B b1 b2 b3 b4 Clase 4 14 Relaciones muchas a muchas Cursa: definida entre los conjuntos de entidades Materias y Alumnos. Stock: definida para los conjuntos de entidades Artículos y Sucursales. Cardinalidad de las Relaciones La cardinalidad de asignación adecuada para un conjunto de relaciones depende del mundo real que se esté modelando. Si modelamos una relación entre los conjuntos de entidades Clientes y Cuentas, un mismo cliente podría tener muchas cuentas (una a muchas). Si una cuenta puede pertenecer a varios clientes, entonces cada cliente puede tener muchas cuentas y viceversa (muchas a muchas). Clase 4 15 Clase 4 16 Llave de un conjunto de entidades Definición: se define como superllave al conjunto de atributos que permite distinguir unívocamente a un único elemento de un conjunto de entidades. Nro-Cliente es superllave del conjunto de entidades Clientes. Nro-Cliente y Nombre-Cliente es superllave del conjunto de entidades Clientes. Llave de un conjunto de entidades Definición: se define como llave candidata a una superllave que no contiene ningún subconjunto propio que también sea superllave. Esto es, es una superllave minimal. Definición: se define como llave primaria a la llave candidata elegida por el diseñador como llave para una tabla de la base de datos. Clase 4 17 Clase 4 18 3
2do. Cuatrimestre de 2004 Dependencia de Existencia entre Entidades Si la existencia de la entidad A depende de la existencia de la entidad B se dice que A es dependiente por existencia de B. Esto implica que si se suprime B entonces se suprime A. Se dice que B es la entidad dominante y A la entidad subordinada. Ejemplo: Dados los conjuntos de entidades Cuentas y Transacciones, cada entidad transacción está asociada con una entidad cuenta. Cuentas es la entidad dominante y Transacciones la entidad subordinada. Clase 4 19 Conjuntos de Entidades Débiles y Fuertes Un conjunto de entidades es débil si no contiene un conjunto de atributos suficiente para formar una llave primaria. El conjunto de entidades Transacciones con los atributos Nro-Transacción, y Monto. El conjunto de entidades Ejemplares de libros con los atributos Nro-Ejemplar, Cantidad-Páginas. Clase 4 20 Conjuntos de Entidades Débiles y Fuertes Un conjunto de entidades es fuerte si contiene un conjunto de atributos que forme una llave primaria. Ejemplo: El conjunto de entidades Cuentas. En este caso el atributo Nro-Cuenta identifica a una única cuenta Conjunto de Entidades Fuerte Conjunto de Entidades Débil Dominante Subordinada Clase 4 21 Conjuntos de Entidades Fuertes y Débiles Definición: Se define como discriminador al conjunto de atributos de una entidad débil que permite distinguir a las entidades dentro del conjunto. La llave primaria de un conjunto de entidades débil A subordinado al conjunto de entidades fuertes B: Llave primaria(b) Discriminador(A) Clase 4 22 Ejemplos Dado el conjunto de entidades débiles Transacciones subordinado del conjunto de entidades fuertes Cuentas: Llave primaria de Cuentas: Nro-Cuenta. Discriminador de Transacciones: Nro- Transacción. Llave primaria de Transacciones: Nro-Cuenta y Nro-Transacción. Clase 4 23 Atributos de Conjuntos de Relaciones Consideremos los conjuntos de entidades E 1,,E n. Sean pk(e 1 ),,pk(e n ) las llaves primarias de E 1,,E n respectivamente. Sea R una relación que implica a E 1,,E n, R(E 1,,E n ). Si R no tiene atributos entonces el conjunto de atributos que describen las relaciones individuales de R es: pk(r) = pk(e 1 ) pk(e n ). Si R tiene como atributos descriptivos a {a 1,,a m } entonces su conjunto de atributos que describen las relaciones individuales de R es: R = pk(e 1 ) pk(e n ) {a 1,,a m } Clase 4 24 4
2do. Cuatrimestre de 2004 Atributos de un conjunto de relaciones Consideremos los conjuntos de entidades: Clientes: Nro-Seguridad-Social, Nombre-Cliente, Domicilio-Cliente, Ciudad-Cliente. Cuenta: Nro-Cuenta, Saldo. La relación que CtaCli es una relación que asocia a los clientes con las cuentas bancarias que posee. Supongamos que esta relación tiene el atributo descriptivo. Entonceslostresatributosque componen la relación CtaCli son: Nro-Cuenta, Nro-Seguridad-Social, Clase 4 25 Diagrama Entidad-Relación La estructura lógica de una base de datos puede expresarse mediante un diagrama entidad-relación. Cada Diagrama Entidad-Relación está compuesto de: Rectángulos: representando conjuntos de entidades. Elipses: representando atributos. Rombos: representando relaciones entre conjuntos de entidades. Líneas: vinculando conjuntos de entidades entre si o conjuntos de entidades con relaciones. Flechas: el extremo de la flecha indica que corresponde una entidad del conjunto de entidades. Clase 4 26 Diagrama E-R Diagrama E-R Nombre-Cliente Nro-Seguridad Social Nro-Cuenta Nombre-Cliente Nro-Seguridad Social Nro-Cuenta Cliente CtaCli Cuenta Cliente CtaCli Cuenta Dirección-Cliente Saldo Dirección-Cliente Saldo Ciudad-Cliente La relación CtaCli es muchas a muchas. Ciudad-Cliente La relación CtaCli es una a muchas de cliente a cuenta. Clase 4 27 Clase 4 28 Diagrama Entidad-Relación Nombre-Cliente Nro-Seguridad Social Nro-Cuenta Nombre-Cliente Nro-Seguridad Social Diagrama E-R Nro-Cuenta Cliente CtaCli Cuenta Cliente CtaCli Cuenta Dirección-Cliente Saldo Dirección-Cliente Saldo Ciudad-Cliente La relación CtaCli es una a muchas de cuenta a cliente. Ciudad-Cliente La relación CtaCli es una a una. Clase 4 29 Clase 4 30 5
2do. Cuatrimestre de 2004 Libros y Autores Relaciones no binarias Libro Editorial Nombre-Libro Registro Nombre-Alumno Nombre-Materia Cod-Materia LibAut Autor ISBN Nro-Páginas Nombre-Autor Dirección-Autor Relación Muchas a muchas: un libro puede ser escrito por muchos autores y un autor puede escribir muchos libros. Alumno Cod- AluMatCar Materia Nombre- Clase 4 31 Clase 4 32 Relaciones no binarias Nombre-Prof Nombre-Mat Legajo-Prof Nro-Materia Relaciones no binarias Nombre-Diagnóstico Descripción Domicilio Teléfono Profesor Materia Diagnóstico Nombre Paciente Nro-Paciente Cursa atención Nombre-Alumno Alumno Nro-Registro Nro-Medico Medico Nombre-Médico Clase 4 33 Clase 4 34 Consideraciones de diseño Ejercicios propuestos Se debe adecuar el diseño a la realidad del problema. Deben determinarse correctamente los atributos. No debe haber redundancias ni inconsistencias. Los atributos de una relación pueden cambiar la funcionalidad y/o la cardinalidad de la misma. Clase 4 35 Crear un diseño para una BD con personas que a su vez refleje la relación del padre y la madre de cada persona. Crear un diseño para una BD de un hipódromo que refleje la información de los caballos, las carreras en las que intervienen y el ganador de una carrera. Crear un diseño de BD para un museo que refleje las obras del mismo, los autores de cada obra y las exposiciones de cada obra. Crear un diseño de BD que refleje las relaciones entre alumnos que rinden materias de determinada carrera con profesores de la universidad. Clase 4 36 6
2do. Cuatrimestre de 2004 Una posible solución. Hipódromo (Solución 1) Es-Una Persona HijoDe Es-Una Gana Caballo Corre Problema: este esquema no refleja que el caballo haya corrido la carrera que ganó. Padre Madre Clase 4 37 Clase 4 38 Hipódromo (Solución 2) Museo Nombre-Lugar Caballo Obra Lugar Direc-Lugar Corre Posición HechaPor SeVeEn SeHaceEn Autor Exposición Nro-Exposic Clase 4 39 Clase 4 40 Universidad (Solución 1) Alumno Rinde Nota Materia Universidad (Solución 2) Profesor Rinde Nota No se controlan si se rinden las materias de la carrera a la que pertenece el alumno. Alumno No se indican que profesores toman los exámenes. No se controlan si se rinden las materias de la carrera a la que pertenece el alumno. Clase 4 41 Materia Clase 4 42 7
2do. Cuatrimestre de 2004 Temas de la clase de hoy Modelo de Datos Entidad-Relación. Entidades y Conjunto de Entidades. Entidades Fuertes y Débiles. Relaciones y Conjunto de Relaciones. Relaciones binarias y n-arias. Atributos de Entidades y Atributos de Relaciones. Cardinalidad de las Relaciones. Superllave, Llaves Candidatas y Llave Primaria Diagrama Entidad-Relación. Ejemplos. Bibliografía Fundamentos de Bases de Datos A. Silberschatz. Capítulo 1. Database and Knowledge Base System J. Ullman. Capítulo 1 y 2. Clase 4 43 8