Tema II: El modelo relacional de datos. (2.4)

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

1 downloads 115 Views 740KB Size

Recommend Stories


Tema II: El modelo relacional de datos. (2.2)
Tema II: El modelo relacional de datos. (2.2) El modelo relacional de datos. Objetivos: 9 conocer las estructuras de datos del modelo: la tupla y la

TEMA 4: MODELO RELACIONAL
Modelo Relacional TEMA 4: MODELO RELACIONAL 4.1 Introducción Los modelos Entidad-Relación y Relacional son representaciones abstractas de porciones d

TEMA 24: El modelo OSI de comunicación de datos
Tema 24 – El modelo OSI de comunicación de datos TEMA 24: El modelo OSI de comunicación de datos. Índice 1 INTRODUCCIÓN______________________________

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

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.