Modelo Relacional
Modelo Relacional
Modelo Relacional
Iván Cantador
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Índice 1
• El Modelo Relacional
• Esquemas relacionales
• Conversión de un diagrama E-R a tablas
• Ejemplos
Bases de datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Índice 2
• El Modelo Relacional
• Introducción
• Elementos del modelo
• Definición del modelo
• Esquemas relacionales
• Conversión de un diagrama E-R a tablas
• Ejemplos
Bases de datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Introducción al Modelo Relacional 3
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Elementos del Modelo Relacional (II) 5
cliente
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Elementos del Modelo Relacional (III) 6
atributos
grado
Bases de Datos
Escuela Politécnica Superior
21/09/2021 Universidad Autónoma de Madrid
Elementos del Modelo Relacional (IV) 7
• Atributo
• Representa una característica o componente de una relación
• Posee:
‐ Nombre: diferencia al atributo dentro del conjunto de atributos de la
entidad, aunque puede usarse en atributos de otras entidades
‐ Dominio: conjunto de todos los valores posibles del atributos
• Debe ser atómico, esto es, indivisible
‐ Los atributos compuestos no son atómicos
‐ Los atributos multivalor no son atómicos
• Puede tomar el valor nulo
‐ El valor nulo (NULL) pertenece a todos los dominios
‐ En general se debe intentar evitar que el valor de un atributo sea nulo
(crea problemas con las operaciones lógicas)
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Definición del Modelo Relacional (I) 8
• Atributo
• Cualquier elemento de información susceptible de tomar valores
‐ Notación: Ai, con i = 1, 2...
• Dominio
‐ Rango de valores donde toma sus datos un atributo
‐ Se considera finito
‐ Notación: Di, con i = 1, 2…
• Relación
• Dados los conjuntos D1, D2, …. Dn, una relación R es un subconjunto de
D1 x D2 x … x D n
• Esto es, R es un subconjunto de n-tuplas (a1, a2, …, an), donde ai Di
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Definición del Modelo Relacional (II) 9
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Definición del Modelo Relacional (III) 10
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Definición del Modelo Relacional (IV) 11
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Definición del Modelo Relacional (V) 12
• Relación → Tabla
• Relación: representación abstracta de un elemento de datos
• Tabla: representación concreta de tal elemento abstracto
• Ventajas
• Representación muy sencilla (tabla) del elemento abstracto básico
(relación) del Modelo Relacional
• Fácil de utilizar, entender, razonar sobre ella, …
• Inconveniente
• Aparente orden entre filas y entre columnas de la tabla
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Índice 13
• El Modelo Relacional
• Esquemas relacionales
• Concepto de esquema
• Integridad de los datos: claves
• El valor NULL
• Mantenimiento de la integridad referencial
• Conversión de un diagrama E-R a tablas
• Ejemplos
Bases de datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Concepto de esquema en una base de datos 14
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Integridad de los datos: claves (I) 15
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Integridad de los datos: claves (II) 16
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Integridad de los datos: claves (III) 17
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Integridad de los datos: claves (V) 19
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Integridad de los datos: claves (VI) 20
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Integridad de los datos: claves (VII) 21
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Integridad de los datos: claves (IX) 23
• Diagrama referencial
• Expresión de la existencia de claves externas
• Camino referencial
LIBRO título isbn autor editorial ... EDITORIAL nombre dirección ...
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Ejemplo: claves primarias y externas 25
Follows User
PK user1 user2 id name email
6 24 24 Dolores lola@gmail.com
FK
73 6 6 José jose@gmail.com
81 73 81 José María chema@gmail.com
73 Rosario rosario@gmail.com
Tweet
Retweet
id content author
tweet1 tweet2
7 ‘Enhorabuena! Y además el…’ 6
92 48
48 ‘Notifications in Twitter are…’ 24
50 35
35 ‘Ha sido leer el primer punto…’ 6
92 ‘Notifications in Twitter are…’ 81
50 ‘Ha sido leer el primer punto…’ 73
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Ejemplo: claves primarias y externas 26
Follows User
PK user1 user2 id name email
6 24 24 Dolores lola@gmail.com
FK
73 6 6 José jose@gmail.com
81 73 81 José María chema@gmail.com
73 Rosario rosario@gmail.com
Tweet
Retweet
id content author
tweet1 tweet2
7 ‘Enhorabuena! Y además el…’ 6
92 48
48 ‘Notifications in Twitter are…’ 24
50 35
35 ‘Ha sido leer el primer punto…’ 6
92 ‘Notifications in Twitter are…’ 81
50 ‘Ha sido leer el primer punto…’ 73
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Ejemplo: claves primarias y externas 27
Follows User
PK user1 user2 id name email
6 24 24 Dolores lola@gmail.com
FK
73 6 6 José jose@gmail.com
81 73 81 José María chema@gmail.com
73 Rosario rosario@gmail.com
Tweet
Retweet
id content author
tweet1 tweet2
7 ‘Enhorabuena! Y además el…’ 6
92 48
48 ‘Notifications in Twitter are…’ 24
50 35
35 ‘Ha sido leer el primer punto…’ 6
92 ‘Notifications in Twitter are…’ 81
50 ‘Ha sido leer el primer punto…’ 73
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Ejemplo: claves primarias y externas 28
Follows User
PK user1 user2 id name email
6 24 24 Dolores lola@gmail.com
FK
73 6 6 José jose@gmail.com
81 73 81 José María chema@gmail.com
73 Rosario rosario@gmail.com
Tweet
Retweet
id content author
tweet1 tweet2
7 ‘Enhorabuena! Y además el…’ 6
92 48
48 ‘Notifications in Twitter are…’ 24
50 35
35 ‘Ha sido leer el primer punto…’ 6
92 ‘Notifications in Twitter are…’ 81
50 ‘Ha sido leer el primer punto…’ 73
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Ejemplo: on delete 29
Follows User
PK user1 user2 id name email
6 24 24 Dolores lola@gmail.com
FK
73 6 6 José jose@gmail.com
81 73 81 José María chema@gmail.com
73 Rosario rosario@gmail.com
Tweet
Retweet
id content author
tweet1 tweet2
7 ‘Enhorabuena! Y además el…’ 6
92 48
48 ‘Notifications in Twitter are…’ 24
50 35
35 ‘Ha sido leer el primer punto…’ 6
92 ‘Notifications in Twitter are…’ 81
50 ‘Ha sido leer el primer punto…’ 73
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Ejemplo: on delete cascade 30
Follows User
PK user1 user2 id name email
6 24 24 Dolores lola@gmail.com
FK Cascade
73 6 6 José jose@gmail.com
81 73 81 José María chema@gmail.com
73 Rosario rosario@gmail.com
Cascade
Tweet
Retweet
id content author
tweet1 tweet2
7 ‘Enhorabuena! Y además el…’ 6
92 48
48 ‘Notifications in Twitter are…’ 24
50 35
35 ‘Ha sido leer el primer punto…’ 6
92 ‘Notifications in Twitter are…’ 81
50 ‘Ha sido leer el primer punto…’ 73
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Ejemplo: on delete cascade 31
Follows User
PK user1 user2 id name email
6 24 24 Dolores lola@gmail.com
FK Cascade
73 6 6 José jose@gmail.com
81 73 81 José María chema@gmail.com
73 Rosario rosario@gmail.com
Cascade
Tweet
Retweet
id content author
tweet1 tweet2
7 ‘Enhorabuena! Y además el…’ 6
92 48
48 ‘Notifications in Twitter are…’ 24
50 35
35 ‘Ha sido leer el primer punto…’ 6
92 ‘Notifications in Twitter are…’ 81
50 ‘Ha sido leer el primer punto…’ 73 Cascade
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Ejemplo: on delete 32
Follows User
PK user1 user2 id name email
6 24 24 Dolores lola@gmail.com
FK
73 6 6 José jose@gmail.com
81 73 81 José María chema@gmail.com
73 Rosario rosario@gmail.com
Tweet
Retweet
id content author
tweet1 tweet2
7 ‘Enhorabuena! Y además el…’ 6
92 48
48 ‘Notifications in Twitter are…’ 24
50 35
35 ‘Ha sido leer el primer punto…’ 6
92 ‘Notifications in Twitter are…’ 81
50 ‘Ha sido leer el primer punto…’ 73
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Ejemplo: on delete set null 33
Follows User
PK user1 user2 id name email
6 24 24 Dolores lola@gmail.com
FK Set NULL
73 6 6 José jose@gmail.com
81 73 81 José María chema@gmail.com
73 Rosario rosario@gmail.com
Set NULL
Tweet
Retweet
id content author
tweet1 tweet2
7 ‘Enhorabuena! Y además el…’ 6
92 48
48 ‘Notifications in Twitter are…’ 24
50 35
35 ‘Ha sido leer el primer punto…’ 6
92 ‘Notifications in Twitter are…’ 81
50 ‘Ha sido leer el primer punto…’ 73
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Ejemplo: on delete set null 34
Follows User
PK user1 user2 id name email
NULL 24 24 Dolores lola@gmail.com
FK Set NULL
73 NULL 6 José jose@gmail.com
81 73 81 José María chema@gmail.com
73 Rosario rosario@gmail.com
Set NULL
Tweet
Retweet
id content author
tweet1 tweet2
7 ‘Enhorabuena! Y además el…’ NULL
92 48
48 ‘Notifications in Twitter are…’ 24
50 35
35 ‘Ha sido leer el primer punto…’ NULL
92 ‘Notifications in Twitter are…’ 81
50 ‘Ha sido leer el primer punto…’ 73 No se ve afectado
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Ejemplo: on update 35
Follows User
PK user1 user2 id name email
6 24 24 Dolores lola@gmail.com
FK
73 6 6 José jose@gmail.com
81 73 81 José María chema@gmail.com
73 Rosario rosario@gmail.com
Tweet
Retweet
id content author
tweet1 tweet2
7 ‘Enhorabuena! Y además el…’ 6
92 48
48 ‘Notifications in Twitter are…’ 24
50 35
35 ‘Ha sido leer el primer punto…’ 6
92 ‘Notifications in Twitter are…’ 81
50 ‘Ha sido leer el primer punto…’ 73
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Ejemplo: on update cascade 36
Follows User
PK user1 user2 id name email
6 24 24 Dolores lola@gmail.com
FK Cascade
73 6 6 José jose@gmail.com
81 73 81 José María chema@gmail.com
73 Rosario rosario@gmail.com
Cascade
Tweet
Retweet
id content author
tweet1 tweet2
7 ‘Enhorabuena! Y además el…’ 6
92 48
48 ‘Notifications in Twitter are…’ 24
50 35
35 ‘Ha sido leer el primer punto…’ 6
92 ‘Notifications in Twitter are…’ 81
50 ‘Ha sido leer el primer punto…’ 73
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Ejemplo: on update cascade 37
Follows User
PK user1 user2 id name email
15 24 24 Dolores lola@gmail.com
FK Cascade
73 15 15 José jose@gmail.com
81 73 81 José María chema@gmail.com
73 Rosario rosario@gmail.com
Cascade
Tweet
Retweet
id content author
tweet1 tweet2
7 ‘Enhorabuena! Y además el…’ 15
92 48
48 ‘Notifications in Twitter are…’ 24
50 35
35 ‘Ha sido leer el primer punto…’ 15
92 ‘Notifications in Twitter are…’ 81
50 ‘Ha sido leer el primer punto…’ 73 No se ve afectado
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
¿Y si se borran referencias? 38
Follows User
PK user1 user2 id name email
6 24 24 Dolores lola@gmail.com
FK
73 6 6 José jose@gmail.com
81 73 81 José María chema@gmail.com
73 Rosario rosario@gmail.com
Tweet
Retweet
id content author
tweet1 tweet2
7 ‘Enhorabuena! Y además el…’ 6
92 48
48 ‘Notifications in Twitter are…’ 24
50 35
35 ‘Ha sido leer el primer punto…’ 6
92 ‘Notifications in Twitter are…’ 81
50 ‘Ha sido leer el primer punto…’ 73
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
¿Y si se borran referencias? 39
Follows User
PK user1 user2 id name email
6 24 24 Dolores lola@gmail.com
FK
73 6 6 José jose@gmail.com
81 73 81 José María chema@gmail.com
73 Rosario rosario@gmail.com
Ninguna consecuencia
Tweet
Retweet
id content author
tweet1 tweet2
7 ‘Enhorabuena! Y además el…’ 6
92 48
48 ‘Notifications in Twitter are…’ 24
50 35
35 ‘Ha sido leer el primer punto…’ 6
92 ‘Notifications in Twitter are…’ 81
50 ‘Ha sido leer el primer punto…’ 73
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Mantenimiento de la integridad referencial (I) 40
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Mantenimiento de la integridad referencial (II) 41
R2 ⎯→ R1
• Operación: eliminar una tupla t de R1 que es referenciada por
otras de R2
• Ejemplo: eliminar la tupla (100, D, ...) de HABITACIÓN(numero, tipo, …)
• Acciones posibles
1. Rechazar la operación (acción por defecto)
‐ Sólo permitir borrar t si ninguna otra tupla hace referencia a t
2. Eliminar tuplas “en cascada”: propagar la eliminación
‐ 1º: eliminar todas las tuplas de R2 que referencian a t
‐ 2º: eliminar t
3. Establecer nulos en las tupas de R2 que referencia a t
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Mantenimiento de la integridad referencial (III) 42
R2 ⎯→ R1
• Operación: modificar el valor de una FK a un valor no existente en
la PK de R1
• Ejemplo: Modificar (CLI02, 420,...) a (CLI02, 900,...) en
OCUPACION(cliente, habitacion,…)
• Acción
1. Rechazar la operación (SIEMPRE)
→ Intento de violación de la restricción de integridad referencial
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Mantenimiento de la integridad referencial (IV) 43
R2 ⎯→ R1
• Operación: modificar el valor de la PK de una tupla t de R1 que es
referenciada por otras tuplas de R2
• Ejemplo: modificar la tupla (100, D,...) a (130, D,...) en
HABITACIÓN(numero, tipo, …)
• Acciones posibles
1. Rechazar la operación (acción por defecto)
‐ Sólo permitir modificar la PK de t si ninguna tupla referencia a t
2. Cascada: Propagar la modificación
‐ Toda tupla de R2 que referencia a t seguirá haciéndolo: modificar su valor
de FK al nuevo valor de la PK de t
‐ Modificar el valor de la clave primaria de t
3. Establecer nulos
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Mantenimiento de la integridad referencial (V) 44
R2 ⎯→ R1
• Operación: insertar una tupla t en R2 cuyo valor de FK no se
corresponde con ningún valor de la PK en ninguna tupla de R1
• Ejemplo: insertar una tupla (CLI03, 555, ...) en
OCUPACIÓN(cliente, habitacion,…)
• Acción
1. Rechazar la operación (SIEMPRE)
→ Intento de violación de la restricción de integridad referencial
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Mantenimiento de la integridad referencial (VI) 45
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Índice 46
• El Modelo Relacional
• Esquemas relacionales
• Conversión de un diagrama E-R a tablas
• Ejemplos
Bases de datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Conversión de un diagrama E-R a tablas (I) 47
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Conversión de un diagrama E-R a tablas (II) 48
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Conversión de un diagrama E-R a tablas (III) 49
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Conversión de un diagrama E-R a tablas (IV) 50
• Una entidad débil dará lugar a una tabla que incluya una/s
columna/s con la clave primaria de la entidad fuerte como clave
primaria y externa a la vez
Tema2–Modelo-E-R-I
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Conversión de un diagrama E-R a tablas (V) 51
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Conversión de un diagrama E-R a tablas (VI) 52
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Conversión de un diagrama E-R a tablas (VII) 53
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Conversión de un diagrama E-R a tablas (VIII) 54
tabla atributos
Persona nombre, calle, ciudad
Cliente nombre, credito
Empleado nombre, salario
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Conversión de un diagrama E-R a tablas (VIII) 55
tabla atributos
Persona nombre, calle, ciudad
Cliente nombre, calle, ciudad, crédito
Empleado nombre, calle, ciudad, salario
• El Modelo Relacional
• Esquemas relacionales
• Conversión de un diagrama E-R a tablas
• Ejemplos
Bases de datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Ejemplo: Biblioteca 57
• Diagrama E-R
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Ejemplo: Banco 58
• Diagrama E-R
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Ejemplo: Biblioteca 59
• Esquemas
• PIDE_PRESTADO (COD_EJEMPLAR , NUM_SOCIO , FECHA_INICIO,
FECHA_ENTREGA)
• RESERVA (NUM_SOCIO , COD_EJEMPLAR , FECHA_PRÓXIMA)
• DEMANDA (NUM_SOCIO , ISBN, FECHA_DEMANDA)
• ESCRITO_POR (ISBN, CÓDIGO_AUTOR)
• LIBRO (ISBN, TÍTULO, N_EDICIÓN, FECHA_EDICIÓN, TEMA, COD_EDITORIAL )
• EJEMPLAR (COD_EJEMPLAR, PRECIO, OCUPADO, ISBN )
• SOCIOS (NUM_SOCIO, NOMBRE, APE_1, APE_2, DIRECCIÓN, LOCALIDAD,
PROVINCIA, TFN)
• SANCION (NUM_SOCIO , MOTIVO, FECHA, MONTANTE, SALDADA)
• EDITORIAL (CODIGO_EDITORIAL, NOMBRE_ED, DIRECCION)
• AUTOR (CÓDIGO_AUTOR, NOMBRE, APE_1, APE_2)
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Ejemplo: Banco 60
• Diagrama relacional
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid