Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos – 2do. Cuatrimestre de 2004 Modelo Entidad-Relación Elementos de Bases de Datos Responde al tipo de modelo de datos lógico basado en objetos. Está basado en una representación del mundo real que consiste de: Dpto.Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Lic. María Mercedes Vitturini [[email protected]] Clase 4 1er. Cuatrimestre de 2004 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. Elementos de Bases de Datos Clase 4 Entidades y Conjuntos de Entidades 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 2022134567-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. Los conjuntos de entidades no necesariamente deben ser disjuntos. Ejemplos: 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. Elementos de Bases de Datos Clase 4 2 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”. Elementos de Bases de Datos Clase 4 3 Atributos 4 Ejemplos de 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. 5 Nombre-Sucursal, Ciudad-Sucursal, Activo. Para el conjunto entidad “Clientes”: Formalmente, cada atributo es una función matemática que asigna un conjunto de entidades a un dominio. Elementos de Bases de Datos Clase 4 Para el conjunto entidad “Sucursales”: Nombre-Cliente, Documento, Nro-SeguridadSocial, Domicilio-Cliente, Ciudad-Cliente. Para el conjunto entidad “Cuentas”. Nro-Cuenta, Saldo. Para el conjunto entidad “Transacciones”. Nro-Transacción, Fecha, Monto. Elementos de Bases de Datos Clase 4 6 1 Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos – 2do. Cuatrimestre de 2004 Relaciones y Conjunto de Relaciones 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. Formalmente, si E1, E2, …, En (n > 1) son conjuntos de entidades, entonces el conjunto de relaciones R es un subconjunto de: {(e1,e2,…,en): e1 ∈ E1, e2 ∈ E2,…, en ∈ En} Ejemplos: Elementos de Bases de Datos Clase 4 Elementos de Bases de Datos Clase 4 7 Cardinalidad de Relaciones Ejemplos: B a1 b1 a2 b2 a3 b3 a4 b4 8 Relaciones “una a una” Una a una: una entidad en A está asociada a lo sumo con una entidad en B. A 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. 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. Elementos de Bases de Datos Clase 4 Cardinalidad de Relaciones B a1 Ejemplos: b3 a3 Pertenece: definida entre los conjuntos de entidades “Ciudades” y “Provincias”. b1 b2 a2 10 Relaciones “una a muchas” Una a muchas: una entidad en A está asociada con cero o varias entidades en B. A Elementos de Bases de Datos Clase 4 9 b4 Departamento Responsable: definida para los conjuntos de entidades “Materias” y “Departamentos”. b5 Elementos de Bases de Datos Clase 4 11 Elementos de Bases de Datos Clase 4 12 2 Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos – 2do. Cuatrimestre de 2004 Cardinalidad de Relaciones 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 Muchas a muchas: una entidad en A está asociada con cero o varias entidades en B y viceversa. A B B a1 b1 a2 b1 a2 b2 a3 b2 a3 b3 a4 b3 a4 b4 a1 a5 Elementos de Bases de Datos Clase 4 La cardinalidad de asignación adecuada para un conjunto de relaciones depende del mundo real que se esté modelando. Ejemplos: Cursa: definida entre los conjuntos de entidades “Materias” y “Alumnos”. 14 Cardinalidad de las Relaciones Relaciones “muchas a muchas” Elementos de Bases de Datos Clase 4 13 Si modelamos una relación entre los conjuntos de entidades Clientes y Cuentas, un mismo cliente podría tener muchas cuentas (una a muchas). Stock: definida para los conjuntos de entidades “Artículos” y “Sucursales”. Si una cuenta puede pertenecer a varios clientes, entonces cada cliente puede tener muchas cuentas y viceversa (muchas a muchas). Elementos de Bases de Datos Clase 4 Llave 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. Elementos de Bases de Datos 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. Elementos de Bases de Datos Clase 4 15 17 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. Elementos de Bases de Datos Clase 4 18 3 Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos – 2do. Cuatrimestre de 2004 Dependencia de Existencia entre Entidades Conjuntos de Entidades Débiles y Fuertes 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. Un conjunto de entidades es débil si no contiene un conjunto de atributos suficiente para formar una llave primaria. Esto implica que si se suprime B entonces se suprime A. Ejemplos: 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. Elementos de Bases de Datos Clase 4 19 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 Dominante Conjunto de Entidades Débil Subordinada Elementos de Bases de Datos Clase 4 21 Dado el conjunto de entidades débiles Transacciones subordinado del conjunto de entidades fuertes Cuentas: Elementos de Bases de Datos Clase 4 20 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) Elementos de Bases de Datos Clase 4 22 Atributos de Conjuntos de Relaciones Ejemplos El conjunto de entidades Transacciones con los atributos Nro-Transacción, Fecha y Monto. El conjunto de entidades Ejemplares de libros con los atributos Nro-Ejemplar, Cantidad-Páginas. Llave primaria de Cuentas: Nro-Cuenta. Discriminador de Transacciones: NroTransacción. Llave primaria de Transacciones: Nro-Cuenta y Nro-Transacción. Elementos de Bases de Datos Clase 4 23 Consideremos los conjuntos de entidades E1,…,En. Sean pk(E1),…,pk(En) las llaves primarias de E1,…,En respectivamente. Sea R una relación que implica a E1,…,En, R(E1,…,En). Si R no tiene atributos entonces el conjunto de atributos que describen las relaciones individuales de R es: pk(R) = pk(E1) ∪ … ∪ pk(En). Si R tiene como atributos descriptivos a {a1,…,am} entonces su conjunto de atributos que describen las relaciones individuales de R es: R = pk(E1) ∪ … ∪ pk(En) ∪ {a1,…,am} Elementos de Bases de Datos Clase 4 24 4 Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos – 2do. Cuatrimestre de 2004 Atributos de un conjunto de relaciones 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: 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 Fecha. Entonces los tres atributos que componen la relación CtaCli son: Nro-Cuenta, Nro-Seguridad-Social, Fecha Elementos de Bases de Datos Clase 4 Nro-Seguridad Social Fecha CtaCli Dirección-Cliente Nombre-Cliente Nro-Cuenta Saldo Ciudad-Cliente Fecha Cliente CtaCli Dirección-Cliente Nro-Seguridad Social Nro-Cuenta Nombre-Cliente Cuenta Ciudad-Cliente Elementos de Bases de Datos Clase 4 Nro-Cuenta Cuenta CtaCli Dirección-Cliente La relación CtaCli es una a muchas de cuenta a cliente. 29 28 Diagrama E-R Fecha Cliente Saldo La relación CtaCli es una a muchas de cliente a cuenta. Elementos de Bases de Datos Clase 4 27 Diagrama Entidad-Relación Nro-Seguridad Social Cuenta CtaCli Dirección-Cliente La relación CtaCli es muchas a muchas. Elementos de Bases de Datos Clase 4 Nombre-Cliente 26 Nro-Cuenta Fecha Cliente Cuenta Saldo Ciudad-Cliente Elementos de Bases de Datos Clase 4 Diagrama E-R Nro-Seguridad Social Cliente 25 Diagrama E-R Nombre-Cliente 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. Saldo Ciudad-Cliente La relación CtaCli es una a una. Elementos de Bases de Datos Clase 4 30 5 Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos – 2do. Cuatrimestre de 2004 Libros y Autores Relaciones no binarias Registro Editorial Cod-Materia Nombre-Alumno Libro Nombre-Materia Nombre-Libro ISBN Relación Muchas a muchas: un libro puede ser escrito por muchos autores y un autor puede escribir muchos libros. Nro-Páginas LibAut Alumno Materia AluMatCar Nombre-Autor Autor Dirección-Autor Carrera Cod-Carrera Elementos de Bases de Datos Clase 4 Relaciones no binarias Nombre-Prof Nombre-Mat Legajo-Prof Nro-Materia Nombre-Carrera Elementos de Bases de Datos Clase 4 31 32 Relaciones no binarias Nombre-Diagnóstico Descripción Teléfono Domicilio Nombre Profesor Materia Paciente Diagnóstico Nro-Paciente atención Cursa Alumno Nombre-Alumno Medico Nro-Registro Elementos de Bases de Datos Clase 4 Nro-Medico 33 Consideraciones de diseño Nombre-Médico Elementos de Bases de Datos Clase 4 34 Ejercicios propuestos Se debe adecuar el diseño a la realidad del problema. 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. Deben determinarse correctamente los atributos. 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. No debe haber redundancias ni inconsistencias. Los atributos de una relación pueden cambiar la funcionalidad y/o la cardinalidad de la misma. Elementos de Bases de Datos Clase 4 35 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. Elementos de Bases de Datos Clase 4 36 6 Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos – 2do. Cuatrimestre de 2004 Una posible solución. Hipódromo (Solución 1) Persona Caballo HijoDe Es-Una Padre Es-Una Gana Corre Carrera Madre Elementos de Bases de Datos Clase 4 Problema: este esquema no refleja que el caballo haya corrido la carrera que ganó. Elementos de Bases de Datos Clase 4 37 Hipódromo (Solución 2) 38 Museo Nombre-Lugar Obra Caballo Corre Direc-Lugar Posición HechaPor Carrera Rinde Profesor Carrera Fecha ∈ 40 • No se controlan si se rinden las materias de la carrera a la que pertenece el alumno. Alumno Nota • 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. Elementos de Bases de Datos Clase 4 Nro-Exposic Elementos de Bases de Datos Clase 4 Rinde Materia Fecha Universidad (Solución 2) ∈ Nota SeHaceEn Exposición 39 Universidad (Solución 1) Fecha SeVeEn Autor Elementos de Bases de Datos Clase 4 Alumno Lugar Materia 41 ∈ Elementos de Bases de Datos Clase 4 Carrera 42 7 Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos – 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. Elementos de Bases de Datos Clase 4 43 8