Tema II - users.dsic.upv.esusers.dsic.upv.es/~sabrahao/ficheros/temaII(2.4).pdf · 1 Tema II: El...

28
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:

Transcript of Tema II - users.dsic.upv.esusers.dsic.upv.es/~sabrahao/ficheros/temaII(2.4).pdf · 1 Tema II: El...

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

28

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)