Elementos del modelo entidad-relación Entidad
Elementos del modelo entidad-relación
Entidad
Las entidades representan cosas u objetos (ya
sean reales o abstractos), que se diferencian claramente entre sí.
Para poder seguir un ejemplo durante el artículo añadiré
ejemplos sobre un taller mecánico, donde se podría crear las siguientes
entidades:
- Coches (objeto
físico): contiene la información de cada taller.
- Empleado (objeto físico):
información de los trabajadores.
- Cargo
del empleado (cosa abstracta): información de la
función del empleado.
Estas entidades se representan en un diagrama con un
rectángulos, como los siguientes.
Atributos
Los atributos definen o identifican las características de
entidad (es el contenido de esta entidad). Cada entidad contiene
distintos atributos, que dan información sobre esta entidad. Estos atributos
pueden ser de distintos tipos (numéricos, texto, fecha...).
Siguiendo el ejemplo de antes podemos analizar los atributos
de nuestra entidad "Coches", que nos darán información sobre
los coches de nuestro supuesto taller.
Unos posibles atributos serían los siguientes: número
de chasis, matrícula, DNI del propietario, marca, modelo y
muchos otros que complementen la información de cada coche.
Los atributos se representan como círculos que descienden de
una entidad, y no es necesario representarlos todos, sino los más
significativos, como a continuación.
En un modelo relacional (ya implementado en una base de
datos) una ejemplo de tabla dentro de una BBDD podría ser el
siguiente.
|
Número de chasis
|
Matrícula
|
DNI del propietario
|
|
5tfem5f10ax007210
|
4817 BFK
|
45338600L
|
|
6hsen2j98as001982
|
8810 CLM
|
02405068K
|
|
5rgsb7a19js001982
|
0019 GGL
|
40588860J
|
Este ejemplo es con tres atributos, pero un coche podría
tener cientos (si fuese necesario) y seguirían la misma estructura de columnas,
tras implementarlo en una BBDD.
Relación
Es un vínculo que nos permite definir una dependencia entre
varias entidades, es decir, nos permite exigir que varias entidades compartan
ciertos atributos de forma indispensable.
Por ejemplo, los empleados del taller (de la entidad "Empleados")
tienen un cargo (según la entidad "Cargo del empleado"). Es
decir, un atributo de la entidad "Empleados" especificará que
cargo tiene en el taller, y tiene que ser idéntico al que ya existe en la
entidad "Cargo del empleado".
Las relaciones se muestran en los diagramas como rombos, que
se unen a las entidades mediante líneas.
Yo, bajo mi punto de vista, entiendo mejor esto en una tabla
(de una implementación en una BBDD), por lo que voy a poner el
ejemplo de como se representaría (resaltada la relación, que posteriormente
veremos como se haría).
Empleados
|
Nombre
|
DNI
|
Cargo
|
|
Carlos Sánchez
|
45338600L
|
001
|
|
Pepe Sánchez
|
02405068K
|
002
|
|
Juan Sánchez
|
40588860J
|
002
|
Cargo del empleado
|
ID del cargo
|
Descripción
|
|
001
|
Jefe de taller
|
|
002
|
Mecánico
|
Relaciones de cardinalidad
Podemos encontrar distintos tipos de relaciones según como
participen en ellas las entidades. Es decir, en el caso anterior cada empleado
puede tener un cargo, pero un mismo cargo lo pueden compartir varios empleados.
Esto complementa a las representaciones de las relaciones,
mediante un intervalo en cada extremo de la relación que especifica
cuantos objetos o cosas (de cada entidad)
pueden intervenir en esa relación.
Uno a uno: Una entidad se relaciona únicamente con
otra y viceversa. Por ejemplo, si tuviésemos una entidad con distintos chasis y
otra con matrículas deberíamos de determinar que cada chasis solo puede tener
una matrícula (y cada matrícula un chasis, ni más en ningún caso).
Uno a varios o varios a uno:
determina que un registro de una entidad puede estar relacionado con varios de
otra entidad, pero en esta entidad existir solo una vez. Como ha sido en el
caso anterior del trabajador del taller.
Varios a varios: determina que una entidad puede
relacionarse con otra con ninguno o varios registros y viceversa. Por ejemplo,
en el taller un coche puede ser reparado por varios mecánicos distintos y esos
mecánicos pueden reparar varios coches distintos.
Los indicadores numéricos indican el primero el número
mínimo de registros en una relación y posteriormente el máximo (si no hay
límite se representa con una "n").
Claves
Es el atributo de una entidad, al que le aplicamos una
restricción que lo distingue de los demás registros (no permitiendo que el
atributo específico se repita en la entidad) o le aplica un vínculo
(exactamente como comentábamos en las relaciones). Estos son los distintos
tipos:
Superclave: aplica una clave o restricción a varios
atributos de la entidad, para así asegurarse que en su conjunto no se repitan
varias veces y así no poder entrar en dudas al querer identificar un registro.
Clave primaria: identifica inequívocamente un solo
atributo no permitiendo que se repita en la misma entidad. Como sería la
matrícula o el número de chasis de un coche (no puede existir dos veces el
mismo).
Clave externa o clave foránea: este
campo tiene que estar estrictamente relacionado con la clave primaria de otra
entidad, para así exigir que exista previamente ese clave. Anteriormente hemos
hablado de ello cuando comentábamos que un empleado indispensablemente tiene
que tener un cargo (que lo hemos representado numéricamente), por lo cual si
intentásemos darle un cargo inexistente el gestor de bases de datos nos
devolvería un error.
Resumen
Esto ha sido solo un repaso por encima de lo que es el modelo
entidad-relación, sin entrar en grandes detalles.
También, bajo mi punto de vista, creo que es una buena forma
de diseñar correctamente las bases de datos, aunque algunas veces resulta más
rápido implementarlo directamente en nuestro gestor de BBDD sin
la necesidad de crear un gran diagrama, sino usando notas más simples.
Comentarios
Publicar un comentario