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

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

BASES DE DATOS (IG18 Semipresencial) El Modelo Relacional Reglas de Integridad

Modelo Relacional. El modelo relacional...1 El modelo entidad relación (que vimos ayer) es un modelo conceptual que sirve

Modelo relacional. El modelo relacional

Carlos A. Olarte Ligaduras de Integridad y Restricciones sobre la BD

Bases de Datos OTROS ASPECTOS MODELO E-R

Diseño Lógico Modelo Relacional. Ges3ón y Modelación de Datos María Constanza Pabón

Práctica 3: El lenguaje SQL (1ª parte). Programa de prácticas: (5ª sesión). Lenguaje SQL: manipulación de datos (consulta y actualización):

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

MODELO RELACIONAL BASE DE DATOS RELACIONALES

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

DI SEÑO DE BASES DE DATOS Y SEGURIDAD DE LA INFORMACIÓN (31 de mayo de 2005) 3DUFLDO. APELLIDOS: NOMBRE: TITULACIÓN (Sistemas/Gestión):

Ing. Yim Isaias Apestegui Florentino

Restricciones de Integridad

Práctica 3: El lenguaje SQL (1ª parte). (4ª sesión)

Conocimiento de las Bases de Datos relacionales.

id_trabajador nombre tarifa_hr tipo_de_oficio id_supv 1235 F. Aguilera 12,50 Electricista A. Calvo 13,75 Fontanero N.

Práctica 4: Estudio del SGBD Oracle 10 Gestión de Transacciones

EL MODELO RELACIONAL

Modelos de Datos. Modelo Entidad-Relación

El Modelo Relacional. Carlos A. Olarte BDI

TEMA II. El Modelo Relacional de Datos. El Modelo Relacional de Datos. El Modelo Relacional de Datos. El Modelo Relacional de Datos. Temario (cont.

Base de Datos. Docente: Ing. Francisco Rodríguez BASE DATOS. Resultados. Internet. Requerimientos

Bases de datos 1. Teórico: Modelo Relacional

DED Diagramas de Estructura Lógica de Datos. Universidad de Oviedo Departamento de Informática

El Modelo Relacional de Bases de Datos

Esquema Lógico F1. EXAMEN 1 de diciembre de EQUIPO (NOMBRE:cadena) CP (NOMBRE) DIRECTOR (NOMBRE:cadena) CP (NOMBRE)

BASES DE DATOS TEMA 3. MODELO RELACIONAL

Diseño Lógico El modelo relacional. M.Sc.Lic. Cimar H. Meneses España

Bases de Datos y Sistemas de Información

UNIDAD 1: CONCEPTOS BA SICOS DE BASE DE DATOS

la consulta de código cod_con necesita para su resolución la relación de nombre nom_rel al menos un número veces de veces.

Modelo Relacional. Modelo Relacional. Temas: Referencia:

Concepto de vista. (con ciertas limitaciones). nivel físico) Una vista es una tabla virtual (no tiene una correspondencia a

El modelo relacional y el álgebra relacional

BASES DE DATOS DSIC. Curso

1. Introducción: Qué es un Modelo de Datos? 2. Estática del modelo de datos relacional

Fundamentos de Bases de Datos Facultad de Ciencias UNAM

Bases de Datos: fundamentos del modelo relacional

BASES DE DATOS DSIC. Curso

El Modelo Relacional (3 de 5)

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón

TEMA 5.- ESTRUCTURA DE DATOS RELACIONAL.

Transformación ER Relacional para el diseño de bases de datos relacionales

Álgebra Relacional. Carlos A. Olarte BDI

Una operación interna: Suma Una operación externa: Multiplicación por un escalar

Formas Normales. Normalización. Introducción

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad

BASES DE DATOS (IG18 Semipresencial) El Modelo Relacional Fundamentos del Modelo Relacional de Datos

Terminología Equivalente

MODELO RELACIONAL Y PASAJE MER A RELACIONAL

4 Integridad de datos relacional: llaves candidatas y temas relacionados.

Movistar Imagenio Recarga de Móviles MANUAL DE USUARIO

1.Introducción al Modelo Relacional.

Bases de datos 1. Teórico: Algebra Relacional

Introducción a la Teoría de Bases de Datos

Bases de Datos Diseño de Bases de Datos Modelo Conceptual Entidad Relación

Modelo relacional de datos. Modelo relacional de datos. Presentación y orígenes del MR. Modelo relacional de datos

Modelos y Bases de Datos

BASES DE DATOS TEMA 4 DISEÑO DE BASES DE DATOS RELACIONALES

Gestion y Modelación de Datos Introducción

Tema 2. Bases de Datos Relacionales

Conceptos básicos de bases de datos

Modelo Entidad Relación.MER.

Algebra lineal y conjuntos convexos

Metodología de Diseño Lógico. Sistemas Gestores de Bases de Datos

4. Algebra relacional

SQL. Carlos A. Olarte BDI

Modelo relacional Jos e Ram on Param a Gab ıa

Un ejemplo simple de normalización de bases de datos relacionales (hasta 3FN)

Modelo Relacional: Conceptos

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

ANOTACIONES BÁSICAS SOBRE LÓGICA PROPOSICIONAL FILOSOFÍA 1º BACHILLERATO

UNIDAD PEDAGÓGICA LIBERTAD, S.C.

INTRODUCCION A LAS BASES DE DATOS Procesamiento de Archivos vs Bases de Datos ARCHIVOS BASES DE DATOS

Atributos Los atributos son las columnas de un relación y describen características particulares de ella.

Modelo relacional. Modelo relacional

Bases de Datos. Laboratorio III, L106/L111. Profesor: Goyo Celada

El modelo relacional y el álgebra relacional

3. Modelo relacional: Estructura e integridad.

CONTINUIDAD DE FUNCIONES. SECCIONES A. Definición de función continua. B. Propiedades de las funciones continuas. C. Ejercicios propuestos.

Tema 7. Manejo de bases de datos.

TEMA 4. Diseño Lógico de bases de datos relacionales.

Asignatura: Administración de Bases de Datos

BASES DE DATOS. DSIC. Curso Bases de Datos. Título de Ingeniero Técnico en Informática. Programación. Bases de Datos TR 3 3

CUESTIONARIO DE BASES DE DATOS 24/06/03. NOTA_OBTENIDA= (Bien_contestadas Mal_contestadas/3) 0,25.

ALGEBRA DE BOOLE George Boole C. E. Shannon E. V. Hungtington [6]

El modelo relacional

LEYES DE COMPOSICIÓN INTERNA Y ELEMENTOS DISTINGUIDOS

entre menú y plato con cardinalidades (0,N) y (3,3), respectivamente. Esta solución garantiza que no se puede "repetir" un plato en el (1,1)

Introducción a las Bases de Datos y al Modelo Relacional

- Bases de Datos (2012/2013) Tema 2: Diseño lógico. Modelo Relacional

Microsoft Virtual Academy

Manual del Integrador Contable Premium Soft

MANUAL DE MANEJO DE INFORMACIÓN MOLINA Y SWETT S.A. CORREDORES DE BOLSA

Tema 5: Teoría de diseño de Bases de Datos Relacionales.

En primer lugar se obtiene el modelo lógico de alto nivel, independiente del modelo de base de datos y los objetivos a conseguir son:

6.1. Anillos de polinomios.

PARTE II. MODELO RELACIONAL. ESTÁTICA

Transcripción:

Tema II: El modelo relacional de datos. (2.4) El modelo relacional de datos. Objetivos: 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.

El modelo relacional de datos. 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. 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 nro_emp dni nombre Departamento cod_dep nombre teléfono cod_dep Empleado Extensión válida del esquema Extensión no adecuada del esquema nro_emp dni nombre teléfono cod_dep? Departamento cod_dep nombre d1 Ventas d2 Compras d3 Contabilidad 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?

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 El atributo nro_emp identifica de forma clave primaria únivoca a los empleados restricción de El atributo dni es único para cada empleado unicidad restricción de Se debe conocer el nombre de todo empleado valor no nulo El atributo cod_dep de Empleado referencia al departamento de adscripción restricción del empleado de clave ajena o integridad referencial

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 nulo Restricciones de unicidad Restricción de clave primaria Restricción de clave ajena (integridad referencial)

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

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

Restricciones de Integridad: Restricciones sobre atributos: de dominio y de valor no nulo Restricciones de unicidad Clave primaria Clave ajena (integridad referencial) 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} El atributo cod_dep de Empleado referencia al departamento de adscripción del empleado

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. 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}

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 Departamento cod_dep nombre d1 Ventas d2 Compras d3 Contabilidad? Empleado viola la restricción de clave ajena para el atributo cod_dep Clave Ajena 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 Departamento cod_dep nombre d1 Ventas d2 Compras d3 Contabilidad Empleado satisface la restricción de clave ajena para el atributo cod_dep

Clave Ajena Sea: R una relación de esquema ρ = {(A 1, D 1 ), (A 2, D 2 ),, (A n, D n )} S una relación de esquema σ = {(B 1, E 1 ), (B 2, E 2 ),, (B m, E m )} A ρ el conjunto de nombres de atributo de ρ, A ρ = {A 1, A 2,, A n } A σ el conjunto de nombres de atributo de σ, A σ = {B 1, B 2,, B m } Clave Ajena Una clave ajena CA de R que hace referencia a S se define: 1) un subconjunto K = {A i, A j,, A k } (K A ρ y K ), 2) una biyección f: K J tal que: J A σ, J tiene restricción de unicidad, y A i (A i K A i y f(a i ) tienen el mismo dominio, y 3) un tipo de integridad referencial que puede ser: débil, parcial o completa.

Clave Ajena Si K = {A i } (sólo contiene un atributo) los tres tipos de integridad referencial coinciden. Si K = {A i } (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 A i tiene valor nulo o existe una tupla en S que tiene en el atributo de J, f(a i ), el mismo valor. t ( t R ( nulo(t(a i )) m (m S y t(a i ) = m(f(a i ))) )) en caso contrario R viola esta restricción. 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} S J J tiene restricción de unicidad f: K J f (cod_dep) = cod_dep en algunos casos se puede omitir

Clave Ajena con varios atributos la clave ajena puede ser parcialmente nula 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)

Materia cod_mat BDA LINUX WWW CP={cod_mat} des Bases de datos Linux Web Oferta cod_mat cod_prof nivel BDA p2 1 WWW p5 2 BDA p3 4 CP={cod_mat, cod_prof} CAj={cod_mat} Materia CAj={cod_prof} Profesor Profesor cod_prof p2 p3 p5 CP={cod_prof} nombre Jesús Pérez L uis G arcía Pedro Sanz Oferta satisface las restricciones de clave ajena para {cod_mat} y {cod_prof} f(cod_mat)=cod_mat f(cod_pof)=cod_prof Materia cod_mat BDA LINUX WWW CP={cod_mat} Oferta des Bases de datos Linux Web cod_mat cod_prof nivel BDA p2 1 WWW p5 2 BDA p3 4 CP={cod_mat, cod_prof} CAj={cod_mat} Materia CAj={cod_prof} Profesor Profesor cod_prof p2 p3 p5 CP={cod_prof} nombre Jesús Pérez L uis G arcía Pedro Sanz satisface Cursos la restricción de clave ajena para {materia, profesor}? Cursos curso materia profesor fecha 1 BDA p2 1/6/99 2 LINUX? 1/5/00 4 WWW? 15/2/00 3?? 15/3/01 satisface depende depende satisface CP= {curso}, VNN={fecha} CAj= {materia, profesor} Oferta f(materia)=cod_mat, f(profesor)=cod_prof

Tres tipos de Integridad Referencial: I.R Débil I.R Parcial I.R Completa 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 ( A i (A i K nulo(t.a i )) m (m S A i ( A i K t.a i = m.f(a i ) )))) en caso contrario R viola esta restricción.

Materia cod_mat BDA LINUX WWW CP={cod_mat} Oferta des Bases de datos Linux Web cod_mat cod_prof nivel BDA p2 1 WWW p5 2 BDA p3 4 CP={cod_mat, cod_prof} CAj={cod_mat} Materia CAj={cod_prof} Profesor Profesor cod_prof p2 p3 p5 CP={cod_prof} Cursos nombre Jesús Pérez L uis G arcía Pedro Sanz I.R Débil: Cursos satisface la restricción de clave ajena para {materia, profesor} curso materia profesor fecha 1 BDA p2 1/6/99 2 LINUX? 1/5/00 4 WWW? 15/2/00 3?? 15/3/01 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 satisface satisface satisface satisface 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 ( A i (A i K nulo(t(a i ))) m (m S A i ((A i K nulo(t(a i )) ) t(a i ) = m(f(a i ))) )))) en caso contrario R viola esta restricción.

Materia cod_mat BDA LINUX WWW CP={cod_mat} Oferta des Bases de datos Linux Web cod_mat cod_prof nivel BDA p2 1 WWW p5 2 BDA p3 4 CP={cod_mat, cod_prof} CAj={cod_mat} Materia CAj={cod_prof} Profesor Profesor cod_prof p2 p3 p5 CP={cod_prof} nombre Jesús Pérez L uis G arcía Pedro Sanz I.R. Parcial: Cursos viola la restricción de clave ajena para {materia, profesor} Cursos curso materia profesor fecha 1 BDA p2 1/6/99 2 LINUX? 1/5/00 4 WWW? 15/2/00 3?? 15/3/01 CP= {curso}, VNN={fecha} CAj= {materia, profesor} Oferta f(materia)=cod_mat, f(profesor)=cod_prof satisface viola satisface satisface 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 ( A i (A i K nulo(t(a i ))) m (m S A i (A i K ( nulo(t(a i )) t.a i = m(f(a i ))) ) )))) en caso contrario R viola esta restricción.

Materia cod_mat BDA LINUX WWW CP={cod_mat} Oferta des Bases de datos Linux Web cod_mat cod_prof nivel BDA p2 1 WWW p5 2 BDA p3 4 CP={cod_mat, cod_prof} CAj={cod_mat} Materia CAj={cod_prof} Profesor Profesor cod_prof p2 p3 p5 CP={cod_prof} nombre Jesús Pérez L uis G arcía Pedro Sanz I.R. Completa: Cursos viola la restricción de clave ajena para {materia, profesor} Cursos curso materia profesor fecha 1 BDA p2 1/6/99 2 LINUX? 1/5/00 4 WWW? 15/2/00 3?? 15/3/01 CP= {curso}, VNN={fecha} CAj= {materia, profesor} Oferta f(materia)=cod_mat, f(profesor)=cod_prof satisface viola viola satisface Clave Ajena con varios atributos. los tres tipos de integridad referencial se diferencian en el tratamiento de las claves ajenas parcialmente nulas

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). Clave Ajena con varios atributos con restricción de valor no nulo. coinciden los tres tipos de integridad referencial

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) Material cod_mat des m1 viga m3 ladrillo m5 hormigón CP={cod_mat} Proveedor cod_prov nombre pv2 Cons SA pv3 BBT pv4 Bertolin CP={cod_prov} Proyecto cod_proy título py2 IES Cid py6 La FE CP={cod_proy} 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 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

Material cod_mat des m1 viga m3 ladrillo m5 hormigón CP={cod_mat} Proveedor cod_prov nombre pv2 Cons SA pv3 BBT pv4 Bertolin CP={cod_prov} Proyecto cod_proy título py2 IES Cid py6 La FE CP={cod_proy} Precios cod_mat cod_prov precio m1 pv3 1000 m1 pv2 1500 m3 pv3 100 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. m1 pv4 900 CP={cod_mat, cod_prov} CAj={cod_mat} Material CAj={cod_prov} Proveedor Precios satisface las restricciones de clave ajena para {cod_mat}, y {cod_prov} en cualquier tipo de I.R Precios cod_mat cod_prov precio m1 pv3 1000 m1 pv2 1500 m3 pv3 100 m1 pv4 900 Proyecto cod_proy py2 py6 título IES Cid La FE 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

Precios cod_mat cod_prov precio m1 pv3 1000 m1 pv2 1500 m3 pv3 100 m1 pv4 900 Proyecto cod_proy py2 py6 título IES Cid La FE Pedidos cod_mat cod_prov cod_proy cant m1 pv3 py2 96 Pedidos satisface la restricción de clave ajena para {cod_mat, cod_prov} en cualquier tipo de I.R 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 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

Violación de la Integridad Referencial. (Operaciones relevantes) R S J Modificar J Clave Ajena K Modificar K Borrar en S Insertar en R 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

Mantenimiento de la Integridad Referencial. (Operaciones relevantes sobre R). R S J Clave Ajena K Insertar en R Modificar K Si la operación relevante sobre R viola la integridad referencial el SGBD rechaza la operación. Mantenimiento de la Integridad Referencial. (Operaciones relevantes sobre S). R S J Modificar J Clave Ajena K 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 Borrar en S

Mantenimiento de la Integridad Referencial Departamento cod_dep nombre d1 Ventas Empleado nro_emp dni nombre teléfono cod_dep 1 2045021 Juan C. Ródenas 7796 d1 d2 d3 Compras Contabilidad 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 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 Mantenimiento de la Integridad Referencial Departamento cod_dep nombre d1 Ventas Empleado nro_emp dni nombre teléfono cod_dep d2 d3 Compras Contabilidad 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 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

Mantenimiento de la Integridad Referencial Departamento cod_dep nombre d1 d8 Ventas Empleado nro_emp dni nombre teléfono cod_dep d2 d3 Compras Contabilidad 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?? 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 Mantenimiento de la Integridad Referencial Departamento cod_dep nombre d1 d8 Ventas Empleado nro_emp dni nombre teléfono cod_dep d2 d3 Compras Contabilidad 1 2045021 Juan C. Ródenas 7796 d1 d8 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 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

Mantenimiento de la Integridad Referencial. (Operaciones relevantes sobre S). Modificar J R S J Clave Ajena K Modificar J en S Borrar en S a Nulos en CASCADA [restrictivo] Borrar en S 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))

Cuestiones sobre el modelo Relacional: Bases de Datos. Cuestiones. Temas I y II (en Reprografía y en la micro-web de la asignatura)