Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 1
Diseño de bases de datos relacionales
1. Introducción .................................................................................................................. 2
2. Modelo Entidad-Relación.............................................................................................. 2
2.1. Diagrama E-R ......................................................................................................... 3
2.2 Relaciones binarias ................................................................................................ 4
2.2.1 Relación 1:1 ..................................................................................................... 4
2.2.2 Relación 1:M .................................................................................................... 4
2.2.3 Relación M:M ................................................................................................... 5
2.3 Representación del modelo E-R en tablas ............................................................. 6
2.4 Clave primaria o principal ....................................................................................... 7
2.5 Clave ajena ............................................................................................................. 8
3. Transformación del diagrama ER al modelo relacional .............................................. 12
3.1 Relación 1:1 .......................................................................................................... 12
3.2 Relación 1:M ......................................................................................................... 12
3.3 Relación M:M ........................................................................................................ 13
3.4 Restricción de existencia ...................................................................................... 14
3.5 Restricción de identidad ....................................................................................... 16
3.6 Generalización y especialización .......................................................................... 17
4. Agregación ................................................................................................................. 20
5. Relaciones ternarias ................................................................................................... 21
5.1 Relación 1:1:1 ....................................................................................................... 21
5.2 Relación 1:1:M ...................................................................................................... 22
5.3 Relación 1:M:M ..................................................................................................... 23
5.4 Relación M:M:M .................................................................................................... 24
©Yolanda Marhuenda 1 / 25
Diseño de bases de datos relacionales
1. Introducción
Un sistema de gestor de bases de datos (SGBD) consiste en un conjunto de datos
relacionados entre sí y un grupo de herramientas para acceder a esos datos mediante las
cuales se puede modificar, borrar, añadir, consultar, obtener información, … El conjunto de
datos del sistema se llama base de datos.
El proceso de diseño de una base de datos consiste en representar una parte del mundo
real mediante los objetos que proporciona un modelo de datos.
Para realizar este proceso en primer lugar se debe realizar una abstracción del mundo real
y acotar la parcela del mundo exterior que nos interesa representar, es decir, identificar los
objetos, las propiedades de cada uno de ellos que sean relevantes dentro del contexto en
el que se sitúe el problema y las relaciones entre los objetos. En este primer paso se debe
aprender, comprender y conceptualizar dicho mundo transformándolo en un conjunto de
ideas y definiciones que supongan una imagen fiel del comportamiento. Esta imagen recibe
el nombre de “modelo conceptual”.
A partir del modelo conceptual, se realiza la descripción de datos, atributos y relaciones que
recibe el nombre de “esquema conceptual de datos” y es la forma mediante la que se define
el modelo conceptual.
Mundo
Mundo de
real las ideas Mundo
físico
2. Modelo Entidad-Relación
Cuando se diseña una base de datos mediante un modelo relacional, al igual que ocurre
con otros modelos de datos, se tienen distintas alternativas, es decir, se pueden obtener
diferentes esquemas relacionales y no todos ellos son equivalentes, ya que unos van a
representar la realidad mejor que otros. El proceso de diseño es creativo y la habilidad para
diseñar bases de datos se adquiere con un largo entrenamiento y sintetizando los
resultados de experiencias anteriores en situaciones nuevas.
©Yolanda Marhuenda 2 / 25
Diseño de bases de datos relacionales
Concepto Representación
ENTIDAD 2 ENTIDAD 3
En nuestro caso los nombres de las entidades y relaciones los escribiremos en mayúsculas
y los de los atributos en minúsculas.
©Yolanda Marhuenda 3 / 25
Diseño de bases de datos relacionales
Cada tipo de relación se representa con un icono. En el caso de las relaciones unarias y
binarias se utiliza un rombo, para las ternarias un triángulo y para las cuaternarias un
cuadrado.
Con respecto a las relaciones binarias se puede diferenciar tres tipos atendiendo al número
de ocurrencias/registros de cada entidad que se encuentren relacionadas con la otra
entidad. En las siguientes secciones se especifican cada uno de los tipos.
Representación:
Ejemplo:
• 1 profesor solamente puede impartir una asignatura.
• 1 asignatura solamente puede ser impartida por un profesor.
1
ocurrencia de una entidad, fila, registro de la tabla.
©Yolanda Marhuenda 4 / 25
Diseño de bases de datos relacionales
Representación:
Ejemplo:
• 1 profesor puede impartir muchas asignaturas.
• 1 asignatura solamente puede ser impartida por un profesor.
Ejemplo:
• 1 profesor solamente puede impartir una asignatura.
• 1 asignatura puede ser impartida por muchos profesores.
Representación:
Ejemplo:
• 1 profesor puede impartir muchas asignaturas.
• 1 asignatura puede ser impartida por muchos profesores.
©Yolanda Marhuenda 5 / 25
Diseño de bases de datos relacionales
Ejemplo:
Se quiere guardar información sobre los actores que actúan en las películas, de manera
que un actor puede actuar en muchas películas y en una película pueden actuar muchos
actores. De cada actor se quiere guardar el dni, nombre, fecha de nacimiento, primer y
segundo apellidos, nacionalidad y cuál es el sueldo que cobra en cada película en la que
ha actuado. De las películas se guarda un código identificativo, el título, duración, tipo de
película y fecha de estreno.
fecha ACTUAR
nacimiento
duración
ACTOR PELICULA
apellido1
sueldo tipo
apellido2
nacionalidad fecha
©Yolanda Marhuenda 6 / 25
Diseño de bases de datos relacionales
ACTOR
dni nombre apellido1 apellido2 fecha nacimiento nacionalidad
11222333A Antonio González Pérez 20/01/1940 España
22000111B Sofía Huertas Martínez 30/10/1970 España
33444555C John Smith 25/07/1965 Gran Bretaña
22666777D Philippe Rauer 27/06/1978 Francia
Ejemplo:
En una entidad/relación es posible que haya diferentes atributos que puedan actuar como
clave primaria. Por ejemplo, para una persona podría ser clave primaria el dni o el número
de la seguridad social. En este caso la entidad tiene varias claves candidatas y hay que
escoger una de ellas como clave primaria. Las claves candidatas que no son primarias se
denominan claves alternativas.
• unicidad: no existen dos tuplas (filas o registros) con los mismos valores para cada uno
de los atributos que pertenecen a la clave candidata C.
Se elige como clave primaria aquella clave candidata formada por el menor número de
atributos.
©Yolanda Marhuenda 7 / 25
Diseño de bases de datos relacionales
Los atributos de la clave primaria deben cumplir la regla de integridad, que exige que ningún
componente de la clave pueda aceptar nulos. Esto es debido a que no se registrará
información sobre algo que no se puede identificar.
Una base de datos no debe contener valores de clave ajena sin concordancia, es decir, un
valor no nulo de clave ajena para el que no exista concordancia con la clave primaria de la
tabla a la que hace referencia. Si B referencia a A, entonces A debe existir. Esto se conoce
con el nombre de integridad referencial y se refiere al hecho de que hay que asegurar que
la base de datos no incluya valores no válidos de una clave ajena.
Ejemplo:
PERTENECER
apellido2
EMPLEADO DEPARTAMENTO
dni nombre apellido1 apellido2 código nombre
11111111X Juan Fernández Vivó ADM Administración
22222222D Patricia Torres Rocamora INF Informática
33333333F Alberto Guillén Navas COM Comercial
44444444H Pablo López García
55555555F José Valdés Lozano
66666666B Sandra García García
77777777L Nuria Molina Martínez
©Yolanda Marhuenda 8 / 25
Diseño de bases de datos relacionales
En este caso para reflejar la relación PERTENECER hay que añadir a la tabla EMPLEADO
un nuevo atributo, que llamaremos por ejemplo “depto”, para indicar a qué departamento
pertenece cada empleado. El atributo “depto” es una clave ajena a la tabla
DEPARTAMENTO y los valores que se incluyan en este campo deben referenciar a algún
departamento existente y concretamente a valores de la clave principal de algún registro de
la entidad DEPARTAMENTO.
EMPLEADO
dni nombre apellido1 apellido2 depto
11111111X Juan Fernández Vivó INF
22222222D Patricia Torres Rocamora ADM
33333333F Alberto Guillén Navas COM
44444444H Pablo López García INF
55555555F José Valdés Lozano COM
66666666B Sandra García García INF
77777777L Nuria Molina Martínez ADM
Cuando se definen las claves ajenas, pueden establecerse una serie de restricciones según
el modo en que queramos reflejar el comportamiento del modelo de datos del mundo real.
Ejemplo:
Puede existir algún empleado que no se encuentre asignado a ningún departamento. Por
ejemplo, podemos dar de alta a una empleada llamada Sonia González en espera de
asignarla a un departamento. En este caso, el campo “depto” de dicha empleada no tendrá
valor.
EMPLEADO
dni nombre apellido1 apellido2 depto
11111111X Juan Fernández Vivó INF
22222222D Patricia Torres Rocamora ADM
33333333F Alberto Guillén Navas COM
44444444H Pablo López García INF
©Yolanda Marhuenda 9 / 25
Diseño de bases de datos relacionales
2.- Al eliminar una tupla de la tabla A, si existen tuplas de la tabla B relacionadas con
dicha tupla de A, podemos elegir una de las siguientes posibilidades:
Ejemplo:
EMPLEADO DEPARTAMENTO
dni nombre apellido1 apellido2 depto codigo nombre
22222222D Patricia Torres Rocamora ADM ADM Administración
33333333F Alberto Guillén Navas COM COM Comercial
55555555F José Valdés Lozano COM
77777777L Nuria Molina Martínez ADM
EMPLEADO DEPARTAMENTO
dni nombre apellido1 apellido2 depto código nombre
11111111X Juan Fernández Vivó ADM Administración
22222222D Patricia Torres Rocamora ADM COM Comercial
33333333F Alberto Guillén Navas COM
44444444H Pablo López García
55555555F José Valdés Lozano COM
66666666B Sandra García García
77777777L Nuria Molina Martínez ADM
©Yolanda Marhuenda 10 / 25
Diseño de bases de datos relacionales
a) No permitir la modificación.
b) Modificar la tupla de A y las relacionadas en B.
c) Modificar la tupla de A y poner a nulo la clave ajena de la tuplas de B
relacionadas con la tupla de A.
Ejemplo:
EMPLEADO DEPARTAMENTO
dni nombre apellido1 apellido2 depto código nombre
11111111X Juan Fernández Vivó INF ADM Administración
22222222D Patricia Torres Rocamora ADM INF Informática
33333333F Alberto Guillén Navas MAR MAR Marketing
44444444H Pablo López García INF COM Compras
55555555F José Valdés Lozano MAR
66666666B Sandra García García INF
77777777L Nuria Molina Martínez ADM
c) Permitir la modificación del código, dejando el campo “depto” de los empleados del
antiguo departamento Comercial sin ningún valor.
EMPLEADO DEPARTAMENTO
dni nombre apellido1 apellido2 depto código nombre
11111111X Juan Fernández Vivó INF ADM Administración
22222222D Patricia Torres Rocamora ADM INF Informática
33333333F Alberto Guillén Navas MAR Marketing
44444444H Pablo López García INF COM Compras
55555555F José Valdés Lozano
66666666B Sandra García García INF
77777777L Nuria Molina Martínez ADM
©Yolanda Marhuenda 11 / 25
Diseño de bases de datos relacionales
Las claves principales las indicaremos con el texto C.P., las alternativas con C.Alternativa
y las ajenas con C.Ajena. A continuación de dicho texto se indicará el nombre de los campos
que configuran cada clave. En el caso de las claves ajenas se especifica además a qué
tabla hace referencia. Los nombres de las tablas se escribirán en mayúsculas y los de los
atributos en minúsculas.
©Yolanda Marhuenda 12 / 25
Diseño de bases de datos relacionales
Ejemplo:
Caso 1)
a1 a2 b1 b2
A(a1, a2, ...)
C C.P.: a1
Ejemplo:
©Yolanda Marhuenda 13 / 25
Diseño de bases de datos relacionales
A B
B(b1, b2, ...)
C.P.: b1
Ejemplo:
EXAMINAR
dni codasig fecha nota
11222333H AIB 02/06/2020 7.5
11222333H AIA 05/06/2020 3.8
11222333H AIA 07/09/2020 7.3
©Yolanda Marhuenda 14 / 25
Diseño de bases de datos relacionales
Ejemplo:
dni código
PROFESOR DEPARTAMENTO
PERTENECER
Al indicar la letra E en PROFESOR, se indica que todos los registros de la tabla PROFESOR
obligatoriamente deben tener asignado el departamento al que pertenecen.
En las relaciones 1:M que tienen la restricción de existencia en la entidad de la parte del
muchos (PROFESOR), la restricción se refleja en el diseño añadiendo a la clave ajena
correspondiente a la relación las siglas VNN (Valores No Nulos). De esta forma, obligamos
a que la clave ajena siempre contenga un valor y además, por ser clave ajena, estos valores
deben hacer referencia a DEPARTAMENTO.
DEPARTAMENTO(código, …)
C.P.: código
PROFESOR(dni, … , coddepto)
C.P.: dni
C.Ajena: coddepto → DEPARTAMENTO VNN
Ejemplo:
claveA claveB
A B
PERTENECER
©Yolanda Marhuenda 15 / 25
Diseño de bases de datos relacionales
Ejemplo:
Una factura tiene muchas líneas y una línea sólo pertenece a una factura. Cada línea
viene numerada respecto a la factura con números 1,2,3.
Supongamos dos facturas con números 100 y 200, con 2 y 3 líneas de detalle,
respectivamente, que contienen los siguientes datos:
FACTURA LINEA
número fecha nlinea cantidad artículo nfactura
100 25/06/2020 1 20 ART1 100
200 30/06/2020 2 5 ART2 100
1 2 ART1 200
2 5 ART2 200
3 3 ART3 200
©Yolanda Marhuenda 16 / 25
Diseño de bases de datos relacionales
En la tabla LINEA el atributo “nlinea” por sí solo no puede ser clave principal porque no se
puede distinguir a qué factura pertenece una línea de detalle y se repiten valores en la clave
principal. Por ejemplo, tenemos la línea 1 de la factura 100 y la línea 1 de la factura 200.
Podríamos pensar en añadir más atributos para formar la clave principal. Si añadimos el
atributo “articulo” ocurrirá lo mismo: la línea 1 con el artículo “ART1” no puede determinarse
a qué factura pertenece. Podemos incluso añadir todos los atributos de la tabla LINEA para
formar la clave principal (nlinea, cantidad, articulo) y también ocurrirá que existe más de
una fila con los mismos valores, concretamente la correspondiente a los valores (2, 5,
ART2) con lo cual, esta combinación tampoco identifica unívocamente a las filas de la tabla.
Así, se deduce que la entidad LINEA no tiene identidad por sí misma si no se conoce con
qué entidad está relacionada (FACTURA). Para resolver estos casos de ambigüedad, es
necesario añadir un nuevo atributo a la clave primaria procedente de la entidad de la que
depende. En el caso de las facturas y líneas de factura el diagrama E-R será:
©Yolanda Marhuenda 17 / 25
Diseño de bases de datos relacionales
Representación:
a1
TIPO_GENERALIZACIÓN
b1 d1
B C D
...
... ...
c1
A(a1, …)
C.P.: a1
• Total (T) o Parcial (P): En el caso de que sea total todos los objetos de la entidad
general (A) pertenecen a alguna de las entidades especializadas (B,C,D). Si existen
objetos en la entidad general que no estén en las especializadas la generalización
será Parcial.
©Yolanda Marhuenda 18 / 25
Diseño de bases de datos relacionales
©Yolanda Marhuenda 19 / 25
Diseño de bases de datos relacionales
4. Agregación
Una agregación representa la creación de un objeto formado a partir de una relación entre
entidades, de tal forma que este objeto se comporta como una entidad más, aunque a un
nivel de abstracción mayor. La relación contenida en una agregación puede ser de cualquier
tipo (1:1, 1:M, M:M). Las agregaciones se utilizan como un elemento más del diagrama ER.
Cuando se establece una relación con una agregación, se indica que en dichas relaciones
con la nueva entidad deben participar todas las entidades que forman parte de la
agregación.
Para la transformación a tablas, se siguen las mismas reglas que en las relaciones binarias.
En este caso, tenemos las entidades PROFESOR, ASIGNATURA Y GRUPO, la relación
M:M ASIGNAR y la relación M:M IMPARTIR .
©Yolanda Marhuenda 20 / 25
Diseño de bases de datos relacionales
5. Relaciones ternarias
Las relaciones ternarias asocian tres entidades. La forma de interpretar el significado de
estas relaciones consiste en coger cada par de entidades y relacionarla con la otra según
la cardinalidad de la relación, que puede ser 1:1:1, 1:1:M, 1:M:M o M:M:M.
Las relaciones ternarias siempre generan una nueva tabla en el modelo. Esta tabla tendrá
siempre claves ajenas a las tres tablas que une y obligatoriamente estas claves ajenas
deben contener valores. Dependiendo del tipo de cardinalidad se definen las claves
principales y alternativas. Además, las relaciones ternarias pueden contener atributos
propios que pueden formar parte o no de la clave principal y las alternativas.
Ejemplo:
PROFESOR(dni, nombre)
C.P.: dni
GRUPO(código, aula)
C.P.: código
ASIGNATURA(código, ncreditos)
C.P.: código
©Yolanda Marhuenda 21 / 25
Diseño de bases de datos relacionales
Ejemplo:
PROFESOR(dni, nombre)
C.P.: dni
GRUPO(código, aula)
C.P.: código
ASIGNATURA(código, ncreditos)
C.P.: código
©Yolanda Marhuenda 22 / 25
Diseño de bases de datos relacionales
Ejemplo:
PROFESOR(dni, nombre)
C.P.: dni
GRUPO(código, aula)
C.P.: código
ASIGNATURA(código, ncreditos)
C.P.: código
©Yolanda Marhuenda 23 / 25
Diseño de bases de datos relacionales
Ejemplo:
PROFESOR(dni, nombre)
C.P.: dni
GRUPO(código, aula)
C.P.: código
ASIGNATURA(código, ncreditos)
C.P.: código
En todos los tipos de relaciones ternarias si hay atributos propios que forman parte de la
clave principal también hay que añadirlos a las claves alternativas
Por otro lado, las relaciones ternarias pueden relacionarse con otras entidades (o
relaciones) del diagrama y tener restricciones de existencia o de identidad. Para la
modelización en tablas se siguen las reglas de transformación generales.
©Yolanda Marhuenda 24 / 25
Diseño de bases de datos relacionales
Ejemplo:
d4
©Yolanda Marhuenda 25 / 25