RESTRICCIONES DE INTEGRIDAD Y DEPENDENCIAS FUNCIONALES Bases de Datos Universidad de Talca, II Semestre 2006. Jorge Pérez R.



Documentos relacionados
Normalización 1NF 2NF 3NF BCNF 4NF

Normalización. Bases de Datos

Tablas. Estas serán las tablas que usaremos en la mayoría de ejemplos. Empleado

Bases de Datos Indexación y Hashing 1. Indexación. Jorge Pérez Rojas Universidad de Talca, II Semestre 2006

Dependencias Funcionales. Bibliografía: Fundamentos de bases de datos Korth, Silberschatz

TEMA 8.- DISEÑO TEORICO DE BASES DE DATOS RELACIONALES. 1. TEORÍA DE LAS DEPENDENCIAS FUNCIONALES

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

Normalización. El diseño que hemos recibido está compuesto de estas dos relaciones:

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

DISEÑO DE BASES DE DATOS RELACIONALES

Principios de Bases de Datos Relacionales, Normalización. Unidad 4

NORMALIZACION. Definición.

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

Base de Datos. Profesor: José Miguel Rubio L. P. UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA ESCUELA DE ING.

Diferenciabilidad. Definición 1 (Función diferenciable). Cálculo. Segundo parcial. Curso

Este es un ejemplo muy sencillo, un esquema de empleados que trabajan en proyectos, en una relación muchos a muchos.

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Diseño Lógico. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.

Dep. Multivaluadas y Cuarta F.N.

Normalización. Carlos A. Olarte Bases de Datos I

Escenas de episodios anteriores

Teoría formal de la normalización de esquemas relacionales. Definición formal de las tres primeras Formas Normales

Normalización n de Bases de Datos Relacionales. Bases de Datos. Malos Diseños. Índice. Muchos Problemas. Definición

El modelo relacional y el álgebra relacional

El modelo relacional

Subespacios vectoriales en R n

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

proceso que consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional.

3. Presionar en el botón Buscar para obtener el siguiente cuadro:

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

Normalización de bases de datos

CERTAMEN 2 90 minutos 20 puntos

Registro: Es un conjunto de campos. También se llama Fila o Tupla. Son varios datos

1. Objetivos. 2. Idea Principal. Teoría de Autómatas y Lenguajes Formales. Boletín de Autoevaluación 3: Cómo se minimiza un AFD?.

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Árboles AVL. Laboratorio de Programación II

Bases de Datos XPath - XQuery 1. XML: XPath - XQuery. Jorge Pérez Rojas Universidad de Talca, II Semestre 2006

Modelo Entidad-Relación

Unidad 3. NORMALIZACIÓN.

Restricciones de Integridad

Práctica 2. Academia Bristol

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Del MER al MR. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.

DISEÑO DE BASES DE DATOS RELACIONALES: NORMALIZACION

1. El teorema de la función implícita para dos y tres variables.

NORMALIZACIÓN DE BASES DE DATOS RELACIONALES

Temario. Índices simples Árboles B Hashing

Significado de las f.b.f (fórmulas bien formadas) en términos de objetos, propiedades y relaciones en el mundo

2. Aritmética modular Ejercicios resueltos

Antes de entrar a definir la forma normal de Boyce-Codd, necesitamos conocer qué se entiende por determinante.

Capítulo 1 Lenguajes formales 6

Que es normalización? Normalización de una base de datos Grados de normalización: Primera Forma Grados de normalización: Segunda Forma Grados de

Características de funciones que son inversas de otras

4.Diseño de Bases de Datos (I)

Normalización. Tema 16

Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos

Cómo?: Resolviendo el sistema lineal homógeneo que satisfacen las componentes de cualquier vector de S. x4 = x 1 x 3 = x 2 x 1

Consultas con combinaciones

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

CURSO INSTALACION E IMPLEMENTACION ALOJA SOFTWARE HOTEL MODULO 08- Cobranzas- front Desk [1]

TEMA 5.- ESTRUCTURA DE DATOS RELACIONAL.

PROLOG Inteligencia Artificial Universidad de Talca, II Semestre Jorge Pérez R.

Tema 3. El modelo Relacional

1. Funciones de varias variables: representaciones gráficas, límites y continuidad.

Ing. YIM ISAIAS APESTEGUI FLORENTINO Tema: Normalización

- Bases de Datos - - Diseño Físico - Luis D. García

1 Espacios y subespacios vectoriales.

Teórico 9 Del MER al MR

Funciones, x, y, gráficos

VII. Estructuras Algebraicas

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

Capítulo VI. Diagramas de Entidad Relación

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Matrices invertibles. La inversa de una matriz

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos

Normalización. Universidad Nacional de Colombia Facultad de Ingeniería

Divisibilidad y números primos

LÍMITES Y CONTINUIDAD DE FUNCIONES

NORMALIZACIÓN DE BASES DE DATOS

Listas de vectores y conjuntos de vectores

Aplicaciones lineales continuas

1. Dominio, simetría, puntos de corte y periodicidad

MLM Matemática Discreta

3. Operaciones con funciones.

Servicios Educativos Del Estado De Chihuahua Sistema Integral de Presupuestos y Materiales. Indice. Introducción Barra de Herramientas...

Conceptos generales sobre bases de datos relacionales y MS-Access

IIC Matemática Discreta

rg.o cm a Diseñ e o o l óg ó ico c l@ rza e b Di D s i e s ño d e b as a e s s s d e d at a o t s s r e r la l c a i c o i nal a e l s

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Recomendaciones para facilitar la accesibilidad en las elecciones

CAPÍTULO 3 Servidor de Modelo de Usuario

Lógica Proposicional IIC2212. IIC2212 Lógica Proposicional 1 / 56

Kaldeera Advanced Forms 2009 Guía del usuario

Ejemplo 1.2 En el capitulo anterior se demostró que el conjunto. V = IR 2 = {(x, y) : x, y IR}

Módulo 9 Sistema matemático y operaciones binarias

Comenzando con MATLAB

Unidad II: Diseño de Bases de Datos y el modelo E-R. 2.1 El Proceso de Diseño

3. OPERACIONES CON FUNCIONES.

UNIDAD I: LÓGICA PROPOSICIONAL

Guía de uso del sistema CV-Online

Estructuras de Control - Diagrama de Flujo

Ficheros y Bases de Datos Curso Ingeniería Técnica de Informática Primer Parcial. 1-Junio Nombre:

Transcripción:

RESTRICCIONES DE INTEGRIDAD Y DEPENDENCIAS FUNCIONALES Bases de Datos Universidad de Talca, II Semestre 2006 Jorge Pérez R. 1

Restricciones de Dominio Son la forma más elemental de restricciones de integridad. El dominio de cada atributo es el conjunto desde donde los datos provienen: nombre: strings, cadenas de símbolos. sueldo: enteros positivos. fecha creac: fechas válidas. Son simples de comprobar y mantener. Pueden existir dominios un poco más restrictivos, por ejemplo para una base de datos de clientes de un banco podríamos tener dominios como: edad: enteros positivos mayores que 17. numero cta: string de dígitos de largo 8. En cada inserción y actualización de datos se debe chequear que el dominio de los valores concuerde con el definido para cada atributo de cada relación. Algunas actualizaciones o inserciones pueden resultar en valores nulos y dependerá del uso de los datos el que se permita o rechace esta situación. Por ejemplo, si almacenamos datos de direcciones de habitantes de una ciudad con un esquema (nombre, edad, direccion, telef ono) nombre: string, null no permitido. telefono: string de dígitos de largo 8, null permitido.... El permitir o no el valor null para un atributo es una restricción de dominio, Es esencial prohibir valores nulos en la llave primaria de una relación. 2

Integridad Referencial A veces queremos obligar que cierto valor de atributo de una relación aparezca también en otra relación. Por ejemplo, si el valor del atributo que indica el código de departamento para Soto es A2, queremos que efectivamente exista un departamento con ese código (tupla amarrada). Pero si el código del departamento de Recursos Humanos es A4, no es imprescindible que exista un empleado cuyo valor para el atributo código de departamento sea A4. Esto es porque el atributo cod dept es la llave primaria de la relación departamento y la relación empleado hace referencia a esa llave. El atributo cod dept en la relación empleado es una llave foránea o llave exterior, o sea, hace referencia a la llave primaria de otra relación (en este caso departamento). Lo dibujaremos nombre cod dept f ech creac nombre sueldo cod dept f ech ing 3

Integridad Referencial Formalización Sean r 1 (R 1 ) y r 2 (R 2 ) relaciones con llaves primarias K 1 y K 2 respectivamente. Sea α un subconjunto de los atributos de r 2 (α R 2 ). Las siguientes afirmaciones son equivalentes: α es una llave foránea en r 2 con referencia a K 1 en r 1. t r 2, u r 1 tal que u[k 1 ] = t[α]. π α (r 2 ) π K1 (r 1 ). En nuestro ejemplo π cod emp (emp) = cod dept A1 A2 A3 cod dept A1 A2 A3 A4 = π cod emp (dept) 4

Integridad Referencial Modificaciones Si se inserta una tupla en una relación con llave foránea se debe asegurar que su valor exista en la tabla que relacionada por esta llave. empleado empleado {Gomez,300000,A6,5/8/2004} no está permitida, empleado empleado {Gomez,300000,A4,5/8/2004} si se permite. Si se quiere eliminar un tupla en una relación cuya llave primaria existe como llave foránea en otra relación existen dos casos: Si la tupla no tiene tuplas relacionadas en otras tablas simplemente se elimina. Si la tupla tiene tuplas relacionadas, la eliminación puede prohibirse o realizarse como una eliminación en cascada. departamento departamento σ nombre=marketing (departamento) nombre cod dept f ech creac Informática A1 01/03/2002 Ventas A3 01/01/2001 Recursos Humanos A4 01/01/2003 nombre sueldo cod dept f ech ing Torres $ 1.200.000 A1 01/01/2004 Figueroa $ 600.000 A1 01/03/2002 Salas $ 1.500.000 A1 01/01/2002 Ríos $ 2.000.000 A3 01/06/2002 Venegas $ 600.000 A1 01/06/2002 Gonzalez $ 2.000.000 A3 01/10/2002 5

Integridad Referencial Actualización Se hace una prueba similar a la de inserción si se actualiza un valor de llave foránea. δ cod depto=a6 (σ nombre=soto (empleado)) no está permitida, δ cod depto=a4 (σ nombre=soto (empleado)) si se permite. Si se hace una actualización en una tabla donde la llave primaria existe como llave foránea en otra relación, se realiza una actualización en cascada. δ cod dept=a5 (σ nombre=marketing (departamento) nombre cod dept f ech creac Informática A1 01/03/2002 Marketing A5 01/01/2002 Ventas A3 01/01/2001 Recursos Humanos A4 01/01/2003 nombre sueldo cod dept f ech ing Torres $ 1.200.000 A1 01/01/2004 Soto $ 500.000 A5 01/01/2003 Pérez $ 300.000 A5 01/10/2003 Figueroa $ 600.000 A1 01/03/2002 Salas $ 1.500.000 A1 01/01/2002 Ríos $ 2.000.000 A3 01/06/2002 Campos $ 800.000 A5 01/11/2003 Venegas $ 600.000 A1 01/06/2002 Carcamo $ 500.000 A5 01/04/2003 Gonzalez $ 2.000.000 A3 01/10/2002 6

Dependencias Funcionales Son un caso particular de restricción de integridad Nos permiten expresar propiedades semánticas de los datos de nuestra base de datos (propiedades del significado de los datos). Son una generalización del concepto de llaves. La siguiente es la definición formal de dependencia funcional: Sea r(r) una relación, α R y β R. Decimos que β depende funcionalmente de α α β si en cualquier relación legal todos los pares de tuplas t 1 y t 2 cumplen con: t 1 [α] = t 2 [α] t 1 [β] = t 2 [β] es decir, si las tuplas están de acuerdo en sus atributos α entonces también están de acuerdo en sus atributos β. Es similar a la definición de llave, de hecho se puede definir una super-llave formalmente usando dependencias funcionales: K R es super-llave de una relación legal r(r) ssi K R. O sea, el conjunto de todos los atributos siempre dependen funcionalmente de una super-llave. Una dependencia funcional no puede ser inferida desde el esquema de una relación. Debe ser definida expĺıcitamente por alguien que conoce la semántica de los atributos de la relación. El diseñador de la Base de Datos además de especificar el esquema, debe especificar el conjunto de dependencias funcionales que se deben cumplir. 7

Dependencias Funcionales Ejemplos Tabla de casas con teléfono en Chile. calle numero ciudad region telef ono color {calle, numero, ciudad, region} {color} {ciudad, region, telef ono} {calle, numero} {color} {telef ono} {ciudad, region} {calle} Tabla de alumnos de la universidad. nombre rut n alumno carrera f acultad campus {rut} {nombre, n alumno, carrera} {carrera} {f acultad} {carrera} {nombre} {nombre, carrera} {rut} {n alumno} {rut, nombre} En adelante omitiremos los paréntesis de conjuntos cuando especifiquemos dependencias funcionales. 8

Clausura de Dependencias Funcionales No es suficiente considerar un conjunto dado de dependencias funcionales, necesitamos considerar todas las dependencias que se cumplen. Considere la siguiente tabla para afiliados a un seguro de vejez rut sexo edad grupo ahorro jubilacion periodo y el siguiente conjunto F de dependencias funcionales: rut sexo, edad, ahorro sexo, edad grupo grupo, ahorro jubilacion edad, jubilacion periodo La dependencia sexo, edad, ahorro periodo se deduce lógicamente desde F. Más aun, podríamos deducir que rut es la única llave candidata. Dado un conjunto F de dependencias funcionales se define la clausura de F como el conjunto de todas las dependencias funcionales que pueden deducirse de F. Denotamos la clausura de F por F +. Para calcular F + a partir de F podemos usar la definición de dependencia funcional o un conjunto de reglas de inferencia. 9

Reglas de Inferencia 1. reflexividad: β α α β 2. aumento: α β γα γβ 3. transitividad: α β β γ α γ 4. unión: α β α γ α βγ 5. descomposición: α βγ α β α γ 6. pseudotransitividad: α β γβ δ αγ δ Las tres primeras reglas, llamadas las reglas de Armstrong, son correctas y completas bastan para deducir cualquier dependencia funcional. Son consecuencia de la definición de dependencia funcional. 4, 5, y 6 pueden deducirse a partir de 1, 2 y 3. Veremos algunos ejemplos: consideremos el mismo conjunto F de dependencias: 1. rut sexo, edad, ahorro 2. sexo, edad grupo 3. grupo, ahorro jubilacion 4. edad, jubilacion periodo Usando la regla de pseudotransitividad en 2 y 3 obtenemos 5. sexo, edad, ahorro jubilacion. Usando la regla de aumento en 5 obtenemos 6. sexo, edad, ahorro edad, jubilacion. Usando la regla de transitividad en 4 y 6 obtenemos 7. sexo, edad, ahorro periodo. 10

Clausura de un Conjunto de Atributos Dado el conjunto de dependencias funcionales F de una relación r(r) y un conjunto de atributos α R, definimos la clausura de α bajo F como: α + = {X R α X se deduce de F } El siguiente algoritmo calcula α + : clausura(α): alpha+_ant = { } alpha+ = α while(alpha+!= alpha+_ant) alpha+_ant = alpha+ foreach(β γ in F) if(β alpha+) alpha+ = alpha+ γ return alpha+ Por ejemplo: F = { rut sexo, edad, ahorro, sexo, edad grupo, grupo, ahorro jubilacion, edad, jubilacion periodo } {edad} + = {edad} {edad} + = {edad} {sexo, edad, ahorro} + = {sexo, edad, ahorro} {sexo, edad, ahorro} + = {sexo, edad, ahorro, grupo} {sexo, edad, ahorro} + = {sexo, edad, ahorro, grupo, jubilacion} {sexo, edad, ahorro} + = {sexo, edad, ahorro, grupo, jubilacion, periodo} {sexo, edad, ahorro} + = {sexo, edad, ahorro, grupo, jubilacion, periodo} {rut} + = {rut} {rut} + = {rut, sexo, edad, ahorro} {rut} + = {rut, sexo, edad, ahorro, grupo} {rut} + = {rut, sexo, edad, ahorro, grupo, jubilacion} {rut} + = {rut, sexo, edad, ahorro, grupo, jubilacion, periodo} {rut} + = {rut, sexo, edad, ahorro, grupo, jubilacion, periodo} 11

Equivalencia y Cobertura Dados E y F dos conjuntos de dependencias funcionales, decimos que: F cubre a E ssi E + F +. F es equivalente a E ssi F + = E +. F es equivalente a E ssi E cubre a F y F cubre a E. Dado F un conjunto de dependencias funcionales, F es mínimo si: Toda dependencia en F tiene un sólo atributo a la derecha. Para todo E F, E no es equivalente a F. No se puede reemplazar ninguna dependencia α X por otra β X con β α y seguir teniendo un conjunto equivalente. Si F m es mínimo y cubre a F se dice que F m es una cobertura mínima de F. 12