cc302 – Módulo 2 Modelo Entidad-Relación Prof. J. Ignacio Vázquez Herrera Bibliografía: Sistemas de bases de datos Ramez Elmasri y Shamkant B. Navathe Fundamentos de  bases de datos Henry F.  y Abraham Silverschatz Sistemas de Bases de Datos. Diseño, Implementación y Admón Peter Rob y Carlos Coronel
Modelos de datos Alto nivel o Conceptuales De implementación o Lógicos Bajo nivel o Físicos El Modelo  Entidad-Relación  o  Entidad-Vínculo  cae dentro de la clasificación de Modelos de Datos de Alto Nivel o Conceptuales.
Proceso del diseño de Bases de Datos Minimundo Recolección de análisis de requerimientos Diseño Conceptual Diseño Lógico Diseño Físico Modelo Entidad-Relación Modelo Relacional Independiente Del SGBD Específico para Cada SGBD
Conceptos del Modelo ER Entidad . Objeto del mundo real, distinguible de otros objetos. Algunos autores utilizan el nombre  “Ejemplar de Entidad” Tipos de entidades .  Conjunto de entidades que comparten las mismas propiedades o atributos. También se les puede referir como “ Clases de Entidades” Atributos .  Propiedades específicas que describen a una entidad Dominio .  Conjunto de  valores posibles para un atributo . Por ejemplo: el dominio para el atributo calificación son todos los enteros positivos de 0 a 100
Conceptos del Modelo ER EMPLEADO curp fechaN nombre salario Tipo de entidades Tipo de atributos Representación de los Tipos de Entidades y Tipos de Atributos
Tipos y Ejemplares de Entidades EMPLEADO curp fechaN nombre salario vigilante goma-800510 10/5/1980 Adrían Gómez 10,000 Tipo de Entidades  o  Clase de Entidades : Se refiere a un  concepto  o prototipo Ejemplar de Entidad: Se refiere a un  objeto real  (instancia) Los términos:  Tipos de Entidades ,  tipos de atributos  y  tipos de relaciones  son útiles para fines del modelado Un error común es confundir ambos términos
Atributos Simples y Compuestos Compuestos.  Se pueden dividir en componentes más pequeños. Simples o Atómicos.  Son aquellos que no son divisibles. EMPLEADO curp fechaN nombre salario nPila paterno materno Técnicamente  pudiera objetarse que “paterno” sea un atributo atómico, por dividirse a su vez en caracteres. Conceptualmente , sin embargo, el apellido paterno de una persona ya no puede dividirse en componentes más pequeños.
Atributos Monovaluados y Multivaluados Monovaluados . Tienen un solo valor para una entidad en particular. Multivaluados . Pueden tener más de un valor, incluso se pueden manejar límites inferior y superior. EMPLEADO curp fechaN nombre salario nPila paterno materno telefono En ciertas circunstancias pudiera ser importante almacenar más de un número telefónico (casa, oficina, etc.)
Atributos Almacenados y Derivados Almacenados . Aquellos que se guardan en la BD. Derivados . Los que se pueden obtener a partir de los almacenados. EMPLEADO curp fechaN nombre salario nPila paterno materno telefono edad El atributo “edad” se puede calcular dinámicamente a partir del atributo “fechaN”
Atributos Clave Una restricción importante de las entidades de un tipo es la  restricción de clave  o  restricción de unicidad . Un  atributo clave  identifica de manera única a cada entidad individual. EMPLEADO curp fechaN nombre salario nPila paterno materno telefono edad Un atributo clave aparece subrayado
Tipos de Relaciones (o Vínculos) Un  tipo de   Relaciones  (o  tipo de vínculos ) es una asociación entre dos o más tipos de entidades. Se representa mediante un rombo que conecta a los tipos de entidades. EMPLEADO DEPARTAMENTO PERTENECE_A Se dice que los tipos de entidades EMPLEADO y DEPARTAMENTO  participan  en el tipo de relaciones (o vínculos) “PERTENECE_A”
Nombres de Papeles Cada tipo de entidades que participa en un tipo de relaciones desempeña un  papel  (o rol) específico en la relación o vínculo. EMPLEADO DEPARTAMENTO PERTENECE_A En la relación “PERTENECE_A” el tipo de entidades “EMPLEADO” desempeña el papel de empleado o trabajador. Con excepción de las  relaciones recursivas , normalmente no es necesario indicar los nombres de los papeles, ya que  el nombre del tipo de entidades se utiliza generalmente como el nombre del papel .
Relaciones Recursivas También llamadas  unarias  son aquellas en los que el mismo tipo de entidades participa más de una vez en un tipo de relaciones (o tipo de vínculos) con diferentes papeles (roles). La relación SUPERVISION asocia un empleado con un supervisor y pertenecen ambos al mismo tipo de entidades EMPLEADO  supervisor supervisado EMPLEADO SUPERVISION
Grado de un tipo de relaciones Es el número de tipos de entidades que participan en un tipo de relaciones (o tipo de vínculos) Los tipos de relaciones de grado uno se llaman  unarias Los tipos de relaciones de grado dos se llaman  binarias Los tipos de relaciones de grado tres se llaman  ternarias EMPLEADO DEPARTAMENTO PERTENECE_A PROVEEDOR PROYECTO SUMINISTRA COMPONENTE Relación binaria Relación ternaria supervisor supervisado EMPLEADO SUPERVISION Relación unaria o recursiva
Restricciones estructurales 1. Razón de Cardinalidad . Especifica el número de ejemplares de relaciones en los que puede participar una entidad Las relaciones de cardinalidad más comunes son  1:1, 1:N, M:N (uno a uno, uno a muchos, muchos a muchos) EMPLEADO DEPARTAMENTO PERTENECE_A N 1 EMPLEADO DEPARTAMENTO DIRIGE 1 1 ALUMNO MATERIA CURSA M N
Restricciones estructurales 2. Restricción de Participación . Especifica si la existencia de una entidad depende de que esté relacionada con otra entidad a través del tipo de relaciones Hay dos tipos de restricciones de participación:  parcial y total  ( llamadas también:  opcional y obligatoria) La participación total  recibe a veces el nombre de  dependencia de existencia . Se indica con una línea doble que conecta el tipo de entidades con la relación o vínculo EMPLEADO DEPARTAMENTO DIRIGE 1 1
Restricciones estructurales Ejemplo de diagrama de relación 1:1 e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 d 1 d 2 d 3 EMPLEADO DIRIGE DEPARTAMENTO Nótese como no cualquier empleado dirige a un departamento.  La participación de EMPLEADO en la relación es por lo tanto parcial . En cambio todo departamento es dirigido por un empleado.  La participación de DEPARTAMENTO en la relación es total
Restricciones estructurales Ejemplo de diagrama de relación N:1 Nótese como cada empleado pertenece a un solo departamento y que a un departamento permanecen N empleados.  En ambos casos la participación de las entidades es total e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 d 1 d 2 d 3 EMPLEADO PERTENECE DEPARTAMENTO
Restricciones estructurales Ejemplo de diagrama de relación 1:N Nótese como un proyecto es controlado por un departamento y un departamento puede controlar más de un proyecto. Sin embargo no todos los departamentos controlan proyectos.  La participación de DEPARTAMENTO en la relación es parcial. d 1 d 2 d 3 d 4 d 5 d 6 d 7 d 8 p 1 p 2 p 3 DEPARTAMENTO CONTROLA PROYECTO p 4 p 5 p 6 p 7 p 8
Restricciones estructurales Ejemplo de diagrama de relación M:N Nótese como todos los alumnos toman al menos una materia y una materia es cursada al menos por un alumno.  La participación de ambas entidades en la relación es total a 1 a 2 a 3 a 4 m 1 m 2 m 3 m 4 m 5 ALUMNO TOMA MATERIA Estos diagramas nos pueden auxiliar a determinar las restricciones estructurales de un tipo de relaciones
Atributos de los tipos de relaciones Los tipos de relaciones también pueden tener atributos EMPLEADO DEPARTAMENTO DIRIGE 1 1 Por ejemplo: se puede incluir el atributo “FechaIni” en el tipo de relaciones DIRIGE, para indicar la fecha en que un gerente comenzó a dirigir un departamento FechaIni
Atributos de los tipos de relaciones Los atributos de los tipos de relaciones 1:1 se pueden trasladar a cualquiera de los tipos de entidades participantes. EMPLEADO DEPARTAMENTO DIRIGE 1 1 FechaIni En el caso de los tipos de relaciones 1:N un atributo solo se puede trasladar al tipo de entidades que está del lado N de la relación. EMPLEADO DEPARTAMENTO PERTENECE_A N 1 FechaIni FechaIni FechaIni En una relación N:M los atributos de la relación no se pueden trasladar
Tipos de entidades débiles No tienen  atributos clave propios.  Se identifican por su relación con otras entidades. A ese otro tipo de entidad se le conoce como  propietario identificador Al tipo de relaciones que asocia un tipo de entidades débiles se le conoce como  relación identificadora  (o vínculo identificador) Los tipos de entidades débiles siempre tienen una restricción de  participación total , aunque no toda existencia de dependencia resulta en un tipo de entidades débiles
Tipos de entidades débiles Tanto el tipo de  entidades débiles  como su  relación identificadora  se representan con  líneas dobles EMPLEADO DEPENDIENTE DEPENDIENTE_DE 1 N curp nombre salario nombre sexo Clave Parcial o atributo discriminador fechaN Las entidades débiles siempre tienen una restricción de  participación total   con la  relación identificadora Propietario identificador Relación identificadora
Tipos de Claves Superclave . Es un conjunto de uno o más atributos que tomados colectivamente, permiten identificar de manera única a una entidad. Clave Candidata . Una superclave mínima, tal que no contenga otras superclaves. Clave Primaria . Clave candidata que es elegida para identificar una entidad, buscando que los atributos que la conforman nunca cambien. Clave Foránea . Se dice de la clave primaria de la cual dependen otras entidades (como las entidades débiles). Clave Parcial . En el caso de una entidad débil, es un atributo que se utiliza como discriminador y que junto con la clave foránea forma la clave principal.
Superclaves VEHICULO matricula num_eco serie_motor marca modelo chofer Técnicamente, el conjunto de todos los atributos forman una superclave, porque le dan unicidad a la entidad Pero igual cumplen los siguientes subconjuntos: num_eco, matricula; maticula, serie_motor; serie_motor, marca; Etc,etc.
Claves Candidatas VEHICULO matricula num_eco serie_motor marca modelo chofer En la entidad VEHICULO se pueden encontrar dos superclaves mínimas (no se pueden dividir en otras superclaves): matricula  y  serie_motor Como ambas describen unívocamente a la entidad se les denomina  claves candidatas
Claves Primarias (o principales) De las claves candidatas: matricula  y  serie_motor Se elige a la que será la clave principal. Como es más probable que el atributo “matricula” cambie con el tiempo (como en un robo de placas), se elige el atributo  serie_motor como clave primaria  puesto que el número de serie del motor por lo general no cambia VEHICULO matricula num_eco serie_motor marca modelo chofer
Claves Foráneas VEHICULO matricula num_eco serie_motor marca modelo chofer El atributo “ chofer ” se puede considerar como  clave foránea , si en lugar de escribir nombres de personas como valores, se indican códigos que hacen referencia al nombre del chofer en otra entidad. De esta manera  se evita la redundancia , pues en vez de escribir el mismo nombre varias veces (en el hipotético caso de que tuviese resguardado más de un vehículo) solo se repetiría el código del mismo
Claves Parciales El atributo “ nombre ” de la entidad DEPENDIENTE no describe de manera unívoca a la entidad puesto que puede repetirse (puede haber 2 personas con el mismo nombre). En este caso  “nombre” hace el papel de clave parcial o atributo discriminador . La clave principal de DEPENDIENTE estará formada por su atributo “nombre” (clave parcial) y el atributo “nss” de su entidad propietaria (clave foránea). EMPLEADO nss DEPENDIENTE nombre sexo fechaN parentesco DEPENDIENTE_DE 1 N
Manejo de Relaciones ternarias Algunas herramientas que se emplean en el diseño de BD solo permiten Relaciones Binarias, por lo que es  difícil implementar algunas relaciones  ternarias  , como el siguiente ejemplo: PROVEEDOR PROYECTO SUMINISTRAR num_prov num_proy COMPONENTE cantidad num_comp
Manejo de Relaciones ternarias Ejemplo de diagrama de una Relación Ternaria s 1 s 2 PROVEEDOR SUMINISTRAR c 1 c 2 c 3 COMPONENTE PROYECTO p 1 p 2 p 3 Nótese como por cada ejemplar de relación “SUMINISTRAR” existen 3 participaciones Ejemplo: El proveedor s1 suministra los componentes c1 y c2 al proyecto p1 y el componente c1 al proyecto p2
Manejo de Relaciones ternarias En estos casos  las Relaciones Ternarias se pueden representar como Tipos de Entidades Débiles , sin clave parcial y con 3 Relaciones Identificadoras. PROVEEDOR PROYECTO VS num_prov num_proy COMPONENTE cantidad num_comp SUMINISTRO SC SCP
Un primer ejemplo Diagrama  ER  para la base de datos COMPAÑÍA Tomado de: Sistemas de Bases de Datos Conceptos Fundamentales ELMASRI/NAVATHE EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A DIRIGE CONTROLA TRABAJA_EN DEPENDIENTE_DE N M 1 N 1 1 1 N 1 N 1 N fechaIni horas
Base de datos COMPAÑÍA La compañía está organizada en  departamentos . Cada departamento tiene un  nombre  único, un  número  único y un cierto empleado que lo  dirige , y nos interesa la  fecha  en que dicho empleado comenzó a dirigir el departamento. Un departamento puede estar distribuido en varios  lugares . Cada departamento  controla  un cierto número de  proyectos , cada uno de los cuales tiene un  nombre  y un  número  únicos, y se efectúa en un solo  lugar . Almacenaremos el  nombre ,  número de seguro  social,  dirección ,  salario ,  sexo  y  fecha de nacimiento  de cada  empleado . Todo empleado está  asignado  a un departamento, pero puede  trabajar en   varios proyectos, que no necesariamente estarán controlados por el mismo departamento. Nos interesa el número de  horas  por semana que un empleado trabaja en cada proyecto, y también quién es el  supervisor  de cada empleado. Queremos mantenernos al tanto de los  dependientes   de  cada empleado con el fin de administrar los términos de sus seguros. Almacenaremos el  nombre ,  sexo  y  fecha  de nacimiento de cada dependiente, y su  parentesco  con el empleado. Azul   -  Entidades Rojo  - Relaciones Verde - Atributos Tomado de: Sistemas de Bases de Datos Conceptos Fundamentales ELMASRI/NAVATHE
Paso 1. Identificar Entidades EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco Se identifican cada una de las entidades participantes, así como sus respectivos atributos
Paso 2. Resolver relaciones EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco SUPERVISIÓN es una relación recursiva, puesto que el tipo de entidades EMPLEADO participa con dos papeles (o roles)
Paso 2. Resolver relaciones EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A
Paso 2. Resolver relaciones EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A DIRIGE Nótese como un tipo de entidades puede participar en más de una relación
Paso 2. Resolver relaciones EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A DIRIGE CONTROLA
Paso 2. Resolver relaciones EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A DIRIGE CONTROLA TRABAJA_EN
Paso 2. Resolver relaciones EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A DIRIGE CONTROLA TRABAJA_EN DEPENDIENTE_DE
Paso 3. Determinar cardinalidades EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A DIRIGE CONTROLA TRABAJA_EN DEPENDIENTE_DE N M 1 N 1 1 1 N 1 N 1 N
Paso 4. Identificar participaciones EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A DIRIGE CONTROLA TRABAJA_EN DEPENDIENTE_DE N M 1 N 1 1 1 N 1 N 1 N Una participación total indica que todo ejemplar de entidad participa al menos una vez en la relación
Paso 5. Identificar Entidades débiles EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A DIRIGE CONTROLA TRABAJA_EN DEPENDIENTE_DE N M 1 N 1 1 1 N 1 N 1 N El tipo de entidades DEPENDIENTE no tiene un atributo clave propio. Depende del atributo clave del tipo de entidades EMPLEADO
Paso 6. Identificar Atributos Clave EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A DIRIGE CONTROLA TRABAJA_EN DEPENDIENTE_DE N M 1 N 1 1 1 N 1 N 1 N Un atributo clave identifica de manera unívoca a un tipo de entidades.   En DEPENDIENTE la clave es la combinación de su atributo nombre y el atributo Nss del tipo de entidades EMPLEADO
Paso 7. Identificar Atributos de Relaciones EMPLEADO nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A DIRIGE CONTROLA TRABAJA_EN DEPENDIENTE_DE N M 1 N 1 1 1 N 1 N 1 N horas fechaIni Es necesario especificar la fecha en que un EMPLEADO comienza a dirigir un DEPARTAMENTO y las horas que un EMPLEADO trabaja en un PROYECTO
El minimundo BIBLIOTECA Una biblioteca escolar resguarda ejemplares de libros para prestamos a sus usuarios. Cada libro puede estar escrito por más de un autor. Cualquier autor puede haber escrito varios libros. Si actualmente no hay en existencia ejemplares requeridos de un libro, un usuario puede hacer una reservación del título para cuando esté disponible. Si los ejemplares no se regresan a tiempo aplica una multa que se impone al usuario.
Desarrollando el Diagrama E-R Paso 1 Identificar Entidades Paso 2 Resolver Relaciones (vínculos) Paso 3 Determinar Cardinalidades Paso 4 Identificar Participaciones Paso 5 Identificar Entidades débiles  Paso 6 Identificar Atributos CLAVE
1. Identificar identidades Una biblioteca escolar resguarda  ejemplares  de  libros  para prestamos a sus  usuarios . Cada libro puede estar escrito por más de un  autor . Cualquier autor puede haber escrito varios libros. Si actualmente no hay en existencia ejemplares requeridos de un libro, un usuario puede hacer una reservación del título para cuando esté disponible. Si los ejemplares no se regresan a tiempo aplica una  multa  que se impone al usuario.
1. Identificar identidades LIBRO EJEMPLAR AUTOR USUARIO MULTA
2. Resolver relaciones (vínculos) Una biblioteca escolar resguarda  ejemplares   de   libros  para  prestamos  a sus  usuarios . Cada libro puede estar  escrito  por más de un  autor . Cualquier autor puede haber escrito varios libros. Si actualmente no hay en existencia ejemplares requeridos de un libro, un usuario puede hacer una  reservación  del título para cuando esté disponible. Si los ejemplares no se regresan a tiempo  aplica  una  multa  que  se impone  al usuario.
2. Resolver relaciones (vínculos) LIBRO ESCRIBE EJEMPLAR AUTOR USUARIO PRESTAMO RESERVA MULTA TIENE SE_APLICA IMPUESTA_A Hay que considerar que las relaciones RESERVA Y PRESTAMO son independientes, aún cuando el tipo de entidades USUARIO participa en ambas.
3. Determinar Cardinalidades LIBRO ESCRIBE EJEMPLAR AUTOR USUARIO PRESTAMO RESERVA MULTA TIENE SE_APLICA IMPUESTA_A N M N M M 1 N M 1 1 M M Posibles valores: 1:1  uno a uno 1:N  uno a muchos N:M  muchos a muchos
4. Identificar Participaciones LIBRO ESCRIBE EJEMPLAR AUTOR USUARIO PRESTAMO RESERVA MULTA TIENE SE_APLICA IMPUESTA_A N M N M M 1 N M 1 1 M M Una participación total indica que todo ejemplar de entidad participa al menos una vez en la relación
5. Identificar Entidades débiles LIBRO ESCRIBE EJEMPLAR AUTOR USUARIO PRESTAMO RESERVA MULTA TIENE SE_APLICA IMPUESTA_A N M N M M 1 N M 1 1 M M El tipo de entidades EJEMPLAR no tiene un atributo clave propio. Depende del atributo clave del tipo de entidades libro Relación identificadora Entidad propietaria Entidad débil
6. Identificar Atributos Clave LIBRO ESCRIBE EJEMPLAR AUTOR USUARIO PRESTAMO RESERVA MULTA TIENE SE_APLICA IMPUESTA_A N M N M M 1 N M 1 1 M M id_autor isbn id_usuario num num_ejem El atributo clave de EJEMPLAR se compone de su atributo “num_ejem” y el atributo clave isbn de LIBRO
Notación alternativa Otra forma de representar las  restricciones estructurales  ( razón de cardinalidad y restricción de participación ) es mediante la notación ( min ,  max ).  Significa que cada  ejemplar de entidad  debe participar en por lo menos  min   ejemplares de relaciones  y cuando más en  max  ejemplares de relaciones. min  =  0  implica participación parcial. min >= 1  implica participación total.
Notación alternativa LIBRO ESCRIBE EJEMPLAR AUTOR USUARIO PRESTAMO RESERVA TIENE ( 1,  N) ( 1,  N) ( 1,  N) ( 1,  1) ( 0,  1) ( 0, N) min = 0  participación parcial. min >= 1  participación total. ( 0, N) ( 0, N) Con el ejemplo anterior: La razón de cardinalidad se determina tomando los máximos de forma invertida. ejem:  (1, N ),(1, 1 ) = 1:N
Reducción de un esquema ER a tablas Paso 1.  Por cada  tipo de entidades fuerte , crear una tabla con sus atributos simples. EMPLEADO nss nombre sexo direc sueldo fechaN Clave principal EMPLEADO nss nombre direc fechaN sexo sueldo
Reducción de un esquema ER a tablas Paso 2.  Para el caso de las  entidades débiles , se genera una tabla con sus atributos y se le añade una columna con la clave principal de la entidad fuerte. EMPLEADO nss Clave foránea DEPENDIENTE nombre sexo fechaN parentesco DEPENDIENTE_DE Clave parcial DEPENDIENTE La clave principal estará formada por la combinación de la clave foránea y la clave parcial (o discriminador) 1 N nss nombre sexo fechaN parentesco
Reducción de un esquema ER a tablas Paso 3.  Para una relación de tipo  1:1 con participación total en ambas entidades,  solo es necesario una tabla con los atributos de las entidades que participan en la relación. Nombre de la tabla Clave principal CHOFER Como clave principal  (o clave primaria) se puede elegir cualquiera  de las claves de las entidades. Igual aplica para el nombre de la tabla. nss nombre licencia num_econ modelo marca CHOFER nss nombre VEHICULO num_econ modelo TIENE_ASIGNADO 1 1 marca licencia
Paso 4.  Para una relación de tipo  1:1 con participación total en una sola entidad , son necesarias dos tablas con los atributos de las entidades que participan en la relación. En la tabla que corresponde a la entidad con participación total se le añade una columna con la clave principal de la otra entidad. Clave Foránea Clave principal EMPLEADO Cada entidad mantiene su clave principal. Además, la clave principal de la entidad con participación parcial será la clave foránea de la entidad con participación total DEPARTAMENTO Clave principal Reducción de un esquema ER a tablas nss nombre edad num_dep nombre nss EMPLEADO nss nombre DEPARTAMENTO num_dep nombre DIRIGE 1 1 edad
Reducción de un esquema ER a tablas Paso 5.  Si la relación es  1:1 y la participación es parcial en ambas entidades , se genera una tabla por cada entidad, luego se escoge una de las entidades y se le añade la clave principal de la otra entidad. PERSONA En el ejemplo se ha decidido elegir la entidad ANIMAL para que tenga como atributo adicional la clave principal de la otra entidad. ANIMAL nss nombre edad registro raza nss PERSONA nss nombre ANIMAL registro raza POSEE 1 1 edad
Reducción de un esquema ER a tablas Paso 6.  Para una relación  1:N con participación total del lado de la entidad N , se necesita una tabla por cada entidad. A la tabla que representa la entidad N se le añade una columna con la clave principal de la otra entidad. Clave Foránea Clave principal EMPLEADO DEPARTAMENTO Clave principal nss nombre edad num_dep num_dep nombre EMPLEADO nss nombre DEPARTAMENTO num_dep nombre PERTENECE N 1 edad
Reducción de un esquema ER a tablas Paso 7.  Para una relación  1:N con participación parcial del lado de la entidad N , se necesitan tres tablas: una para representar cada entidad y otra para representar la relación. PERSONA PROYECTO PERSONA_PROYECTO En una relación N:1 los atributos de la relación (si los hubiera) se pueden trasladar a la entidad del lado N nss nombre edad horas nss numero numero lugar PERSONA nss nombre PROYECTO numero lugar TRABAJA_EN N 1 edad horas
Reducción de un esquema ER a tablas Paso 8.  Para una relación  N:M se necesitan tres tablas : una para representar cada entidad y otra para representar la relación más los atributos propios de la misma. PERSONA PROYECTO PERSONA_PROYECTO En una relación N:M los atributos de la relación no se pueden trasladar a las entidades participantes nss nombre edad nss numero horas numero lugar PERSONA nss nombre PROYECTO numero lugar TRABAJA_EN N M edad horas
Reducción de un esquema ER a tablas Paso 9.  Para los  atributos multivaluados se generan tablas separadas , con la clave principal del tipo de entidades o relaciones al que pertenecen. EMPLEADO TELEFONO EMPLEADO nss nombre direccion telefono nss nombre direccion nss num_tel
Reducción de un esquema ER a tablas Paso 10.  Para los  atributos compuestos hay dos opciones : o se genera una tabla separada o bien el atributo compuesto se descompone en los atributos simples que lo componen. EMPLEADO NOMBRE EMPLEADO nss nombre nPila paterno materno sueldo direccion EMPLEADO EMPLEADO nss nombre nPila paterno materno sueldo direccion O bien: nss sueldo direccion nss nPila paterno materno nss nPila paterno materno sueldo direccion
Reducción de un esquema ER a tablas Paso 11.  Para las  relaciones recursivas  se define un atributo adicional del mismo tipo (dominio) que la clave principal. Si la relación es de 1:1 o 1:N se añade el atributo a la misma tabla. EMPLEADO EMPLEADO nss nombre SUPERVISA N 1 EMPLEADO nss nombre CASADO_CON 1 1 EMPLEADO Los dos atributos (con el mismo dominio) representan diferentes papeles o roles. nss nombre supervisor nss nombre conyuge
Reducción de un esquema ER a tablas Paso 11 (cont).  Si la relación es N:M se genera aparte otra tabla con dos atributos: la clave principal del tipo de entidades más el atributo antes definido. CURSO PREREQUISITO CURSO clave nombre REQUIERE M N Los dos atributos (con el mismo dominio) representan diferentes papeles o roles. c 1 c 2 c 3 c 4 c 5 c 6 c 7 c 8 CURSO REQUIERE Se muestran 5 ejemplares de relaciones: c1 requiere de c4, c2 requiere de c7, c3 requiere también de c7, c4 requiere de c6 y de c8. c5 no tiene prerequisitos, ni es prerequisito de ningún curso. c7 y c8 no tienen prerequisitos, aunque son prerequisitos de otros cursos clave pre_req clave nombre
Reducción de un esquema ER a tablas Paso 12.  Las  Relaciones Ternarias  se deben representar primero como  Tipos de Entidades Débiles , sin clave parcial y con 3 Relaciones Identificadoras PROVEEDOR PROYECTO VS num_prov num_proy COMPONENTE cantidad num_comp SUMINISTRO SC SCP PROVEEDOR PROYECTO SUMINISTRAR num_prov num_proy COMPONENTE cantidad num_comp
Reducción de un esquema ER a tablas Paso 12 (cont).  En seguida se generan: Una tabla por cada una de las entidades fuertes (o propietarias) con sus atributos simples Una tabla por la entidad débil obtenida con sus atributos simples y los atributos clave de las entidades fuertes. SUMINISTRO num_prov num_comp num_proy cantidad PROVEEDOR PROYECTO VS num_prov num_proy COMPONENTE cantidad num_comp SUMINISTRO SC SCP
Reducción de un esquema ER a tablas Ejemplo.  Diagrama ER de una base de datos BANCO. BANCO codigo nombre direccion PRESTAMO CUENTA SUCURSAL CLIENTE CONTROLA OTORGA TIENE RECIBE TIENE nss nombre direccion num_cuenta saldo tipo importe num_prest tipo num_suc direccion 1 1 N N M N M N 1 N Tomado de: Sistemas de Bases de Datos Conceptos Fundamentales ELMASRI/NAVATHE
Reducción de un esquema ER a tablas BANCO cod_banco nombre direccion Según paso 1.  Por cada  tipo de entidades fuerte , crear una tabla con sus atributos simples. BANCO Según paso 2.  Para el caso de las  entidades débiles , se genera una tabla con sus atributos y se le añade una columna con la clave principal de la entidad fuerte. SUCURSAL BANCO cod_banco nombre direccion SUCURSAL TIENE num_suc direccion 1 N cod_banco nombre direccion cod_banco num_suc direccion
Reducción de un esquema ER a tablas Según paso 6.  Para una relación  1:N con participación total del lado de la entidad N , se necesita una tabla por cada entidad. A la tabla que representa la entidad N se le añade una columna con la clave principal de la otra entidad. SUCURSAL PRESTAMO SUCURSAL OTORGA importe num_prest tipo num_suc direccion 1 N PRESTAMO Que ya se había obtenido en la lámina anterior cod_banco num_suc direccion num_suc num_prest tipo importe
Reducción de un esquema ER a tablas Según paso 6.  Para una relación  1:N con participación total del lado de la entidad N , se necesita una tabla por cada entidad. A la tabla que representa la entidad N se le añade una columna con la clave principal de la otra entidad. SUCURSAL CUENTA Que ya se había obtenido anteriormente CUENTA SUCURSAL CONTROLA num_cuenta saldo tipo num_suc direccion 1 N cod_banco num_suc direccion num_suc num_cuenta tipo saldo
Reducción de un esquema ER a tablas Según paso 8.  Para una relación  N:M se necesitan tres tablas : una para representar cada entidad y otra para representar la relación más los atributos propios de la misma. CLIENTE CLIENTE-PRESTAMO PRESTAMO CLIENTE RECIBE nss nombre direccion importe num_prest tipo M N La tabla PRESTAMO se obtuvo anteriormente nss nombre direccion nss num_prest
Reducción de un esquema ER a tablas Según paso 8.  Para una relación  N:M se necesitan tres tablas : una para representar cada entidad y otra para representar la relación más los atributos propios de la misma. CUENTA-CLIENTE Las tablas CLIENTE y CUENTA se obtuvieron anteriormente CUENTA CLIENTE TIENE nss nombre direccion num_cuenta saldo tipo M N nss num_cuenta
Dudas y Preguntas: Correo electrónico: [email_address]

cc302modulo2

  • 1.
    cc302 – Módulo2 Modelo Entidad-Relación Prof. J. Ignacio Vázquez Herrera Bibliografía: Sistemas de bases de datos Ramez Elmasri y Shamkant B. Navathe Fundamentos de bases de datos Henry F. y Abraham Silverschatz Sistemas de Bases de Datos. Diseño, Implementación y Admón Peter Rob y Carlos Coronel
  • 2.
    Modelos de datosAlto nivel o Conceptuales De implementación o Lógicos Bajo nivel o Físicos El Modelo Entidad-Relación o Entidad-Vínculo cae dentro de la clasificación de Modelos de Datos de Alto Nivel o Conceptuales.
  • 3.
    Proceso del diseñode Bases de Datos Minimundo Recolección de análisis de requerimientos Diseño Conceptual Diseño Lógico Diseño Físico Modelo Entidad-Relación Modelo Relacional Independiente Del SGBD Específico para Cada SGBD
  • 4.
    Conceptos del ModeloER Entidad . Objeto del mundo real, distinguible de otros objetos. Algunos autores utilizan el nombre “Ejemplar de Entidad” Tipos de entidades . Conjunto de entidades que comparten las mismas propiedades o atributos. También se les puede referir como “ Clases de Entidades” Atributos . Propiedades específicas que describen a una entidad Dominio . Conjunto de valores posibles para un atributo . Por ejemplo: el dominio para el atributo calificación son todos los enteros positivos de 0 a 100
  • 5.
    Conceptos del ModeloER EMPLEADO curp fechaN nombre salario Tipo de entidades Tipo de atributos Representación de los Tipos de Entidades y Tipos de Atributos
  • 6.
    Tipos y Ejemplaresde Entidades EMPLEADO curp fechaN nombre salario vigilante goma-800510 10/5/1980 Adrían Gómez 10,000 Tipo de Entidades o Clase de Entidades : Se refiere a un concepto o prototipo Ejemplar de Entidad: Se refiere a un objeto real (instancia) Los términos: Tipos de Entidades , tipos de atributos y tipos de relaciones son útiles para fines del modelado Un error común es confundir ambos términos
  • 7.
    Atributos Simples yCompuestos Compuestos. Se pueden dividir en componentes más pequeños. Simples o Atómicos. Son aquellos que no son divisibles. EMPLEADO curp fechaN nombre salario nPila paterno materno Técnicamente pudiera objetarse que “paterno” sea un atributo atómico, por dividirse a su vez en caracteres. Conceptualmente , sin embargo, el apellido paterno de una persona ya no puede dividirse en componentes más pequeños.
  • 8.
    Atributos Monovaluados yMultivaluados Monovaluados . Tienen un solo valor para una entidad en particular. Multivaluados . Pueden tener más de un valor, incluso se pueden manejar límites inferior y superior. EMPLEADO curp fechaN nombre salario nPila paterno materno telefono En ciertas circunstancias pudiera ser importante almacenar más de un número telefónico (casa, oficina, etc.)
  • 9.
    Atributos Almacenados yDerivados Almacenados . Aquellos que se guardan en la BD. Derivados . Los que se pueden obtener a partir de los almacenados. EMPLEADO curp fechaN nombre salario nPila paterno materno telefono edad El atributo “edad” se puede calcular dinámicamente a partir del atributo “fechaN”
  • 10.
    Atributos Clave Unarestricción importante de las entidades de un tipo es la restricción de clave o restricción de unicidad . Un atributo clave identifica de manera única a cada entidad individual. EMPLEADO curp fechaN nombre salario nPila paterno materno telefono edad Un atributo clave aparece subrayado
  • 11.
    Tipos de Relaciones(o Vínculos) Un tipo de Relaciones (o tipo de vínculos ) es una asociación entre dos o más tipos de entidades. Se representa mediante un rombo que conecta a los tipos de entidades. EMPLEADO DEPARTAMENTO PERTENECE_A Se dice que los tipos de entidades EMPLEADO y DEPARTAMENTO participan en el tipo de relaciones (o vínculos) “PERTENECE_A”
  • 12.
    Nombres de PapelesCada tipo de entidades que participa en un tipo de relaciones desempeña un papel (o rol) específico en la relación o vínculo. EMPLEADO DEPARTAMENTO PERTENECE_A En la relación “PERTENECE_A” el tipo de entidades “EMPLEADO” desempeña el papel de empleado o trabajador. Con excepción de las relaciones recursivas , normalmente no es necesario indicar los nombres de los papeles, ya que el nombre del tipo de entidades se utiliza generalmente como el nombre del papel .
  • 13.
    Relaciones Recursivas Tambiénllamadas unarias son aquellas en los que el mismo tipo de entidades participa más de una vez en un tipo de relaciones (o tipo de vínculos) con diferentes papeles (roles). La relación SUPERVISION asocia un empleado con un supervisor y pertenecen ambos al mismo tipo de entidades EMPLEADO supervisor supervisado EMPLEADO SUPERVISION
  • 14.
    Grado de untipo de relaciones Es el número de tipos de entidades que participan en un tipo de relaciones (o tipo de vínculos) Los tipos de relaciones de grado uno se llaman unarias Los tipos de relaciones de grado dos se llaman binarias Los tipos de relaciones de grado tres se llaman ternarias EMPLEADO DEPARTAMENTO PERTENECE_A PROVEEDOR PROYECTO SUMINISTRA COMPONENTE Relación binaria Relación ternaria supervisor supervisado EMPLEADO SUPERVISION Relación unaria o recursiva
  • 15.
    Restricciones estructurales 1.Razón de Cardinalidad . Especifica el número de ejemplares de relaciones en los que puede participar una entidad Las relaciones de cardinalidad más comunes son 1:1, 1:N, M:N (uno a uno, uno a muchos, muchos a muchos) EMPLEADO DEPARTAMENTO PERTENECE_A N 1 EMPLEADO DEPARTAMENTO DIRIGE 1 1 ALUMNO MATERIA CURSA M N
  • 16.
    Restricciones estructurales 2.Restricción de Participación . Especifica si la existencia de una entidad depende de que esté relacionada con otra entidad a través del tipo de relaciones Hay dos tipos de restricciones de participación: parcial y total ( llamadas también: opcional y obligatoria) La participación total recibe a veces el nombre de dependencia de existencia . Se indica con una línea doble que conecta el tipo de entidades con la relación o vínculo EMPLEADO DEPARTAMENTO DIRIGE 1 1
  • 17.
    Restricciones estructurales Ejemplode diagrama de relación 1:1 e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 d 1 d 2 d 3 EMPLEADO DIRIGE DEPARTAMENTO Nótese como no cualquier empleado dirige a un departamento. La participación de EMPLEADO en la relación es por lo tanto parcial . En cambio todo departamento es dirigido por un empleado. La participación de DEPARTAMENTO en la relación es total
  • 18.
    Restricciones estructurales Ejemplode diagrama de relación N:1 Nótese como cada empleado pertenece a un solo departamento y que a un departamento permanecen N empleados. En ambos casos la participación de las entidades es total e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 d 1 d 2 d 3 EMPLEADO PERTENECE DEPARTAMENTO
  • 19.
    Restricciones estructurales Ejemplode diagrama de relación 1:N Nótese como un proyecto es controlado por un departamento y un departamento puede controlar más de un proyecto. Sin embargo no todos los departamentos controlan proyectos. La participación de DEPARTAMENTO en la relación es parcial. d 1 d 2 d 3 d 4 d 5 d 6 d 7 d 8 p 1 p 2 p 3 DEPARTAMENTO CONTROLA PROYECTO p 4 p 5 p 6 p 7 p 8
  • 20.
    Restricciones estructurales Ejemplode diagrama de relación M:N Nótese como todos los alumnos toman al menos una materia y una materia es cursada al menos por un alumno. La participación de ambas entidades en la relación es total a 1 a 2 a 3 a 4 m 1 m 2 m 3 m 4 m 5 ALUMNO TOMA MATERIA Estos diagramas nos pueden auxiliar a determinar las restricciones estructurales de un tipo de relaciones
  • 21.
    Atributos de lostipos de relaciones Los tipos de relaciones también pueden tener atributos EMPLEADO DEPARTAMENTO DIRIGE 1 1 Por ejemplo: se puede incluir el atributo “FechaIni” en el tipo de relaciones DIRIGE, para indicar la fecha en que un gerente comenzó a dirigir un departamento FechaIni
  • 22.
    Atributos de lostipos de relaciones Los atributos de los tipos de relaciones 1:1 se pueden trasladar a cualquiera de los tipos de entidades participantes. EMPLEADO DEPARTAMENTO DIRIGE 1 1 FechaIni En el caso de los tipos de relaciones 1:N un atributo solo se puede trasladar al tipo de entidades que está del lado N de la relación. EMPLEADO DEPARTAMENTO PERTENECE_A N 1 FechaIni FechaIni FechaIni En una relación N:M los atributos de la relación no se pueden trasladar
  • 23.
    Tipos de entidadesdébiles No tienen atributos clave propios. Se identifican por su relación con otras entidades. A ese otro tipo de entidad se le conoce como propietario identificador Al tipo de relaciones que asocia un tipo de entidades débiles se le conoce como relación identificadora (o vínculo identificador) Los tipos de entidades débiles siempre tienen una restricción de participación total , aunque no toda existencia de dependencia resulta en un tipo de entidades débiles
  • 24.
    Tipos de entidadesdébiles Tanto el tipo de entidades débiles como su relación identificadora se representan con líneas dobles EMPLEADO DEPENDIENTE DEPENDIENTE_DE 1 N curp nombre salario nombre sexo Clave Parcial o atributo discriminador fechaN Las entidades débiles siempre tienen una restricción de participación total con la relación identificadora Propietario identificador Relación identificadora
  • 25.
    Tipos de ClavesSuperclave . Es un conjunto de uno o más atributos que tomados colectivamente, permiten identificar de manera única a una entidad. Clave Candidata . Una superclave mínima, tal que no contenga otras superclaves. Clave Primaria . Clave candidata que es elegida para identificar una entidad, buscando que los atributos que la conforman nunca cambien. Clave Foránea . Se dice de la clave primaria de la cual dependen otras entidades (como las entidades débiles). Clave Parcial . En el caso de una entidad débil, es un atributo que se utiliza como discriminador y que junto con la clave foránea forma la clave principal.
  • 26.
    Superclaves VEHICULO matriculanum_eco serie_motor marca modelo chofer Técnicamente, el conjunto de todos los atributos forman una superclave, porque le dan unicidad a la entidad Pero igual cumplen los siguientes subconjuntos: num_eco, matricula; maticula, serie_motor; serie_motor, marca; Etc,etc.
  • 27.
    Claves Candidatas VEHICULOmatricula num_eco serie_motor marca modelo chofer En la entidad VEHICULO se pueden encontrar dos superclaves mínimas (no se pueden dividir en otras superclaves): matricula y serie_motor Como ambas describen unívocamente a la entidad se les denomina claves candidatas
  • 28.
    Claves Primarias (oprincipales) De las claves candidatas: matricula y serie_motor Se elige a la que será la clave principal. Como es más probable que el atributo “matricula” cambie con el tiempo (como en un robo de placas), se elige el atributo serie_motor como clave primaria puesto que el número de serie del motor por lo general no cambia VEHICULO matricula num_eco serie_motor marca modelo chofer
  • 29.
    Claves Foráneas VEHICULOmatricula num_eco serie_motor marca modelo chofer El atributo “ chofer ” se puede considerar como clave foránea , si en lugar de escribir nombres de personas como valores, se indican códigos que hacen referencia al nombre del chofer en otra entidad. De esta manera se evita la redundancia , pues en vez de escribir el mismo nombre varias veces (en el hipotético caso de que tuviese resguardado más de un vehículo) solo se repetiría el código del mismo
  • 30.
    Claves Parciales Elatributo “ nombre ” de la entidad DEPENDIENTE no describe de manera unívoca a la entidad puesto que puede repetirse (puede haber 2 personas con el mismo nombre). En este caso “nombre” hace el papel de clave parcial o atributo discriminador . La clave principal de DEPENDIENTE estará formada por su atributo “nombre” (clave parcial) y el atributo “nss” de su entidad propietaria (clave foránea). EMPLEADO nss DEPENDIENTE nombre sexo fechaN parentesco DEPENDIENTE_DE 1 N
  • 31.
    Manejo de Relacionesternarias Algunas herramientas que se emplean en el diseño de BD solo permiten Relaciones Binarias, por lo que es difícil implementar algunas relaciones ternarias , como el siguiente ejemplo: PROVEEDOR PROYECTO SUMINISTRAR num_prov num_proy COMPONENTE cantidad num_comp
  • 32.
    Manejo de Relacionesternarias Ejemplo de diagrama de una Relación Ternaria s 1 s 2 PROVEEDOR SUMINISTRAR c 1 c 2 c 3 COMPONENTE PROYECTO p 1 p 2 p 3 Nótese como por cada ejemplar de relación “SUMINISTRAR” existen 3 participaciones Ejemplo: El proveedor s1 suministra los componentes c1 y c2 al proyecto p1 y el componente c1 al proyecto p2
  • 33.
    Manejo de Relacionesternarias En estos casos las Relaciones Ternarias se pueden representar como Tipos de Entidades Débiles , sin clave parcial y con 3 Relaciones Identificadoras. PROVEEDOR PROYECTO VS num_prov num_proy COMPONENTE cantidad num_comp SUMINISTRO SC SCP
  • 34.
    Un primer ejemploDiagrama ER para la base de datos COMPAÑÍA Tomado de: Sistemas de Bases de Datos Conceptos Fundamentales ELMASRI/NAVATHE EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A DIRIGE CONTROLA TRABAJA_EN DEPENDIENTE_DE N M 1 N 1 1 1 N 1 N 1 N fechaIni horas
  • 35.
    Base de datosCOMPAÑÍA La compañía está organizada en departamentos . Cada departamento tiene un nombre único, un número único y un cierto empleado que lo dirige , y nos interesa la fecha en que dicho empleado comenzó a dirigir el departamento. Un departamento puede estar distribuido en varios lugares . Cada departamento controla un cierto número de proyectos , cada uno de los cuales tiene un nombre y un número únicos, y se efectúa en un solo lugar . Almacenaremos el nombre , número de seguro social, dirección , salario , sexo y fecha de nacimiento de cada empleado . Todo empleado está asignado a un departamento, pero puede trabajar en varios proyectos, que no necesariamente estarán controlados por el mismo departamento. Nos interesa el número de horas por semana que un empleado trabaja en cada proyecto, y también quién es el supervisor de cada empleado. Queremos mantenernos al tanto de los dependientes de cada empleado con el fin de administrar los términos de sus seguros. Almacenaremos el nombre , sexo y fecha de nacimiento de cada dependiente, y su parentesco con el empleado. Azul - Entidades Rojo - Relaciones Verde - Atributos Tomado de: Sistemas de Bases de Datos Conceptos Fundamentales ELMASRI/NAVATHE
  • 36.
    Paso 1. IdentificarEntidades EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco Se identifican cada una de las entidades participantes, así como sus respectivos atributos
  • 37.
    Paso 2. Resolverrelaciones EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco SUPERVISIÓN es una relación recursiva, puesto que el tipo de entidades EMPLEADO participa con dos papeles (o roles)
  • 38.
    Paso 2. Resolverrelaciones EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A
  • 39.
    Paso 2. Resolverrelaciones EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A DIRIGE Nótese como un tipo de entidades puede participar en más de una relación
  • 40.
    Paso 2. Resolverrelaciones EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A DIRIGE CONTROLA
  • 41.
    Paso 2. Resolverrelaciones EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A DIRIGE CONTROLA TRABAJA_EN
  • 42.
    Paso 2. Resolverrelaciones EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A DIRIGE CONTROLA TRABAJA_EN DEPENDIENTE_DE
  • 43.
    Paso 3. Determinarcardinalidades EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A DIRIGE CONTROLA TRABAJA_EN DEPENDIENTE_DE N M 1 N 1 1 1 N 1 N 1 N
  • 44.
    Paso 4. Identificarparticipaciones EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A DIRIGE CONTROLA TRABAJA_EN DEPENDIENTE_DE N M 1 N 1 1 1 N 1 N 1 N Una participación total indica que todo ejemplar de entidad participa al menos una vez en la relación
  • 45.
    Paso 5. IdentificarEntidades débiles EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A DIRIGE CONTROLA TRABAJA_EN DEPENDIENTE_DE N M 1 N 1 1 1 N 1 N 1 N El tipo de entidades DEPENDIENTE no tiene un atributo clave propio. Depende del atributo clave del tipo de entidades EMPLEADO
  • 46.
    Paso 6. IdentificarAtributos Clave EMPLEADO Nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A DIRIGE CONTROLA TRABAJA_EN DEPENDIENTE_DE N M 1 N 1 1 1 N 1 N 1 N Un atributo clave identifica de manera unívoca a un tipo de entidades. En DEPENDIENTE la clave es la combinación de su atributo nombre y el atributo Nss del tipo de entidades EMPLEADO
  • 47.
    Paso 7. IdentificarAtributos de Relaciones EMPLEADO nss nombre nPila paterno materno sexo direc sueldo fechaN SUPERVISIÓN supervisor supervisado DEPARTAMENTO número nombre lugares PROYECTO número nombre lugar num_empleados DEPENDIENTE nombre sexo fechaN parentesco PERTENECE_A DIRIGE CONTROLA TRABAJA_EN DEPENDIENTE_DE N M 1 N 1 1 1 N 1 N 1 N horas fechaIni Es necesario especificar la fecha en que un EMPLEADO comienza a dirigir un DEPARTAMENTO y las horas que un EMPLEADO trabaja en un PROYECTO
  • 48.
    El minimundo BIBLIOTECAUna biblioteca escolar resguarda ejemplares de libros para prestamos a sus usuarios. Cada libro puede estar escrito por más de un autor. Cualquier autor puede haber escrito varios libros. Si actualmente no hay en existencia ejemplares requeridos de un libro, un usuario puede hacer una reservación del título para cuando esté disponible. Si los ejemplares no se regresan a tiempo aplica una multa que se impone al usuario.
  • 49.
    Desarrollando el DiagramaE-R Paso 1 Identificar Entidades Paso 2 Resolver Relaciones (vínculos) Paso 3 Determinar Cardinalidades Paso 4 Identificar Participaciones Paso 5 Identificar Entidades débiles Paso 6 Identificar Atributos CLAVE
  • 50.
    1. Identificar identidadesUna biblioteca escolar resguarda ejemplares de libros para prestamos a sus usuarios . Cada libro puede estar escrito por más de un autor . Cualquier autor puede haber escrito varios libros. Si actualmente no hay en existencia ejemplares requeridos de un libro, un usuario puede hacer una reservación del título para cuando esté disponible. Si los ejemplares no se regresan a tiempo aplica una multa que se impone al usuario.
  • 51.
    1. Identificar identidadesLIBRO EJEMPLAR AUTOR USUARIO MULTA
  • 52.
    2. Resolver relaciones(vínculos) Una biblioteca escolar resguarda ejemplares de libros para prestamos a sus usuarios . Cada libro puede estar escrito por más de un autor . Cualquier autor puede haber escrito varios libros. Si actualmente no hay en existencia ejemplares requeridos de un libro, un usuario puede hacer una reservación del título para cuando esté disponible. Si los ejemplares no se regresan a tiempo aplica una multa que se impone al usuario.
  • 53.
    2. Resolver relaciones(vínculos) LIBRO ESCRIBE EJEMPLAR AUTOR USUARIO PRESTAMO RESERVA MULTA TIENE SE_APLICA IMPUESTA_A Hay que considerar que las relaciones RESERVA Y PRESTAMO son independientes, aún cuando el tipo de entidades USUARIO participa en ambas.
  • 54.
    3. Determinar CardinalidadesLIBRO ESCRIBE EJEMPLAR AUTOR USUARIO PRESTAMO RESERVA MULTA TIENE SE_APLICA IMPUESTA_A N M N M M 1 N M 1 1 M M Posibles valores: 1:1 uno a uno 1:N uno a muchos N:M muchos a muchos
  • 55.
    4. Identificar ParticipacionesLIBRO ESCRIBE EJEMPLAR AUTOR USUARIO PRESTAMO RESERVA MULTA TIENE SE_APLICA IMPUESTA_A N M N M M 1 N M 1 1 M M Una participación total indica que todo ejemplar de entidad participa al menos una vez en la relación
  • 56.
    5. Identificar Entidadesdébiles LIBRO ESCRIBE EJEMPLAR AUTOR USUARIO PRESTAMO RESERVA MULTA TIENE SE_APLICA IMPUESTA_A N M N M M 1 N M 1 1 M M El tipo de entidades EJEMPLAR no tiene un atributo clave propio. Depende del atributo clave del tipo de entidades libro Relación identificadora Entidad propietaria Entidad débil
  • 57.
    6. Identificar AtributosClave LIBRO ESCRIBE EJEMPLAR AUTOR USUARIO PRESTAMO RESERVA MULTA TIENE SE_APLICA IMPUESTA_A N M N M M 1 N M 1 1 M M id_autor isbn id_usuario num num_ejem El atributo clave de EJEMPLAR se compone de su atributo “num_ejem” y el atributo clave isbn de LIBRO
  • 58.
    Notación alternativa Otraforma de representar las restricciones estructurales ( razón de cardinalidad y restricción de participación ) es mediante la notación ( min , max ). Significa que cada ejemplar de entidad debe participar en por lo menos min ejemplares de relaciones y cuando más en max ejemplares de relaciones. min = 0 implica participación parcial. min >= 1 implica participación total.
  • 59.
    Notación alternativa LIBROESCRIBE EJEMPLAR AUTOR USUARIO PRESTAMO RESERVA TIENE ( 1, N) ( 1, N) ( 1, N) ( 1, 1) ( 0, 1) ( 0, N) min = 0 participación parcial. min >= 1 participación total. ( 0, N) ( 0, N) Con el ejemplo anterior: La razón de cardinalidad se determina tomando los máximos de forma invertida. ejem: (1, N ),(1, 1 ) = 1:N
  • 60.
    Reducción de unesquema ER a tablas Paso 1. Por cada tipo de entidades fuerte , crear una tabla con sus atributos simples. EMPLEADO nss nombre sexo direc sueldo fechaN Clave principal EMPLEADO nss nombre direc fechaN sexo sueldo
  • 61.
    Reducción de unesquema ER a tablas Paso 2. Para el caso de las entidades débiles , se genera una tabla con sus atributos y se le añade una columna con la clave principal de la entidad fuerte. EMPLEADO nss Clave foránea DEPENDIENTE nombre sexo fechaN parentesco DEPENDIENTE_DE Clave parcial DEPENDIENTE La clave principal estará formada por la combinación de la clave foránea y la clave parcial (o discriminador) 1 N nss nombre sexo fechaN parentesco
  • 62.
    Reducción de unesquema ER a tablas Paso 3. Para una relación de tipo 1:1 con participación total en ambas entidades, solo es necesario una tabla con los atributos de las entidades que participan en la relación. Nombre de la tabla Clave principal CHOFER Como clave principal (o clave primaria) se puede elegir cualquiera de las claves de las entidades. Igual aplica para el nombre de la tabla. nss nombre licencia num_econ modelo marca CHOFER nss nombre VEHICULO num_econ modelo TIENE_ASIGNADO 1 1 marca licencia
  • 63.
    Paso 4. Para una relación de tipo 1:1 con participación total en una sola entidad , son necesarias dos tablas con los atributos de las entidades que participan en la relación. En la tabla que corresponde a la entidad con participación total se le añade una columna con la clave principal de la otra entidad. Clave Foránea Clave principal EMPLEADO Cada entidad mantiene su clave principal. Además, la clave principal de la entidad con participación parcial será la clave foránea de la entidad con participación total DEPARTAMENTO Clave principal Reducción de un esquema ER a tablas nss nombre edad num_dep nombre nss EMPLEADO nss nombre DEPARTAMENTO num_dep nombre DIRIGE 1 1 edad
  • 64.
    Reducción de unesquema ER a tablas Paso 5. Si la relación es 1:1 y la participación es parcial en ambas entidades , se genera una tabla por cada entidad, luego se escoge una de las entidades y se le añade la clave principal de la otra entidad. PERSONA En el ejemplo se ha decidido elegir la entidad ANIMAL para que tenga como atributo adicional la clave principal de la otra entidad. ANIMAL nss nombre edad registro raza nss PERSONA nss nombre ANIMAL registro raza POSEE 1 1 edad
  • 65.
    Reducción de unesquema ER a tablas Paso 6. Para una relación 1:N con participación total del lado de la entidad N , se necesita una tabla por cada entidad. A la tabla que representa la entidad N se le añade una columna con la clave principal de la otra entidad. Clave Foránea Clave principal EMPLEADO DEPARTAMENTO Clave principal nss nombre edad num_dep num_dep nombre EMPLEADO nss nombre DEPARTAMENTO num_dep nombre PERTENECE N 1 edad
  • 66.
    Reducción de unesquema ER a tablas Paso 7. Para una relación 1:N con participación parcial del lado de la entidad N , se necesitan tres tablas: una para representar cada entidad y otra para representar la relación. PERSONA PROYECTO PERSONA_PROYECTO En una relación N:1 los atributos de la relación (si los hubiera) se pueden trasladar a la entidad del lado N nss nombre edad horas nss numero numero lugar PERSONA nss nombre PROYECTO numero lugar TRABAJA_EN N 1 edad horas
  • 67.
    Reducción de unesquema ER a tablas Paso 8. Para una relación N:M se necesitan tres tablas : una para representar cada entidad y otra para representar la relación más los atributos propios de la misma. PERSONA PROYECTO PERSONA_PROYECTO En una relación N:M los atributos de la relación no se pueden trasladar a las entidades participantes nss nombre edad nss numero horas numero lugar PERSONA nss nombre PROYECTO numero lugar TRABAJA_EN N M edad horas
  • 68.
    Reducción de unesquema ER a tablas Paso 9. Para los atributos multivaluados se generan tablas separadas , con la clave principal del tipo de entidades o relaciones al que pertenecen. EMPLEADO TELEFONO EMPLEADO nss nombre direccion telefono nss nombre direccion nss num_tel
  • 69.
    Reducción de unesquema ER a tablas Paso 10. Para los atributos compuestos hay dos opciones : o se genera una tabla separada o bien el atributo compuesto se descompone en los atributos simples que lo componen. EMPLEADO NOMBRE EMPLEADO nss nombre nPila paterno materno sueldo direccion EMPLEADO EMPLEADO nss nombre nPila paterno materno sueldo direccion O bien: nss sueldo direccion nss nPila paterno materno nss nPila paterno materno sueldo direccion
  • 70.
    Reducción de unesquema ER a tablas Paso 11. Para las relaciones recursivas se define un atributo adicional del mismo tipo (dominio) que la clave principal. Si la relación es de 1:1 o 1:N se añade el atributo a la misma tabla. EMPLEADO EMPLEADO nss nombre SUPERVISA N 1 EMPLEADO nss nombre CASADO_CON 1 1 EMPLEADO Los dos atributos (con el mismo dominio) representan diferentes papeles o roles. nss nombre supervisor nss nombre conyuge
  • 71.
    Reducción de unesquema ER a tablas Paso 11 (cont). Si la relación es N:M se genera aparte otra tabla con dos atributos: la clave principal del tipo de entidades más el atributo antes definido. CURSO PREREQUISITO CURSO clave nombre REQUIERE M N Los dos atributos (con el mismo dominio) representan diferentes papeles o roles. c 1 c 2 c 3 c 4 c 5 c 6 c 7 c 8 CURSO REQUIERE Se muestran 5 ejemplares de relaciones: c1 requiere de c4, c2 requiere de c7, c3 requiere también de c7, c4 requiere de c6 y de c8. c5 no tiene prerequisitos, ni es prerequisito de ningún curso. c7 y c8 no tienen prerequisitos, aunque son prerequisitos de otros cursos clave pre_req clave nombre
  • 72.
    Reducción de unesquema ER a tablas Paso 12. Las Relaciones Ternarias se deben representar primero como Tipos de Entidades Débiles , sin clave parcial y con 3 Relaciones Identificadoras PROVEEDOR PROYECTO VS num_prov num_proy COMPONENTE cantidad num_comp SUMINISTRO SC SCP PROVEEDOR PROYECTO SUMINISTRAR num_prov num_proy COMPONENTE cantidad num_comp
  • 73.
    Reducción de unesquema ER a tablas Paso 12 (cont). En seguida se generan: Una tabla por cada una de las entidades fuertes (o propietarias) con sus atributos simples Una tabla por la entidad débil obtenida con sus atributos simples y los atributos clave de las entidades fuertes. SUMINISTRO num_prov num_comp num_proy cantidad PROVEEDOR PROYECTO VS num_prov num_proy COMPONENTE cantidad num_comp SUMINISTRO SC SCP
  • 74.
    Reducción de unesquema ER a tablas Ejemplo. Diagrama ER de una base de datos BANCO. BANCO codigo nombre direccion PRESTAMO CUENTA SUCURSAL CLIENTE CONTROLA OTORGA TIENE RECIBE TIENE nss nombre direccion num_cuenta saldo tipo importe num_prest tipo num_suc direccion 1 1 N N M N M N 1 N Tomado de: Sistemas de Bases de Datos Conceptos Fundamentales ELMASRI/NAVATHE
  • 75.
    Reducción de unesquema ER a tablas BANCO cod_banco nombre direccion Según paso 1. Por cada tipo de entidades fuerte , crear una tabla con sus atributos simples. BANCO Según paso 2. Para el caso de las entidades débiles , se genera una tabla con sus atributos y se le añade una columna con la clave principal de la entidad fuerte. SUCURSAL BANCO cod_banco nombre direccion SUCURSAL TIENE num_suc direccion 1 N cod_banco nombre direccion cod_banco num_suc direccion
  • 76.
    Reducción de unesquema ER a tablas Según paso 6. Para una relación 1:N con participación total del lado de la entidad N , se necesita una tabla por cada entidad. A la tabla que representa la entidad N se le añade una columna con la clave principal de la otra entidad. SUCURSAL PRESTAMO SUCURSAL OTORGA importe num_prest tipo num_suc direccion 1 N PRESTAMO Que ya se había obtenido en la lámina anterior cod_banco num_suc direccion num_suc num_prest tipo importe
  • 77.
    Reducción de unesquema ER a tablas Según paso 6. Para una relación 1:N con participación total del lado de la entidad N , se necesita una tabla por cada entidad. A la tabla que representa la entidad N se le añade una columna con la clave principal de la otra entidad. SUCURSAL CUENTA Que ya se había obtenido anteriormente CUENTA SUCURSAL CONTROLA num_cuenta saldo tipo num_suc direccion 1 N cod_banco num_suc direccion num_suc num_cuenta tipo saldo
  • 78.
    Reducción de unesquema ER a tablas Según paso 8. Para una relación N:M se necesitan tres tablas : una para representar cada entidad y otra para representar la relación más los atributos propios de la misma. CLIENTE CLIENTE-PRESTAMO PRESTAMO CLIENTE RECIBE nss nombre direccion importe num_prest tipo M N La tabla PRESTAMO se obtuvo anteriormente nss nombre direccion nss num_prest
  • 79.
    Reducción de unesquema ER a tablas Según paso 8. Para una relación N:M se necesitan tres tablas : una para representar cada entidad y otra para representar la relación más los atributos propios de la misma. CUENTA-CLIENTE Las tablas CLIENTE y CUENTA se obtuvieron anteriormente CUENTA CLIENTE TIENE nss nombre direccion num_cuenta saldo tipo M N nss num_cuenta
  • 80.
    Dudas y Preguntas:Correo electrónico: [email_address]