TEMA 2
Modelado de datos
Esta obra está bajo una licencia de Creative Commons
Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.
Icono diseñado por Flaticon 1
Modelado de datos
Modelado de datos
EL MODELO ENTIDAD-RELACIÓN
2
Modelado de datos
Modelado conceptual: ¿Por qué?
El ser humano suele tener problemas para transmitir
información concreta
Los clientes tienden a proporcionar información superflua
cuando se pregunta por requisitos
Nuestra mente funciona mejor cuando trabaja con
abstracciones:
Diagramas
Esquemas
3
Modelado de datos
¿Cuál prefieres?
Pues como le iba diciendo, necesito que me construya una aplicación
para gestionar mi gasolinera low-cost. Ya sabe, la gente echa diésel o
gasolina y luego me pagan. Algunos me piden factura, y resoplan
cuando les pido los datos de la empresa, sobre todo aquellos que son
clientes fijos. ¡Se me olvidaba! Tengo que llevar un registro de los litros
que se gastan en cada repostaje, además de cuándo se realizó.
Requisitos de datos:
Facturas que se emiten a clientes.
Litros de combustible repostado y fecha.
Guardar la información de los clientes.
Tipos de combustible.
4
Modelado de datos
¿Cuál prefieres?
Pues como le iba diciendo, necesito que me construya una aplicación
para gestionar mi gasolinera low-cost. Ya sabe, la gente echa diésel o
gasolina y luego me pagan. Algunos me piden factura, y resoplan
cuando les pido los datos de la empresa, sobre todo aquellos que son
clientes fijos. ¡Se me olvidaba! Tengo que llevar un registro de los litros
que se gastan en cada repostaje, además de cuándo se realizó.
Requisitos de datos:
Facturas que se emiten a clientes.
Litros de combustible repostado y fecha.
Guardar la información de los clientes.
Tipos de combustible.
¿Qué tienen en común facturas, clientes, combustibles?
5
Modelado de datos
Entidad
Factura, cliente,
combustible son objetos
o cosas del mundo real
que tienen existencia por
sí mismas.
6
Modelado de datos
Entidad
Una entidad agrupa una serie de ocurrencias de
objetos/cosas en una base de datos.
Clientes de la gasolinera (ocurrencias):
Pepe Pérez, con CIF 12345678X y correo electrónico
[Link]@[Link]
Transportes La Bomba S.L., con CIF B87654321 y
correo electrónico info@[Link]
7
Modelado de datos
Entidad
Una entidad agrupa una serie de ocurrencias de
objetos/cosas en una base de datos.
Clientes de la gasolinera (ocurrencias):
Pepe Pérez, con CIF 12345678X y correo electrónico
[Link]@[Link]
Transportes La Bomba S.L., con CIF B87654321 y
correo electrónico info@[Link]
¿Qué tienen en común los fragmentos subrayados?
8
Modelado de datos
Atributos
El nombre, CIF y correo
electrónico de los
clientes definen las
propiedades de la
entidad Cliente
9
Modelado de datos
Dominios
Cada atributo tiene un conjunto de valores permitidos:
CIF: cadenas de 8 dígitos y una letra, donde la letra
y los dígitos están relacionados por una función
matemática.
Nombre: cadenas de caracteres
Correo electrónico: direcciones de correo válidas,
de la forma usuario@dominio
Es obligatorio definir el dominio de todos los atributos
10
Modelado de datos
¿Entonces la base de datos para la gasolinera queda definida
por estas entidades y sus atributos?
11
Modelado de datos
Relaciones
Las facturas se emiten para clientes.
12
Modelado de datos
Relaciones
Los clientes repostan combustible.
13
Modelado de datos
Relaciones
Las relaciones representan asociaciones entre
ocurrencias de entidades
Pueden tener atributos propios:
14
Modelado de datos
Relaciones
Es importante definir el rol que las entidades juegan en
las relaciones:
15
Modelado de datos
Relaciones
El grado de una relación nos indica el número de
entidades implicadas en ella.
16
Modelado de datos
Relaciones reflexivas
Una relación reflexiva relaciona ocurrencias de la
misma entidad.
En este caso, es obligatorio especificar el rol de la
entidad en ambos sentidos de la relación.
17
Modelado de datos
Cardinalidad
Número de ocurrencias de entidad que se pueden
asociar como máximo/mínimo a otra a través de una
relación.
Mediante cardinalidades máximas y mínimas se pueden
representar restricciones del cliente al modelo de datos.
Valores posibles:
Máximo: 1, N
Mínimo: 0, 1
18
Modelado de datos
Cardinalidad mínima y máxima
Veamos, paso a paso, cómo se calculan las cardinalidades de
la relación Reposta .
19
Modelado de datos
Cardinalidad mínima y máxima
Para una ocurrencia de combustible:
¿Cuántos clientes como mínimo lo repostarán? Ninguno, puede que una
ocurrencia de combustible nunca sea repostada por algún cliente, luego
cardinalidad mínima 0.
¿Cuántos clientes como máximo lo repostarán? Más de uno, luego
cardinalidad N.
Recuerda las opciones posibles: cardinalidad mínima (0, 1), cardinalidad máxima (1, N).
20
Modelado de datos
Cardinalidad mínima y máxima
Para una ocurrencia de cliente:
¿Cuántos combustibles repostará como mínimo? Ninguno, puede que el
cliente se registre y no vuelva nunca, luego cardinalidad mínima 0.
¿Cuántos combustibles repostará como máximo? Más de uno, puede que el
cliente tenga varios vehículos, luego cardinalidad M (para diferenciarlo de la
N).
Recuerda las opciones posibles: cardinalidad mínima (0, 1), cardinalidad máxima (1, N).
21
Modelado de datos
Cardinalidad mínima y máxima
Veamos, paso a paso, cómo se calculan las cardinalidades de
la relación Emitida para .
22
Modelado de datos
Cardinalidad mínima y máxima
Para una ocurrencia de factura:
¿Para cuántos clientes se emitirá como mínimo? Las facturas tienen que
emitirse obligatoriamente para un cliente, luego cardinalidad mínima 1.
¿Para cuantos clientes se emitirá como máximo? No tiene sentido que una
factura se emita a más de un cliente (de hecho es ilegal), luego cardinalidad
máxima 1.
Recuerda las opciones posibles: cardinalidad mínima (0, 1), cardinalidad máxima (1, N)
23
Modelado de datos
Cardinalidad mínima y máxima
Para una ocurrencia de cliente:
¿Cuántas facturas se le emitirán como mínimo? En un momento dado, puede
ocurrir que no se haya facturado todavía al cliente, luego cardinalidad mínima
0.
¿Cuántas facturas se le emitirán como máximo? Podemos emitir multitud de
facturas a un cliente, luego cardinalidad máxima N.
Recuerda las opciones posibles: cardinalidad mínima (0, 1), cardinalidad máxima (1, N)
24
Modelado de datos
Cardinalidad en relaciones n-arias
En el caso de las relaciones n-arias, la cardinalidad hay
que definirla entre pares de las entidades que están
relacionadas.
Por ejemplo, en una ternaria:
25
Modelado de datos
Clave de entidad
Atributo o conjunto de atributos que identifican
unívocamente cada ocurrencia de una entidad.
Si una entidad no tiene clave, se le considera entidad
débil y que tiene dependencia de Identificación.
Se subraya el nombre de los atributos que formen parte
de la clave.
26
Modelado de datos
Entidad débil
Una entidad débil es aquella cuya existencia está
supeditada a la existencia de otra entidad.
Dos tipos:
Entidad débil con relación de identificación
Entidad débil con relación de existencia
La representación en el modelo ER tanto de la entidad
débil como de la relación con la entidad fuerte es la
siguiente:
27
Modelado de datos
Entidad débil (identificación)
La entidad débil no tiene clave
Necesita de la clave de otra entidad con la que se
relaciona:
Dos surtidores de la base de datos pueden tener el mismo número si están
en gasolineras distintas El surtidor ‘adquiere’ la clave de Gasolinera . En
algunas notaciones, el atributo discriminador se indica con subrayado
discontinuo, como es el caso del número de surtidor.
28
Modelado de datos
Entidad débil (existencia)
La existencia de una ocurrencia está condicionada a la
existencia de otra ocurrencia.
Aunque Factura tenga clave, si se da de baja un cliente hay
que dar de baja todas sus facturas.
29
Modelado de datos
El modelo Entidad-
Relación (ER)
Formulado por P.P-S. Chen
en 1976
Modelo de datos
conceptual que representa
un esquema de BBDD
Descripción sencilla y
global de una BBDD
Se construye a partir de los
requisitos de datos
30
Modelado de datos
El modelo Entidad-Relación (ER)
31
Modelado de datos
Notación alternativa: Martin
Se representan las cardinalidades mínimas y máximas en
la línea de la relación.
Desaparece el rombo, se relacionan las entidades
directamente, con el nombre de la relación.
32
Modelado de datos
Notación alternativa: Martin
Reglas de transformación de Chen a Martin (relaciones):
se transforma en
33
Modelado de datos
Notación alternativa: Martin
Reglas de transformación de Chen a Martin (relación N:M):
se transforma en
34
Modelado de datos
Notación alternativa: Martin
Reglas de transformación de Chen a Martin (entidad débil):
Empleado es entidad débil, por eso la línea de la relación
ahora es continua.
35
Modelado de datos
Conclusiones
¿Por qué?
Necesitamos especificar las restricciones de una
forma clara, concisa, fácilmente entendible y sin
ambigüedades.
¿Cómo?
Utilizando un modelo formal para el diseño
conceptual de la base de datos.
¿Qué?
Modelo Entidad-Relación.
36
Modelado de datos
Modelado de datos
EJEMPLOS
37
Modelado de datos
Foro
Un conocido foro de coches nos ha encargado el diseño conceptual de su
BD:
El foro se estructura en hilos, que tendrán un título, un número
identificador, una categoría y será necesario saber la fecha en la que se
creó y el usuario que lo hizo.
Los usuarios del foro se identifican por su nombre de usuario. Es
necesario almacenar su correo electrónico y ciudad donde vive.
Los usuarios añaden respuestas a un hilo, que constan de un mensaje
y, opcionalmente, una URL de imagen. Para ordenar las respuestas,
hay que conocer la fecha y hora en la que se realizó, así como su
posición relativa en el hilo.
En una respuesta se puede citar el texto de otra, situación que conviene
registrar en la base de datos.
38
Modelado de datos
Una posible solución:
39
Modelado de datos
Base de datos de películas
Las películas se identifican por su título y año de
lanzamiento. Además, tienen una duración (en minutos),
una productora, al menos un director y también al menos
un actor y un género.
Los actores se identifican por su nombre y fecha de
nacimiento. Actúan en al menos una película, donde
interpretan un personaje.
Los directores se identifican también por nombre y fecha
de nacimiento. Además de dirigir, pueden también actuar
en películas.
Las productoras se identifican por su nombre y dirección.
Producen al menos una película.
40
Modelado de datos
Una posible solución:
41