Capitulo 3: Diseño de base de datos y el modelo Entidad-Relación Capitulo 3: Modelo Entidad-Relación Modelado Restricciones Diagramas entidad-relación Aspectos del diseño entidad-relación Conjunto de entidades débiles Características del modelo entidad-relación extendido Diseño de una base de datos para un banco Reducción a esquemas relacionales Otros aspectos del diseño de base de datos UML Visión general del proceso de diseño Creación de Aplicaciones de Bases de Datos Diseño del esquema de bases de datos Diseño de los programas que tienen acceso a los datos y los actualizan Diseño del esquema de seguridad para controlar el acceso a los datos. Las necesidades de los usuarios desempeñan un papel central en el proceso de diseño. En el presente apartado nos centraremos en el diseño del esquema de la base de datos. Fases del proceso de diseño Fase Inicial: Especificación de requisitos de usuario Fase de diseño conceptual: Diagrama Entidad-Relación y Especificación de requisitos funcionales Fase de diseño lógico Fase de diseño físico Alternativas de diseño Redundancia Incompletitud El modelo entidad-relación Facilita el diseño de bases de datos Permite la especificación de un esquema de empresa que representa la estructura lógica global de la base de datos Es un modelo de datos semántico – Representación del significado de los datos Emplea tres conceptos básicos: Los conjuntos de entidades, los conjuntos de relaciones y los atributos. Conjunto de entidades Una entidad es un objeto que existe y es claramente diferenciable de otros objetos. Ejemplo: personas, lugares, productos, compañías, eventos, plantas y similares Concretas o abstractas Las entidades tienen atributos Ejemplo: las personas tienen nombres y dirección Un conjunto de entidades son varias entidades del mismo tipo que comparten las mismas propiedades o características (Atributos). Ejemplo: conjunto de todas las personas, compañías, arboles, días festivos Los conjuntos de entidades no son necesariamente disjuntos. Cada entidad se representa mediante un conjunto de atributos (Propiedades descriptivas). Conjunto de entidades cliente y préstamo Id_cliente nombre_ calle_ cliente cliente ciudad_ cliente numero_ cuenta importe Conjunto de relaciones Una relación es una asociación de dos o varias entidades Ejemplo: se puede definir una relación que asocie al cliente López con él préstamo P-15. Esta relación especifica que López es un cliente con el préstamo número P-15. Un conjunto de relaciones es un conjunto de relaciones del mismo tipo. Formalmente es una relación matemática con n 2 entidades que pertenecen a un conjuntos de entidades (posiblemente no distintos) {(e1, e2, … en) | e1 E1, e2 E2, …, en En} donde (e1, e2, …, en) es una relación Ejemplo: (López, P-15) impositor Conjunto de relaciones prestatario Conjunto de relaciones (Cont.) Una relación puede también tener atributos denominados atributo descriptivos. Grado del conjunto de relaciones El numero de conjunto de entidades que participan en un conjunto de relaciones se denomina grado de ese conjunto de relaciones. Las relaciones donde participan dos conjuntos de entidades se denominan binarias (o de grado 2). La mayoría del conjunto de relaciones son binarias. Pueden existir conjunto de relaciones n-arias. Ejemplo: considérese los conjuntos de entidades empleado, sucursal y trabajo. Un ejemplo de relación ternaria con este conjuntos de entidades seria que el empleado Santos trabaja de Director en la Sucursal de Navacerrada No son muy frecuentes las relaciones mas de dos conjuntos de entidades. Si es el caso debemos expresarlas en conjunto de relaciones binarias. Atributos Una entidad es representada por un conjunto de atributos, que son propiedades poseídas por todos los miembros de un conjunto de entidades. Ejemplo: cliente= (id_cliente, nombre_cliente, calle_cliente, ciudad_cliente) préstamo = (numero_prestamo, importe ) Dominio – el conjunto de los valores permitidos para un cierto atributo. Tipos de atributos: Atributos simples y compuestos. Atributos monovalorados y multivalorados Atributos Derivados Puede ser calculado por otros atributos Restricciones – correspondencia de cardinalidad Expresa el numero de entidades a las que otra entidad se puede asociar mediante un conjunto de relaciones. Resulta muy útil para describir conjuntos de relaciones binarias. Para conjuntos de relaciones binarias la correspondencia de cardinalidad pueden ser las siguientes: Uno a uno Uno a varios Varios a uno Varios a varios Correspondencia de cardinalidad Uno a uno Uno a varios Nota: algunos elementos en A y B pueden no tener ninguna correspondencia con elementos del otro conjunto. Correspondencia de cardinalidad Varios a uno Varios a Varios Nota: algunos elementos en A y B pueden no tener ninguna correspondencia con elementos del otro conjunto. Claves Una superclave es un conjunto de uno o mas atributos que, tomados conjuntamente, permiten identificar de forma univoca una entidad del conjunto de entidades. Una clave candidata de un conjunto de entidades es una superclave mínima Id_Cliente es una clave canidata para cliente Numero_cuenta es clave candidata para cuenta Sin embargo, pueden existir varias claves candidatas, una de las claves candidatas es seleccionada como clave primaria. Claves para conjunto de relaciones La combinación de las claves primarias del conjunto de entidades participantes forman una superclave del conjunto de relaciones (id_cliente, numero_cuenta) es una superclave para impositor Podemos considerar la correspondencia de cardinalidad del conjunto de relaciones para determinar cuales serian las claves candidatas Se necesita considerar la semántica del conjunto de relaciones en la selección de la clave primaria en el caso que dispongamos de mas de una clave candidata. Diagramas Entidad-Relación Los rectángulos representan conjunto de entidades. Los rombos representan conjunto de relaciones. Las líneas enlazan atributos con conjunto de entidades y conjunto de entidades con conjunto de relaciones. Las elipses representan los atributos Elipses dobles representan atributos multivalorados Elipses discontinuas denotan atributos derivados. Un atributo subrayado indica que es la clave primaria Diagrama E-R con atributos compuestos, multivalorados, y derivados Conjunto de relaciones con atributos Roles Las etiquetas “director” y “trabajador” son llamadas roles; especifica como las entidades empleado interactúan vía el conjunto de relaciones “trabaja_para”. Los roles se indican en un diagrama E-R por etiquetas en las líneas que conectan los rombos a los rectángulos. Los roles son opcionales, y son usados para mejorar la claridad de la semántica de la relación. Restricciones de cardinalidad Expresamos restricciones de cardinalidad con una línea dirigida (), que significa “uno”, o una línea no dirigida (—), que significa “varios” entre el conjunto de relaciones y el conjunto de entidades. Relación uno a uno: Un cliente esta asociado con al menos un préstamo vía la relación prestatario. Un préstamo esta asociado con al menos un cliente vía prestatario. Relación de uno a muchos En la relación uno-a-muchos un préstamo es asociado con al menos un cliente vía prestatario, un cliente es asociado con varios (incluyendo 0) prestamos vía prestatario. Relación de muchos a uno En una relación muchos-a-uno un préstamo es asociado con varios (incluyendo 0) clientes vía prestatario, un cliente esta asociado con al menos un préstamo vía prestatarios Relación de muchos a muchos Un cliente es asociado con varios (posiblemente 0) prestamos vía prestatario. Un préstamo esta asociado con varios (posiblemente 0) clientes vía prestatario Participación de un Conjunto de Entidades en un Conjunto de Relaciones Participación Total (indicado por doble línea): Cada entidad en el conjunto de entidades participan en al menos una relación en el conjunto de relaciones. Ejemplo la participación de préstamo en prestatario es total. Cada préstamo debe tener un cliente asociado a esté, vía prestatario. Participación Parcial (indicado por una línea simple): Algunas entidades pueden no participar en algunas relaciones del conjunto de relaciones. Ejemplo la participación de cliente en prestatario es parcial. Notaciones alternativas para limites de Cardinalidad Los limites de Cardinalidad también expresan restricciones de participación Diagrama E-R con una relación ternaria Restricciones de cardinalidad en relaciones ternarias La forma de hallar cardinalidades en las relaciones ternarias es fijar una combinación de elementos en dos de los extremos de la relación y obtener lógicamente las cardinalidades mínima y máxima en el otro extremo libre. Ejemplo: el título de un libro, un autor y una editorial se relacionan las tres mediante la acción de publicar el libro (en un año concreto, con un ISBN y con un determinado número de páginas en la edición). Para determinar las cardinalidades hay que preguntarse por: Cuántos autores puede tener un determinado libro publicado en una determinada editorial(cardinalidad en el extremo de la entidad autor). Cuántos libros puede tener un determinado autor, publicados en una determinada editorial (cardinalidad en el extremo de la entidad libro). En cuántas editoriales puede un determinado autor publicar un mismo libro (cardinalidad en el extremo de la entidad editorial). Cuestiones de diseño Uso de un conjunto de entidades vs. atributos Seleccione principalmente los que dependen de la estructura de la empresa que esta siendo modelada y con la semántica asociada con el atributo en cuestión. Uso de un conjunto de entidades vs. conjunto de relaciones Una posible guía es diseñar un conjunto de relaciones que describan una acción que ocurre entre dos entidades. Conjunto de relaciones Binarias versus n-arias Siempre es posible reemplazar un conjunto de relaciones no binarias (n-aria, parar n > 2) por un numero de diferentes conjuntos de relaciones binarias, un conjunto de relaciones narias muestra mas claramente que varias entidades participan en una simple relación. Indicar atributos a las relaciones Relaciones Binarias Vs. No-Binarias Algunas relaciones que parecen ser no binarias se pueden representar mejor usando relaciones binarias. Ejemplo. Una relación ternaria padre que relaciona un hijo con su padre y su madre. Sin embargo se podría representar por dos relaciones padre y madre. Usando dos relaciones binarias permitirán información parcial (ejemplo solo se conocerá la madre) Pero hay algunas relaciones que son naturalmente no binarias Conversión de relaciones de forma Nobinaria a binaria En general, cualquier relación no-binaria puede ser representado usando relaciones binarias creando un conjunto de entidades artificiales. Remplazar R entre el conjunto de entidades A, B y C por un conjunto de entidades E, y tres conjuntos de relaciones: 1. RA, relacionando E y A 2.RB, relacionando E y B 3. RC, relacionando E y C Crear un atributo identificador especial para E Adicionar algunos atributos de R a E Para cada relación (ai , bi , ci) en R, crear 1. una nueva entidad ei en el conjunto de entidades E 2. agregar (ei , ai ) a RA RC 3. agregar (ei , bi ) a RB 4. agregar (ei , ci ) a Conversión de relaciones no-binarias (Cont.) También es necesario trasladar restricciones Trasladar todas las restricciones, puede no ser posible Puede haber instancias en el esquema trasladado que no pueden corresponder a alguna instancia de R Ejercicio: agregar restricciones a las relaciones RA, RB y RC para asegurar que una entidad nuevamente creada corresponda exactamente a una entidad en cada conjunto de entidades A, B y C. Podría no haber una forma de traducir restricciones en la relación ternaria en restricciones sobre relaciones binarias. Por ejemplo, considérese una restricción que dice que R es varios a uno de A, B a C; es decir, cada par de entidades de A y B se asocia con a lo sumo una entidad C. Esta restricción no se puede expresar usando restricciones de cardinalidad sobre los conjuntos de relaciones RA, RB y RC. Ubicación de los atributos de las relaciones La relación de cardinalidad de una relación puede afectar a la ubicación de sus atributos. Por tanto los atributos de los conjuntos de relaciones uno a uno o uno a varios pueden estar asociados con uno de los conjunto de entidades participantes. Los atributos de un conjunto de relaciones uno a varios solo se pueden recolocar en el conjunto de entidades de la parte “varios” de la relación. Para los conjuntos de relaciones uno a uno, los atributos de la relación se pueden asociar con cualquiera de las entidades participantes. Para los conjunto de relaciones varios a varios, los atributos de la relación solo pueden pertenecer al conjunto de relaciones. Conjunto de entidades débiles Puede que un conjunto de entidades no tenga suficientes atributos para formar una clave primaria. Ese conjunto de entidades se denomina conjunto de entidades débiles. Para que un conjunto de entidades débiles tenga sentido, debe estar asociado con otro conjunto de entidades, denominado conjunto de entidades identificadoras o propietarias (entidades fuertes). La relación identificadora es varios a uno del conjunto de entidades débiles al conjunto de entidades identificadoras y la participación del conjunto de entidades débiles en la relación es total. La relación identificadora se indica con un rombo con líneas dobles y un rectángulo con líneas dobles indican a los conjunto de entidades débiles. El discriminante (o clave parcial) de un conjunto de entidades débiles es un conjunto de atributos que permiten hacer la distinción entre todas las entidades de un conjunto de entidades débiles. La clave primaria de un conjunto de entidades débiles se forma con la clave primaria del conjunto de entidades identificadoras y el discriminante del conjunto de entidades débiles. Conjunto de entidades débiles (Cont.) Representaremos a un conjunto de entidades débiles con rectángulos dobles. Subrayaremos el discriminante de un conjunto de entidades débiles con una línea punteada. Numero_pago – discriminante del conjunto de entidades pago La clave primaria para pago – (numero_prestamo, numero_pago) Ejemplos de entidades débiles Podemos modelar las ofertas de asignaturas en una universidad. La misma asignatura se puede ofrecer en diferentes cursos y, dentro de cada curso, puede haber varios grupos para la misma asignatura. Por tanto, se puede crear el conjunto de entidades débiles oferta_asignatura, que dependen existencialmente de asignatura; las diferentes ofertas de la misma asignatura se identifican mediante curso y numero_grupo, que forman un discriminante pero no una clave primaria. Características del modelo E-R extendido Especialización Generalización Herencia de atributos Restricciones a las generalizaciones Agregación Características del modelo E-R extendido: Especialización Los conjuntos de entidades pueden incluir subgrupos de entidades que se diferencian de alguna forma de las demás entidades del conjunto. Un subconjunto de entidades de un conjunto de entidades puede tener atributos que no sean compartidos por todas las entidades del conjunto de entidades. El proceso de establecimiento de subgrupos dentro del conjunto de entidades se denomina especialización. Ejemplo cliente y empleado es una especialización de persona. O cuenta corriente y cuenta de ahorro son una especialización de cuenta. La especialización se representa mediante un componente triangular etiquetado con ES. Cliente “es” una persona. La relación ES también se puede denominar relación superclase-subclase. Ejemplo de especialización Características del modelo E-R extendido: Generalización El refinamiento a partir del conjunto de entidades inicial en sucesivos niveles de subgrupos de entidades representa un proceso de diseño descendente. El proceso de diseño también puede proceder de forma ascendente, en la que varios conjunto de entidades se sintetizan en conjunto de entidades de nivel superior basado en características comunes. Existen analogías entre conjunto de entidades en el sentido de que tienen atributos que, conceptualmente, son iguales. Esta similitud se puede expresar mediante la generalización que es una relación de contención que existe entre los conjuntos de entidades. En términos de diagramas E-R no se distinguen entre generalización o especialización. Especialización y generalización (Cont.) La generalización es una inversión simple de la especialización. La especialización parte de un único conjunto de entidades; destaca las diferencias entre las entidades del conjunto mediante la creación de diferentes conjuntos de entidades de nivel inferior. La generalización parte del reconocimiento de que varios conjunto de entidades comparten algunas características comunes. Con base en esas similitudes se sintetizan los conjuntos de entidades en un solo conjunto de nivel superior. Herencia de atributos Una propiedad crucial de las entidades de nivel superior e inferior creadas mediante la especialización y la generalización es la herencia de atributos. Se dice que los atributos de los conjuntos de entidades de nivel superior son heredados por los conjuntos de entidades de nivel inferior. Los conjuntos de entidades de nivel inferior también heredan la participación en los conjuntos de relaciones en los que participa su entidad de nivel superior. Restricciones a las generalizaciones y especializaciones Un tipo de restricción implica la determinación de las entidades que pueden formar parte de un conjunto de entidades de nivel inferior dado. Esa pertenencia puede ser una de las siguientes: Definida por condición La pertenencia se evalúa en función al cumplimiento de una condición por la entidad. Condición “tipo de cuenta” de ahorros o corriente Definida por el usuario El usuario de la base de datos asigna las entidades al conjunto de entidades dado. Restricciones a las generalizaciones y especializaciones (cont.) Un segundo tipo de restricciones tiene relación con la pertenencia de las entidades a más de un conjunto de entidades de nivel inferior. Pueden se las siguientes: Disjuntos La restricción sobre la condición de disjunción exige que cada entidad no pertenezca a mas de un conjunto de entidades de nivel inferior. Cuenta de ahorro o cuenta corriente pero no ambas. Solapados En las generalizaciones solapadas la misma entidad puede pertenecer a mas de un conjunto de entidades de nivel inferior de la generalización. La generalización es solapada cuando los empleados también pueden ser clientes. Restricciones a las generalizaciones y especializaciones (cont.) Una última restricción, la restricción de completitud sobre una generalización o especialización, especifica si una entidad del conjunto de entidades de nivel superior debe pertenecer, al menos, a uno de los conjuntos de entidades de nivel inferior. Esta restricción puede ser de dos tipos: Generalización o especialización total: Cada entidad del nivel superior debe pertenecer a un conjunto de entidades de nivel inferior. Una entidad Cuenta debe ser de ahorro o corriente necesariamente Generalización o especialización parcial: Puede que alguna entidad del nivel superior no pertenezca a ningún conjunto de entidades de nivel inferior. Empleado Docente y grupos o equipos de trabajo y comisiones de trabajo Agregación Considere la relación ternaria trabaja_en, diapositiva 25 Supóngase ahora que se desea registrar al director responsable de las tares realizadas por cada empleado de cada sucural. Es decir se desea registrar al director responsable de las combinaciones (empleado, sucursal, trabajo). Agregación (Cont.) Parece que los conjuntos de relaciones trabaja_en y dirige se pueden combinar en un solo conjunto de relaciones. No obstante, no se deben combinar en una sola relación, ya que puede que algunas combinaciones empleado, sucursal, trabaja no tengan director. También se produce redundancia. Agregación (Cont.) Una de las limitantes del modelo E-R es que no es posible expresar relaciones entre relaciones. La agregación en una abstracción a través de la cual las relaciones se tratan como entidades de nivel superior. Alternativas de diseño E-R A continuación se sugiere la manera en que el diseñador de base de datos puede escoger entre una amplia gama de alternativas. Si usar atributos o conjuntos de entidades para representar un objeto. Si los conceptos del mundo real se expresan mejor mediante conjunto de entidades o mediante conjunto de relaciones. Si utilizar relaciones ternarias o pares de relaciones binarias Si usar conjunto de entidades fuertes o débiles. Si es adecuado utilizar la generalización o especialización. Si es adecuado usar la agregación. Requisitos de datos de la base de bancaria El banco esta organizado en sucursales. Cada sucursal esta ubicada en una ciudad concreta y se identifica con un nombre único. El banco supervisa los activos de cada sucursal. Los clientes del banco se identifican se identifican mediante su valor de id_cliente. El banco almacena cada nombre de cliente, y la calle y la ciudad donde vive cada cliente. Los clientes pueden tener cuentas y pueden solicitar prestamos. Cada cliente puede estar asociado con un empleado del banco concreto, que puede actuar como responsable de prestamos o como asesor personal de ese cliente. Los empleados del banco se identifican mediante su valor de id_empleado. La administracion del banco almacena el nombre y el numero de teléfono de cada empleado, el nombre de los subordinados de cada empleado, y el número id_empleado del jefe de cada empleado. El banco también mantiene un registro de la fecha de incorporación a la empresa del empleado, y por tanto, de su antigüedad. Requisitos de datos de la base de bancaria (cont.) El banco ofrece dos tipos de cuentas: cuentas de ahorro y cuentas corrientes. Las cuentas pueden tener como titular a más de un cliente, y cada cliente puede tener mas de una cuenta. Cada cuenta tiene asignado un numero de cuenta único. El banco mantiene un registro del saldo de cada cuenta y de la fecha mas reciente en que cada titular de la cuenta tuvo acceso a es cuenta. Además cada cuenta de ahorro tiene un tipo de interés y para cada cuenta corriente se registran los descubiertos generados. Cada préstamo se genera en una sucursal concreta y pueden solicitarlo uno o mas clientes. Cada préstamo se identifica mediante un numero de préstamo único. Para cada préstamo el banco mantiene un registro del importe del préstamo y de los pagos realizados y pendientes. Aunque los números de los pagos del préstamo no identifican de forma únivoca cada pago entre los de todos los prestamos del banco, el numero de pago si que identifica cada pago de un préstamo concreto. De cada pago se registran la fecha y el importe. Conjunto de entidades de la base de datos bancaria El conjunto de entidades sucursal, con los atributos nombre-sucursal, ciudad-sucursal y activo. El conjunto de entidades cliente, con los atributos id-cliente, nombre- cliente, calle-cliente y ciudadcliente. Un posible atributo adicional es nombre_asesor. El conjunto de entidades empleado, con los atributos id-empleado, nombre-empleado, númeroteléfono, sueldo y jefe. Algunas características descriptivas adicionales son el atributo multivalorado nombre-subordinado, el atributo base fechacomienzo y el atributo derivado antigüedad. Dos conjuntos de entidades cuenta —cuenta-ahorro y cuenta- corriente— con los atributos comunes número-cuenta y saldo; además, cuenta-ahorro tiene el atributo tipo-interés y cuenta-corriente tiene el atributo descubierto. El conjunto de entidades préstamo, con los atributos número- préstamo, importe y sucursal-origen. El conjunto de entidades débiles pago-préstamo, con los atributos número-pago, fecha-pago e importe-pago. Conjunto de relaciones de la base de datos bancaria prestatario, un conjunto de relaciones varios a varios entre cliente y préstamo. préstamo-sucursal, un conjunto de relaciones varios a uno que indica la sucursal en que se ha originado un préstamo. pago-préstamo, un conjunto de relaciones uno a varios de préstamo a pago, que documenta que se ha realizado un pago de un préstamo. impositor, con el atributo de relación fecha-acceso, un conjunto de relaciones varios a varios entre cliente y cuenta, indicando que un cliente posee una cuenta. Asesor_personal, con el atributo de relación tipo, un conjunto de relaciones varios a uno que expresa que un cliente puede ser aconsejado por un empleado del banco, y que un empleado del banco puede aconsejar a uno o más clientes. trabaja-para, un conjunto de relaciones entre entidades empleado con papeles que indican jefe y trabajador; la correspondencia de cardinalidades expresa que un empleado trabaja para un único jefe, y que un jefe supervisa uno o más empleados. Diseño de una base de datos para un banco Símbolos usados en la notación E-R Símbolos usados en la notación (Cont.) Reducción del modelo E-R al esquema relacional Para cada conjunto de entidades y conjunto de relaciones del modelo E-R tienen un esquemas de relación. El modelo E-R y Relacional son representaciones abstractas y lógicas de las empresas del mundo real. Representación de los conjuntos de entidades fuertes Sea E un conjunto de entidades fuertes con los atributos a1, a2, …an. Esta entidad se representa con un esquema E con n atributos. La clave primaria del esquema derivado es la misma clave primaria del conjunto de entidades fuertes. Cada tupla representa a una entidad del conjunto de entidades. sucursal= (nombre_surcursal, ciudad_sucursal, activos) Representación de los conjuntos de entidades débiles Sea A un conjunto de entidades débiles con atributos a1, a2, …., an. Sea B el conjunto de entidades fuertes del que A depende. La clave primaria de B consiste en b1, b2, …., bn. El esquema de la relación que representa al conjunto de entidades débiles A tiene una columna por cada miembro del conjunto {a1,a2,.., an}U{b1, b2, …, bn}. Clave primaria es clave primaria de B y el discriminante de A. También se crea una restricción de clave externa para la relación A que especifica que los atributos (b1, b2, …, bn) hacen referencia a la clave primaria de la relación B. préstamo = (numero_prestamo, importe) pago = (numero_prestamo, numero_pago, fecha_pago, importe_pago) Representación de los conjuntos de relaciones Sea R un conjunto de relaciones Sean a1, a2, …., an. Las claves primarias de cada uno de los conjuntos de entidades participantes en la relación R. Sean b1, b2, …, bn. Los atributos descriptivos de R. El conjunto de relaciones se representa con el Esquema conformado por los atributos {a1, a2,…,an} U {b1, b2, .., bn}. La clave primaria de un conjunto de relaciones binaria son todos los atributos de las claves primarias de todos los conjuntos de entidades participantes en la relación. Para el conjunto de relaciones uno a uno, varios a uno y uno a varios, este conjunto de atributos de claves primarias resulta mayor del que hace falta en la clave primaria. Clave primaria para las relaciones de varios a varios Para relaciones binarias varios a varios la unión de los atributos clave primaria de los conjuntos de entidades participantes pasara hacer la clave primaria del esquema de la relación. cliente = (id_cliente, nombre_cliente, calle_cliente, ciudad_cliente) préstamo = (numero_prestamo, importe) prestatario = (id_cliente, numero_prestamo) Clave primaria para las relaciones uno a uno La clave primaria de cualquiera de los conjuntos de entidades puede escoger como clave primaria del esquema de la relación. La elección del conjunto de entidades de entre los relacionados por el conjunto de relaciones puede realizarse de manera arbitraria. Clave primaria para las relaciones uno a varios o viceversa Para los conjuntos de relaciones binarias varios a uno ó uno a varios la clave primaria del conjuntos de entidades de la parte “varios” de la relación sirve de clave primaria del esquema de la relación. Clave primaria para las relaciones n-arias sin flechas Para los conjuntos de relaciones n-arias sin flechas en los segmentos, la unión de los atributos de clave primaria de los conjuntos de entidades participantes pasa hacer la clave primaria del esquema de la relación. Clave primaria para las relaciones n-arias con una flecha Para los conjuntos de relaciones n-arias con una flecha en uno de los segmentos, las claves primarias de los conjuntos de entidades que no están en el lado de la “flecha” del conjunto de relaciones sirven de clave primaria del esquema de la relación. Recuérdese que solo se permite una flecha saliente por conjunto de relaciones. Restricciones de clave externa en esquemas del conjunto de relaciones También se crean restricciones de clave externa para la relación R resultante del conjunto de relaciones. Para cada conjunto de entidades E, relacionado con el conjunto de relaciones R se crea una restricción de clave externa de la relación R con los atributos de R que eran atributos de clave primaria de E que hacen referencia a la clave primaria de la relación que representa E. Redundancia de los esquemas El conjunto de relaciones que enlazan los conjuntos de entidades débiles con su conjunto de entidades fuertes es un esquema redundante y no es necesario representarlo. Estas relaciones son varios a uno y no tienen atributos descriptivos. En general, el esquema de los conjuntos de relaciones que enlazan los conjuntos de entidades débiles con su conjunto correspondiente de entidades fuertes es redundante y no hace falta que este presente en el diseño de la base de datos relacional. Combinación de esquemas Considere un conjunto AB de relaciones varios a uno del conjunto de entidades A al conjunto de entidades B. De estos conjuntos se consiguen tres esquemas de relación A, B, AB. Además que la participación de A e la relación es total. Entonces se puede combinar los esquemas A y AB. Unión de ambos esquemas. La clave primaria del esquema combinado se toma del conjunto de entidades en cuyo esquema se ha fusionado. En el caso de relaciones uno a uno, el esquema de la relación del conjunto de relaciones puede combinarse con el esquema de cualquiera de los conjunto de entidades. Se puede combinar esquemas aunque la participación sea parcial, usando valores nulos. También se añaden las restricciones de clave externa Caso de relaciones 1 a 1 En caso de relaciones uno a uno, el esquema de relación del conjunto de relaciones puede combinarse con el esquema de cualquiera de los conjuntos de entidades participantes. Atributos compuestos Los atributos compuestos se tratan mediante la creación de un atributo diferente para cada uno de los atributos componentes; y no se crea ningún atributo para el atributo compuesto Atributos multivalorados Para cada atributo multivalorado M se crea un esquema de relación E con un atributo A que corresponde a M, y a los atributos correspondiente a la clave primaria del conjunto de entidades o de relaciones del que M es atributo. Se crea una clave primaria de esquema de la relación consistente de todos los atributos del esquema. Además, se crea una clave externa para el esquema de la relación, con el atributo generado a partir de la clave primaria del conjunto de entidades que hace referencia a la relación generada a partir del conjunto de entidades. Representación de la generalización opción 1 Se crea un esquema para la entidad del nivel superior y para cada uno de las entidades con sus respectivos atributos. Los atributos de clave primaria del nivel superior pasa a ser atributos de clave primaria de los esquemas del nivel inferior. Se produce restricciones de clave externa Representación de la generalización opción 2 Si la generalización es disjunta y completa. Solo se crea esquemas de relación para cada una de las entidades de nivel inferior y no para el nivel superior. Los atributos del nivel superior se colocan en el esquema de nivel inferior La clave primaria de los esquemas es la clave primaria de la entidad superior Este método tiene la dificultad de definir las restricciones de claves externas. Esto sucede cuando el conjunto de entidades de nivel superior participa en una relación. Representación de la agregación Se transforman los conjuntos de relaciones y entidades siguiendo las reglas anteriores. Las reglas vistas anteriormente para la creación de restricciones de clave primaria y de clave externa para los conjuntos de relaciones se pueden aplicar también a los conjuntos de relaciones que incluyan agregación. Tratando la agregación como cualquier otra entidad. La clave primaria de la agregación es la clave primaria del conjunto de relaciones que la define. UML UML UML Ejercicio de modelado del diseño conceptual Ejercicio 1. Construya un diagrama E-R para una compañía de seguros de coches cuyos clientes poseen uno o más coches cada uno. Cada coche tiene asociado un valor que va de cero al numero de accidentes registrados. Ejercicio 2. la secretaria de la universidad conserva datos acerca de las siguientes entidades: a) asignaturas, incluyendo el número, titulo, créditos, programa, y requisitos; b) ofertas de asignaturas, incluyendo el numero de asignatura, año, semestre, numero de sección, profesor(es), horario y aulas; c) estudiantes, incluyendo identificador de estudiante, nombre y programa; y d) profesores, incluyendo numero de identificación, nombre, departamento y titulo. Además, la matricula de los estudiantes en asignaturas y las notas concebidas a los estudiantes en cada asignatura en la que están matriculados se deben modelar adecuadamente. Documéntese todas las restricciones y Construya un diagrama E-R.