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.