Ligaduras de Integridad
Ligaduras de Integridad
Ligaduras de Integridad
Bases de datos
En SQL se utiliza la sentencia check para establecer la ligadura de dominios, ejemplos: create domain sueldo-por-hora numeric(7,1) constraint comprobacion-valor-sueldo check (value >= 800) create domain numero-cuenta char(10) constraint comprobacion-numero-cuenta-nulo check (value not null)
Integridad referencial
Sean r1(R1) y r2(R2) dos relaciones con claves primarias K1 y K2. Se dice que un subconjunto de R es una clave externa que hace referencia a K1 de la relacin r1 si se exige que para cada t2 de r2 haya una tupla t1 en r1 tal que t1[K1] = t2[]
Las exigencias de este tipo se denominan ligaduras de integridad referencial o dependencias de subconjunto.
La ltima denominacin proviene de que lo anterior puede expresarse como: (r2) K1 (r2)
Dependencias funcionales
Sea R un esquema de relacin. Sean R y R. La dependencia fucnional , se cumple en R si en cualquier relacin legal r(R), para todos las pares de tuplas t1 y t2 de r tales que t1[] = t2[] tambin ocurre t1[] = t2[].
Considere el esquema esquema-informacin-prstamo = (nombre-sucursal, nmero-prstamo, nombre-cliente, importe) Se esperan las siguientes dependencias funcionales nmero-prstamo importe nmero-prstamo nombre-sucursal pero no nmero-prstamo nombre-cliente
Utilizacin
1. para especificar las ligaduras del conjunto de relaciones legales. As solo habr que preocuparse por las relaciones que satisfagan un conjunto dado de dependencias funcionales. 2. Para examinar las relaciones y comprobar si son legales bajo un conjunto dado de dependencias funcionales.
A a1 a1 a2 a2 a3
B b1 b2 b2 b3 b3
C c1 c1 c2 c2 c3
D d1 d2 d2 d3 d4
Ejemplo bancario
Esquema esquema-sucursal nombre-sucursal ciudad-sucursal nombre-sucursal activo Esquema esquema-cliente nombre-cliente ciudad-cliente nombre-cliente calle-cliente Esquema esquema-prestamo nmero-prstamo importe nmero-prstamo nombre-sucursal Esquema esquema-prestatario No hay Esquema esquema-cuenta nmero-prstamo nombre-sucursal nmero-prstamo saldo Esquema esquema-impositor No hay
Reglas de inferencia
Regla de reflexividad. Si es un conjunto de atributos y , entonces se cumple que . Regla de aumentatividad. Si se cumple que y es un conjunto de atributos, entonces se cumple que . Regla de transitividad. Si se cumple que y , entonces . Estas reglas se conocen como axiomas de Armstrong. Se agregan las siguientes reglas deducibles a partir de las anteriores. Regla de la unin. Si se cumple que y , entonces se cumple . Regla de la descomposicin. Si se cumple que , entonces se cumple que y que . Regla de la seudotransitividad. Si se cumple que y que , entonces se cumple .
Ejemplo
Para el esquema de relacin R = (A, B, C, G, H, I) y el conjunto de dependencias funcionales A B A C CG H CG I B H Aplicamos el algoritmo para calcular (AG)+: paso 1 2 3 4 dependencia A B A C CG H CG I resultado ABG ABCG ABCGH ABCGHI
Objetivos de Normalizacin
Sea R un esquema de relacin con un conjunto F de dependencias funcionales. Decida si un esquema de relacin R esta en "buena" forma. En el caso de que el esquema de relacin R no este en "buena" forma, descompngalo en un conjunto de esquemas de relacin {R1, R2, ...,Rn} tales que: cada esquema de relacin este en buena forma la descomposicin es una descomposicin sin prdida Preferiblemente, la descomposicin debe ser tal que conserve las dependencias.
No hay dependencias funcionales no-triviales y por lo tanto la relacin est en BCNF Anomalias de insercin - o sea si Marilyn es una nueva maestra que puede ensear dases de datos, se deben insertar dos tuplas (bases de datos, Marilyn, DB concepts) (bases de datos, Marilyn, Ullman)