jueves, 22 de septiembre de 2011

Uso de las categorías y la categorización

Todas las relaciones superclase/subclase vistas hasta ahora tienen superclase única. Incluso la subclase compartida JEFE DE INGENIERIA en la red de la figura 5 es una subclase de tres relaciones superclase/subclase distintas, donde cada una de las relaciones tienen una superclase única. En algunos casos, sin embargo, se necesita representar una relación superclase/ clase simple con mas de una superclase, donde las superclases son diferentes entidades. En este caso llamamos a la subclase categoría.

Por ejemplo, supongamos que tenemos tres entidades: PERSONA, BANCO y EMPRESA. En la Base de Datos de vehiculo, un dueño de un vehiculo puede ser una persona, un banco o una empresa. Necesitaremos crear una clase que contenga ocurrencias de las tres entidades para desempeñar el papel de propietario. Se creará con este fin una categoría propietario que sea una subclase de la unión de la clases EMPRESA, BANCO y PERSONA. Representaremos las Categorías en el diagrama ERE como se muestra en la figura 7. Las superclase EMPRESA, BANCO y PERSONA se conectan al círculo con el símbolo U (unión). Un arco con el símbolo de pertenencia conecta el circulo con la categoría (subclase) PROPIETARIO. Si es necesario un predicado de definición, éste se coloca cerca de la línea de la superclase a la cual se aplica el predicado. En la figura 8 tenemos dos categorías: PROPIETARIO, la cual es una subclase de la unión de PERSONA, BANCO y EMPRESA; y VEHICULO MATRICULADO, la cual es una subclase de la unión de COCHE y CAMION.

Una categoría tiene dos o más superclases que pueden representar distintas entidades, mientras que las otras relaciones superclase /subclase tienen una sola superclase. Podemos comparar una categoría, como PROPIETARIO en la figura 7, con la subclase compartida JEFE DE INGENIERIA se la figura 5. La segunda es una subclase de cada una de las tres superclases INGENIERO, JEFE y ASALARIADO, de manera que una ocurrencia de JEFE DE INGENIERIA debe existir en las tres. Esto representa la restricción de que un jefe de ingeniería debe se un INGENIERO, un JEFE, y un ASALARIADO; esto es, JEFE DE INGENIERIA es un subconjunto de la intersección de las tres subclases. Por otro lado, una categoría es un subconjunto de la unión de sus superclases. Por tanto, una ocurrencia de entidad que es miembro de PROPIETARIO, debe existir al menos en una de las superclases, pero no tiene que ser miembro de todas. Esto representa la restricción de que un PROPIETARIO puede ser una EMPRESA, un BANCO, o una PERSONA. en la figura 7. En este ejemplo, como en la mayoría de los casos en los que se usan categorías, una ocurrencia de la categoría es miembro de exactamente una de las superclases.

Figura 7. Dos categorías: PROPIETARIO y VEHICULO MATRICULADO.

La herencia de atributos funciona de forma mas selectiva en las categorías. Por ejemplo, en la figura 7 cada PROPIETARIO hereda los atributos de una EMPRESA, una PERSONA, o un BANCO, dependiendo de la superclase a la que pertenezca. Esto se conoce como herencia selectiva. Por otro lado, una subclase compartida como JEFE DE INGENIERIA (figura 5), hereda todos los atributos de sus superclases ASALARIADO, INGENIERO y JEFE.

Es interesante señalar la diferencia existente entre la categoría VEHICULO MATRICULADO de la figura 7 y la superclase generalizada VEHICULO de la figura 2b. En la figura 2b, cada coche y cada camión son VEHICULOS, pero en la figura 7, la categoría VEHICULO MATRICULADO incluye algunos coches o camiones, pero no necesariamente todos (algunos podrían no estar matriculados). En general, una especialización o una generalización como la de la figura 2b, si fuese parcial, no impediría la participación de otros VEHICULOS mediante la restricción de otras entidades, como MOTOS. Sin embargo, una categoría como VEHICULO MATRICULADO de la figura 7 implica que solo coches y camiones ,pero no otras entidades, pueden ser miembros de VEHICULO MATRICULADO.

Figura 8. Categorías. (a) Categoría parcial TITULAR DE CUENTA que es un subconjunto de la unión de la dos entidades EMPRESA y PERSONA. (b) Categoría total PROPIEDAD y una generalización similar.

Una categoría puede ser total o parcial. Por ejemplo, TITULAR DE CUENTA es una categoría parcial definida por predicado en la figura 8(a), donde c1 y c2 son las condiciones del predicado que especifican qué ocurrencias de EMPRESA y PERSONA, respectivamente, son miembros de TITULAR DE CUENTA. Sin embargo, la categoría PROPIEDAD de la figura 8(b) es total porque cada edificio o finca debe ser miembro de PROPIEDAD; esto se representa mediante una línea doble entre el círculo y la categoría. Las categorías parciales se representan mediante una línea simple entre la categoría y el círculo, como se ve en las figuras 7 y 8(a).

Las superclases de una categoría pueden tener diferentes claves, como se ve en la categoría PROPIETARIO de la figura 7; o pueden tener las mismas claves como se ve en la categoría VEHICULO MATRICULADO. Hay que tener en cuenta que, en el caso de que la categoría sea total, puede ser representada como una especialización o una generalización, como muestra la figura 8(b). En tal caso la elección de cual utilizar es subjetiva. Si dos clases representan las mismas entidades y comparten muchos atributos, incluyendo la misma clave, es preferible la utilización de especialización/generalización; en otro caso la categorización es más apropiada.

Modelado de datos con especialización y generalización

Las subclases y superclases se corresponden con entidades y por tanto se representarán con rectángulos en el diagrama ERE. Ahora veremos con más detalle las propiedades de especialización y generalización.

Restricciones de especialización y generalización

En los siguientes párrafos veremos las restricciones aplicables a una especialización o a una generalización; sin embargo, por abreviar, nuestra visión se referirá solamente a la especialización en vez de a ambas técnicas.

En general podremos tener varias especializaciones definidas sobre la misma entidad o superclase, como se ve en la figura 1. En tal caso las ocurrencias de entidad pueden pertenecer a cada una de las especializaciones. Sin embargo, una especialización puede consistir en solo una subclase, tal como JEFE en la figura 1; en tal caso no utilizaremos la notación círculo.

En algunas especializaciones podremos determinar exactamente que ocurrencias de entidad se convertirán en ocurrencias de cada subclase, mediante la utilización de una condición en algún atributo de la superclase. Tales subclases se llaman subclases definidas por predicado (o definidas por condición). Por ejemplo, si la entidad EMPLEADO tiene el atributo tipotrabajo, como se ve en la figura 3, podremos especificar una condición de pertenencia a la subclase SECRETARIA mediante el predicado tipotrabajo = "Secretaria"), al cual llamaremos predicado de definición de la subclase. Esta condición es una restricción especificando que los miembros de la subclase SECRETARIA deben satisfacer el predicado y que todas las ocurrencias de la entidad EMPLEADO en las que el valor del atributo tipotrabajo sea "Secretaria" deben pertenecer a la esta subclase.

Si todas las subclases en una especialización tienen la condición de pertenencia en el mismo atributo de la superclase, la especialización será una especialización definida por atributo y el atributo será llamado atributo de definición de la especialización. Definiremos una especialización definida por atributo en el diagrama colocando el atributo de definición cerca del arco que va desde el círculo a la superclase, como puede verse en la figura 3.

Cuando no exista tal condición para determinar la pertenencia a una superclase, la subclase se llamará subclase definida por el usuario. En tales subclases, la pertenencia vendrá determinada por los usuarios de la Base de Datos cuando realicen una operación de inserción de una ocurrencia en la subclase; por tanto, el usuario especifica la pertenencia de cada ocurrencia individualmente y no mediante una condición que pueda ser evaluada automáticamente.

Figura 3

Se pueden aplicar dos restricciones mas a la especialización. La primera es la restricción de desunión, la cual especifica que las subclases de la especialización deben estar separadas. Esto significa que una ocurrencia de la entidad puede ser miembro de como máximo una de las subclases de la especialización. Una especialización definida por atributo implica la restricción dedesunión, si el atributo para definir el predicado de pertenencia es simple. la figura 3 muestra este caso, donde la d del círculo denota la desunión. También usaremos la notación d para especificar que una especialización definida por el usuario debe tener la restricción de desunión asociada, como puede verse en la especialización {ASALARIADO, SUBCONTRATADO} de la figura 1.


Figura 4

Si las subclases no son desunidas, sus conjuntos de ocurrencias pueden solaparse, esto es, la misma ocurrencia de entidad puede ser miembro de más de una subclase de la especialización. Este caso, que es el caso por defecto, se representa mediante una O en el circulo, como se muestra en el ejemplo de la figura 4.

La segunda restricción a la especialización se llama la restricción de totalidad, la cual puede ser parcial o total. Una restricción de especialización total especifica que cada ocurrencia de entidad de la superclase debe ser miembro de alguna subclase de la especialización. Por ejemplo, si cada EMPLEADO debe se ASALARIADO o SUBCONTRATADO, entonces la especialización {ASALARIADO, SUBCONTRATADO} de la figura 1 es una especialización total de EMPLEADO; esto se representa en el diagrama ERE usando una línea doble entre el círculo y la superclase. Una línea sencilla se utiliza para representar una especialización parcial, la cual permite que una ocurrencia de entidad no pertenezca a ninguna de las subclases. Por ejemplo, si alguna ocurrencia de entidad EMPLEADO no pertenece a ninguna de las subclases {SECRETARIA, INGENIERO, TÉCNICO} de las figuras 1 y 3, entonces la especialización es parcial.

Hay que tener en cuenta que las restricciones de desunión y totalidad son independientes, por tanto habrá cuatro tipos de especialización:
    • Desunión, total
    • Desunión, parcial
    • Solapamiento, total
    • Solapamiento, parcial
Como es lógico, las restricciones correctas vienen dadas por la naturaleza del problema real aplicado a cada especialización, si embargo, la generalización en una superclase suele ser total, ya que la superclase se deriva de las subclases y, por tanto, contiene sólo ocurrencias de entidad que están en las subclases.

Reglas de inserción y borrado para Especialización y Generalización

Como consecuencia de las restricciones definidas anteriormente, aparecen reglas para la inserción y borrado de Especialización (y Generalización). Algunas de esas reglas son las siguientes:
Borrar una tupla de una superclase implica el borrado automático en todas las subclases a las que pertenezca.
Insertar una tupla en una superclase implica que tiene que ser obligatoriamente insertada en todas las subclases definidas por predicado en las que satisfaga el predicado de definición.
Insertar una tupla en una superclase de una especialización total implica una inserción obligatoria en al menos una de las subclases de la especialización.

Existen otras reglas correspondientes a los distintos tipos de especialización y a las operaciones de inserción y borrado.

Jerarquías de Especialización, Red de Especialización y Herencia Múltiple


Figura 5


Una subclase puede, a su vez, tener más subclases especificadas a partir de ella, formando una jerarquía o red de especializaciones. Por ejemplo, en la figura 5 INGENIERO es una subclase de EMPLEADO y es a su vez superclase de JEFE DE INGENIERIA ; esto representa la restricción del mundo real por la que un jefe de ingenieria debe ser un ingeniero. Una jerarquía de especialización tiene la restricción cada subclase participa (como subclase) en una relación clase/subclase. Como contraste, para una red de especialización una subclase puede ser subclase en mas de una relación clase/subclase. Por consiguiente la figura 5 representa una red de especialización.

La figura 6 muestra otra red de especialización con más de un nivel. Este diagrama podría ser parte del esquema conceptual de una Base de Datos de una universidad. La estructura sería una jerarquía si no fuese por la subclase AYUDANTE, la cual es subclase en dos relaciones clase/subclase distintas. Todas las personas pertenecientes a la Base de Datos son miembros de la entidad PERSONA, la cual se especializa en las subclases {EMPLEADO, ESTUDIANTE}. Esta especialización tiene solapamiento. Por ejemplo, un empleado puede a su vez ser estudiante. La subclase ESTUDIANTE es superclase de la especialización {DE TFC, DE CURSOS }, mientras que EMPLEADO es superclase de la especialización {LABORAL, DOCENTE, AYUDANTE}. Hay que tener en cuenta que AYUDANTE es también subclase de ESTUDIANTE. Finalmente, AYUDANTE es superclase de la especialización {INVESTIGACION, DOCENCIA}.

Figura 6

En tal red o jerarquía de especialización, una subclase hereda no solamente los atributos de su superclase directa, sino también todos los de sus predecesores hasta la raíz. Por ejemplo, una ocurrencia de entidad DE TFC hereda los valores de sus atributos como ocurrencia de ESTUDIANTE y PERSONA. Hay que tener en cuenta que una ocurrencia de entidad puede existir en distintas hojas de la jerarquía; por ejemplo, un miembro de DE TFC puede también ser miembro de INVESTIGACION.

Una subclase con más de una superclase se llama subclase compartida. Por ejemplo, si cada JEFE DE INGENIERIA debe ser un INGENIERO pero también un ASALARIADO y JEFE, entonces JEFE DE INGENIERIA será una subclase compartida de las tres superclases (Figura 5.). Esto nos lleva al concepto de herencia múltiple, ya que la subclase compartida JEFE DE INGENIERIA hereda directamente atributos de varias clases. Hay que tener en cuenta que una subclase compartida implica una red; si no existen subclases compartidas estaremos en presencia de una jerarquía en vez de una red.

Aunque se ha utilizado la especialización para definir estos conceptos, la generalización es igualmente aplicable a estos. Por tanto podremos hablar de la misma forma de jerarquía de generalización y red de generalización.

Diseño Top-down frente a Bottom-up

En el proceso de especialización, solemos empezar con una entidad y a continuación definimos las subclases de la entidad mediante especializaciones sucesivas; esto es, definimos repetitivamente más agrupamientos específicos a partir de la entidad. Por ejemplo, durante el diseño de la red de especialización de la figura 6, podemos especificar primero la entidad PERSONA para la BD de una universidad. Entonces descubriremos que se van a representar dos tipos diferentes de personas en la BD: empleados de la universidad y estudiantes. Para este propósito crearemos la especialización {EMPLEADOS, ESTUDIANTES} y elegiremos la restricción de solapamiento porque una persona puede pertenecer a ambas subclases. Entonces especializaremos EMPLEADO en {LABORAL, DOCENTE, AYUDANTE}, y especializaremos ESTUDIANTE en {TFC,CURSO}. Finalmente especializaremos AYUDANTE en {INVESTIGACION,DOCENCIA}. Esta especialización sucesiva corresponde a un proceso de refinamiento conceptual top-down durante el diseño del esquema conceptual.

Hasta aquí, tendremos una jerarquía; descubriremos entonces que AYUDANTE es una subclase compartida, desde el momento en que es también una subclase de ESTUDIANTE, llevándonos esto a una red.

Es posible llegar a la misma jerarquía o red desde otra dirección. En tal caso el proceso conlleva generalización en vez de especialización y corresponde a una síntesis conceptual bottom-up. En términos estructurales, las jerarquías o redes resultantes de ambos procesos puede se idénticas; la única diferencia radica en la manera o el orden en que se especifican las clases y subclases del esquema.

En la práctica, es frecuente que no se utilice solamente especialización o solamente generalización, sino una combinación de ambos procesos. En este caso, se incorporan continuamente nuevas clases a la jerarquía o la red según se van haciendo visibles para usuarios y diseñadores.

Modelado de la generalización, agregación y asociación

Generalización


Es el resultado de la unión de 2 o más conjuntos de entidades (de bajo nivel) para producir un conjunto de entidades de más alto nivel. La generalización se usa para hacer resaltar los parecidos entre tipos de entidades de nivel más bajo y ocultar sus diferencias.

La generalización consiste en identificar todos aquellos atributos iguales de un conjunto de entidades para formar una entidad(es) global(es) con dichos atributos semejantes, dicha entidad(es) global(es) quedara a un nivel más alto al de las entidades origen.

Ejemplo: 

Tomando el ejemplo del libro de procesamiento de base de datos de David M. Kroenke.

Donde:
Se tiene las entidades Cta_Ahorro y Cta_Cheques, ambas tienen los atributos semejantes de No_Cta y Saldo, aunque además de estos dos atributos, Cta_Ahorro tiene el atributo Tasa_Interes y Cta_Cheques el atributo Saldo_Deudor. De todos estos atributos podemos juntar (generalizar) No_Cta y Saldo que son iguales en ambas entidades.

Entonces tenemos:

  

Podemos leer esta gráfica como: La entidad Cta_Ahorro hereda de la entidad CUENTA los atributos No_Cta y saldo, además del atributo de TasaInteres, de forma semejante Cta_cheque tiene los atributos de No_Cta, Saldo y SaldoDeudor.

Como podemos observar la Generalización trata de eliminar la redundancia (repetición) de atributos, al englobar los atributos semejantes. La entidad(es) de bajo nivel cuentan (heredan) todos los atributos correspondientes.

Agregación

La agregación surge de la limitación que existe en el modelado de E-R, al no permitir expresar las relaciones entre relaciones de un modelo E-R en el caso de que una relación X se quiera unir con una entidad cualquiera para formar otra relación.

La Generalización consiste en agrupar por medio de un rectángulo a la relación (representada por un rombo) junto con las entidades y atributos involucrados en ella, para formar un grupo que es considerado una entidad y ahora sí podemos relacionarla con otra entidad.

Para ejemplificar lo anterior consideremos el ejemplo del libro de fundamentos de Base de Datos de Henry F. Korth. En donde el problema consiste en que existen trabajando muchos empleados que trabajan en diferentes proyectos, pero dependiendo del trabajo que realiza en pueden llegar a utilizar un equipo o maquinaria; en este problema intervienen 3 entidades: Empleado, Proyecto y Maquinaria, el diagrama E-R correspondiente es:



Como el modelo E-R no permite la unión entre dos o más relaciones, la relación trabajo es englobada como si fuera una entidad más de la relación usa, gráficamente queda como:

      

Ahora podemos decir que la entidad trabajo se relaciona con la entidad maquinaria a través de la relación usar. Para indicarnos que un trabajo usa un determinado equipo o maquinaria según el tipo de trabajo que se trate.

Asociación

La abstracción de asociación sirve para asociar objetos de varias clases independientes; por tanto, es similar a la segunda aplicación de la agregación. Se representa en el MERE (Modelo Entidad-Relación Extendido)  mediante un vínculo, denominado ESTA_ASOCIADO_A.

La diferencia principal entre agregación y asociación es que, cuando se elimina una ocurrencia de asociación, los objetos participantes siguen existiendo. Sin embargo, si manejamos la noción de objeto agregado, por ejemplo VEHICULO, que se compone de los objetos MOTOR, CHASIS y RUEDAS, entonces, la eliminación del objeto agregado equivale a eliminar sus objetos componentes.

Modelado de las clases, superclases, la especialización

El Modelo Entidad-Relación Extendido incluye todos los conceptos del Entidad-Relación e incorpora los conceptos de Subclase y superclase con los conceptos asociados de Especialización y Generalización. Otro nuevo concepto incluido por el ERE es el de Categoría. Asociado a estos conceptos está el importante mecanismo de Herencia de atributos. Habrá que tener en cuenta que no existe una terminología estandarizada para estos conceptos, por lo que usaremos la mas difundida.


Subclases, Superclases y Especialización

En el modelo Entidad-Relación, una entidad agrupa un conjunto de ocurrencias de entidad del mismo tipo. En muchos casos, estas ocurrencias se pueden agrupar a su vez en otros subconjuntos que tienen un significado propio para los propósitos de la Base de

Datos y, por tanto, deberían representarse de forma explícita. Por ejemplo, la entidad EMPLEADO puede a su vez subdividirse en SECRETARIA, INGENIERO, JEFE, TÉCNICO, ASALARIADO, SUBCONTRATADO, etc. El conjunto de ocurrencias de entidad en cada una de estas entidades será un subconjunto de las ocurrencias de entidad de EMPLEADO, ya que por ejemplo, un ingeniero también es un empleado. Llamaremos a cada uno de estos subconjuntos Subclases de la entidad EMPLEADO y a EMPLEADO una Supercalse de cada uno de estos subconjuntos.

Llamaremos a la relación existente entre las Superclases y las Subclases como relación Clase/Subclase. En el ejemplo anterior, EMPLEADO/SECRETARIA y EMPLEADO/TÉCNICO son dos relaciones Clase/Subclase. Hay que tener en cuenta que una ocurrencia de una Subclase representa el mismo objeto real que alguna correspondiente a su Superclase, por ejemplo la SECRETARIA "Concha Leco" será también la EMPLEADO "Concha Leco". Por tanto, la ocurrencia de Subclase es la misma que en la Superclase pero con un rol específico. Una ocurrencia de Subclase no tienen sentido si no es a su vez ocurrencia de Superclase. Por otro lado, una ocurrencia de superclase puede ser a su vez ocurrencia de varias subclases o de ninguna. Por ejemplo, "Roberto Mate" como ocurrencia de EMPLEADO puede a su vez pertenecer a subclases INGENIERO y ASALARIADO.

Herencia de atributos en la relación Clase/subclase

Debido a que una subclase es a su vez parte se una superclase, la subclase tendrá sus atributos específicos así como los atributos correspondientes a la superclase a la que pertenece. Esto quiere decir que la ocurrencia de entidad de una subclase hereda los atributos correspondientes a la superclase a la que pertenece. De la misma manera hereda las relaciones en las que su correspondiente superclase participa.

Especialización

El proceso por el que se definen las diferentes subclases de una superclase se conoce como especialización. El conjunto de subclases se define basándonos en características diferenciadoras de las ocurrencias de entidad de la superclase. Por ejemplo, el conjunto se subclases {SECRETARIA, INGENIERO, TECNICO} es una especialización de la superclase EMPLEADO mediante la distinción del tipo de trabajo en cada ocurrencia de entidad. Podemos tener varias especializaciones de una misma entidad basándonos en distintos criterios. Por ejemplo, otra especialización de EMPLEADO podría dar lugar a las subclases ASALARIADO y SUBCONTRATADO, dependiendo del tipo de contrato.

Diagramas ERE

La figura 1 muestra como se representa la especialización en un diagrama ERE. Las subclases definidas por una especialización están unidas mediante líneas a un circulo, que conecta con la superclase. El símbolo de pertenencia en las líneas entre las subclases y el circulo representan la dirección de la relación clase/subclase. Los tributos aplicables solamente a cada una de las subclases se unen a estas mediante arcos (por ejemplo, velocidad en la subclase SECRETARIA). Estos atributos se denominan atributos específicos de la subclase. Las subclases también pueden tener relaciones especificas con otras entidades (por ejemplo, la relación PERTENECE entre SUBCONTRATADO y EMPRESA). El símbolo d del círculo se explicará mas adelante.

Utilización de subclases en los modelos de datos

Hay dos razones principales para el uso de la relación clase/subclase en los modelos de datos. La primera es que ciertos atributos no pueden ser aplicados a todas las ocurrencias de entidad correspondiente a la superclase. Una subclase se define para agrupar aquellas ocurrencias de entidad donde el atributo es aplicable. Suele ocurrir que las subclases comparten la mayoría de los atributos correspondientes a la supercalse. Por ejemplo, SECRETARIA tiene el atributo de velocidad mientras que INGENIERO tienetipo, sin embargo ambos comparten los mismos atributos de EMPLEADO.




 figura 1


La segunda razón para la utilización de subclases es que algunas relaciones pueden tener sentido solo para algunas ocurrencias de entidad de la superclase. Por ejemplo, si solo los empleados subcontratados pueden pertenecer a otras empresas, podremos representar este hecho mediante la creación de la subclase SUBCONTRATADO y relacionarla con la entidad EMPRESA mediante la relación PERTENECE, como se puede ver en la figura 1.

Diferencias entre el modelo ER y el modelo ER extendido (EER)

Modelo Entidad - Relación

Un diagrama o modelo entidad-relación (a veces denominado por sus 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 así como sus interrelaciones y propiedades.

Modelado Entidad-Relación

El Modelo Entidad-Relación.
  1. Se elabora el diagrama (o diagramas) entidad-relación.
  2. Se completa el modelo con listas de atributos y una descripción de otras restricciones que no se pueden reflejar en el diagrama.
Dado lo rudimentario de esta técnica se necesita cierto entrenamiento y experiencia para lograr buenos modelos de datos.
El modelado de datos no acaba con el uso de esta técnica. Son necesarias otras técnicas para lograr un modelo directamente implementable en una base de datos. Brevemente:
  • Transformación de relaciones múltiples en binarias.
  • Normalización de una base de datos de relaciones (algunas relaciones pueden transformarse en atributos y viceversa).
  • Conversión en tablas (en caso de utilizar una base de datos relacional).

Diagrama entidad-relación

Anteriormente detallamos los conceptos relacionados al modelo ER, en esta sección profundizaremos en como representarlos gráficamente. Cabe destacar que para todo proceso de modelado, siempre hay que tener en claro los conceptos, estos nos brindan conocimiento necesario y además fundamentan nuestro modelo al momento de presentarlo a terceros.
Formalmente, los diagramas ER son un lenguaje gráfico para describir conceptos. Informalmente, son simples dibujos o gráficos que describen información que trata un sistema de información y el software que lo automatiza.

Entidad
Las entidades son el fundamento del modelo entidad relación. Podemos adoptar como definición de entidad cualquier cosa o parte del mundo que es distinguible del resto. Por ejemplo, en un sistema bancario, las personas y las cuentas bancarias se podrían interpretar como entidades. Las entidades pueden representar entes concretos, como una persona o un avión, o abstractas, como por ejemplo un préstamo o una reserva. Se representan por medio de un rectángulo.

Atributo
Se representan mediante un círculo o elipse etiquetado mediante un nombre en su interior. Cuando un atributo es identificativo de la entidad se suele subrayar dicha etiqueta.

Relaciones
Se representa mediante un rombo etiquetado en su interior con un verbo. Este rombo se debe unir mediante líneas con las entidades (rectángulos) que relaciona, para asi saber cual es la relacion que lleva cada uno

Por motivos de legibilidad, los atributos no suelen representarse en un diagrama entidad-relación, sino que se describen textualmente en otros documentos adjuntos.

Ejemplo de Diagrama E-R


Diagramas Extendidos

Los diagramas Entidad-Relación no cumplen su propósito con eficacia debido a que tienen limitaciones semánticas. Por ese motivo se suelen utilizar los diagramas Entidad-Relación extendidos que incorporan algunos elementos más al lenguaje:

Entidades fuertes y débiles
Cuando una entidad participa en una relación puede adquirir un papel fuerte o débil. Una entidad débil es aquella que no puede existir sin participar en la relación, es decir, aquella que no puede ser unívocamente identificada solamente por sus atributos. Una entidad fuerte (también conocida como entidad regular) es aquella que sí puede ser identificada unívocamente. En los casos en que se requiera, se puede dar que una entidad fuerte "preste" algunos de sus atributos a una entidad débil para que, esta última, se pueda identificar.

Las entidades débiles se representan- mediante un doble rectángulo, es decir, un rectángulo con doble línea.

Cardinalidad de las relaciones

El tipo de cardinalidad se representa mediante una etiqueta en el exterior de la relación, respectivamente: "1:1", "1:N" y "N:M", aunque la notación depende del lenguaje utilizado, la que más se usa actualmente es el unificado. Otra forma de expresar la cardinalidad es situando un símbolo cerca de la línea que conecta una entidad con una relación:
"0" si cada instancia de la entidad no está obligada a participar en la relación.
"1" si toda instancia de la entidad está obligada a participar en la relación y, además, solamente participa una vez.
"N" , "M", ó "*" si cada instancia de la entidad no está obligada a participar en la relación y puede hacerlo cualquier número de veces.

Ejemplos de relaciones que expresan cardinalidad:

Cada esposo (entidad) está casado (relación) con una única esposa (entidad) y viceversa. Es una relación 1:1.
Una factura (entidad) se emite (relación) a una persona (entidad) y sólo una, pero una persona puede tener varias facturas emitidas a su nombre. Todas las facturas se emiten a nombre de alguien. Es una relación 1:N.
Un cliente (entidad) puede comprar (relación) varios artículos (entidad) y un artículo puede ser comprado por varios clientes distintos. Es una relación N:M.

Atributos en relaciones
Las relaciones también pueden tener atributos asociados. Se representan igual que los atributos de las entidades. Un ejemplo típico son las relaciones de tipo "histórico" donde debe constar una fecha o una hora. Por ejemplo, supongamos que es necesario hacer constar la fecha de emisión de una factura a un cliente, y que es posible emitir duplicados de la factura (con distinta fecha). En tal caso, el atributo "Fecha de emisión" de la factura debería colocarse en la relación "se emite".

Herencia
La herencia es un intento de adaptación de estos diagramas al paradigma orientado a objetos. La herencia es un tipo de relación entre una entidad "padre" y una entidad "hijo". La entidad "hijo" hereda todos los atributos y relaciones de la entidad "padre". Por tanto, no necesitan ser representadas dos veces en el diagrama. La relación de herencia se representa mediante un triángulo interconectado por líneas a las entidades. La entidad conectada por el vértice superior del triángulo es la entidad "padre". Solamente puede existir una entidad "padre" (herencia simple). Las entidades "hijo" se conectan por la base del triángulo.

Ejemplo de un Diagrama E-R Extendido

Agregación
Es una abstracción a través de la cual las relaciones se tratan como entidades de un nivel más alto. Se utiliza para expresar relaciones entre relaciones o entre entidades y relaciones. Se representa englobando la relación abstraída y las entidades que participan en ella en un rectángulo. En la figura se muestra un ejemplo de agregación en el que se representa la situación en la que un profesor, cuando está impartiendo una clase, puede poner una incidencia ocurrida a lo largo de ésta (se fue la luz, falta la configuración de un determinado software, etc.).

Ejemplo de Agregación