Post on 26-Sep-2018
1
Tema II:
El modelo relacional de datos.
(2.4)
El modelo relacional de datos.
conocer las estructuras de datos del modelo: la tupla y la relación.conocer básicamente la forma de modelar la realidad utilizando el modelo relacional.conocer los mecanismos del modelo relacional para expresar restricciones de integridad.conocer los lenguajes de manipulación propuestos para este modelo de datos: Álgebra Relacional y Cálculo Relacional de Tuplas.
Objetivos:
2
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.2.2 Esquema relacional: representación de la realidad.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.
2.4 Restricciones de integridad.
El modelo relacional de datos.
El modelo relacional de datos.
2.4. Restricciones de Integridad
3
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)
nro_emp
dni
nombre
teléfono
cod_dep
Empleado
cod_dep
nombre
Departamento
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 ?
cod_dep nombre
d1 Ventas
d2 Compras
d3 Contabilidad
2.4 Restricciones de Integridad.
Empleado
Departamento
?
Extensión válida del esquema
Extensión “no adecuada”del esquema
4
2.4 Restricciones de Integridad.
El atributo nro_emp identifica de forma únivoca a los empleados
El atributo dni es único para cada empleado
Se debe conocer el nombre de todo empleado
El atributo cod_dep de Empleado referencia al departamento de adscripción del empleado
Restricciones de Integridad:
2.4 Restricciones de Integridad.
El atributo nro_emp identifica de forma únivoca a los empleados
El atributo dni es único para cada empleado
Se debe conocer el nombre de todo empleado
El atributo cod_dep de Empleado referencia al departamento de adscripción del empleado
Restricciones de Integridad:restricción de clave primaria
restricción de unicidad
restricción de valor no nulo
restricción de clave ajena o integridad referencial
5
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
Restricciones de Integridad:Restricciones sobre atributos: de dominio y de valor no nuloRestricciones de unicidadRestricción de clave primariaRestricción de clave ajena (integridad referencial)
2.4 Restricciones de Integridad.
6
2.4 Restricciones de Integridad.
Dado un conjunto de atributos K de R (K≠∅) se dice que R satisface una restricción de valor no nulo sobre Ksi se cumple la siguiente propiedad:
∀ t ( t ∈ R → ¬∃ Ai ∈ K y t(Ai) tiene valor nulo)en caso contrario R viola esta restricción.
Valor NO NULO
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.
Dado un conjunto de atributos K de R (K≠∅) se dice que Rsatisface 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.
Unicidad
Empleado (nro_emp: dom_emp, dni: dom_dni, nombre:dom_nom, teléfono:dom_tel, cod_dep: dom_dep)
VNN={nombre}UNI={dni}
7
2.4 Restricciones de Integridad.
Si CP se define como clave primaria de R, se dice que Rsatisface 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.
“Un conjunto CP de atributos de una relación R que identifican de forma unívoca sus tuplas”
Clave primaria
Nota: CP debe ser minimal, es decir no debe haber un subconjunto propio de CP que a su vez pueda ser clave primaria
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}
2.4 Restricciones de Integridad.
8
Restricciones de Integridad:Restricciones sobre atributos: de dominio y de valor no nuloRestricciones de unicidadClave primariaClave ajena (integridad referencial)
2.4 Restricciones de Integridad.
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}
Clave ajena (integridad referencial)
El atributo cod_dep de Empleado referencia al departamento de adscripción del empleado
9
nro_emp
dni
nombre
teléfono
cod_dep
Empleado
cod_dep
nombre
Departamento
cod_dep de Empleado es un atributo de referencia (clave ajena)
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.
su función es hacer referencia a las tuplas de Departamento
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}
2.4 Restricciones de Integridad.
10
2.4 Restricciones de Integridad.
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
cod_dep nombre
d1 Ventas
d2 Compras
d3 Contabilidad
?
Empleado viola la restricción de clave ajena para el atributo cod_dep
Empleado
Departamento
Clave Ajena2.4 Restricciones de Integridad.
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
Empleado satisface la restricción de clave ajena para el atributo cod_dep
Empleado
Departamento
11
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}
Clave Ajena
2.4 Restricciones de Integridad.
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.
Clave Ajena
2.4 Restricciones de Integridad.
12
2.4 Restricciones de Integridad.
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 Rsatisface 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.
Clave Ajena
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}
Clave Ajena (integridad referencial)K
J J tiene restricción de unicidad
f: K → J
f (cod_dep) = cod_dep
R
S
en algunos casos se puede omitir
13
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.
se mantiene información sobre las distintas materias sobre las que se imparten cursos: código interno de la materia y descripción (Materia)
se dispone de un registro de profesores: código interno del profesor, nombre y nivel de preparación para impartir distintas materias (Profesor, Oferta)
se mantiene información sobre la programación de cursos realizada: código interno del curso, materia, profesor y fecha prevista (Cursos)
14
2.4 Restricciones de Integridad.
cod_mat des
BDA Bases de datos
LINUX Linux
W W W W eb
Materia
CP={cod_mat}
c o d _ p r o f n o m b r e
p 2 J e s ú s P é r e z
p 3 L u i s G a r c í a
p 5 P e d r o S a n z
Profesor
CP={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
cod_mat cod_prof nivel
BDA p2 1
WWW p5 2
BDA p3 4
Oferta
Oferta satisface las restricciones de clave ajena para {cod_mat} y {cod_prof}
2.4 Restricciones de Integridad.
cod_mat des
BDA Bases de datos
LINUX Linux
W W W W eb
Materia
CP={cod_mat}
c o d _ p r o f n o m b r e
p 2 J e s ú s P é r e z
p 3 L u i s G a r c í a
p 5 P e d r o S a n z
Profesor
CP={cod_prof}
CP= {curso}, VNN={fecha}
CAj= {materia, profesor} → Oferta
f(materia)=cod_mat, f(profesor)=cod_prof
curso materia profesor fecha
1 BDA p2 1/6/99
2 LINUX ? 1/5/00
4 WWW ? 15/2/00
3 ? ? 15/3/01
Cursos
CP={cod_mat, cod_prof}
CAj={cod_mat} → Materia
CAj={cod_prof} → Profesor
cod_mat cod_prof nivel
BDA p2 1
WWW p5 2
BDA p3 4
Oferta
¿ satisface Cursos la restricción de clave ajena para {materia, profesor} ?
satisfacedependedependesatisface
15
2.4 Restricciones de Integridad.
Tres tipos de Integridad Referencial:
I.R Débil
I.R Parcial
I.R Completa
Clave Ajena
2.4 Restricciones de Integridad.
•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.
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:
16
2.4 Restricciones de Integridad.
cod_mat des
BDA Bases de datos
LINUX Linux
W W W W eb
Materia
CP={cod_mat}
c o d _ p r o f n o m b r e
p 2 J e s ú s P é r e z
p 3 L u i s G a r c í a
p 5 P e d r o S a n z
Profesor
CP={cod_prof}
curso materia profesor fecha
1 BDA p2 1/6/99
2 LINUX ? 1/5/00
4 W W W ? 15/2/00
3 ? ? 15/3/01
Cursos
CP={cod_mat, cod_prof}
CAj={cod_mat} → Materia
CAj={cod_prof} → Profesor
cod_mat cod_prof nivel
BDA p2 1
WWW p5 2
BDA p3 4
Oferta
I.R Débil: Cursos satisface la restricción de clave ajena para {materia, profesor}
CP= {curso}, VNN={fecha}
CAj= {materia, profesor} → Oferta
f(materia)=cod_mat, f(profesor)=cod_prof
CAj={materia} → Materia, f(materia)=cod_mat
CAj={profesor} → Profesor, f(profesor)=cod_prof
satisfacesatisfacesatisfacesatisface
Clave ajena2.4 Restricciones de Integridad.
•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 Kque 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.
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:
17
2.4 Restricciones de Integridad.
cod_mat des
BDA Bases de datos
LINUX Linux
W W W W eb
Materia
CP={cod_mat}
c o d _ p r o f n o m b r e
p 2 J e s ú s P é r e z
p 3 L u i s G a r c í a
p 5 P e d r o S a n z
Profesor
CP={cod_prof}
CP= {curso}, VNN={fecha}
CAj= {materia, profesor} → Oferta
f(materia)=cod_mat, f(profesor)=cod_prof
curso materia profesor fecha
1 BDA p2 1/6/99
2 LINUX ? 1/5/00
4 WWW ? 15/2/00
3 ? ? 15/3/01
Cursos
CP={cod_mat, cod_prof}
CAj={cod_mat} → Materia
CAj={cod_prof} → Profesor
cod_mat cod_prof nivel
BDA p2 1
WWW p5 2
BDA p3 4
Oferta
I.R. Parcial: Cursos viola la restricción de clave ajena para {materia, profesor}
satisfaceviola
satisfacesatisface
Clave ajena2.4 Restricciones de Integridad.
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.
18
2.4 Restricciones de Integridad.
cod_mat des
BDA Bases de datos
LINUX Linux
W W W W eb
Materia
CP={cod_mat}
c o d _ p r o f n o m b r e
p 2 J e s ú s P é r e z
p 3 L u i s G a r c í a
p 5 P e d r o S a n z
Profesor
CP={cod_prof}
CP= {curso}, VNN={fecha}
CAj= {materia, profesor} → Oferta
f(materia)=cod_mat, f(profesor)=cod_prof
curso materia profesor fecha
1 BDA p2 1/6/99
2 LINUX ? 1/5/00
4 WWW ? 15/2/00
3 ? ? 15/3/01
Cursos
CP={cod_mat, cod_prof}
CAj={cod_mat} → Materia
CAj={cod_prof} → Profesor
cod_mat cod_prof nivel
BDA p2 1
WWW p5 2
BDA p3 4
Oferta
I.R. Completa: Cursos viola la restricción de clave ajena para {materia, profesor}
satisfaceviolaviola
satisface
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
19
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
20
2.4 Restricciones de Integridad.
Ejemplo: Gestión de pedidos de material en una empresa constructora.
se mantiene información sobre los distintos materiales con los que se trabaja: código interno del material y descripción (Material)
se 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)
se mantiene información sobre los proyectos en ejecución: código interno del proyecto y título (Proyecto)
se 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.
cod_mat des
m1 viga
m3 ladrillo
m5 hormigón
Material
CP={cod_mat}
cod_prov nombre
pv2 Cons SA
pv3 BBT
pv4 Bertolin
Proveedor
CP={cod_prov}
cod_proy título
py2 IES Cid
py6 La FE
Proyecto
CP={cod_proy}
CP= {cod_mat, cod_prov, cod_proy}
CAj= {cod_mat, cod_prov} → Precios
CAj={cod_proy} → Proyecto
cod_mat cod_prov cod_proy cant
m1 pv3 py2 96
m1 pv2 py6 100
m3 pv3 py2 60
m1 pv4 py2 30
Pedidos
CP={cod_mat, cod_prov}
CAj={cod_mat} → Material
CAj={cod_prov} → Proveedor
cod_mat cod_prov precio
m1 pv3 1000
m1 pv2 1500
m3 pv3 100
m1 pv4 900
Precios
21
2.4 Restricciones de Integridad.
cod_mat des
m1 viga
m3 ladrillo
m5 hormigón
Material
CP={cod_mat}
cod_prov nombre
pv2 Cons SA
pv3 BBT
pv4 Bertolin
Proveedor
CP={cod_prov}
cod_proy título
py2 IES Cid
py6 La FE
Proyecto
CP={cod_proy}
CP={cod_mat, cod_prov}
CAj={cod_mat} → Material
CAj={cod_prov} → Proveedor
cod_mat cod_prov precio
m1 pv3 1000
m1 pv2 1500
m3 pv3 100
m1 pv4 900
Precios
Precios satisface las restricciones de clave ajena para {cod_mat}, y {cod_prov} en cualquier tipo de I.R
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.
2.4 Restricciones de Integridad.
cod_proy título
py2 IES Cid
py6 La FE
Proyecto
CP= {cod_mat, cod_prov, cod_proy}
CAj= {cod_mat, cod_prov} → Precios
CAj={cod_proy} → Proyecto
cod_mat cod_prov cod_proy cant
m1 pv3 py2 96
m1 pv2 py6 100
m3 pv3 py2 60
m1 pv4 py2 30
Pedidos
cod_mat cod_prov precio
m1 pv3 1000
m1 pv2 1500
m3 pv3 100
m1 pv4 900
Precios
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.
22
2.4 Restricciones de Integridad.
cod_proy título
py2 IES Cid
py6 La FE
Proyecto
CP= {cod_mat, cod_prov, cod_proy}
CAj= {cod_mat, cod_prov} → Precios
CAj={cod_proy} → Proyecto
cod_mat cod_prov cod_proy cant
m1 pv3 py2 96
m1 pv2 py6 100
m3 pv3 py2 60
m1 pv4 py2 30
Pedidos
cod_mat cod_prov precio
m1 pv3 1000
m1 pv2 1500
m3 pv3 100
m1 pv4 900
Precios
Pedidos satisface la restricción de clave ajena para {cod_mat, cod_prov} en cualquier tipo de I.R
2.4 Restricciones de Integridad.
I.R Débil I.R Completa I.R Parcial
la clave ajena tiene un único atributo
todos los atributos de la clave ajena tienen restricción de valor no nulo
23
Violación de la Integridad Referencial.(Operaciones relevantes)
2.4 Restricciones de Integridad.
K
R SJ
Insertar en R
Modificar KBorrar en S
Modificar J
Clav
e A
jena
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
Violación de la Integridad Referencial.
2.4 Restricciones de Integridad.
24
Mantenimiento de la Integridad Referencial. (Operaciones relevantes sobre R).
K
R SJ
Insertar en R
Modificar K Si la operación relevante sobre R viola la integridad referencial el SGBD rechaza la operación .
2.4 Restricciones de Integridad.
Clav
e A
jena
Mantenimiento de la Integridad Referencial. (Operaciones relevantes sobre S).
K
R SJ
Si la operación relevante sobre S viola la integridad referencial el SGBD tiene tres opciones:
rechazar la operación
transmitir en cascada la operación
poner a nulos CA en las tuplas afectadas de R
2.4 Restricciones de Integridad.
Borrar en S
Modificar J
Clav
e A
jena
25
Mantenimiento de la Integridad Referencial
2.4 Restricciones de Integridad.
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 ContabilidadEmpleado
Departamento
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
BORRADO en CASCADA
Mantenimiento de la Integridad Referencial
2.4 Restricciones de Integridad.
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 ContabilidadEmpleado
Departamento
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
BORRADO a NULOS
?
?
26
Mantenimiento de la Integridad Referencial
2.4 Restricciones de Integridad.
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 ContabilidadEmpleado
Departamento
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
Modificación a NULOS
d8
?
?
Mantenimiento de la Integridad Referencial
2.4 Restricciones de Integridad.
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 ContabilidadEmpleado
Departamento
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
Modificación en CASCADA
d8
d8
d8
27
Mantenimiento de la Integridad Referencial. (Operaciones relevantes sobre S).
K
R SJ
Modificar J en S
Borrar en S
2.4 Restricciones de Integridad.
Borrar en S
Modificar J
Clav
e A
jena
a Nulos
en CASCADA
[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))