Modelo Entidad-Relación.

 

En primer lugar recomiendo buscar información y/o bibliografía sobre el modelo entidad-relación, es una forma de analizar lo que tenemos y de llevarlo a una base de datos.

 

De forma muy resumida indicar que consiste en:

 

1.     Identificar entidades, sus características y su clave principal.

 

Entidades son aquellos grupos de cosas que tienen características comunes y que pueden formar un conjunto de cosas, es decir aquello que tiene entidad, en nuestro caso, entidades pueden ser los vehículos, los conductores, etc.

 

Característica es aquello que define a los integrantes de una entidad, en el caso de conductores las características podrían ser, DNI, Nombre, FechaNacimiento, etc.

 

Clave principal es una característica que no se puede repetir entre los miembros de una entidad y que no puede quedar vacía, siguiendo con el ejemplo de los conductores, podría ser el DNI si suponemos que dos conductores distintos no pueden tener el mismo DNI, y que todo conductor tiene un DNI.

 

2.     Identificar las relaciones existentes entre las entidades.

 

Estas relaciones se analizan tomando las entidades de dos en dos, por ejemplo entidad A y entidad B, y determinando con cuantos elementos de la entidad B puede estar relacionado un elemento de la entidad A y viceversa.

 

Con esta forma de analizar las relaciones, podemos tener tres tipos de relaciones:

 

Uno a uno, cuando un elemento de la entidad A solo puede estar relacionado con un elemento de la entidad B y viceversa.

Este tipo de relación no se suele usar mucho pero existe, imaginemos una base de datos donde tenemos personas, y decidimos separar los datos personales de los profesionales, una persona de la tabla DatosPersonales solo puede estar relacionada con una persona de la tabla DatosProfesionales y viceversa.

 

Uno a muchos, cuando un elemento de la entidad A solo puede estar relacionado con un elemento de la entidad B, y un elemento de la entidad B puede estar relacionado con más de un elemento de la entidad A.

 

Muchos a muchos, cuando un elemento de la entidad A puede estar relacionado con más de un elemento de la entidad B, y un elemento de la entidad B puede estar relacionado con más de un elemento de la entidad A.

 

Es importante tener en cuenta que cuando hablo de relaciones digo “puede estar relacionado” y no digo “está relacionado”, no es suficiente con analizar la relación en un momento dado, hay que analizar la relación en el periodo en que queramos que sean válidos la relación y los datos que tengamos en nuestra base de datos, me explico:

 

Si tenemos una base de una empresa con datos de empleados y datos de despachos, podemos pensar que en un momento dado una persona solo puede tener asignado un despacho, y que un despacho solo puede ser asignado a una persona. En este caso podemos decir que la relación es uno a uno. Ahora bien si en la empresa se trabaja a turnos es posible que una persona solo tenga asignado un despacho pero que un despacho esté asignado a varias personas (una por turno) en este caso tenemos una relación uno a muchos. En el supuesto de que en cada cambio de turno modifiquemos los datos de nuestra base es posible que una relación uno a uno nos valga. Siguiendo con el mismo ejemplo imaginemos que en esta empresa que se trabaja a turnos las personas rotan de puesto de trabajo y que según el puesto que desempeñen ocupan un despacho u otro. En este caso si queremos guardar un histórico podemos considerar que la relación es muchos a muchos.

 

Hay quien sostiene que toda entidad de una base de datos tiene que tener al menos una relación con otra entidad de dicha base, de los contrario dicha entidad no pertenece a la base que estamos contemplando. Yo pienso que esta afirmación no debe cogerse al pié de la letra, pero casi.

 

Es buena práctica plasmar todo lo anterior en un papel y darle todas las vueltas necesarias antes de trasladarlo a una base de datos.

 

Resumiendo, tenemos que definir: Entidades, características, clave principal, y relaciones.

 

3.     ¿Cómo pasamos esto a una base de datos, por ejemplo de Access?

 

Entidad à Tabla

 

Característica à Campo

 

Clave principal à Clave principal

 

Elemento de una entidad à Registro de una tabla

 

Relación uno a uno à Relacionamos las claves principales de ambas tablas.

Por ejemplo una tabla con datos personales y el DNI como clave principal, y otra tabla con datos profesionales y el DNI como clave principal, de esta forma tendremos relacionados los registros de ambas tablas que tengan el mismo valor en el campo DNI.

 

Relación uno a muchos à En la tabla del lado muchos ponemos un campo donde guardar el valor de la clave principal de la tabla del lado uno.

Por ejemplo tabla países y tabla ciudades (un país muchas ciudades, una ciudad solo un país), en la tabla ciudades ponemos un campo donde guardar el valor de la clave principal del país.

 

Relación muchos a muchos à Hay que generar una nueva tabla en la que al menos tengamos dos campos donde guardar los valores de las claves principales de los registros relacionados.

Por ejemplo vehículos y conductores, necesitamos una tabla donde al menos tendremos dos campos, uno para la clave principal del vehículo y otro para la clave principal del conductor que puede conducirlo, de esta forma una persona solo podrá conducir un vehículo si en esta nueva tabla existe un registro donde esté la pareja vehículo persona.