Story Transcript
Tema II: El modelo relacional de datos. (2.4)
El modelo relacional de datos. Objetivos: 9 conocer las estructuras de datos del modelo: la
tupla y la relación. 9 conocer básicamente la forma de modelar la realidad utilizando el modelo relacional. 9 conocer los mecanismos del modelo relacional para expresar restricciones de integridad. 9 conocer los lenguajes de manipulación propuestos para este modelo de datos: Álgebra Relacional y Cálculo Relacional de Tuplas.
1
El modelo relacional de datos. 9 2.1 Modelo relacional de datos (Aproximación
algebraica). – 2.1.1 Estructuras de datos: tupla, relación. – 2.1.2 Operadores asociados a la estructura relación: Álgebra Relacional. 9 2.2 Esquema relacional: representación de la realidad. 9 2.3 Modelo relacional de datos (Aproximación lógica) – 2.3.1 Interpretación lógica de una base de datos relacional. – 2.3.2 Cálculo Relacional de Tuplas. 9 2.4 Restricciones de integridad.
El modelo relacional de datos.
2.4. Restricciones de Integridad
2
2.4 Restricciones de Integridad. Empleado (nro_emp: dom_emp, dni: dom_dni, nombre:dom_nom, teléfono:dom_tel, cod_dep: dom_dep) Departamento (cod_dep: dom_dep, nombre:dom_nom)
Empleado
Departamento
nro_emp
cod_dep
dni
nombre
nombre teléfono cod_dep
2.4 Restricciones de Integridad. Departamento
Extensión válida del esquema Extensión “no adecuada” del esquema
cod_dep
nombre
d1
Ventas
d2
Compras
d3
Contabilidad
?
Empleado nro_emp
dni
nombre
teléfono
cod_dep
1
2045021
Juan C. Ródenas
7796
d1
2
1234567
Robert Capilla
?
d2
3
3567896
José V. Dualde
5760
d2
4
1432652
María Frasnedo
3560
d2
5
2045021
Cristina Guillot
7439
d8
1
3356223
?
4590
?
3
2.4 Restricciones de Integridad.
Restricciones de Integridad: 9El atributo nro_emp identifica de forma únivoca a los empleados 9El atributo dni es único para cada empleado 9Se debe conocer el nombre de todo empleado 9El atributo cod_dep de Empleado referencia al departamento de adscripción del empleado
2.4 Restricciones de Integridad.
Restricciones de Integridad: restricción de clave primaria 9El atributo nro_emp identifica de forma
únivoca a los empleados
restricción de unicidad 9El atributo dni es único para cada empleado restricción de 9Se debe conocer el nombre de todo empleado valor no nulo
9El atributo cod_dep de Empleado referencia al departamento de adscripción del empleado restricción de clave ajena o integridad referencial
4
2.4 Restricciones de Integridad. restricción de integridad propiedad del mundo real del cual la base de datos es una representación para que la base de datos sea una representación fiel de la realidad debe cumplir estas restricciones en cualquier instante de su historia
las restricciones deben ser comprobadas después de cada actualización de la base de datos si las restricciones se definen en el esquema de la base de datos el SGBD puede velar por su cumplimiento rechazando operaciones del usuario que las violen
2.4 Restricciones de Integridad. Restricciones de Integridad: 9Restricciones sobre atributos: de dominio y de valor no nulo 9Restricciones de unicidad 9Restricción de clave primaria 9Restricción de clave ajena (integridad referencial)
5
2.4 Restricciones de Integridad.
Valor NO NULO Dado un conjunto de atributos K de R (K≠∅) se dice que R satisface una restricción de valor no nulo sobre K si se cumple la siguiente propiedad: ∀ t ( t ∈ R → ¬∃ Ai ∈ K y t(Ai) tiene valor nulo) en caso contrario R viola esta restricción.
Empleado (nro_emp: dom_emp, dni: dom_dni, nombre:dom_nom, teléfono:dom_tel, cod_dep: dom_dep) VNN={nombre}
2.4 Restricciones de Integridad.
Unicidad Dado un conjunto de atributos K de R (K≠∅) se dice que R satisface una restricción de unicidad sobre K si se cumple la siguiente propiedad: ∀t1 ∀t2 ( t1∈R y t2∈R y t1≠ t2→ ∃ Ai∈K (t1(Ai) ≠ t2(Ai))) en caso contrario R viola esta restricción.
Empleado (nro_emp: dom_emp, dni: dom_dni, nombre:dom_nom, teléfono:dom_tel, cod_dep: dom_dep) VNN={nombre} UNI={dni}
6
2.4 Restricciones de Integridad.
Clave primaria “Un conjunto CP de atributos de una relación R que identifican de forma unívoca sus tuplas”
Si CP se define como clave primaria de R, se dice que R satisface la restricción de clave primaria si: • R satisface la restricción de unicidad sobre CP • R satisface la restricción de valor no nulo sobre CP en caso contrario R viola esta restricción.
Nota: CP debe ser minimal, es decir no debe haber un subconjunto propio de CP que a su vez pueda ser clave primaria
2.4 Restricciones de Integridad. Empleado (nro_emp: dom_emp, dni: dom_dni, nombre:dom_nom, teléfono:dom_tel, cod_dep: dom_dep) CP={nro_emp}, VNN={nombre}, UNI={dni} Departamento (cod_dep: dom_dep, nombre:dom_nom) CP={cod_dep}, VNN={nombre}
7
2.4 Restricciones de Integridad. Restricciones de Integridad: 9Restricciones sobre atributos: de dominio y de valor no nulo 9Restricciones de unicidad 9Clave primaria 9Clave ajena (integridad referencial)
2.4 Restricciones de Integridad.
Clave ajena (integridad referencial) Empleado (nro_emp: dom_emp, dni: dom_dni, nombre:dom_nom, teléfono:dom_tel, cod_dep: dom_dep) CP={nro_emp}, VNN={nombre}, UNI={dni} Departamento (cod_dep: dom_dep, nombre:dom_nom) CP={cod_dep}, VNN={nombre} 9El atributo cod_dep de Empleado referencia al departamento de adscripción del empleado
8
2.4 Restricciones de Integridad. Empleado
nro_emp dni nombre teléfono cod_dep
Departamento cod_dep nombre cod_dep de Empleado es un atributo de referencia (clave ajena)
su función es hacer referencia a las tuplas de Departamento su valor en una tupla de Empleado, si no es nulo, debe coincidir con el valor del atributo cod_dep de una tupla de Departamento.
2.4 Restricciones de Integridad.
Empleado (nro_emp: dom_emp, dni: dom_dni, nombre:dom_nom, teléfono:dom_tel, cod_dep: dom_dep) CP={nro_emp}, VNN={nombre}, UNI={dni} CAj={cod_dep} → Departamento f(cod_dep)=cod_dep Departamento (cod_dep: dom_dep, nombre: dom_nom) CP={cod_dep}, VNN={nombre}
9
2.4 Restricciones de Integridad.
Departamento cod_dep
nombre
d1
Ventas
d2
Compras
d3
Contabilidad
Empleado nro_emp
dni
nombre
teléfono
cod_dep
1
2045021
Juan C. Ródenas
7796
d1
2
1234567
Robert Capilla
?
d2
3
3567896
José V. Dualde
5760
d2
4
1432652
María Frasnedo
3560
d1
5
2045333
Cristina Guillot
7439
d8
?
Empleado viola la restricción de clave ajena para el atributo cod_dep
2.4 Restricciones de Integridad.
Clave Ajena
Departamento cod_dep
nombre
d1
Ventas
d2
Compras
d3
Contabilidad
Empleado nro_emp
dni
nombre
teléfono
cod_dep
1
2045021
Juan C. Ródenas
7796
d1
2
1234567
Robert Capilla
?
d2
3
3567896
José V. Dualde
5760
d2
4
1432652
María Frasnedo
3560
d1
5
2045333
Cristina Guillot
7439
d3
Empleado satisface la restricción de clave ajena para el atributo cod_dep
10
2.4 Restricciones de Integridad.
Clave Ajena Sea: • R una relación de esquema ρ = {(A1, D1), (A2, D2),…, (An, Dn)} • S una relación de esquema σ = {(B1, E1), (B2, E2),…, (Bm, Em)} • Aρ el conjunto de nombres de atributo de ρ, Aρ = {A1, A2, …, An} • Aσ el conjunto de nombres de atributo de σ, Aσ = {B1, B2, …, Bm}
2.4 Restricciones de Integridad.
Clave Ajena Una clave ajena CA de R que hace referencia a S se define: 1) un subconjunto K = {Ai, Aj,…, Ak} (K ⊆ Aρ y K ≠ ∅), 2) una biyección f: K→ J tal que: J ⊆ Aσ , J tiene restricción de unicidad, y ∀Ai (Ai ∈ K→ Ai y f(Ai) tienen el mismo dominio, y 3) un tipo de integridad referencial que puede ser: débil, parcial o completa.
11
2.4 Restricciones de Integridad.
Clave Ajena Si K = {Ai} (sólo contiene un atributo) los tres tipos de integridad referencial coinciden.
Si K = {Ai} (sólo contiene un atributo) se dice que R satisface la restricción de integridad referencial sobre CA si se cumple: “en cualquier tupla de R o Ai tiene valor nulo o existe una tupla en S que tiene en el atributo de J, f(Ai), el mismo valor”. ∀ t ( t ∈ R → ( nulo(t(Ai)) ∨ ∃ m (m ∈ S y t(Ai) = m(f(Ai))) )) en caso contrario R viola esta restricción.
2.4 Restricciones de Integridad. Clave Ajena (integridad referencial)
R
K
Empleado (nro_emp: dom_emp, dni: dom_dni, nombre:dom_nom, teléfono:dom_tel, cod_dep: dom_dep) CP={nro_emp}, VNN={nombre}, UNI={dni} CAj={cod_dep} → Departamento f(cod_dep) = cod_dep Departamento (cod_dep: dom_dep, nombre:dom_nom) CP={cod_dep}, VNN={nombre}
J
S f: K → J
f (cod_dep) = cod_dep
J tiene restricción de unicidad en algunos casos se puede omitir
12
2.4 Restricciones de Integridad.
Clave Ajena con varios atributos
la clave ajena puede ser parcialmente nula
2.4 Restricciones de Integridad.
Ejemplo: Gestión de la programación de cursos en un Centro de Estudios.
9 se mantiene información sobre las distintas materias sobre las que se imparten cursos: código interno de la materia y descripción (Materia) 9se dispone de un registro de profesores: código interno del profesor, nombre y nivel de preparación para impartir distintas materias (Profesor, Oferta) 9se mantiene información sobre la programación de cursos realizada: código interno del curso, materia, profesor y fecha prevista (Cursos)
13
2.4 Restricciones de Integridad. Materia
Profesor
cod_mat
des
cod_prof
nom bre
BDA
Bases de datos
p2
Jesú s P érez
LIN U X
Linux
p3
L u is G a rc ía
WWW
W eb
p5
P e d ro S a n z
CP={cod_mat}
CP={cod_prof}
Oferta cod_mat
cod_prof
nivel
BDA
p2
1
WWW
p5
2
BDA
p3
4
Oferta satisface las restricciones de clave ajena para {cod_mat} y {cod_prof}
CP={cod_mat, cod_prof} CAj={cod_mat} → Materia
f(cod_mat)=cod_mat
CAj={cod_prof} → Profesor
f(cod_pof)=cod_prof
2.4 Restricciones de Integridad. Materia
Profesor
cod_mat
des
cod_prof
BDA
Bases de datos
p2
Jesú s P érez
LIN U X
Linux
p3
L u is G a rc ía
WWW
W eb
p5
P e d ro S a n z
CP={cod_mat}
nom bre
¿ satisface Cursos la restricción de clave ajena para {materia, profesor} ?
CP={cod_prof}
Cursos
Oferta
curso materia profesor
fecha
cod_mat
cod_prof
nivel
BDA
p2
1
1
BDA
p2
WWW
p5
2
2
LINUX
?
1/5/00
4
4
WWW
?
15/2/00
3
?
?
15/3/01
BDA
p3
CP={cod_mat, cod_prof} CAj={cod_mat} → Materia CAj={cod_prof} → Profesor
1/6/99
satisface depende depende satisface
CP= {curso}, VNN={fecha} CAj= {materia, profesor} → Oferta f(materia)=cod_mat, f(profesor)=cod_prof
14
2.4 Restricciones de Integridad.
Tres tipos de Integridad Referencial: 9 I.R Débil 9 I.R Parcial 9 I.R Completa
2.4 Restricciones de Integridad.
Clave Ajena Si K contiene más de un atributo, R satisface la restricción de integridad referencial sobre CA si, según el tipo elegido, se cumple la propiedad que se especifica a continuación:
•I. R. Débil: “para toda tupla de R se debe cumplir que si todos los atributos de K tienen un valor que no es el nulo, entonces debe existir una tupla en S que tome esos mismos valores en los correspondientes atributos de J” ∀ t ( t ∈ R → ( ∃ Ai (Ai ∈ K ∧ nulo(t.Ai)) ∨ ∃ m (m ∈ S ∧ ∀Ai ( Ai∈ K → t.Ai = m.f(Ai) )))) en caso contrario R viola esta restricción.
15
2.4 Restricciones de Integridad. Materia
Profesor
cod_mat
des
cod_prof
nom bre
BDA
Bases de datos
p2
Jesú s P érez
LIN U X
Linux
p3
L u is G a rc ía
WWW
W eb
p5
P e d ro S a n z
CP={cod_mat}
I.R Débil: Cursos satisface la restricción de clave ajena para {materia, profesor}
CP={cod_prof}
Cursos
Oferta cod_mat
cod_prof
nivel
BDA
p2
1
WWW
p5
2
BDA
p3
4
curso
materia profesor p2
fecha
1
BD A
1/6/99
2
LIN U X
?
1/5/00
4
WWW
?
15/2/00
3
?
?
15/3/01
CP={cod_mat, cod_prof}
CP= {curso}, VNN={fecha}
CAj={cod_mat} → Materia
CAj= {materia, profesor} → Oferta
CAj={cod_prof} → Profesor
f(materia)=cod_mat, f(profesor)=cod_prof
satisface satisface satisface satisface
CAj={materia} → Materia, f(materia)=cod_mat CAj={profesor} → Profesor, f(profesor)=cod_prof
2.4 Restricciones de Integridad.
Clave ajena Si K contiene más de un atributo, R satisface la restricción de integridad referencial sobre CA si, según el tipo elegido, se cumple la propiedad que se especifica a continuación:
•I. R. Parcial: “para toda tupla de R se debe cumplir que si algún atributo de K no tiene valor nulo, entonces debe existir una tupla en S que tenga en los correspondientes atributos de J los mismos valores que los atributos de K que no tienen valor nulo” ∀ t ( t ∈ R → ( ∀Ai (Ai ∈ K → nulo(t(Ai))) ∨ ∃ m (m∈S ∧∀Ai ((Ai∈K ∧¬nulo(t(Ai)) )→t(Ai) = m(f(Ai))) ))))
en caso contrario R viola esta restricción.
16
2.4 Restricciones de Integridad. Materia
Profesor
cod_mat
des
cod_prof
nom bre
BDA
Bases de datos
p2
Jesú s P érez
LIN U X
Linux
p3
L u is G a rc ía
WWW
W eb
p5
P e d ro S a n z
CP={cod_mat}
I.R. Parcial: Cursos viola la restricción de clave ajena para {materia, profesor}
CP={cod_prof}
Cursos
Oferta
curso materia profesor
fecha
cod_mat
cod_prof
nivel
BDA
p2
1
1
BDA
p2
1/6/99
LINUX
?
1/5/00
WWW
p5
2
2
BDA
p3
4
4
WWW
?
15/2/00
3
?
?
15/3/01
CP={cod_mat, cod_prof} CAj={cod_mat} → Materia
CP= {curso}, VNN={fecha}
CAj={cod_prof} → Profesor
CAj= {materia, profesor} → Oferta
satisface viola satisface satisface
f(materia)=cod_mat, f(profesor)=cod_prof
2.4 Restricciones de Integridad.
Clave ajena Si K contiene más de un atributo, R satisface la restricción de integridad referencial sobre CA si, según el tipo elegido, se cumple la propiedad que se especifica a continuación:
•I. R. Completa: “para toda tupla de R se debe cumplir que o todos los atributos de K tienen valor nulo o ninguno tiene valor nulo y entonces debe existir una tupla en S que tenga en los correspondientes atributos de J los mismos valores que los atributos de K”. ∀ t ( t ∈ R → ( ∀Ai (Ai ∈ K → nulo(t(Ai))) ∨ ∃ m (m ∈ S ∧∀Ai (Ai ∈ K → (¬nulo(t(Ai)) ∧ t.Ai = m(f(Ai))) ) ))))
en caso contrario R viola esta restricción.
17
2.4 Restricciones de Integridad. Materia
Profesor
cod_mat
des
cod_prof
nom bre
BDA
Bases de datos
p2
Jesú s P érez
LIN U X
Linux
p3
L u is G a rc ía
WWW
W eb
p5
P e d ro S a n z
CP={cod_mat}
I.R. Completa: Cursos viola la restricción de clave ajena para {materia, profesor}
CP={cod_prof}
Cursos
Oferta
curso materia profesor
fecha
cod_mat
cod_prof
nivel
BDA
p2
1
1
BDA
p2
1/6/99
LINUX
?
1/5/00
WWW
p5
2
2
BDA
p3
4
4
WWW
?
15/2/00
3
?
?
15/3/01
CP={cod_mat, cod_prof} CAj={cod_mat} → Materia
CP= {curso}, VNN={fecha}
CAj={cod_prof} → Profesor
CAj= {materia, profesor} → Oferta
satisface viola viola satisface
f(materia)=cod_mat, f(profesor)=cod_prof
2.4 Restricciones de Integridad.
Clave Ajena con varios atributos.
los tres tipos de integridad referencial se diferencian en el tratamiento de las claves ajenas parcialmente nulas
18
2.4 Restricciones de Integridad. Los tres tipos de Integridad Referencial permiten expresar distintas normas de funcionamiento de la organización: I.R Débil: permite programar cursos sin conocer temporalmente la materia o el profesor, y en estos casos no se hace ninguna comprobación sobre la oferta disponible. I.R Parcial: permite programar cursos sin conocer temporalmente la materia (resp. profesor), y en estos casos se hace una comprobación de la oferta disponible sobre la materia (resp. profesor). I.R Completa: no permite programar cursos en los que se conoce sólo uno de los dos atributos (materia, profesor).
2.4 Restricciones de Integridad.
Clave Ajena con varios atributos con restricción de valor no nulo.
coinciden los tres tipos de integridad referencial
19
2.4 Restricciones de Integridad.
Ejemplo: Gestión de pedidos de material en una empresa constructora.
9 se mantiene información sobre los distintos materiales con los que se trabaja: código interno del material y descripción (Material) 9se dispone de un registro de provedores: código interno del proveedor, nombre y lista de precios a los que puede suministrar el material (Poveedor, Precios) 9se mantiene información sobre los proyectos en ejecución: código interno del proyecto y título (Proyecto) 9se mantiene información sobre los pedidos realizados con destino a los distintos proyectos en ejecución: material pedido, proveedor, proyecto y cantidad (Pedidos)
2.4 Restricciones de Integridad. Material
Proveedor
Proyecto
cod_mat
des
cod_prov
nombre
cod_proy
título
m1
viga
pv2
Cons SA
py2
IES Cid
m3
ladrillo
pv3
BBT
py6
La FE
m5
hormigón
pv4
Bertolin
CP={cod_mat}
CP={cod_proy}
CP={cod_prov}
Precios
Pedidos
cod_mat
cod_prov
precio
cod_mat
cod_prov
cod_proy
cant
m1
pv3
1000
m1
pv3
py2
96
m1
pv2
1500
m1
pv2
py6
100
m3
pv3
100
m3
pv3
py2
60
m1
pv4
900
m1
pv4
py2
30
CP={cod_mat, cod_prov} CAj={cod_mat} → Material CAj={cod_prov} → Proveedor
CP= {cod_mat, cod_prov, cod_proy} CAj= {cod_mat, cod_prov} → Precios CAj={cod_proy} → Proyecto
20
2.4 Restricciones de Integridad. Material
Proveedor
Proyecto
cod_mat
des
cod_prov
nombre
cod_proy
título
m1
viga
pv2
Cons SA
py2
IES Cid
m3
ladrillo
pv3
BBT
py6
La FE
m5
hormigón
pv4
Bertolin
CP={cod_mat}
CP={cod_proy}
CP={cod_prov}
Precios cod_mat
cod_prov
precio
m1
pv3
1000
m1
pv2
1500
m3
pv3
100
m1
pv4
900
CP={cod_mat, cod_prov} CAj={cod_mat} → Material CAj={cod_prov} → Proveedor
las claves ajenas {cod_mat}, y {cod_prov} están formadas por un único atributo (no pueden ser parcialmente nulas). Los tres tipos de I.R coinciden.
Precios satisface las restricciones de clave ajena para {cod_mat}, y {cod_prov} en cualquier tipo de I.R
2.4 Restricciones de Integridad. Proyecto
Precios cod_mat
cod_prov
precio
cod_proy
título
m1
pv3
1000
py2
IES Cid
py6
La FE
m1
pv2
1500
m3
pv3
100
m1
pv4
900
los atributos de la clave ajena {cod_mat, cod_prov} tienen restricción de valor NO NULO por formar parte de la CP (la clave ajena no puede ser parcialmente nula). Los tres tipos de integridad referencial coinciden.
Pedidos cod_mat
cod_prov
cod_proy
cant
m1
pv3
py2
96
m1
pv2
py6
100
m3
pv3
py2
60
m1
pv4
py2
30
CP= {cod_mat, cod_prov, cod_proy} CAj= {cod_mat, cod_prov} → Precios CAj={cod_proy} → Proyecto
21
2.4 Restricciones de Integridad. Proyecto
Precios cod_mat
cod_prov
precio
cod_proy
título IES Cid La FE
m1
pv3
1000
py2
m1
pv2
1500
py6
m3
pv3
100
m1
pv4
900
Pedidos
Pedidos satisface la restricción de clave ajena para {cod_mat, cod_prov} en cualquier tipo de I.R
cod_mat
cod_prov
cod_proy
cant
m1
pv3
py2
96
m1
pv2
py6
100
m3
pv3
py2
60
m1
pv4
py2
30
CP= {cod_mat, cod_prov, cod_proy} CAj= {cod_mat, cod_prov} → Precios CAj={cod_proy} → Proyecto
2.4 Restricciones de Integridad.
I.R Débil
I.R Completa
I.R Parcial
9la clave ajena tiene un único atributo 9todos los atributos de la clave ajena tienen restricción de valor no nulo
22
2.4 Restricciones de Integridad. Violación de la Integridad Referencial. (Operaciones relevantes)
Modificar J
S
Clave Ajena
R
J
K Borrar en S Modificar K
Insertar en R
2.4 Restricciones de Integridad. Violación de la Integridad Referencial. Dadas dos relaciones R y S tal que R tiene una clave ajena CA que hace referencia a S, las operaciones que pueden violar la integridad referencial son: • Operaciones sobre R: – Insertar una tupla en R – Modificar el valor de CA en una tupla de R • Operaciones sobre S: – Borrar una tupla de S – Modificar el valor de J en una tupla de S
23
2.4 Restricciones de Integridad. Mantenimiento de la Integridad Referencial. (Operaciones relevantes sobre R).
S
Clave Ajena
R
J
K Modificar K
Insertar en R
Si la operación relevante sobre R viola la integridad referencial el SGBD rechaza la operación .
2.4 Restricciones de Integridad. Mantenimiento de la Integridad Referencial. (Operaciones relevantes sobre S).
Modificar J
Clave Ajena
R
S
J
K
Si la operación relevante sobre S viola la integridad referencial el SGBD tiene tres opciones:
Borrar en S
9rechazar la operación 9transmitir en cascada la operación 9poner a nulos CA en las tuplas afectadas de R
24
2.4 Restricciones de Integridad. Departamento
Mantenimiento de la Integridad Referencial Empleado nro_emp
dni
nombre
teléfono
cod_dep
1
2045021
Juan C. Ródenas
7796
d1
2
1234567
Robert Capilla
?
d2
3
3567896
José V. Dualde
5760
d2
4
1432652
María Frasnedo
3560
d1
5
2045333
Cristina Guillot
7439
d3
cod_dep
nombre
d1
Ventas
d2
Compras
d3
Contabilidad
BORRADO en CASCADA
Empleado (nro_emp: dom_emp, dni: dom_dni, nombre:dom_nom, teléfono:dom_tel, cod_dep: dom_dep) CP={nro_emp}, VNN={nombre}, UNI={dni} CAj={cod_dep} →Departamento, f(cod_dep)=cod_dep BORRADO en CASCADA
2.4 Restricciones de Integridad. Departamento
Mantenimiento de la Integridad Referencial
cod_dep
Empleado nro_emp
dni
nombre
teléfono
cod_dep
1
2045021
Juan C. Ródenas
7796
d1
2
1234567
Robert Capilla
?
d2
3
3567896
José V. Dualde
5760
d2
4
1432652
María Frasnedo
3560
d1
5
2045333
Cristina Guillot
7439
d3
nombre
d1
Ventas
d2
Compras
d3
Contabilidad
? BORRADO a NULOS ?
Empleado (nro_emp: dom_emp, dni: dom_dni, nombre:dom_nom, teléfono:dom_tel, cod_dep: dom_dep) CP={nro_emp}, VNN={nombre}, UNI={dni} CAj={cod_dep} →Departamento, f(cod_dep)=cod_dep, BORRADO a NULOS
25
2.4 Restricciones de Integridad. Departamento
Mantenimiento de la Integridad Referencial
cod_dep
nombre
d1 d8
Empleado nro_emp
dni
nombre
teléfono
cod_dep
1
2045021
Juan C. Ródenas
7796
d1
2
1234567
Robert Capilla
?
d2
3
3567896
José V. Dualde
5760
d2
4
1432652
María Frasnedo
3560
d1
5
2045333
Cristina Guillot
7439
d3
Ventas
d2
Compras
d3
Contabilidad
? ?
Modificación a NULOS
Empleado (nro_emp: dom_emp, dni: dom_dni, nombre:dom_nom, teléfono:dom_tel, cod_dep: dom_dep) CP={nro_emp}, VNN={nombre}, UNI={dni} CAj={cod_dep} →Departamento, f(cod_dep)=cod_dep, Modificación a NULOS
2.4 Restricciones de Integridad. Departamento
Mantenimiento de la Integridad Referencial
cod_dep
nombre
d1 d8
Empleado nro_emp
dni
nombre
teléfono
1
2045021
Juan C. Ródenas
7796
2
1234567
Robert Capilla
?
d2
3
3567896
José V. Dualde
5760
d2
4
1432652
María Frasnedo
3560
d1 d8
5
2045333
Cristina Guillot
7439
d3
Ventas
d2
Compras
d3
Contabilidad
cod_dep d1 d8
Modificación en CASCADA
Empleado (nro_emp: dom_emp, dni: dom_dni, nombre:dom_nom, teléfono:dom_tel, cod_dep: dom_dep) CP={nro_emp}, VNN={nombre}, UNI={dni} CAj={cod_dep} →Departamento, f(cod_dep)=cod_dep, Modificación en CASCADA
26
2.4 Restricciones de Integridad. Mantenimiento de la Integridad Referencial. (Operaciones relevantes sobre S).
Modificar J
Clave Ajena
R
S
J
K
Modificar J en S Borrar en S
a Nulos en CASCADA
Borrar en S
[restrictivo]
2.4 Restricciones de Integridad.
Otras restricciones de integridad: Dada la diversidad de los SIs existen propiedades que no se pueden expresar con los 4 tipos de restricciones proporcionados por el Modelo Relacional Para expresar estas propiedades se puede utilizar (durante el diseño de la BD) un lenguaje de tipo lógico Exemplo: Supóngase que la empresa representada en el Exemplo 1 debe cumplir la siguiente restricción: “Todo departamento debe tener asignado al menos un empleado ”: ∀ DX: Departamento (∃ EX: Empleado (DX.cod.dep = EX.cod_dep))
27
2.4 Restricciones de Integridad.
Cuestiones sobre el modelo Relacional: Bases de Datos. Cuestiones. Temas I y II (en Reprografía y en la micro-web de la asignatura)
28