Sei sulla pagina 1di 4

Algoritmos de Normalizacin.

Bernstein

El algortimo de Bernstein nos permite de una manera estructurada,


normalizar las relaciones.

Situacin inicial: Relacin Universal y conjunto de DFs expresado en


el mundo real
U = [ { A, B, C, .. Z}, { A

B, A

B, BC

Z}]

Descomposicin: Reconocimiento de la existencia de un patrn con


el objetivo de dividir una relacin entre dos o ms relaciones
normalizadas.

Pasos del algoritmo:


1. Encontrar los hechos acerca del mundo real.

Anlisis del

sistema. Entidades y Relaciones.


2. Reducir la lista de dependencias funcionales (DFs). Mnima
cobertura no redundante.
3. Encontrar las llaves de la relacin universal U y no de la relacin
en 3FN que se genera.
4. Combinar DFs con el mismo lado izquierdo.

Descripcin de cada paso:


PASO 1.
Encontrar atributos y conjuntos DFs.
PASO 2.

a.

Lado derecho de dependencias funcionales mnimo.


Si: A

b.

B, C

hacemos lado derecho mnimo

Algoritmo X-Closure
Encuentra los atributos que dependen de A, dado un grupo de
atributos.
1.

Sea X(0) = 0

2.

Si existe una DF

B cuyo lado izquierdo est

contenido en X(N), pero cuyo lado derecho (B), no est


contenido en X(N); entonces, aada B a X(N) para obtener
X(N+1). Es decir X(N+1) es la unin X(N) y B.
3.

Incremente N y repita el punto 2 hasta que no se pueda


aadir ningn atributo a X(N).

b.1 DFs redundantes.

Tomar DFs una a una. Cada DF es de tipo X

Y donde

X y Y son ambos conjuntos de atributos.

Obtenga una lista reducida de dependencias quitando a X


Y encuentre el closure de X en la lista reducida.
Si dicho closure contiene a Y, entonces X

Y es

redundante y puede ser eliminada.


b.2 Lado Izquierdo Mnimo. Encontrar DFs Completas.

Eliminar uno de los atributos A en el lado izquierdo de una


de las dependencias, quedando el residuo R.

Encuentre el closure de R en el conjunto reducido de


dependencias si el closure contiene el lado derecho de A
B, entonces el atributo A puede ser eliminado.

Realice los puntos 1 y 2 para cada atributo en lado


izquierdo de cada dependencia.

PASO 3.
Definicin: Una llave de una relacin es una coleccin de atributos X
los cuales:
a. Funcionalmente determinan todos los atributos en la relacin.
b. No existe un subconjunto que cumpla con esta propiedad.

Procedimiento:
1. Use el algoritmo X-Closure para determinar si todos los atributos de
una relacin son funcionalmente dependiente de un set de atributos
X.
2. Si el set X tiene ms de un atributo, asegrese que ningn
subconjunto de X tiene la propiedad definida en el punto 1. Use el
algoritmo X-Closure con subset de X eliminando un atributo a la
vez.

Observaciones que facilitan el proceso:


1. Si un atributo no aparece en el lado izquierdo de una DF, el mismo
no est en ninguna llave, a menos que tampoco aparece en el lado
derecho. (El atributo no depende de otro(s) atributos por lo tanto es
una llave por si mismo).
2. Si un atributo nunca aparece en el lado derecho de una DF,
entonces debe estar en cada llave.

Paso 4.

1. Combinar dependencias con el mismo lado izquierdo.


X

Y X

Z por consiguiente X

Y, Z.

2. Obtenga una relacin por cada DF, conteniendo todos los atributos
de ambos lados de la DF. Si alguna llave de la relacin original est
incluida en las relaciones, aada una relacin con todos los
atributos de una de esas llaves (la ms completa).
3. Si alguna relacin contiene todos los atributos de otra relacin,
entonces elimine la ms pequea de las dos.
Nota: Descomposicin sin prdida y preservacin de dependencia son
garantizadas.

Potrebbero piacerti anche