Modelo Entidad-Relación (E-R)

El Modelo de Datos Entidad-Relación

Entidades y Relaciones

Representación Gráfica de Entidades y Relaciones

¿Cómo se pasa del esquema E/R a las tablas?

Ejemplo de una universidad

Creación de Tablas

Tabla Alumno

Tabla Asignatura

Tabla Matricula

Creación de Relaciones

Exigir Integridad Referencial

Actualizar en cascada los campos relacionados

Eliminar en cascada los registros relacionados


El Modelo de Datos Entidad-Relación (E/R)

       Cuando se utiliza una base de datos para gestionar información, se está plasmando una parte del mundo real en una serie de tablas, registros y campos ubicados en un ordenador; creándose un modelo parcial de la realidad. Antes de crear físicamente estas tablas en el ordenador se debe realizar un modelo de datos.

       Se suele cometer el error de ir creando nuevas tablas a medida que se van necesitando, haciendo así el modelo de datos y la construcción física de las tablas simultáneamente. El resultado de esto acaba siendo un sistema de información parcheado, con datos dispersos que terminan por no cumplir adecuadamente los requisitos necesarios.

Entidades y Relaciones

       El modelo de datos más extendido es el denominado ENTIDAD/RELACIÓN (E/R) En el modelo E/R se parte de una situación real a partir de la cual se definen entidades y relaciones entre dichas entidades:

Representación gráfica de Entidades y Relaciones

       Para asimilar fácilmente un diseño de datos cuando se emplea el modelo E/R se utilizan los siguientes elementos gráficos:



       La utilización de estos elementos dará como resultado lo que se denomina el esquema entidad-relación de la base de datos. Los ejemplos que se incluyen en el apartado anterior, gráficamente quedarían como sigue:



¿Cómo se pasa del esquema E/R a las tablas?

       Para cada entidad del esquema se creará una tabla con tantos campos como atributos tenga la entidad. Ejemplo:

Tabla 'TRABAJADOR'

DNI NUM_SS nombre-apellidos ...     
11111111 XXXXXXXXXXX Fulano de tal ...
22222222 YYYYYYYYYYY Mengano de cual ...
...... ...... ...... ......

       Las relaciones 1-1 se pueden reflejar incluyendo en una de las dos tablas un campo en el que poder colocar la clave del elemento de la otra tabla con el que se está relacionado. Ese nuevo campo que se incluye en la tabla recibe el nombre de clave ajena. Ejemplo:

Tabla 'HOMBRE'

DNI Nombre ...     
11111111 ... ...
22222222 ... ...
... ... ...

Tabla 'MUJER'

DNI Nombre ...      DNI-ESPOSO
33333333 ... ... 11111111
44444444 ... ... (nulo)
... ... ... ...

       Donde el campo DNI-ESPOSO es clave ajena de la tabla HOMBRE. Aquí hay que hacer notar que el campo DNI-ESPOSO puede tomar o bien un valor nulo, en el caso de aquellas mujeres que no estén casadas, o bien el valor de alguno de los DNI de la tabla HOMBRE, en el caso de las mujeres casadas; en este segundo caso, ese DNI (la clave ajena) no se deberá repetir en ningún otro registro de la tabla MUJER.

       Las relaciones 1-n se representan de forma muy parecida a como se ha explicado para las relaciones 1-1. La diferencia está en que ahora no es indiferente donde se coloque la clave ajena, esta debe estar obligatoriamente en la tabla del 'mucho' (n); y además, para este caso si se permitirá que haya valores repetidos en dicho campo. Ejemplo:

Tabla 'EMPRESA'

CIF Nombre ...     
XX-1111-AA ... ...
YY-2222-BB ... ...
... ... ...

Tabla 'TRABAJADOR'

DNI Nombre ...      CIF
11111111 ... ... XX-1111-AA
22222222 ... ... YY-2222-BB
33333333 ... ... YY-2222-BB
44444444 ... ... XX-1111-AA
... ... ... ...

       Para representar las relaciones n-n en tablas lo que se hace es crear una nueva tabla solamente para la relación. Esta nueva tabla tendrá dos claves ajenas y su propia clave estará formada por la unión de las claves ajenas. Ejemplo:

Tabla 'ALUMNO'

DNI Nombre ...     
11111111 ... ...
22222222 ... ...
... ... ...

Tabla 'ASIGNATURA'

COD-ASIGNATURA Nombre ...     
01 ... ...
02 ... ...
... ... ...

Tabla 'MATRÍCULA'(esta es la relación)

DNI COD_ASIGNATURA NOTA
11111111 01 7.5
11111111 02 6.25
22222222 01 5.5
22222222 02 8
... ... ...

       En la tabla MATRÍCULA es donde se refleja la relación. La clave de dicha tabla está formada por los campos DNI y COD-ASIGNATURA ; y cada uno de ellos es clave ajena, el primero de ALUMNO y el segundo de ASIGNATURA. Hacer ver aquí que la tabla MATRICULAS puede tener más campos además de los que son clave ajena como ocurre en el ejemplo; la tabla añade además un campo NOTA.

Ejemplo de una Universidad

Creación de Tablas

Tabla Alumno

En una Universidad, si tenemos la entidad Alumno que definimos como:
Tabla ALUMNO(DNI, Nombre, Apellido1, Apellido2, Telefono, Calle, Ciudad, Provincia, FNacimiento, EstadoCivil)
CP: DNI
Creando la tabla en vista "Diseño" obtenemos:


Tabla Asignatura

Y la entidad Asignatura definida como:
ASIGNATURA(Codigo, Nombre, Creditos, Dni_prof, Observaciones)
CP:Codigo

Tabla Matricula

Y sabiendo que un alumno se puede matricular de muchas asignaturas y que una asignatura a su vez puede tener muchos alumnos matriculados, podemos definir entre ambas entidades la relación (n-m) matricula como:

MATRICULA(DNI, Codigo_asig, Fecha, Nota)
CP:DNI,Codigo_asig,Fecha
Y la tabla quedaría como:

Creación de Relaciones

Seleccionamos la opción Relaciones del menú Herramientas:





Agregamos las tablas (Alumno,Asignatura y Matricula):





Que son:





Y por último sólo falta arrastrar los campos relacionados de la tabla con la relación 1 a la tabla con la relación muchos, es decir crear las relaciones, en las que seleccionaremos siempre :

 

Exigir Integridad Referencial

Actualizar en cascada los campos relacionados

Eliminar en cascada los registros relacionados

En el caso de Alumno-Matricula (1 Alumno.DNI se puede repetir n veces en Matricula.DNI) arrastramos el Alumno.DNI sobre la Matricula.DNI:





Y si repetimos la misma operación entre Asignatura.Codigo y Matricula.Codigo_asig queda el esquema E-R en Access según se muestra en la figura siguiente: