2. El Modelo Relacional
¿ Qué es ?
Estructura de Datos relacional
Tipos de Relaciones
Restricciones de Integridad
Transformación de un DER en un
esquema relacional
3. ¿Qué es?
Es el modelo teórico que constituye los
cimientos de los manejadores de base
de datos relacionales (RDBMS).
Es el principal modelo de datos
empleado para las aplicaciones de
procesamiento de datos cubriendo
datos,
cerca del 85% de las ventas mundiales.
4. ¿Qué es?
El modelo relacional es una forma de ver
los datos que consta de:
Una representación de los datos mediante
tablas llamadas “relaciones” (Estructura)
Un conjunto de restricciones que permiten la
consistencia de los datos (Integridad)
Un conjunto de operadores que permiten
manipular dichos datos (Lenguaje de
Manipulación
M i l ió )
5. Estructura de Datos Relacional
Clave NAC
Primaria EXT Dominios
# N C Tipo C Tipo Ciudad
Proveedor Proveedor Servicio Proveedor C
RP a
eR 1234 Abad & Asoc. Ltd SUM NAC LIMA T
r
l O u
d
aV 4210 Carmen Morales LIM NAC MIRAF i
p n
cE 6544 OXF Traiders
T id EQP EXT CHICG l a
i E a l
óD 8541 Lau Chun S.A. SUM NAC LIMA s i
nO 9642 Marcos Segura LIM NAC LINCE d
R a
d
Atributos
Grado
6. Bases de Datos Relacionales
Terminología
Término Relacional Término tabular
Base de datos relacional C j t d T bl
Conjunto de Tablas
Relación Una sola tabla
Atributo Encabezado de columna
Tupla Fila de datos de una tabla
Cardinalidad # de filas de una tabla
Grado # de columnas de una tabla
Dominio Lista de valores permitidos para
los datos de una columna
7. Estructura d D t R l i
E t t de Datos Relacional
l
El dominio es el componente elemental de una BD
relacional: un conjunto de valores (= tipo de dato).
D1 = {Juan María, Pablo}
{Juan, María
D2 = todas las cadenas de caracteres
D3 = {x / x es un entero y x > 0}
D4 = { / x es un entero negativo}
{x i }
Es un conjunto nominado y homogéneo de valores
atómicos
Se especifica lógicamente mediante un nombre y un
formato, por extensión (lista de valores), o por intención
(tipo d d t
(ti de dato o predicado).
di d )
8. Estructura d D t R l i
E t t de Datos Relacional
l
Estos dominios o tipos pueden ser definidos por el sistema
o definidos por el usuario
Un dominio o tipo tiene asociado un conjunto de
operadores válidos que se pueden aplicar a sus valores, los
cuales dependen de su semántica y no de su representación
física.
Todo valor tiene un tipo
El sistema siempre comprueba q los operandos son del tipo
p p que p p
adecuado para la ejecución de cada operación
9. Estructura de Datos Relacional:
Dominios
D i i
Los dominios restringen la manipulación:
Las comparaciones tienen sentido cuando se plantean
entre atributos que provienen del mismo dominio:
Q_Peso = Q_Unidades
A.N_Ciudad = B.N_Ciudad
Las expresiones tienen sentido si emplean operadores
definidos como válidos en los dominios y en sus
combinaciones:
Q_Peso + Q_Unidades
Q_Peso * Q_Unidades
_ _
10. Estructura de Datos Relacional:
Dominios
D i i
El soporte para dominios (tipos) en el modelo
relacional implica que:
El sistema siempre sabrá qué expresiones son válidas y
el tipo del resultado de cada expresión
El conjunto de tipos de una base de datos es un
j t d ti d b d d t
conjunto cerrado: el tipo del resultado de toda
expresión será siempre un tipo conocido por el sistema
El sistema conoce qué asignaciones y qué
comparaciones son válidas
11. Estructura de Datos Relacional
Un Atributo
U At ib t es un par ordenado (N, D) d d N es el
d d (N D), donde l
nombre del atributo y D es el dominio del cual toma
sus valores
valores.
Una Relación (tabla) es un conjunto de atributos con
nombre (R, C), donde
R es el nombre de la relación, y
C = {(N1, D1), {N2, D2), ... , (Nn, Dn)} es el conjunto finito de
atributos;
todos los Ni son distintos, aunque no necesariamente lo son
los Di
12. Estructura de Datos Relacional
Un esquema relacional (cabecera de una tabla) es un
conjunto de atributos
Una asociación basada en el atributo (N, D) es un par
ordenado (N, x), donde x ∈ D. Luego, una tupla es
un conjunto de asociaciones (N, x), una por cada
atributo del esquema.
Un cuerpo relacional es un conjunto de tuplas
Una base de datos relacional es un conjunto de
relaciones
13. Estructura de Datos Relacional:
Relaciones
Relación CURSO
C_Curso N_Curso #Horas N_Grupo ESQUEMA
00012 Diseño de Base de 50 Base de Datos
Datos
C
00034 Bases de Datos 30 Base de Datos
OO U
00167 Sistemas 30 Sistemas E
Operativos Operativos R
Avanzados
P
01521 Datawarehousing 25 Base de Datos
O
005142 Introducción al 25 Lenguajes
C++
14. Estructura de Datos
Relacional: Relaciones
D1 el conjunto de los nombres de códigos de curso
D2 el conjunto de los nombres de curso
D3 el conjunto de los números naturales
D4 el conjunto de los grupos
Cada fila de CURSO consiste de una tupla (v1, v2, v3 , v4),
donde: vi está en el dominio Di
La tabla CURSO es un subconjunto de
D1 x D 2 x D 3 x D 4
15. Estructura de Datos
Relacional: Relaciones
En general:
Una tabla de “n” atributos debe ser un subconjunto
de
D1 x D2 x D3 ....... x Dn-1 x Dn
Definición matemática de “Relación”:
“Subconjunto del producto cartesiano de la lista de
Subconjunto
dominios”
Relación = Tabla
Tupla = Fila
16. Propiedades de las Relaciones
No existen tuplas repetidas:
Cada relación es un conjunto matemático; por ende,
no tiene elementos repetidos.
i l id
Las tuplas no están ordenadas (de arriba a abajo).
Los t ib t
L atributos no están ordenados (de izquierda a
tá d d (d i i d
derecha).
Todos los valores de los atributos son atómicos Es
atómicos.
decir, cada tupla contiene exactamente un valor para
cada atributo.
17. Tipos de Relaciones
Relación base (relación real). Es equivalente al concepto
tabla del SQL. Tiene nombre y es autónoma.
Vista (relación virtual). Es una relación derivada con
nombre propio y cuya definición se basa en relaciones
base.
base No poseen datos almacenados
almacenados.
Instantánea (snapshot). Relación derivada con nombre
que si posee datos, como resultado de una consulta que
se almacena y refresca periódicamente.
18. Tipos de Relaciones
Resultado de consulta: Es la relación resultante de
alguna consulta (query) específica. Puede, o no, tener
nombre,
nombre y no tiene existencia persistente en la base de
datos.
Resultado intermedio: Es una relación resultante de
alguna expresión relacional anidada, que no tiene
existencia persistente y que generalmente no tiene
nombre.
nombre
19. Tipos de Relaciones
Relaciones temporales: Es una relación con nombre,
similar a una relación base o vista, pero con la
, p
diferencia de que se destruye en forma automática.
Las relaciones base, vista e instantánea se
destruyen solamente por acción específica del
usuario.
usuario
20. Tipos de Relaciones
Vistas
No forman parte del modelo lógico
Consideraciones de seguridad.
No mostrar los atributos de una tabla que
corresponden a información confidencial (por
ejemplo sueldos).
Personalización de relaciones para un usuario en
particular.
Mostrar algunos atributos seleccionados de varias
tablas relacionadas.
22. Restricciones de Integridad
R ti i d I t id d
El propósito de las reglas de integridad es
informar al DBMS de ciertas restricciones en
el mundo real.
La mayor parte de las reglas de integridad
de datos son específicas, en cuanto a que
se aplican a una base de datos en particular
(reglas de negocio).
23. Restricciones de Integridad
(Constraints)
(C t i t )
Aseguran que las modificaciones realizadas no originen
pérdida de consistencia de los datos
Restricciones de Dominio:
Especifican el conjunto de valores que se puede asociar
a un atributo.
atributo
Restricciones de Clave Primaria
Todas las tuplas de u a relación son d st tas, es dec ,
odas as tup as una e ac ó so distintas, decir,
debe haber siempre una clave primaria que garantice
esta unicidad
24. Restricciones de Integridad
g
(Constraints)
Restricciones d Clave Primaria
de l
La clave primaria (PK) es un identificador único para una
relación.
La clave primaria puede ser compuesta (más de un atributo)
Es posible que en una relación haya más de un identificador
único o “clave candidata”:
Unicidad: En cualquier momento dado, no existen dos tuplas
en R con el mismo valor de K.
Minimalidad: Si K es compuesta, no será posible eliminar
ningún componente de K, sin destruir la propiedad de
K
unicidad.
En estos casos una debe ser escogida como clave primaria y las
ot as
otras se de o
denominarán c a es a te a tes ú cas
a á claves alternantes únicas.
25. Restricciones de Integridad
(Constraints)
(C t i t )
Restricciones sobre nulos:
Especifican cuándo un atributo puede no tener un valor
asociado por ser desconocido o no aplicable a alguna
instancia en particular
Restricciones de Integridad de entidades:
Ningún componente de la clave primaria de una relación
base puede aceptar nulos (un valor desconocido o no
aplicable)
26. Restricciones de Integridad
(Constraints)
(C t i t )
Restricciones de Integridad Referencial:
Aseguran que un valor que aparece en una relación para
g q q p p
un conjunto de atributos dado, aparezca también para un
conjunto de atributos en otra relación:
“La b
“L base de datos no debe contener valores de
d d t d b t l d
clave foránea sin concordancia”
27. Restricciones de Integridad
g
(Constraints)
Restricciones de Integridad Referencial:
Una clave foránea o ajena es un atributo o
conjunto de atributos (clave foránea compuesta) de
una relación R2, cuyos valores deben concordar con
R2
los de la clave primaria de alguna relación R1
(donde: R1 y R2 no necesariamente son distintos).
28. Restricciones de Integridad
g
(Constraints)
Restricciones de Integridad Referencial:
El atributo FK (quizá compuesto) de una relación
(q p )
base R2 es una clave foránea si satisface dos
propiedades:
Cada valor de FK es nulo del todo o bien no nulo
del todo.
Existe una relación base R1 con clave primaria
p
PK, tal que cada valor no nulo de FK es idéntico
al valor de PK en alguna tupla de R1.
29. Restricciones de Integridad
g
(Constraints)
Restricciones de integridad Semántica -
Disparadores (triggers):
Son órdenes que el sistema ejecuta de manera
automática como efecto secundario de la modificación de
la base de datos. Su diseño debe cumplir dos requisitos:
Especificar las condiciones de ejecución.
Especificar las acciones a realizar.
E ifi l i li
30. Restricciones de Integridad
(Constraints)
Ejemplo:
“Los sobregiros en las cuentas corrientes se tratan dejando
en cero el saldo de la cuenta y creando un préstamo por
el importe sobregirado”
Condición:
Actualización de la relación CUENTA que da un valor
negativo en el atributo saldo
Acciones:
Insertar una nueva tupla en la relación PRESTAMO
Cambiar el valor de saldo a cero en la relación CUENTA
31. Restricciones de Integridad
g
(Constraints)
Restricciones de integridad Semántica –
Asertos (afirmaciones):
Son expresiones declarativas que expresan predicados
que deben ser verdaderos. Es decir, condiciones que
siempre se deben cumplir en la BD.
Ejemplo:
“La suma de los importes de los préstamos de un banco
debe ser menor a la suma de los saldos de las cuentas”.
32. Integridad Referencial –
Reglas para Claves Foráneas
Para cada clave foránea es necesario responder tres
preguntas:
¿La l
¿L clave f á
foránea puede aceptar nulos?
d t l ?
¿Que deberá suceder si hay un intento de eliminar el
registro de referencia de una clave foránea?
¿Que deberá suceder si hay un intento de modificar la
clave foránea?
33. Integridad Referencial –
Reglas para Claves Foráneas
Si la relación R2 tiene una clave foránea FK
que lo relaciona con R1:
Insertar:
I
Si se inserta una tupla en R2, debe asegurarse que
∃ una instancia en R1 con el valor correspondiente
como PK
Borrar:
Si se borra una tupla en R1, identificar el conjunto
de tuplas en relacionadas mediante una FK. Si las
hay, se puede rechazar la operación de borrado, o
y, p p ,
borrarlas en cascada o alterar su valor.
34. Integridad Referencial –
Reglas para Claves Foráneas
Actualizar:
Si se modifica una tupla de R2
Se procede a verificar como en el caso de
la inserción
Si se modifica una tupla en R1
Se procede a verificar como en el caso del
borrado
35. Integridad Referencial –
Reglas para Claves Foráneas
REGLAS:
Cascada
Si se elimina una instancia del padre, todas las
instancias hijo relacionadas también se eliminarán.
Restricción
No se puede eliminar una instancia del padre si tiene
hijos asociados, o no se puede eliminar un hijo si
asociados
existe una instancia relacionada en la entidad padre.
36. Integridad Referencial –
Reglas para Claves Foráneas
Set Null
Si se elimina una instancia del padre, las claves
foráneas (FK) en l instancias hijo relacionadas
f á las i t i hij l i d
cambian al valor nulo.
Set Default
Si se elimina una instancia del padre, las claves
foráneas (FK) en las instancias hijo relacionadas
cambian al valor por omisión establecido.
bi l l i ió bl id
<None>
No se toma ninguna acción específica.
específica
37. Pinacotecas
Pais Escuela Pinacoteca
C Pais N Escuela N pinacoteca
Mecenas
M
N Pais C Pais (FK) N ciudad_pinacoteca
N Mecenas
D inicio_escuela T direccion_pinacoteca
C Pais (FK) Q area_pinacoteca
N ciudad_mecenas
D nacimiento_mecenas
D muerte mecenas
muerte_mecenas
P
P Cuadro
Pintor C cuadro
N pintor N pinacoteca (FK)
C Pais (FK) N pintor (FK)
P N Escuela (FK) N cuadro
D nacimiento pintor
nacimiento_pintor Q dimensiones
Mecenas_Pintor D cuadro
D muerte_pintor
N Mecenas (FK) N maestro (FK) N tecnica
N pintor (FK)
D inicio_mecenazgo
D fin_mecenazgo
38. Integridad Referencial –
Reglas para Claves Foráneas
¿Que deberá suceder si hay un intento de eliminar
un Pintor del que haya Cuadros registradas?
Restricción ( S
ó (RESTRICTED): S rechazará la operación
C ) Se h ál ó
Propagación (CASCADE): La eliminación se hace efectiva y
se propaga borrando los cuadros de su autoría.
autoría
Valor por omisión (SET DEFAULT): Se asignan un valor
default a la clave foránea N_Pintor en todas las instancias
N Pintor
de Cuadro correspondientes y luego se elimina el registro
de Pintor.
39. Integridad Referencial –
Reglas para Claves Foráneas
Para cada relación existen seis posibles
acciones para las cuales es necesario
p
establecer las reglas de integridad
referencial:
Parent Insert Child Insert
Parent Update Child Update
Parent Delete Child Delete
41. Traducción
T ad cción de un modelo .....
n
Cada entidad se convierte en una tabla
El identificador único se convierte en la clave primaria
Cada atributo se convierte en una columna de su
respectiva tabla
p
Las relaciones se implementan colocando la clave
primaria de una tabla en la tabla relacionada, como
clave externa.
externa
42. Traducción
T ad cción de un modelo .....
n
Antes de generar un diseño relacional a partir de un
modelo,
modelo hay que asegurase que esté completo:
Tipos de dato de los atributos
Cardinalidad de las relaciones
Identificadores de las entidades (claves primarias)
43. Traducción
T ad cción de un modelo .....
n
Relaciones de uno a muchos:
La l
L clave primaria del lado “uno” es incrustada en la
i i d ll d “ ” i t d l
tabla del lado “muchos”
Si el lado “uno” es opcional, la clave externa será
uno
opcional, en caso contrario será requerido.
44. Traducción
T ad cción de un modelo .....
n
Relaciones de uno a uno:
Son muy poco frecuentes en un sistema de negocios.
Generalmente ocultan relaciones de tipo generalización
/ especialización.
Si ambos lados de la relación son obligatorios u
opcionales, escoger como principal aquella que “podría”
variar su cardinalidad a de uno a muchos
Si sólo un lado es obligatorio, la PK de éste debe migrar
hacia el lado opcional.
45. Traducción
T ad cción de un modelo .....
n
Relaciones de muchos a muchos:
Deben ser resueltas en el modelo mediante entidades
asociativas o designativas.
Las cardinalidades de las relaciones de estas nuevas
entidades determinarán la forma de traducirlas en una
tid d d t i á l f d t d il
BD relacional (de uno a muchos o de uno a uno)
46. Implementación de Entidades
Supertipo Subtipo
S pe tipo / S btipo
Cuenta
C Cuenta
p
C TipoCuenta
D Apertura
C TipoCuenta
Corriente Ahorro Plazo Fijo
C Cuenta (FK) C Cuenta (FK) C Cuenta (FK)
$ SaldoContable $ SaldoAhorro $ MontoDepósito
$ SaldoDisponible % Interés D Depósito
p
$ Sobregiro $ Interés % Plazo
Q PlazoDías
47. Implementación de Entidades
Supertipo Subtipo
S pe tipo / S btipo
1 Tablas de supertipo / subtipo
Implementar el supertipo y cada subtipo como tablas
separadas
La PK del supertipo puede también usarse como PK
p p p
de los subtipos
Para la descripción completa de cualquier instancia
es necesario acceder por lo menos a dos tablas
48. Implementación de Entidades
Supertipo Subtipo
S pe tipo / S btipo
2 Sólo supertipo
• Las entidades subtipo son combinadas con el
supertipo e implementadas como una sola tabla
• Las relaciones exclusivas de los subtipos se
p
convierten en opcionales para la nueva tabla
• Se incluirán campos que deberán aceptar valores
nulos dependiendo de lo que se establezca en el
código de la aplicación.
• La codificación de las consultas se hace más
compleja.
49. Implementación de Entidades
Supertipo Subtipo
S pe tipo / S btipo
3 Sólo subtipos
Eliminar el supertipo e implementar solamente los
subtipos
Si los subtipos no son excluyentes, será necesario
p y ,
duplicar alguna información.
Adecuado con subtipos excluyentes, que comparten
muy poco comportamiento
comportamiento.
50. RESUMEN
El modelo relacional propone una estructura, un
conjunto de restricciones de integridad y un lenguaje
j g g j
para manipulación de los datos almacenados
Las relaciones son conjuntos matemáticos, con las
propiedades que esa condición les confieren
i d d di ió l fi
Las restricciones de integridad permiten garantizar que
la información almacenada es siempre confiable, en el
sentido de no violar las reglas del negocio
Las restricciones de integridad referencial son un tipo
particular de restricciones
ti l d ti i