Está en la página 1de 61

Bases de Datos

Tema 2.2. 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

• El Modelo Relacional fue introducido por Edgard F. Codd en 1970, y


es un modelo de datos lógico (de representación) basado en
relaciones y tuplas (registros)
• Es el más usado en las aplicaciones de procesamiento de datos
convencionales
• Está basado en una teoría matemática
• Analogía entre “relación” (concepto matemático) y “tabla”
• Teoría de Conjuntos y Lógica de Predicados de 1er orden
• Sólida base formal
• Está dividido en 3 partes:
1. Estructura de datos
2. Integridad de datos
Edgar F. Codd (1923-2003)
3. Manipulación de datos Ganador del Premio Turing en 1981
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Elementos del Modelo Relacional (I) 4

Base de Datos = Conjunto de relaciones


• Relación
• Es la estructura de datos fundamental del modelo
• Tiene un nombre y representa una entidad genérica
• NO se debe confundir con el concepto de “relación” del Modelo
Entidad-Relación
• Se representa mediante una tabla con filas (tuplas, registros) y
columnas (atributos)
‐ Cada atributo representa una característica de la entidad, y tiene un
nombre y un dominio
‐ Cada tupla representa una instancia, con valores concretos de los
atributos

Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Elementos del Modelo Relacional (II) 5

• Instancia de una relación


• Los valores actuales (instancia) de una relación R se especifican
mediante una tabla T
• Un elemento t de R es una “tupla”, que se representa mediante una
fila en T
atributos
(o columnas)
customer-name customer-street customer-city

Jones Main Harrison


Smith North Rye tuplas
Curry North Rye (o filas)
Lindsay Park Pittsfield

cliente

Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Elementos del Modelo Relacional (III) 6

• Ejemplo de relación: Película


Géneros Años Países
Títulos Nombres Tiempo
dominios

Ciencia-ficción, 2002, 1997, Italia,Argentina,


--- --- --- --- Drama,Thriller, 1999, 2001, España, EEUU, --- ---
--- --- --- --- Comedia... 1994, 1972... Francia,Japón.. --- ---

título director género rodaje nacionalidad duración

Amores Perros A. González Drama 2000 México 145


The Matrix A. Wachowsky Ciencia-ficción 1999 EEUU 138
cardinalidad

Torrente S. Segura Comedia 1997 España 110


tuplas
Nos miran N. López Policiaco 2001 España 118
Amelie J. P. Jeunet Comedia 2001 Francia 122
Los lunes al sol F. León Drama 2002 España 117

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

• Dados los siguientes atributos y respectivos dominios


nombre_cliente = {“Jones”, “Smith”, “Curry”, “Lindsay”}
direccion_cliente = {“Main”, “North”, “Park”}
ciudad_cliente = {“London”, “Glasgow”, “York”}
entonces
R = {(“Jones”, “Main”, “London”),
(“Smith”, “North”, “Glasgow”),
(“Curry”, “North”, “Glasgow”),
(“Lindsay”, “Park”, “Manchester”)}
es una relación sobre
nombre_cliente X direccion_cliente X ciudad_cliente

Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Definición del Modelo Relacional (III) 10

• En una relación R distinguimos dos aspectos diferentes:


• Esquema o cabecera: conjunto de pares atributo:dominio
{(A1:D1), (A2:D2) ... (An:Dn)}
‐ Cada Aj tiene asociado sólo un Dj
‐ Los Di no tienen por qué ser distintos entre sí
• Instancia, estado o cuerpo: conjunto de tuplas que R tiene en un
instante concreto
‐ tupla = conjunto de pares atributo:valor
{{(A1:vi1), (A2:vi2)… (An:vin)}}, donde i=1…m

Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Definición del Modelo Relacional (IV) 11

• Propiedades de una relación


1. No existen tuplas repetidas
2. Las tuplas no están ordenadas
3. Los atributos no están ordenados
esquema = conjunto de pares atributo:dominio
4. Los valores de atributo son atómicos
dominio = conjunto de valores atómicos
→ Intersección fila/columna = un solo valor (no una lista de valores)

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

• Esquema BD = diseño lógico (descripción de la base de datos)


• Esquema BD != datos
• Ejemplo: esquema para la relación cliente
CLIENTE = (nombre_cliente, direccion_cliente, ciudad_cliente)
• Convenciones
• Nombres de los esquemas en mayúsculas
• Nombres de las instancias/relaciones en minúsculas

Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Integridad de los datos: claves (I) 15

• Las claves representan restricciones del mundo real


• Aumentan la capacidad expresiva del modelo relacional
• Evitan configuraciones de datos imposibles
• 2 personas distintas con el mismo DNI
• Un empleado sin NSS
• Una película sin director
• Cumplen que:
• Forman parte de la base de datos
• Se satisfacen para cualquier estado de la BD
• No varían con el tiempo
→ El Modelo Relacional incluye características generales de integridad
• Tipos de claves: candidatas, primarias y externas

Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Integridad de los datos: claves (II) 16

• Sea R una relación (A1:D1 , A2:D2 ,... An:Dn)


• Una superclave de R es un subconjunto SK de atributos tal que cumple
la restricción de unicidad:
‐ No existen dos tuplas distintas de R con la misma combinación de valores
para SK
• Una clave de R es una superclave tal que cumple la restricción de
irreductibilidad:
‐ Ningún subconjunto de SK cumple la relación de unicidad

• Una clave puede ser simple (1 atributo) o compuesta (varios atributos)


• Cada clave es una restricción de integridad

Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Integridad de los datos: claves (III) 17

• Claves como restricción de integridad


CLIENTE(codCliente, nombre, ciudad, telefono,...)
• ¿Qué implicaciones tiene establecer como clave...
a) {codCliente}
b) {codCliente, ciudad} …?
• Varias claves en una relación
• Ejemplo: relación para registrar las visitas de pacientes a sus médicos
de cabecera. Un mismo paciente puede visitar a su médico varias
veces en un mismo día
VISITAMEDICA(nssPaciente, historial, fecha, hora, numVisita,
medico, observaciones)
Claves(VISITAMEDICA)={{nssPaciente, numVisita},
{nssPaciente, fecha, hora},
{historial, numVisita},
{historial, fecha, hora}}
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Integridad de los datos: claves (IV) 18

• Si R tiene varias claves  Claves candidatas


• Claves(ACTOR) = {{nombre}, {nombreArtistico}}
• Claves(EMPLEADO) = {{dni}, {nombre, fechaNac}, {nss}}
• La clave primaria (Primary Key, PK) es la clave candidata elegida
para identificar las tuplas de R
• ClavePrimaria(ACTOR) = {nombreArtistico}
• ClavePrimaria(EMPLEADO) = {nss}
• Las claves alternativas (Alternative Keys, AK) son el resto de claves
candidatas
• ClavesAlternativas(ACTOR) = {nombre}
• ClavesAlternativas(EMPLEADO) = {{dni}, {nombre, fechaNac}}

Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Integridad de los datos: claves (V) 19

• Clave externa, ajena o foránea (Foreign Key, FK): Conjunto de


atributos FK de una relación R2, tal que:
1. Existe otra relación R1 con clave primaria PK, y
2. Cada valor de FK en R2 es idéntico al de PK en alguna tupla de
R1
• En otras palabras, una foreign key FK es un conjunto de atributos de
una relación que hace referencia a la primary key PK de otra
relación (o de la misma)
PELICULA(título, género, duración, director↑, ...)
DIRECTOR(nombre, nacionalidad, ...)
EMPLEADO(codEmp, nombre, jefe↑, nss, ...)
LIBRO(título, isbn, autor↑, editorial, edición, año, ...)
ESCRITOR(dni, nombre, ...)
ARTICULO(título, tema, autor↑, revista, página, ...)

Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Integridad de los datos: claves (VI) 20

• Cada componente de una FK debe estar definido sobre el mismo


dominio que el correspondiente atributo de la PK a la que
referencia
PACIENTE(nss, nombre, dirección, ...)
HISTORIAL(nss, especialidad, fechaApert, ...)
VISITA(nss↑, especialidad↑, numVisita, fecha, ...)

• El uso de claves externas:


• Representa un mecanismo para establecer VÍNCULOS ENTRE
RELACIONES
• Facilita la eliminación de la redundancia

Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Integridad de los datos: claves (VII) 21

• Cada cliente sólo puede tener una cuenta a su nombre vs.


• Una cuenta puede tener más de un cliente como titular
CUENTA número saldo ...
200 35000
505 40000
821 50000
...

CLIENTE nombre dirección ciudad cuenta


Vínculo Cliente-
García, A Gran Vía, 6 Murcia 200 Cuenta
López, B Ronda Norte, 3 Murcia 821
Azorín, C Paseo Nuevo, 9 Valencia 505
Pérez, C Plaza Mayor, 2 Valencia 505
...
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Integridad de los datos: claves (VIII) 22

• Restricción de integridad referencial


• Todo valor de una FK debe coincidir con un valor en la
correspondiente PK
• La BD no debe contener claves externas sin correspondencia
• Si una tupla en una relación hace referencia a otra relación, debe
referirse a una tupla existente en esa relación
• Puede existir algún valor de PK al que NO haga referencia ningún
valor de la FK asociada
• Ejemplo: un ESCRITOR que no haya escrito artículos; ninguna tupla de
ARTICULO hará referencia a una tupla de dicho escritor

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 ...

ESCRITOR dni nombre ... editorial

ARTICULO título tema autor revista pág ...


• Ciclo referencial
• Camino que empieza y acaba en la misma relación
• Caso especial: autoreferencia
EMPLEADO codEmp ... dep DEPTO codDep ... dire

EMPLEADO codEmp ... jefe


Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
El valor NULL 24

• En el mundo real existe...


• información perdida, p.e., fecha_nacimiento desconocida
• ausencia de información, p.e., un cliente sin num_telefono
• valores no aplicables en ciertos atributos, p.e., fecha_jubilacion
para un empleado activo
• Para representar estas situaciones en los sistemas de BD se utiliza el
nulo (NULL)
• Si una tupla tiene un atributo que contiene un nulo,
significa que el valor real de tal atributo es desconocido
• Es posible especificar si un atributo puede o no contener NULL
• NULL no es un valor en sí mismo, sino un indicador de ausencia de
información
‐ No hay dos nulos iguales (num_telefono NULL  edad NULL)

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

• Las operaciones que violan (no satisfacen) la integridad referencial,


dejan la BD en un estado incorrecto
• Ejemplo de un hotel
HABITACIÓN numHabit tipo ... OCUPACIÓN codClie habit ...
115 I CLI04 100
420 I CLI02 420
100 D CLI05 115
304 D CLI10 100
405 I
501 D
‐ ¿Qué pasaría si se eliminara la tupla (501, D, ...) en HABITACIÓN?
‐ ¿Y si se eliminara la tupla (100, D, ...)?
‐ ¿Y si se anotara la ocupación de la habitación 900?

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

• Encadenamiento de eliminaciones (o modificaciones)


• R2 → R1, acción de eliminación en cascada
• R3 → R2, acción de eliminación X
‐ Eliminar una tupla de R1  eliminar tuplas de R2 que la referencian
‐ Pero existen tuplas en R3 que referencian esas tuplas de R2...
¿Cómo afecta la acción de eliminación X en esta operación?
‐ Si X = en CASCADA  no hay problema; eliminar esas tuplas de R3
‐ Si X = RECHAZAR  La operación completa falla
• Toda operación de actualización en una BD es siempre atómica:
se realiza “TODO o NADA”
• PROFESOR → ÁREA → DEPARTAMENTO
• ASIGNATURA → TITULACIÓN → UNIVERSIDAD

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

• Una base de datos que se ajusta al modelo relacional puede


representarse como un conjunto de tablas
• Convertir un diagrama E-R a tablas es el primer paso para obtener
una base de datos relacional
• Cada tabla tiene un conjunto de columnas que suelen corresponderse
con los atributos de la entidad asociada
→ Normalmente cada entidad y cada relación muchos a muchos da lugar
a una tabla

Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Conversión de un diagrama E-R a tablas (II) 48

• Representación de una entidad como una tabla


• Una entidad (fuerte) se puede escribir como una tabla con tantas
columnas como atributos

Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Conversión de un diagrama E-R a tablas (III) 49

• Un atributo compuesto (no atómico) ha de descomponerse en


partes atómicas
• Ejemplo: la entidad Cliente con el atributo nombre pasaría a tener
los siguientes atributos: nombre, primer_apellido,
segundo_apellido
• Un atributo multivaluado se representará como una nueva tabla
• La nueva tabla tendrá una/s columna/s correspondiente/s a la clave
primaria de la entidad original como clave externa
‐ Ejemplo: atributo hijos en la entidad Empleado → se crea la tabla
HIJOS_EMPLEADO(id_empleado, nombre_hijo, edad...)
• Si se hubiese considerado la entidad HIJOS en el diseño original, ésta
hubiese sido una entidad débil

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

• Una relación muchos a muchos dará lugar a una tabla que


contendrá las claves primarias de las entidades que relaciona como
clave primaria y externa a la vez

Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Conversión de un diagrama E-R a tablas (VI) 52

• Una relación uno a muchos no dará lugar a una tabla


• Se representará añadiendo la clave del “lado” de uno a la tabla del
lado “muchos” como clave externa
• Por ejemplo: la relación CUENTA_SUCURSAL no da lugar a una tabla,
sino que nombre_sucursal (branch_name) pasa a formar parte de
la tabla CUENTA (ACCOUNT) como clave externa

Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Conversión de un diagrama E-R a tablas (VII) 53

• En una relación uno a uno, la clave primaria de una de las


entidades relacionadas deberá pertenecer a la tabla formada por
la otra entidad como clave externa
• Por lo tanto existen dos soluciones posibles
• Se añade un atributo extra a UNA del las tablas obtenidas a partir de
las entidades relacionadas

Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Conversión de un diagrama E-R a tablas (VIII) 54

• Representación de especialización como tablas (I)


• Método 1
‐ Crear una tabla con la entidad de mayor nivel
‐ Formar una tabla con cada entidad de menor nivel incluyendo en la tabla
la clave primaria de la entidad de mayor nivel como clave ajena, y los
atributos correspondientes a la entidad de menor nivel

tabla atributos
Persona nombre, calle, ciudad
Cliente nombre, credito
Empleado nombre, salario

→ Desventaja: obtener información de una entidad de menor nivel


(Cliente o Empleado) requiere acceder a dos tablas

Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Conversión de un diagrama E-R a tablas (VIII) 55

• Representación de especialización como tablas (II)


• Método 2
‐ Crear una tabla para cada entidad con todos los atributos locales y todos
los atributos heredados

tabla atributos
Persona nombre, calle, ciudad
Cliente nombre, calle, ciudad, crédito
Empleado nombre, calle, ciudad, salario

‐ Si la especialización es total (todas las personas tienen que ser o clientes


o empleados), no se necesita una tabla para la entidad de nivel superior
(persona), a menos que las claves externas lo hagan necesario
→ Desventaja: si existen instancias que pertenecen a varias entidades
del nivel inferior (Cliente y Empleado) simultáneamente, la
base de datos contiene información redundante
Bases de Datos
Escuela Politécnica Superior
Universidad Autónoma de Madrid
Índice 56

• 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

También podría gustarte