Documentos de Académico
Documentos de Profesional
Documentos de Cultura
BDa T7a
BDa T7a
Tema 7
Teora de la Normalizacin
(parte 1)
Objetivos
Suministrar una slida base terica (teora de la normalizacin basada en las dependencias entre datos) al diseo lgico de bases de datos.
UCLM ESI-BDa
7-Parte 1.2
Contenido
Tipos de dependencias entre datos Dependencias funcionales (DF) Definicin formal y clculo de claves Algoritmos basados en DF
UCLM ESI-BDa
7-Parte 1.3
Bibliografa
Bsica
Piattini et al. (2006)
Complementaria
Atzeni et al. (1999)
Cap. 8
Cap. 9
UCLM ESI-BDa
7-Parte 1.4
Dependencias:
son propiedades inherentes al contenido semntico de los datos; son un tipo especial de restriccin de usuario en el modelo relacional, que afecta nicamente a los atributos dentro de una nica relacin; y se han de cumplir para cualquier extensin de un esquema de relacin.
donde:
A es el conjunto de atributos de la relacin, y DEP es el conjunto de dependencias existentes entre los atributos.
UCLM ESI-BDa
7-Parte 1.5
Funcionales (DF), Multivaluadas (DM), Jerrquicas (DJ), y de Combinacin (DC) (tambin llamadas producto).
Cada tipo de dependencia se caracteriza por ser una asociacin particular entre los datos. El grupo ms restrictivo es el de las dependencias funcionales. Sobre este conjunto de dependencias, se apoyan las formas normales bsicas.
UCLM ESI-BDa
7-Parte 1.6
DC DJ DM
DF
UCLM ESI-BDa
7-Parte 1.7
Dependencias Funcionales
Definicin:
Sea el esquema de relacin R(A, DF) y sean X e Y dos descriptores (subconjuntos de atributos de A). Se dice que existe una DF entre X e Y, de forma que X determina a Y si y slo si se cumple que para cualesquiera dos tuplas de R, u y v tales que u[X] = v[X], entonces necesariamente u[Y] = v[Y]. Esto significa que a cada valor x del atributo X, le corresponde un nico valor y del atributo Y. Lo contrario, decir X no determina funcionalmente a Y: X / Y o XY
XY
Un determinante o implicante es un conjunto de atributos del que depende funcionalmente otro conjunto de atributos al que llamamos determinado o implicado. Ejemplo:
DNI_Estudiante Nombre
UCLM ESI-BDa
7-Parte 1.8
Dependencias Funcionales
Descriptores Equivalentes
Ejemplo:
Los atributos Cd_Estudiante y DNI son equivalentes (se supone que dos alumnos distintos no pueden tener ni el mismo cdigo ni el mismo DNI), es decir:
Cd_Estudiante DNI
UCLM ESI-BDa
7-Parte 1.9
Dependencias Funcionales
Diagrama de Dependencias
Es un grafo que representa un conjunto de atributos y las DF existentes entre ellos. Es una herramienta muy til a la hora de explicitar las DF.
Cd_Estudiante
Cd_Curso
UCLM ESI-BDa
7-Parte 1.10
Dependencias Funcionales
Dependencias Plenas
Se dice que Y tiene DF plena o completa de X, si depende funcionalmente de X, pero no depende de ningn subconjunto de X.
La DF plena Cd_Curso, Cd_Edicin, Cd_Estudiante Nota refleja que la nota la obtiene un estudiante en una edicin determinada de un curso determinado.
UCLM ESI-BDa
7-Parte 1.11
Dependencias Funcionales
Es decir, una DF elemental es una DF plena, no trivial y en la que el implicado es un atributo nico:
X Y es elemental sii (YY) (Y X) ( XXX Y)
nicamente las DF elementales son tiles para la normalizacin. El resto de DF no interesan y no se tienen en cuenta.
UCLM ESI-BDa
7-Parte 1.12
Dependencias Funcionales
Dependencias Transitivas
Se representa por XZ
(flecha discontinua)
DF transitiva estricta:
UCLM ESI-BDa
7-Parte 1.13
Dependencias Funcionales
Dada la relacin
Adems, como en un programa se imparten varios cursos: Cd_Programa / Cd_Curso y por tanto, se cumple la DF transitiva Cd_Curso Cd_Departamento que tambin es estricta porque Cd_Departamento / Cd_Programa
7-Parte 1.14
UCLM ESI-BDa
Dependencias Funcionales
Consecuencia Lgica
El conocimiento de ciertas DF puede llevar a inferir la existencia de otras que no se encontraban en el conjunto inicial: Dado un esquema de relacin: R (A, DF)
es posible deducir de DF nuevas dependencias funcionales que sean una consecuencia lgica del conjunto de partida. Las nuevas dependencias f que se cumplen para cualquier extensin de r de R son consecuencia lgica de DF (vienen implicadas por DF). Se representan como:
DF |= f
UCLM ESI-BDa
7-Parte 1.15
Dependencias Funcionales
El cierre de un conjunto de dependencias funcionales DF (que se denota DF+) es el conjunto de todas las dependencias que son consecuencia lgica de DF: DF+ = { X Y | DF |= X Y }
DF ser siempre un subconjunto del cierre (DF DF+). Por lo tanto, las notaciones R(A,DF) y R(A,DF+) definen el mismo esquema de relacin.
Estas definiciones no permiten el clculo del cierre, siendo necesarias unas reglas de derivacin que faciliten la implicacin lgica de dependencias.
Estas reglas de derivacin, se conocen como Axiomas de Armstrong, y forman un conjunto completo y correcto de axiomas.
UCLM ESI-BDa
7-Parte 1.16
Dependencias Funcionales
Reglas de Derivacin
Dado un conjunto DF de dependencias funcionales, se dice que f se deriva de DF, lo que se representa por DF | f
si f se puede obtener por aplicacin sucesiva de los axiomas de Armstrong a DF (o a un subconjunto de DF), es decir, si existe una secuencia de dependencias f1, f2, fn tal que fn = f, donde cada fi es bien un elemento de DF o ha sido derivada a partir de las dependencias precedentes aplicando las reglas de derivacin.
Aunque son conceptos distintos, se cumple siempre que si una dependencia f es una consecuencia lgica de un conjunto de dependencias, tambin ser posible derivarla de dicho conjunto aplicando los axiomas de Armstrong, y viceversa; es decir: f | DF | f se_implica_que DF |= f (propiedad de correccin) y f | DF |= f se_implica_que DF | f (propiedad de plenitud)
UCLM ESI-BDa
7-Parte 1.17
Dependencias Funcionales
Axiomas de Armstrong
Bsicos
A1: Reflexividad Si Y X, X Y (X Y es una DF trivial) A2: Aumentatividad Si X Y y Z W, entonces XW YZ A3: Transitividad Si X Y e Y Z, entonces X Z
Derivados
D1: Proyectividad Si X Y, entonces X Y si Y Y D2: Unin o aditividad Si X Y y X Z, entonces X YZ D3: Pseudotransitividad Si X Y e YW Z, entonces XW Z
7-Parte 1.18
UCLM ESI-BDa
Dependencias Funcionales
Axiomas de Armstrong
Ejemplo de aplicacin:
1. 2. 3. 4. 5. 6. 7. 8.
UCLM ESI-BDa
Dependencias Funcionales
Axiomas de Armstrong
Trabajar con los axiomas de Armstrong para optimizar (normalizar) esquemas de relacin tiene varios inconvenientes:
Aunque los axiomas de Armstrong facilitan un procedimiento algortmico para calcular el cierre DF+ de un conjunto de dependencias, su clculo consume mucho tiempo, ya que, aunque el nmero inicial de dependencias sea pequeo, el nmero total de dependencias en el cierre es muy elevado. Para evitar este problema habr que buscar procedimientos algortmicos que no estn basados en el cierre de un conjunto de dependencias. Por otro lado, no todas las dependencias incluidas en el cierre son tiles en el proceso de diseo de una base de datos, por lo cual se introducir el concepto de recubrimiento o cobertura irredundante tambin llamado minimal.
7-Parte 1.20
UCLM ESI-BDa
10
Claves
Dado un esquema de relacin R(A,DF), se denomina superclave SK de la relacin R a un subconjunto no vaco de A, tal que SK A es una consecuencia lgica de DF, siendo, por tanto, un elemento de su cierre: (SK ) (SK A DF+)
Esta condicin se conoce como propiedad de unicidad. Significa que una superclave determina a todos los atributos de la relacin.
UCLM ESI-BDa
7-Parte 1.21
Claves
Dado un esquema de relacin R(A,DF), K es una clave candidata de R si, adems de ser una superclave, no existe ningn subconjunto estricto K de K tal que K implique tambin a A: (K ) (K A DF+) (K K | K A)
Esta condicin se conoce como propiedad de minimalidad. Significa que una clave candidata tiene como determinante al conjunto mnimo de atributos necesario. R( A, B, C, D, E; {A B, C D, D E})
UCLM ESI-BDa
7-Parte 1.22
11
Algoritmos Basados en DF
Para disponer de mtodos eficientes para el diseo de BD relacionales, es necesario disponer de algoritmos adecuados relacionados con la manipulacin de DF. Los principales sirven para:
A. B. C. D. E.
Determinar si una dependencia X Y pertenece al cierre DF+ Encontrar un procedimiento eficiente no basado en el cierre de un conjunto de dependencias, para determinar la equivalencia entre dos conjuntos de dependencias. Hallar un recubrimiento irredundante, necesario para abordar el tema de la normalizacin, tanto en los algoritmos de sntesis como de anlisis. Verificar si un descriptor es clave de un esquema de relacin. Obtener todas las claves candidatas de un esquema relacin.
UCLM ESI-BDa
7-Parte 1.23
Algoritmos Basados en DF
Cierre de un Descriptor
A fin de abordar los problemas anteriores, es necesario antes definir el concepto de cierre transitivo de un descriptor. Dado un esquema de relacin R(A, DF), el cierre transitivo de un descriptor X de R respecto al conjunto de dependencias DF, denotado como X+DF es el subconjunto de los atributos de A tales que X X+DF DF+
siendo X+DF mximo en el sentido de que la adicin de cualquier atributo vulnerara la condicin anterior.
UCLM ESI-BDa
7-Parte 1.24
12
Cierre de un Descriptor
Algoritmos Basados en DF
UCLM ESI-BDa
7-Parte 1.25
Algoritmos Basados en DF
Cierre de un Descriptor
hallar el cierre del descriptor (CP,P) CP,P CP, P CP,P CP, P, CE, G, C CP,P CP, P, CE, G, C, NE Luego el cierre transitivo del descriptor es: (CP, P)+ = CP, P, CE, G, C, NE
UCLM ESI-BDa
7-Parte 1.26
13
Algoritmos Basados en DF
Comprobar Dependencias
Comprobar si una dependencia funcional X Y se deriva de un conjunto de dependencias DF equivale a comprobar si X Y pertenece a DF+ El algoritmo de comprobacin es el siguiente:
Calcular el cierre X+DF de X Si Y X+DF la dependencia X Y DF+ (o lo que es igual DF |= X Y), en caso contrario X Y DF+. Dado el conjunto de dependencias funcionales anterior, comprobar si la dependencia NE C se deriva de DF. Se calcula el cierre de NE: NE+ = NE, CE, C Como C est en el cierre de NE, se cumple que NE C pertenece a DF+ y por tanto, se deriva de DF
1. 2.
Ejemplo:
1. 2.
UCLM ESI-BDa
7-Parte 1.27
Algoritmos Basados en DF
El problema de la equivalencia de dos conjuntos de DF es fundamental en el proceso de normalizacin, a fin de comprobar si la transformacin de un esquema relacional se ha realizado conservando la semntica, al menos en lo que a dependencias se refiere. Dos conjuntos de dependencias DF1 y DF2 son equivalentes si sus cierres son iguales: DF+1 = DF+2 Para evitar el coste computacional del clculo de los cierres, se puede comprobar si cada dependencia de DF1 se encuentra en DF2 y, viceversa, si cada dependencia de DF2 se encuentra en DF1.
UCLM ESI-BDa
7-Parte 1.28
14
Algoritmos Basados en DF
Algoritmo:
1.
Y X+DF1
2.
W Z+DF2
3.
Si se cumplen 1 y 2, DF1 y DF2 son mutuamente recubrimientos y, por tanto, son equivalentes.
7-Parte 1.29
UCLM ESI-BDa
Algoritmos Basados en DF
Ejemplo:
Dados los siguientes conjuntos de dependencias: DF1 = {A B, B A, A C, A D} DF2 = {A B, B A, B C, B D} Las dependencias A B y B A estn en ambos conjuntos, por lo que las nicas dependencias de DF1 que no estn en DF2 son A C y A D. Por tanto, debe calcularse el cierre de A con respecto al conjunto DF2:
como C y D estn contenidos en el cierre, queda demostrado que todas las dependencias de DF1 estn en DF+2, luego DF2 es un recubrimiento de DF1.
A+DF2 = A, B, C, D
B+DF1 = B, A, C, D
UCLM ESI-BDa
7-Parte 1.30
15
Algoritmos Basados en DF
Recubrimiento Irredundante
Todas sus dependencias son elementales, y No existe en el conjunto de dependencias ninguna redundante, es decir, que se pueda deducir del resto aplicando los axiomas de Armstrong.
De todos los posibles conjuntos equivalentes a un conjunto dado de dependencias, hay algunos de ellos que son mnimos dicindose que son recubrimientos irredundantes (tambin llamados minimales) del conjunto dado de dependencias. Puesto que las dependencias son restricciones semnticas, es de inters eliminar todas aquellas que sean redundantes.
Por esta razn, adems de para reducir la complejidad algortmica, los algoritmos de normalizacin y los de clculo de claves candidatas parten siempre de recubrimientos irredundantes.
UCLM ESI-BDa
7-Parte 1.31
Algoritmos Basados en DF
Recubrimiento Irredundante
Atributo extrao: Dada la dependencia X Y DF, un atributo AX se dice que es un atributo extrao si (X - A) Y DF+. Dependencia redundante: Una dependencia funcional f de DF se dice que es redundante si puede derivarse de {DF f} mediante la aplicacin de los axiomas de Armstrong: {DF f} | f Un conjunto M es recubrimiento irredundante si:
Todas sus dependencias son elementales. No hay atributos extraos, es decir, (X A M) (Z X) | M {M ( X A) U (Z A)}+ y (Z X) | {M ( X A) U (Z A)} M+ No existen dependencias redundantes, es decir, (X A M) | {M ( X A)} M
Dado un conjunto de dependencias DF siempre es posible encontrar un recubrimiento irredundante. Pueden existir varios recubrimientos irredundantes de un mismo conjunto de dependencias.
7-Parte 1.32
UCLM ESI-BDa
16
Algoritmos Basados en DF
Recubrimiento Irredundante
1. 2.
Reducir la complejidad algortmica al disminuir el nmero de dependencias de partida), y Minimizar el nmero de restricciones de integridad que han de ser mantenidas en la base de datos.
Por ambas razones, debe ser un objetivo de diseo conseguir que el nmero de dependencias y el nmero atributos involucrados sean mnimos. Adems, existe otro objetivo de diseo, que es an ms importante:
los usuarios. Este problema no puede ser resuelto con la teora de la normalizacin, ya que realiza transformaciones algortmicas de tipo sintctico que pueden conducir a dependencias y a esquemas de relacin absurdos desde el punto de vista del usuario.
UCLM ESI-BDa
7-Parte 1.33
Algoritmos Basados en DF
Recubrimiento Irredundante
UCLM ESI-BDa
7-Parte 1.34
17
Algoritmos Basados en DF
Identificacin de Claves
Dada una relacin R(A,DF), para comprobar si un descriptor X es una superclave y/o clave candidata:
1. 2.
Si X+DF = A X es una superclave en caso contrario X no es una superclave Si (X | (XX) (X+DF = A) ) X no es una clave candidata en caso contrario X es una clave candidata
Si X es una superclave:
R(AT, DF)
Como (A,C)+DF = (A,C,B,E,D,F)=AT (A,C) es una superclave. Adems, como A+DF = (A, B) AT y C+DF = (C, E, F) AT (A,C) es una clave candidata.
UCLM ESI-BDa
7-Parte 1.35
Algoritmos Basados en DF
Dado un esquema de relacin R(A,DF), si se eliminan de DF todas aquellas dependencias que supongan la equivalencia de descriptores, dejando slo uno de cada grupo de descriptores equivalentes.
Para calcular las claves candidatas de R se ha de tener en cuenta lo siguiente:
Todo atributo independiente (que no interviene en ninguna dependencia funcional ni como implicante ni como implicado) forma parte de todas las claves. Los descriptores equivalentes dan lugar a varias claves. Ningn atributo implicado que no es implicante forma parte de ninguna clave. Todo atributo implicante pero no implicado forma parte de todas las claves (siempre que no tenga otros equivalentes). Aquellos atributos que son implicantes e implicados pueden formar parte de alguna clave.
7-Parte 1.36
UCLM ESI-BDa
18
Algoritmos Basados en DF
Dado un esquema de relacin R(A,DF), siendo DF un recubrimiento irredundante, los pasos para calcular sus claves candidatas son:
Por cada grupo de descriptores equivalentes (XY...), se elige uno (por ejemplo X), eliminando las dependencias de equivalencia anteriores de DF y sustituyendo en las dependencias restantes los descriptores eliminados (por ejemplo Y) por el atributo que se ha elegido del grupo (X en este caso). Se obtiene as una relacin Rsie. Cuando, como resultado de este paso, las relaciones no tienen dependencias, los atributos de las mismas son independientes:
Ejemplo: R(A,B; ) implica que los atributos A y B son independientes.
UCLM ESI-BDa 7-Parte 1.37
Algoritmos Basados en DF
UCLM ESI-BDa
7-Parte 1.38
19
Algoritmos Basados en DF
Si no fuese posible obtener la particin Rsie se actuara de la misma manera que se acaba de explicar, pero con Rsie.
UCLM ESI-BDa
7-Parte 1.39
Algoritmos Basados en DF
UCLM ESI-BDa
7-Parte 1.40
20
Algoritmos Basados en DF
Ejemplo 1
Sea el esquema de relacin: R({A,B,C,D,E,F,G,H,I,J}; {ABC, CAB, ED, DE, EF, FE, ABD G, CFH})
Paso 1
Paso 2
Los atributos I y J son independientes porque no forman parte de ninguna DF, luego, en este primer paso se eliminan de la relacin: Rsi ({A,B,C,D,E,F,G,H}, {ABC, DEF, ABDG, CFH}) Existen dos grupos de descriptores equivalentes:
a) AB y C b) D, E y F
Del grupo a) nos quedaramos, por ejemplo, con C y del grupo b) con D (eliminaramos, por tanto, AB, E y F); la relacin resultante sin equivalencias sera: Rsie ({C, D, G, H};{CDG, CDH})
7-Parte 1.41
UCLM ESI-BDa
Algoritmos Basados en DF
Paso 3
En la Rsie anterior, CD es el nico implicante, pero no implicado, luego una Kp sera CD, como el resto son slo implicados, CD es clave de Rsie (no hara falta hallar el cierre de CD). Pasaramos al paso 5. Si a CD le aadimos los atributos independientes I y J tenemos CDIJ que es la clave de R. Los descriptores equivalentes eran: ABC y DEF La clave CDIJ genera las siguientes claves candidatas de R: {C|AB}{D|E|F}IJ En total, son 6 claves: CDIJ, CEIJ, CFIJ, ABDIJ, ABEIJ y ABFIJ
Paso 5
Paso 6
UCLM ESI-BDa
7-Parte 1.42
21
Algoritmos Basados en DF
Ejemplo 2
Sea el esquema de relacin: R({A,B,C,D,E,F}; {ABC, DEF, FD})
Paso 1
No hay atributos independientes => Rsi = R No hay descriptores equivalentes => DEF, FD}) Rsie({A,B,C,D,E,F}; {ABC,
Paso 2
Paso 3
Kp=ABE y Kp+=ABCE; luego Kp no es clave, por lo que iramos al paso 4.
UCLM ESI-BDa
7-Parte 1.43
Algoritmos Basados en DF
Paso 4
Paso 5
Obtenemos una nueva relacin Rsie eliminando de Rsie los atributos A B C que forman la primera DF (no eliminamos E porque en la dependencia de la que forma parte aparecen D y F que no estn en Rsie) y nos queda: Rsie ({DEF};{DE F , F D}) Formaramos una clave provisional Kp con E que es slo implicante (y, por tanto, est en Rsie), aadiendo un descriptor implicante e implicado, por ejemplo F: Kp = EF y K+p = EFD; luego EF es una clave de la particin Rsie Otra clave sera ED. Por tanto, las claves de Rsie seran: ABEF ABED Como en el paso 1 no hubo atributos independientes, las claves son ABEF y ABED. Como tampoco hubo descriptores equivalentes en el paso 2, las claves son ABEF y ABED.
Paso 6
UCLM ESI-BDa
7-Parte 1.44
22