Diseño conceptual

Modelo Entidad - Relación

El modelo Entidad-Relación fue desarrollado en los años 70, y sigue en pleno apogeo en el campo del diseño de las bases de datos. Su éxito se debe a su capacidad para representar prácticamente todas las restricciones posibles del diseño de bases de datos. Además, este modelo ha sido ampliado a lo largo de los años con el fin de adaptarse a las nuevas necesidades.

Este modelo percibe el mundo real como una serie de objetos relacionados entre sí, representándolos gráficamente mediante un determinado mecanismo de abstracción. Dicho mecanismo se basa en una serie de reglas, símbolos y métodos que permiten representar los datos de interés del mundo real.

El modelo Entidad-Relación nació como generalización de los modelos de Red, Jerárquico y Relacional, aprovechando las ventajas de cada modelo. Es por esto, que el modelo Entidad-Relación permite una visión más natural de los datos, separando los objetos de sus asociaciones (como el modelo de Red), mantiene un alto grado de independencia de los datos respecto a los tratamientos (como el modelo Relacional), y establece un cierto nivel de dependencia o jerarquía entre los distintos elementos componentes del modelo (como el modelo Jerárquico).

Con este modelo realizamos el diseño lógico de la base de datos, sin preocuparnos de cómo se almacenarán los datos. Es decir, el diseño resultante se asemeja al esquema conceptual definido para el modelo relacional, más concretamente, a la arquitectura ANSI/X3/SPARC.

El modelo Entidad-Relación es un modelo de datos que utiliza los Diagramas Entidad-Relación para representar el "mundo" de la base de datos. Los elementos que componen este modelo son:

  • Entidades
  • Atributos
  • Relaciones

Cada elemento tiene asociado una forma de representación, un símbolo que lo distingue de los otros elementos.

Entidades

Una entidad es un objeto real o abstracto del que se puede obtener cierta información, ya sea una persona, un lugar, un cargo, etc. No hay que confundir una entidad con un ocurrencia de entidad, siendo ésta última una ocurrencia concreta de una entidad. Por ejemplo, si tenemos la entidad persona, una ocurrencia de entidad podría ser pepe pérez. La forma de representar una entidad en este modelo es la mostrada en la figura de la derecha, un rectángulo con el identificador de la entidad dentro.

entidad.jpg

Ejemplo 1

Identificar las entidades que aparezcan en la siguiente especificación de requisitos:

Básicamente, la información a almacenar se centra en la existente para los cursos así como la de los recursos disponibles para ellos. Entre éstos se contempla, además de los recursos materiales, los profesores y personal de mantenimiento que se encarga de tener a punto la infraestructura.

El centro dispone de equipos informáticos que se asignan a cada uno de los cursos a medida que se van realizando. Asimismo, el centro desea conocer los datos de los alumnos que han participado (o lo están haciendo en estos momentos) en los diferentes cursos, siendo importante la fecha de incorporación al curso, puesto que pueden haberlo hecho una vez que el curso ya ha dado comienzo.

En el diagrama Entidad-Relación las entidades son los objetos de los que se desea almacenar información. Por lo tanto, tenemos que "encontrar" dichos objetos en la especificación de requisitos.

En la especificación de requisitos se dice que un centro de enseñanza quiere almacenar en una base de datos la información relativa a los cursos que imparte, así como de sus recursos. Dichos recursos se dividen en recursos humanos y materiales. Los recursos humanos son los profesores, los alumnos y el personal de mantenimiento. Los recursos materiales son los equipos informáticos. En resumen, las entidades del diagrama Entidad-Relación son:

1. Cursos
2. Profesores
3. Alumnos
4. Personal de mantenimiento
5. Equipos informáticos

Atributos

Un atributo es una característica o propiedad de una entidad, como por ejemplo el nombre, direccion, dni, etc. de una persona. Por lo tanto todas las ocurrencias de dicha entidad tendrán asociadas los atributos de la entidad. Un atributo se representa gráficamente mediante una elipse con el identificador del atributo, como se puede ver en la figura de la derecha (nombre es un atributo de la entidad persona).

Al hablar de atributos hay que hablar de dominios. Un dominio es el conjunto de valores que puede tomar un atributo. Podría definirse un atributo como Función que a una característica de la entidad le asigna un dominio. Hay 2 tipos de atributos:

  • Atributo identificador: Distingue unívocamente una ocurrencia de entidad del resto de ocurrencias. Por ejemplo, el dni sería un atributo identificador, ya que no hay 2 personas con el mismo dni.
  • Atributo descriptor: Caracteriza una ocurrencia de entidad, pero no la diferencia del resto de ocurrencias. Por ejemplo, el nombre sería un atributo descriptor, ya que puede haber más de una persona con el mismo nombre.
atrib.jpg

Relaciones

Una relación es una asociación entre entidades con ciertas restricciones determinadas por las entidades participantes en la relación. Ejemplos de relación podrían ser: profesor imparte curso, propietario alquila piso, persona asiste a reunión, etc. Una relación se representa gráficamente mediante un rombo con el identificador de la relación en su interior, como puede observarse en la figura de la derecha. Una ocurrencia de relación es es una asociación de dos entidades concretas (ocurrencias de entidad). Una relación se caracteriza por las siguientes propiedades:

  • Grado: Número de entidades sobre las que se realiza la asociación. Puede haber más de dos entidades relacionadas, o incluso relacionarse una entidad consigo misma
  • Cardinalidad: Tipo de asociación establecida entre las entidades. Ya veremos esto más adelante
rela.jpg

Por último, añadir que las relaciones pueden tener atributos propios. Esto ocurre cuando interesa conocer un dato de la asociación entre dos ocurrencias de entidad concretas. Por ejemplo, si tengo dos entidades asociadas e interesa conocer en qué fecha se produce la "relación" entre dos ocurrencias de entidad, la relación debería tener un atributo fecha para tal fin.

Cardinalidades

El diagrama Entidad-Relación debe reflejar una serie de restricciones para conseguir un correcto diseño de la base de datos. Vamos a ver en qué consiste la cardinalidad de las relaciones.

La cardinalidad se define como el número de ocurrencias de entidad asociadas a otra ocurrencia de entidad mediante una relación. Recordar que una entidad puede relacionarse consigo misma. Vamos a suponer una relación binaria, es decir, una relación entre 2 entidades, grado de la relación igual a 2 (con más entidades es lo mismo; sólo hay que adaptar la notación). Las posibles cardinalidades de la relación son las siguientes:

Cardinalidad 1:1

Una ocurrencia de entidad se asocia como máximo con una única ocurrencia de entidad. Por ejemplo: una persona tiene un único coche, y un coche pertenece a una sola persona.

1-1.jpg

Para interpretar este diagrama no hay más que seguir los pasos indicados en la figura: 1 persona tiene 1 coche, y además, 1 coche pertenece a (es tenido por) 1 persona.

1-1pasos.jpg

Cardinalidad 1:N

Una ocurrencia de entidad se asocia con un número indeterminado de ocurrencias de entidad. Por ejemplo: una persona puede tener varios coches, pero cada coche pertenece a una sola persona.

1-n.jpg

Cardinalidad N:N

Una ocurrencia de entidad se asocia con un número indeterminado de ocurrencias de entidad y viceversa. Por ejemplo: una persona puede tener varios coches, y cada coche puede pertenecer a varias personas.

n-n.jpg

Nota: Si la relación tuviera grado 3, habría que etiquetar todos los arcos (entre las entidades y la relación).

Ejemplo de diagrama Entidad-Relación con una relación ternaria

Una agencia matrimonial quiere informatizar los datos referentes a sus clientes. En la agencia se organizan fiestas en las que se concretan citas entre personas de diferente sexo. Para la agencia es importante conocer qué hombre tiene concertada una cita con qué mujer, a qué hora, y en qué fiesta.

er3.jpg

Según la especificación de requisitos, debe establecerse una relación entre las 3 entidades. Además, dicha relación debe tener un atributo hora, ya que interesa conocer a qué hora tiene lugar la cita. A la hora de interpretar las cardinalidades del diagrama, hay que fijarse en los "colores" que hemos dado a dichas cardinalidades. Por ejemplo, entre hombre y fiesta las cardinalidades están representadas en color rojo, y entre hombre y mujer en color verde.

Nota: El propósito del anterior ejemplo es reflejar una relación ternaria. Es por esto que no se han especificado los atributos de las entidades. Sin embargo, sí que aparece una atributo en la relación cita.

Práctica Diagrama E-R

Claves

Ya hemos visto que las entidades tienen atributos, y hemos visto que dichos atributos pueden ser de 2 tipos. Decíamos que los atributos identificadores eran aquellos que identificaban unívocamente una ocurrencia de entidad de cualquier otra. Pues bien, ese atributo o conjunto de atributos reciben el nombre de clave. Definiremos descriptor como un conjunto de atributos (uno o más). Por lo tanto diremos que una clave es un descriptor que identifica de manera única a una entidad.

Pueden darse casos en los que una entidad tenga más de un descriptor que cumpla los requisitos necesarios para ser clave. Dicho descriptores serán claves candidatas, y habrá que decidir cual tendrá más prioridad. Dicho esto, pueden clasificarse las claves en:

  • Clave primaria: Descriptor clave elegido como clave
  • Clave secundaria: Descriptores clave no elegidos como clave primaria

Las relaciones también pueden tener clave primaria. Si no tuvieran atributos, y por lo tanto no tuvieran clave, su clave se formaría como unión de las claves primarias de las entidades a las que asocia. Pero esto ya lo veremos más detalladamente en el paso a tablas.

En el diagrama Entidad-Relación, las claves se representan subrayando el o los atributos que la componen. En el ejemplo de la derecha, el atributo Dni aparece subrayado, lo que indica que forma parte de la clave primaria. En este caso, al ser el único atributo subrayado, es la clave primaria.

claves.jpg

Además de las claves primarias y secundarias, existen otro tipo de claves llamadas claves foráneas o extranjeras. Estas claves se definen al transformar el diagrama Entidad-Relación en tablas. Supongamos que tenemos 2 entidades. La entidad A genera una tabla con una clave primaria y la entidad B genera otra tabla con su clave primaria. Debido a ciertas circunstancias que veremos más adelante, en la tabla de la entidad A debe aparecer como una nueva columna la clave primaria de la entidad B. Por lo tanto, para la tabla de la entidad A, dicha clave será una clave foránea.

Ejemplo 2

Diseñar el diagrama Entidad-Relación de una base de datos a partir de las siguientes especificaciones:

El departamento de formación de una Empresa desea construir una B.D para planificar y gestionar la formación de sus empleados. La empresa organiza cursos internos de formación para los empleados. Cada empleado puede inscribirse en todos los cursos que quiera, pero no puede hacerlo de más de 3 al mismo tiempo (igual fecha de inicio). De los cursos interesa conocer el código de curso, que será específico de cada curso, el nombre, que puede repetirse y N° de horas de duración. De los empleados se desea almacenar su código de empleado, nombre, NIF y salario, siendo clave el código de empleado.

Se trata de una relación binaria con cardinalidad N:N, ya que cada empleado puede inscribirse en varios cursos, y en cada curso puede haber varios empleados. La restricción de que un mismo empleado no pueda inscribirse en más de 3 cursos con la misma fecha de inicio nos obliga a añadirle a la relación reciben el atributo F. Inicio, para controlar cuando comienza cada curso en el que un empleado se inscriba. La clave de la entidad empleados se especifica, y la de la entidad cursos será el código, ya que es el único atributo identificativo de dicha entidad.

grafico.jpg

Ejemplo 3

Diseñar el diagrama Entidad-Relación de una base de datos a partir de las siguientes especificaciones:

Se quiere diseñar una base de datos relativa a la historia de la Europa medieval, con datos sobre los caballeros, las provincias en que gobernaron, en qué cruzadas participaron, etc. La información a almacenar es la siguiente:

  • Caballeros: hay que conocer su nombre y lugar de nacimiento. Interesa saber de quién son hijos, teniendo en cuenta que un caballero debía ser hijo de otro caballero. Hay que saber en qué provincia nacieron, en qué provincia gobernaron y en qué guerras participaron bajo las órdenes del rey.
  • Provincias: hay que conocer el número de habitantes de cada una. su nombre, los caballeros que la han gobernado y los que han nacido allí. Una provincia puede ser gobernada por varios caballeros (en fechas distintas), y un caballero puede gobernar en varias provincias. Interesa conocer la fecha de comienzo y final de gobierno de cada caballero en cada provincia.
  • Cruzada: interesa conocer su nombre, contra quién fue la cruzada y su resultado, así como los caballeros y los reyes participantes. En una cruzada puede participar más de un rey.
  • Rey: hay que almacenar su nombre, fecha de comienzo y fin del reinado y el país sobre el que reina. Interesa saber el número de cruzadas en las que participó.

Las relaciones entre las entidades caballeros y provincia tienen cardinalidad N:N, teniendo la relación gobiernan un atributo fecha necesario para conocer cuándo gobernó un caballero en una provincia. La relación unaria tienen hijos de la entidad caballeros tiene cardinalidad 1:N, ya que un caballero puede tener varios hijos y sólo un padre. La clave de la entidada caballeros está compuesta por los atributos nombre y fecha, ya que puede haber caballeros con el mismo nombre en diferentes fechas.

La clave de la entidad reyes está formada por los atributos nombre y país ya que puede haber reyes con el mismo nombre en diferentes países.

Hay una relación ternaria participan entre las entidades caballeros, rey y cruzada, ya que tanto caballeros como reyes intervienen en cruzadas.

er-caballeros.jpg

Clase de pertenencia

Este concepto, también llamado cardinalidad mínima, se utiliza para especificar si todas las ocurrencias de una entidad participan en la relación establecida con otra u otras entidades. La cardinalidad mínima puede ser:

  • Obligatoria: Toda ocurrencia de una entidad A debe estar asociada con al menos una ocurrencia de la entidad B a la que está asociada mediante una relación. La cardinalidad mínima es 1.
  • Opcional: No toda ocurrencia de una entidad A tiene que estar asociada con alguna ocurrencia de la entidad B a la que está asociada mediante una relación. La cardinalidad mínima es 0.

En el diagrama Entidad-Relación se puede representar la clase de pertenencia de diferentes maneras. La forma más clara de hacerlo es la mostrada en el gráfico, en el que sólo se representará la clase de pertenencia opcional, mediante una elipse "cortando" el arco que une la relación con la entidad.

cp1.jpg

Otra forma de representar la cardinalidad mínima es añadiéndola a las cardinalidades normales, por llamarlas de alguna manera, de tal modo que se coloca entre paréntesis la cardnialidad mínima seguida de la normal.

cp2.jpg

« MySQL 4 | Introducción y diseño

Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution-ShareAlike 3.0 License