Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Restricciones de Dominio
Son la forma ms elemental de restricciones de integridad. a El dominio de cada atributo es el conjunto desde donde los datos provienen:
nombre: strings, cadenas de s mbolos. sueldo: enteros positivos. f echa creac: fechas vlidas. a
Son simples de comprobar y mantener. Pueden existir dominios un poco ms restrictivos, por ejempa lo 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 insercin y actualizacin de datos se debe chequear o o que el dominio de los valores concuerde con el denido para cada atributo de cada relacin. o Algunas actualizaciones o inserciones pueden resultar en valores nulos y depender del uso de los datos el que se permita a o rechace esta situacin. o 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. telef ono: string de d gitos de largo 8, null permitido. ...
El permitir o no el valor null para un atributo es una restriccin de dominio, Es esencial prohibir valores nulos en la o llave primaria de una relacin. o
2
Integridad Referencial
A veces queremos obligar que cierto valor de atributo de una relacin aparezca tambin en otra relacin. o e o Por ejemplo, si el valor del atributo que indica el cdigo de o departamento para Soto es A2, queremos que efectivamente exista un departamento con ese cdigo (tupla amarrada). o Pero si el cdigo del departamento de Recursos Humanos es o A4, no es imprescindible que exista un empleado cuyo valor para el atributo cdigo de departamento sea A4. o Esto es porque el atributo cod dept es la llave primaria de la relacin departamento y la relacin empleado hace referencia o o a esa llave. El atributo cod dept en la relacin empleado es una llave fornea o a o llave exterior, o sea, hace referencia a la llave primaria de otra relacin (en este caso departamento). o Lo dibujaremos nombre cod dept f ech creac
es una llave fornea en r2 con referencia a K1 en r1. a t r2, u r1 tal que u[K1] = t[]. (r2) K1 (r1).
En nuestro ejemplo
cod dept A1 A2 A3 cod dept A1 A2 A3 A4
cod
emp (emp)
= cod
emp (dept)
Si la tupla no tiene tuplas relacionadas en otras tablas simplemente se elimina. Si la tupla tiene tuplas relacionadas, la eliminacin puede o prohibirse o realizarse como una eliminacin en cascada. o
departamento departamentonombre=Marketing (departamento) nombre Informtica a Ventas Recursos Humanos nombre Torres Figueroa Salas R os Venegas Gonzalez sueldo $ 1.200.000 $ 600.000 $ 1.500.000 $ 2.000.000 $ 600.000 $ 2.000.000 cod dept A1 A3 A4 cod dept A1 A1 A1 A3 A1 A3 f ech creac 01/03/2002 01/01/2001 01/01/2003 f ech ing 01/01/2004 01/03/2002 01/01/2002 01/06/2002 01/06/2002 01/10/2002
cod cod
Si se hace una actualizacin en una tabla donde la llave prio maria existe como llave fornea en otra relacin, se realiza a o una actualizacin en cascada. o cod
dept=A5 (nombre=Marketing (departamento)
nombre Informtica a Marketing Ventas Recursos Humanos nombre Torres Soto Prez e Figueroa Salas R os Campos Venegas Carcamo Gonzalez sueldo $ 1.200.000 $ 500.000 $ 300.000 $ 600.000 $ 1.500.000 $ 2.000.000 $ 800.000 $ 600.000 $ 500.000 $ 2.000.000
f ech creac 01/03/2002 01/01/2002 01/01/2001 01/01/2003 f ech ing 01/01/2004 01/01/2003 01/10/2003 01/03/2002 01/01/2002 01/06/2002 01/11/2003 01/06/2002 01/04/2003 01/10/2002
Dependencias Funcionales
Son un caso particular de restriccin de integridad o Nos permiten expresar propiedades semnticas de los datos a de nuestra base de datos (propiedades del signicado de los datos). Son una generalizacin del concepto de llaves. o La siguiente es la denicin formal de dependencia funcional: o Sea r(R) una relacin, R y R. Decimos que o depende funcionalmente de si en cualquier relacin legal todos los pares de tuplas t1 y t2 o cumplen con: t1 [] = t2[] t1[] = t2[] es decir, si las tuplas estn de acuerdo en sus atributos a entonces tambin estn de acuerdo en sus atributos . e a Es similar a la denicin de llave, de hecho se puede denir o una super-llave formalmente usando dependencias funcionales: K R es super-llave de una relacin legal r(R) ssi K R. o 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 relacin. o Debe ser denida expl citamente por alguien que conoce la semntica de los atributos de la relacin. a o El diseador de la Base de Datos adems de especicar el n a esquema, debe especicar el conjunto de dependencias funcionales que se deben cumplir.
7
{calle, numero, ciudad, region} {color} {ciudad, region, telef ono} {calle, numero} {color} {telef ono} {ciudad, region} {calle}
{rut} {nombre, n alumno, carrera} {carrera} {f acultad} {carrera} {nombre} {nombre, carrera} {rut} {n alumno} {rut, nombre}
rut sexo, edad, ahorro sexo, edad grupo grupo, ahorro jubilacion edad, jubilacion periodo
La dependencia sexo, edad, ahorro periodo se deduce lgio camente desde F . Ms aun, podr a amos deducir que rut es la unica llave candidata. Dado un conjunto F de dependencias funcionales se dene 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 denicin de o dependencia funcional o un conjunto de reglas de inferencia.
Reglas de Inferencia
1. 2. 3. 4. 5. 6.
Las tres primeras reglas, llamadas las reglas de Armstrong, son correctas y completas bastan para deducir cualquier dependencia funcional. Son consecuencia de la denicin de dependencia funcional. o 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
{edad}+ = {edad} {edad}+ = {edad} {sexo, edad, ahorro}+ {sexo, edad, ahorro}+ {sexo, edad, ahorro}+ {sexo, edad, ahorro}+ {sexo, edad, ahorro}+ {rut}+ {rut}+ {rut}+ {rut}+ {rut}+ {rut}+ = {sexo, edad, ahorro} = {sexo, edad, ahorro, grupo} = {sexo, edad, ahorro, grupo, jubilacion} = {sexo, edad, ahorro, grupo, jubilacion, periodo} = {sexo, edad, ahorro, grupo, jubilacion, periodo}
= {rut} = {rut, sexo, edad, ahorro} = {rut, sexo, edad, ahorro, grupo} = {rut, sexo, edad, ahorro, grupo, jubilacion} = {rut, sexo, edad, ahorro, grupo, jubilacion, periodo} = {rut, sexo, edad, ahorro, grupo, jubilacion, periodo} 11
Equivalencia y Cobertura
Dados E y F dos conjuntos de dependencias funcionales, decimos que:
Toda dependencia en F tiene un slo atributo a la derecha. o 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 Fm es m nimo y cubre a F se dice que Fm es una cobertura m nima de F .
12