Modelo entidad-relación
Antecedentes.
El proceso de trasladar un problema del mundo real a un ordenador, usando bases de datos, se denomina modelado.
Para el modelado de bases de datos es necesario seguir un procedimiento determinado. Pero, cuando el problema a modelar es sencillo, con frecuencia estaremos tentados de pasar por alto algunos de los pasos, y crear directamente bases de datos y tablas. En el caso de las bases de datos, como en cualquier otra solución informática, esto es un gran error. Siempre será mejor seguir todos los pasos del diseño, esto nos ahorrará (con toda seguridad) mucho tiempo más adelante. Sobre todo si alguna vez tenemos que modificar la base de datos para corregir errores o para implementar alguna característica nueva, algo que sucede con mucha frecuencia.
Además, seguir todo el proceso nos facilitará una documentación necesaria para revisar o
mantener la aplicación, ya sea por nosotros mismos o por otros administradores o programadores.
La primera fase del diseño de una aplicación (la base de datos, generalmente, es parte de una aplicación), consiste en hablar con el cliente para saber qué quiere, y qué necesita realmente.
Esto es una tarea ardua y difícil. Generalmente, los clientes no saben demasiado sobre programación y sobre bases de datos, de modo que normalmente, no saben qué pueden pedir. De hecho, lo más habitual es que ni siquiera sepan qué es lo que necesitan.
Los modelos conceptuales ayudan en esta fase del proyecto, ya que facilitan una forma clara de ver el proceso en su totalidad, puesto que se trata de una representación gráfica. Además, los modelos conceptuales no están orientados a ningún sistema físico concreto: tipo de ordenador, sistema operativo, SGBD, etc. Ni siquiera tienen una orientación informática clara, podrían servir igualmente para explicar a un operario cómo funciona el proceso de forma manual. Esto facilita que sean comprensibles para personas sin conocimientos de programación.
Además de consultar con el cliente, una buena técnica consiste en observar el funcionamiento del proceso que se quiere informatizar o modelar. Generalmente esos procesos ya se realizan, bien de una forma manual, con ayuda de libros o ficheros; o bien con un pequeño apoyo ofimático.
Con las bases de datos lo más importante es observar qué tipo de información se necesita, y que parte de ella se necesita con mayor frecuencia. Por supuesto, modelar ciertos procesos puede proporcionarnos ayudas extra sobre el proceso manual, pero no debemos intentar que nuestra aplicación lo haga absolutamente todo, sino principalmente, aquello que es realmente necesario.
Cuando los programas se crean sin un cliente concreto, ya sea porque se pretende crear un producto para uso masivo o porque sólo lo vamos a usar nosotros, el papel del cliente lo jugaremos nosotros mismos, pero la experiencia nos enseñará que esto no siempre es una ventaja. Es algo parecido a los que pasa con los abogados o los médicos. Se suele decir que “el abogado que se defiende a si mismo tiene un necio por cliente”. En el caso de los programadores esto no es tan exagerado; pero lo cierto es que, demasiadas veces, los programadores somos nuestros peores clientes.
Toda esta información recogida del cliente debe formar parte de la documentación. Nuestra experiencia como programadores debe servir, además, para ayudar y guiar al cliente. De este modo podemos hacerle ver posibles “cuellos de botella”, excepciones, mejoras en el proceso, etc. Así mismo, hay que explicar al cliente qué es exactamente lo que va a obtener. Cuando un cliente recibe un producto que no esperaba, generalmente no se siente muy inclinado a pagar por él.
Una vez recogidos los datos, el siguiente paso es crear un modelo conceptual. El modelo más usado en bases de datos es el modelo Entidad-Relación, que es el que vamos a explicar en este capítulo.
Muy probablemente, esta es la parte más difícil de la resolución del problema. Es la parte más “intelectual” del proceso, en el sentido de que es la que más requerirá pensar. Durante esta fase, seguramente, deberemos tomar ciertas decisiones, que en cierto modo limitarán en parte el modelo. Cuando esto suceda, no estará de más consultar con el cliente para que estas decisiones sean, al menos, aceptadas por él, y si es posible, que sea el propio cliente el que las plantee. ;-)
La siguiente fase es convertir el modelo conceptual en un modelo lógico. Existen varios modelos lógicos, pero el más usado, el que mejor se adapta a MySQL y el que por lo tanto explicaremos aquí, es el modelo Relacional. La conversión entre el modelo conceptual y el lógico es algo bastante mecánico, aunque no por ello será siempre sencillo.
En el caso del modelo lógico relacional, existe un proceso que sirve para verificar que hemos aplicado bien el modelo, y en caso contrario, corregirlo para que sea así. Este proceso se llama normalización, y también es bastante mecánico.
El último paso consiste en codificar el modelo lógico en un modelo físico. Este proceso está ligado al DBMS elegido, y es, seguramente, la parte más sencilla de aplicar, aunque nos llevará mucho más tiempo y espacio explicarla, ya que en el caso del DBMS que nos ocupa (MySQL), se requiere el conocimiento del lenguaje de consulta SQL.
Conceptos.
En esencia, el modelo entidad-relación (en adelante E-R), consiste en buscar las entidades que describan los objetos que intervienen en el problema y las relaciones entre esas entidades.
Todo esto se plasma en un esquema gráfico que tiene por objeto, por una parte, ayudar al programador durante la codificación y por otra, al usuario a comprender el problema y el funcionamiento del programa.
Entidad
Entidad: es una representación de un objeto individual concreto del mundo real.
Si hablamos de personas, tu y yo somos entidades, como individuos. Si hablamos de vehículos, se tratará de ejemplares concretos de vehículos, identificables por su matrícula, el número de chasis o el de bastidor.
Conjunto de entidades: es la clase o tipo al que pertenecen entidades con características comunes.
Cada individuo puede pertenecer a diferentes conjuntos: habitantes de un país, empleados de una empresa, miembros de una lista de correo, etc. Con los vehículos pasa algo similar, pueden pertenecer a conjuntos como un parque móvil, vehículos de empresa, etc.
En el modelado de bases de datos trabajaremos con conjuntos de entidades, y no con entidades individuales. La idea es generalizar de modo que el modelo se ajuste a las diferentes situaciones por las que pasará el proceso modelado a lo largo de su vida. Será el usuario final de la base de datos el que trabaje con entidades. Esas entidades constituirán los datos que manejará con la ayuda de la base de datos.
Atributo: cada una de las características que posee una entidad, y que agrupadas permiten distinguirla de otras entidades del mismo conjunto.
En el caso de las personas, los atributos pueden ser características como el nombre y los apellidos, la fecha y lugar de nacimiento, residencia, número de identificación… Si se trata de una plantilla de empleados nos interesarán otros atributos, como la categoría profesional, la antigüedad, etc.
En el caso de vehículos, los atributos serán la fecha de fabricación, modelo, tipo de motor, matrícula, color, etc.
Según el conjunto de entidades al que hallamos asignado cada entidad, algunos de sus atributos podrán ser irrelevantes, y por lo tanto, no aparecerán; pero también pueden ser necesarios otros. Es decir, el conjunto de atributos que usaremos para una misma entidad dependerá del conjunto de entidades al que pertenezca, y por lo tanto del proceso modelado.
Por ejemplo, no elegiremos los mismos atributos para personas cuando formen parte de modelos diferentes. En un conjunto de entidades para los socios de una biblioteca, se necesitan ciertos atributos. Estos serán diferentes para las mismas personas, cuando se trate de un conjunto de entidades para los clientes de un banco.
Dominio: conjunto de valores posibles para un atributo.
Una fecha de nacimiento o de matriculación tendrá casi siempre un dominio, aunque generalmente se usará el de las fechas posibles. Por ejemplo, ninguna persona puede haber nacido en una fecha posterior a la actual. Si esa persona es un empleado de una empresa, su fecha de nacimiento estará en un dominio tal que actualmente tenga entre 16 y 65 años. (Por supuesto, hay excepciones…)
Los números de matrícula también tienen un dominio, así como los colores de chapa o los fabricantes de automóviles (sólo existe un número limitado de empresas que los fabrican).
Generalmente, los dominios nos sirven para limitar el tamaño de los atributos. Supongamos que una empresa puede tener un máximo de 1000 empleados. Si uno de los atributos es el número de empleado, podríamos decir que el dominio de ese atributo es (0,1000).
Con nombres o textos, los dominios limitarán su longitud máxima.
Sin embargo, los dominios no son demasiado importantes en el modelo E-R, nos preocuparemos mucho más de ellos en el modelo relacional y en el físico.
Relación
El otro concepto que no podemos dejar de definir es el de relación. Aunque en realidad, salvo para nombrar el modelo, usaremos el término interrelación, ya que relación tiene un significado radicalmente diferente dentro del modelo relacional, y esto nos puede llevar a error.
Interrelación: es la asociaciación o conexión entre conjuntos de entidades.
Tengamos los dos conjuntos: de personas y de vehículos. Podemos encontrar una interrelación entre ambos conjuntos a la que llamaremos posee, y que asocie asocie una entidad de cada conjunto, de modo que un individuo posea un vehículo.
Grado: número de conjuntos de entidades que intervienen en una interrelación.
De este modo, en la anterior interrelación intervienen dos entidades, por lo que diremos que es de grado 2 o binaria. También existen interrelaciones de grado 3, 4, etc. Pero las más frecuentes son las interrelaciones binarias.
Podemos establecer una interrelación ternaria (de grado tres) entre personas, de modo que dos personas sean padre y madre, respectivamente, de una tercera.
Existen además tres tipos distintos de interelaciones binarias, dependiendo del número de entidades del primer conjunto de entidades y del segundo. Así hablaremos de interrelaciones 1:1 (uno a uno), 1:N (uno a muchos) y N:M (muchos a muchos).
Nuestro ejemplo anterior de “persona posee vehículo” es una interrelación de 1:N, ya que cada persona puede no poseer vehículo, poseer uno o poseer más de uno. Pero cada vehículo sólo puede ser propidad de una persona.
Otras relaciones, como el matrimonio, es de 1:1, o la de amistad, de N:M.
Características.
Aunque los conceptos básicos de E-R pueden modelar la mayoría de las características de las bases de datos, algunos aspectos de una base de datos pueden ser más adecuadamente expresados mediante ciertas extensiones del modelo E-R básico. En este apartado se discuten las características E-R extendidas de especialización, generalización, conjuntos de entidades de nivel más alto y más bajo, herencia de atributos y agregación.
Especialización
Un conjunto de entidades puede incluir subgrupos de entidades que se diferencian de alguna forma de las otras entidades del conjunto. Por ejemplo, un subconjunto de entidades en un conjunto de entidades puede tener atributos que no son compartidos por todas las entidades del conjunto de entidades. El modelo E-R proporciona una forma de representación de estos grupos de entidades distintos.
Considérese el conjunto de entidades persona con atributos nombre, calle y ciudad. Una persona puede clasificarse además como:
• cliente
• empleado
Cada uno de estos tipos de persona se describen mediante un conjunto de atributos que incluyen los atributos del conjunto de entidades persona más otros posibles atributos adicionales. Por ejemplo, las entidades cliente se pueden describir además mediante el atributo id-cliente, mientras que las entidades empleado se pueden describir además mediante los atributos id-empleado y sueldo. El proceso de designación de subgrupos dentro de un conjunto de entidades se denomina especialización. La especialización de persona permite distinguir entre las personas basándose en si son empleados o clientes.
Se puede aplicar repetidamente la especialización para refinar el esquema de diseño. Por ejemplo, los empleados del banco se pueden clasificar en uno de los siguientes:
• oficial
• cajero
• secretaria
Cada uno de estos tipos de empleado se describe por un conjunto de atributos que incluye todos los atributos del conjunto de entidades empleado más otros adicionales. Por ejemplo, las entidades oficial se puede describir por el atributo número-despacho, las entidades cajero por los atributos número-sección y horas-semana, y las entidades secretaria por el atributo horas-semana. Además, las entidades secretaria pueden participar en una relación secretaria-de, que identifica al empleado ayudado por una secretaria.
Un conjunto de entidades se puede especializar por más de una característica distintiva. En el ejemplo, la característica distintiva entre entidades empleado es el trabajo que realiza el empleado. Otra especialización coexistente podría estar basada en si la persona es un trabajador temporal o fijo, resultado en los conjuntos de entidades empleado-temporal y empleado-fijo. Cuando se forma más de una especialización de un conjunto de entidades, una entidad en particular puede pertenecer a varias especializaciones. Por ejemplo, una empleada dada puede ser una empleada temporal y secretaria. En términos de un diagrama E-R, la especialización se representa mediante un componente triangular etiquetado ES. La etiqueta ES representa, por ejemplo, que un cliente «es» una persona. La relación ES se puede llamar también relación superclase-subclase. Los conjuntos de entidades de nivel más alto y más bajo se representan como conjuntos de entidades regulares, es decir, como rectángulos que contienen el nombre del conjunto de entidades.
Generalización
El refinamiento a partir de un conjunto de entidades inicial en sucesivos niveles de subgrupos de entidades representa un proceso de diseño descendente en el que las distinciones se hacen explícitas. El proceso de diseño puede ser también de una forma ascendente, en el que varios conjuntos de entidades se sintetizan en un conjunto de entidades de nivel más alto basado en características comunes. El diseñador de la base de datos puede haber identificado primero el conjunto de entidades cliente con los atributos nombre, calle, ciudad e id-cliente, y el conjunto de entidades empleado con los atributos nombre, calle, ciudad, id-empleado y sueldo. Hay similitudes entre el conjunto de entidades cliente y el conjunto de entidades empleado en el sentido de que tienen varios atributos en común. Esta similitud se puede expresar mediante la generalización, que es una relación contenedora que existe entre el conjunto de entidades de nivel más alto y uno o más conjuntos de entidades de nivel más bajo.
En el ejemplo, persona es el conjunto de entidades de nivel más alto y los conjuntos de entidades cliente y empleado son de nivel más bajo. Los conjuntos de entidades de nivel más alto y nivel más bajo también se pueden llamar superclase y subclase, respectivamente. El conjunto de entidades persona es la superclase de las subclases cliente y empleado. Para todos los propósitos prácticos, la generalización es una inversión simple de la especialización. Se aplicarán ambos procesos en combinación en el curso del diseño del esquema E-R para una empresa. En términos del propio diagrama E-R no se distingue entre especialización y generalización. Los niveles nuevos de representación de entidades serán distinguidos (especialización) o sintetizados (generalización) cuando el esquema de diseño llegue a expresar completamente la aplicación de base de datos y los requisitos de uso de la base de datos. Las diferencias entre los dos enfoques se pueden caracterizar mediante su punto de partida y el objetivo global.
La especialización parte de un conjunto de entidades simple; enfatiza las diferencias entre las entidades dentro del conjunto mediante la creación de distintos conjuntos de entidades de nivel más bajo. Estos conjuntos de entidades de nivel más bajo pueden tener atributos, o pueden participar en relaciones que no se aplican a todas las entidades del conjunto de entidades de nivel más alto. Realmente, la razón de que el diseñador aplique la especialización es representar tales características diferentes. Si cliente y empleado no tuvieran cada una atributos únicos que no tuvieran las entidades persona en la que participan, no habría necesidad de especializar el conjunto de entidades persona.
Herencia de atributos
Una propiedad crucial de las entidades de nivel más alto y más bajo creadas mediante especialización y generalización es la herencia de atributos. Los atributos de los conjuntos de entidades de nivel más alto se dice que son heredados por los conjuntos de entidades de nivel más bajo. Por ejemplo, cliente y empleado heredan los atributos de persona. Así, cliente se describe mediante sus atributos nombre, calle y ciudad y adicionalmente por el atributo id-cliente; empleado se describe mediante sus atributos nombre, calle y ciudad y adicionalmente por los atributos id-empleado y sueldo.
Un conjunto de entidades de nivel más bajo (o subclase) también hereda la participación en los conjuntos de relaciones en los que su entidad de nivel más alto (o superclase) participa. Ambos conjuntos de entidades oficial, cajero y secretaria participan en el conjunto de relaciones trabaja-para. La herencia de atributos se aplica en todas las capas de los conjuntos de entidades de nivel más bajo. Los conjuntos de entidades anteriores pueden participar cualquier relación en que participe el conjunto de entidades persona. Si se llega a una porción dada de un modelo E-R mediante especialización o generalización, el resultado es básicamente el mismo:
• Un conjunto de entidades de nivel más alto con atributos y relaciones que se aplican a todos los conjuntos de entidades de nivel más bajo.
• Conjuntos de entidades de nivel más bajo con características distintivas que se aplican sólo en un conjunto de entidades particular.
En lo que sigue, aunque a menudo se hará referencia sólo a la generalización, las propiedades que se discuten pertenecen a ambos procesos. En la Figura 9 se describe una jerarquía de conjuntos de entidades. En la figura, empleado es un conjunto de entidades de nivel más bajo de persona y un conjunto de entidades de nivel más alto de los conjuntos de entidades oficial, cajero y secretaria. En una jerarquía, un conjunto de entidades dado puede estar implicado como un conjunto de entidades de nivel más bajo sólo en una única relación ES. Si un conjunto de entidades es un conjunto de entidades de nivel más bajo en más de una relación ES, entonces el conjunto de entidades tiene herencia múltiple, y la estructura resultante se denomina retículo.
Restricciones sobre las generalizaciones
Para modelar una empresa más exactamente, el diseñador de la base de datos puede elegir colocar ciertas restricciones en una generalización particular. Un tipo de restricción implica determinar qué entidades pueden ser miembros de un conjunto de entidades de nivel más bajo dado. Tales relaciones de miembros pueden ser algunas de los siguientes:
Definido por condición
En los conjuntos de entidades de nivel más bajo, la relación miembro se evalúa en función de si una entidad satisface o no una condición explícita o predicado. Por ejemplo, asúmase que el conjunto de entidades de nivel más alto cuenta tiene el atributo tipo-cuenta. Todas las entidades cuenta se evalúan según la definición del atributo tipo-cuenta. Sólo aquellas entidades que satisfagan la condición tipo-cuenta = «cuenta de ahorro» podrán pertenecer al conjunto de entidades de nivel más bajo cuenta-ahorro. Todas las entidades que satisfagan la condición tipo-cuenta = «cuenta corriente» estarán incluidas en cuenta-corriente. Como todas las entidades de nivel más bajo se evalúan en función del mismo atributo (en este caso, tipo-cuenta), este tipo de generalización se denomina definido por atributo.
Definido por el usuario
Los conjuntos de entidades de nivel más bajo definidos por el usuario no están restringidos mediante una condición de miembro; en cambio, las entidades se asignan a un conjunto de entidades dado por el usuario de la base de datos. Por ejemplo, asúmase que, después de tres meses de empleo, se asignan los empleados del banco a uno de los cuatro grupos de trabajo. Los grupos se representan, por tanto, como cuatro conjuntos de entidades de nivel más bajo del conjunto de entidades de nivel más alto empleado. Un empleado dado no se asigna a una entidad grupo automáticamente en términos de una condición que lo defina explícitamente. En su lugar, la asignación al grupo se hace de forma individual por el usuario a cargo de la decisión. Las asignación se implementa mediante una operación que añade una entidad a un conjunto de entidades.
Un segundo tipo de restricciones se define según si las entidades pueden pertenecer a más de un conjunto de entidades de nivel más bajo en una generalización simple. Los conjuntos de entidades de nivel más bajo pueden ser uno de los siguientes:
Disjunto
Una restricción sobre el carácter disjunto requiere que una entidad no pertenezca a más de un conjunto de entidades de nivel más bajo. En el ejemplo, una entidad cuenta puede satisfacer sólo una condición para el atributo tipo-cuenta; una entidad puede ser bien una cuenta de ahorro o bien una cuenta corriente, pero no ambas cosas a la vez.
Solapado
En las generalizaciones solapadas, la misma entidad puede pertenecer a más de un conjunto de entidades de nivel más bajo en una generalización simple. Como ilustración, tomando el ejemplo del grupo de trabajo del empleado, asúmase que ciertos directores participen en más de un grupo de trabajo. Un empleado dado puede, por lo tanto, aparecer en más de uno de los conjuntos de entidades grupo que son conjuntos de entidades de nivel más bajo de empleado. Así, la generalización es solapada. Como otro ejemplo, supóngase la generalización aplicada a los conjuntos de entidades cliente y empleado conduce a un conjunto de entidades de nivel más alto persona. La generalización está solapada si un empleado también puede ser un cliente.
La entidad de nivel más bajo solapada es el caso predeterminado; la restricción sobre el carácter disjunto se debe colocar explícitamente en una generalización (o especialización). Se puede identificar una restricción sobre el carácter disjunto en un diagrama E-R añadiendo la palabra disjunto en el símbolo del triángulo.
Una restricción final, la restricción de completitud en una generalización o especialización, especifica si un conjunto de entidades de nivel más alto debe pertenecer o no a al menos uno de los conjuntos de entidades de nivel más bajo en una generalización/especialización. Esta restricción puede ser una de las siguientes:
Generalización o especialización total
Cada entidad de nivel más alto debe pertenecer a un conjunto de entidades de nivel más bajo.
Generalización o especialización parcial
Algunas entidades de nivel más alto pueden no pertenecer a algún conjunto de entidades de nivel más bajo.
La generalización parcial es la predeterminada. Se puede especificar una generalización total en un diagrama E-R usando una línea doble para conectar el rectángulo que representa el conjunto de entidades de nivel más alto con el símbolo del triángulo (esta notación es similar a la notación de participación total en una relación).
La generalización de cuenta es total: todas las entidades cuenta deben ser o bien cuentas de ahorro o bien cuentas corrientes. Debido a que el conjunto de entidades de nivel más alto alcanzado a través de la generalización está generalmente compuesta únicamente por aquellas entidades del conjunto de entidades de nivel más bajo, la restricción de completitud para un conjunto de entidades de nivel más alto generalizado es habitualmente total. Cuando la restricción es parcial, la entidad de nivel más alto no aparece necesariamente en el conjunto de entidades de nivel más bajo. Los conjuntos de entidades grupo de trabajo ilustran una especialización parcial. Como los empleados se asignan a grupos sólo después de llevar tres meses en el trabajo, algunas entidades empleado pueden no ser miembros de ningún conjunto de entidades grupo de nivel más bajo.
Los conjuntos de entidades equipo se pueden caracterizar más completamente como una especialización de empleado parcial y solapada. La generalización de cuenta-corriente y cuenta-ahorro en cuenta es una generalización total y disjunta. Las restricciones de completitud y sobre el carácter disjunto, sin embargo, no dependen una de la otra. Los patrones de restricciones pueden ser también parcial-disjunta y total-solapada.
Se puede ver que ciertos requisitos de inserción y borrado son consecuencia de las restricciones que se aplican a una generalización o especialización dada. Por ejemplo, cuando se coloca una restricción de completitud total, una entidad insertada en un conjunto de entidades de nivel más alto se debe insertar en al menos uno de los conjuntos de entidades de nivel más bajo. Con una restricción de definición por condición, todas las entidades de nivel más alto que satisfacen la condición se deben insertar en el conjunto de entidades de nivel más bajo. Finalmente, una entidad que se borra de un conjunto de entidades de nivel más alto, también se debe borrar de todos los conjuntos de entidades de nivel más bajo asociados a los que pertenezca.
Agregación
Una limitación del modelo E-R es que no resulta posible expresar relaciones entre relaciones. Para ilustrar la necesidad de tales construcciones considérese la relación ternaria trabaja-en, que se vio anteriormente, entre empleado, sucursal y trabajo. Supóngase ahora que se desean registrar los directores para las tareas realizadas por un empleado en una sucursal; es decir, se desean registrar directores por combinaciones (empleado, sucursal, trabajo). Asúmase que existe una entidad director.
Una alternativa para representar esta relación es crear una relación cuaternaria dirige entre empleado, sucursal, trabajo y director (se necesita una relación cuaternaria; una relación binaria entre director y empleado no permitiría representar las combinaciones [sucursal, trabajo] de un empleado que están dirigidas por un director). Parece que los conjuntos de relaciones trabaja-en y dirige se pueden combinar en un único conjunto de relaciones. No obstante, no se deberían combinar, dado que algunas combinaciones empleado, sucursal, trabajo puede que no tengan director.
Hay información redundante en la figura resultante, ya que cada combinación empleado, sucursal, trabajo en dirige también lo está en trabaja-en. Si el director fuese un valor en lugar de una entidad director, se podría hacer que director fuese un atributo multivalorado de la relación trabaja-en. Pero esto implica que es más difícil (tanto lógicamente como en coste de ejecución) encontrar, por ejemplo, los triples empleado-sucursal-trabajo de los que un director es responsable. Como el director es una entidad director, se descarta esta alternativa en cualquier caso.
La mejor forma de modelar una situación como ésta es usar la agregación. La agregación es una abstracción a través de la cual las relaciones se tratan como entidades de nivel más alto. Así, para este ejemplo, se considera el conjunto de relaciones trabaja-en (que relaciona los conjuntos de entidades empleado, sucursal y trabajo) como un conjunto de entidades de nivel más alto denominado trabaja-en. Tal conjunto de entidades se trata de la misma forma que cualquier otro conjunto de entidades. Se puede crear entonces una relación binaria dirige entre trabaja-en y director para representar quién dirige las tareas. En la Figura 10 se muestra una notación para la agregación que se usa habitualmente para esta situación.
Aplicaciones.
Bibliografía.
http://mysql.conclase.net/curso/index.php?cap=002
http://www18.uniovi.es/quevedo/docencia/dsi/TutorialModeloRelacional/modeloER/extendedER.htm
por: Luis Antonio Aguilar Marínez del Instituto Tecnológico Superior de Valladolid ITSVA ISC 4°
!! Un diagrama o modelo entidad-relación (a veces denominado por su siglas, E-R “Entity relationship”, o, “DER” Diagrama de Entidad Relación) es una herramienta para el modelado de datos de un sistema de información. Estos modelos expresan entidades relevantes para un sistema de información, sus inter-relaciones y propiedades.
Carlos Luna.