Está en la página 1de 7

Normalizacin y Dependencia

Funcional
Normalizacin
La normalizacin es un proceso que consiste en comprobar
que las tablas (tambin denominadas relaciones en
terminologa propia del modelo relacional de datos) definidas
cumplen unas determinadas condiciones. Se pretende
garantizar la no existencia de redundancia y una cierta
coherencia en la representacin mediante un esquema
relacional de las entidades y relaciones del modelo conceptual
(diagrama E-R). Mediante la normalizacin se pueden
solucionar diversos errores en el diseo de la base de datos
as como mejorarlo. Tambin se facilita el trabajo posterior del
administrador de la base de datos y de los desarrolladores de
aplicaciones.

Dependencia Funcional
Una dependencia funcional, denotada por X -> Y, entre dos
conjuntos de atributos X y Y que son subconjuntos de R (R
={A1, A2,...,A3}) especifica una restriccin sobre las posibles
tuplas que podran formar un ejemplar de relacin r de R. La
restriccin dice que, para cualesquier dos tuplas t1 y t2 de r
tales que t1[X] = t2[X], debemos tener tambin t1[Y] =
t2[Y]. Esto significa que los valores componentes de Y de una
tupla de r dependen de los valores del componente X, o estn
determinados por ellos; o bien, que los valores del
componente X de una tupla determinan de manera nica (o
funcionalmente) los valores del componente Y. Tambin

decimos que hay una dependencia funcional de X a Y o que Y


depende funcionalmente de X.
Sean a y b atributos de una misma tabla o relacin T. Se dice
que b es funcionalmente dependiente de a y se denota T.a ->
T.b o bien simplemente a -> b si todo posible valor de a tiene
asociado un nico valor de b, o lo que es lo mismo, en todas
las tuplas de T en las que el atributo a toma el mismo valor
v1, el atributo b toma tambin un mismo valor v2.
Claramente a -> b no implica b -> a. Pueden repetirse los
valores del atributo b para distintos valores de a. Un mismo
atributo puede determinar funcionalmente a varios atributos
lo cual se denota a -> (b1, b2, ...). Puede darse una
dependencia funcional mutua: a -> b y b -> a o lo que es lo
mismo a <-> b. Ntese que el concepto de dependencia
funcional no depende de la extensin concreta (contenido)
que en un momento determinado tenga la tabla sino de
cualquier posible extensin que pudiera tener.
Los atributos a y b pueden ser simples o compuestos
(formados por la agregacin de varios atributos). Los
atributos funcionalmente dependientes pueden o no formar
parte de la clave primaria de la tabla, de una clave alternativa
o de una clave ajena de otra tabla.
El atributo b es funcionalmente dependiente de forma
completa de a si a -> b y b no depende funcionalmente de
ningn subconjunto de atributos de a. Si a es un atributo
simple y a -> b entonces la dependencia funcional es con
seguridad completa.
Las dependencias funcionales verifican una
propiedades denominadas axiomas de Armstrong:

serie

de

Reflexividad. A partir de cualquier atributo o conjunto de


atributos siempre puede deducirse l mismo. Dependencia
trivial: x -> x.

Aumentatividad. Si x -> y entonces x+z -> y. As se


puede aumentar trivialmente el antecedente de una
dependencia. Ejemplo: si con el dni se determina el nombre
de una persona, entonces con el dni ms la direccin
tambin se determina el nombre.
Proyectividad. Si x -> y+z entonces x -> y. Ejemplo: si a
partir del dni es posible deducir el nombre y la direccin
de una persona, entonces con el dni es posible determinar el
nombre.
Aditividad. Si x -> y y z -> w entonces x+z -> y+w.
Ejemplo: si con el dni se determina el nombre y con la
direccin el telfono de una persona, entonces con el dni y la
direccin podr determinarse el nombre y el telfono.
Transitividad o enlace de dependencias funcionales. Si
x -> y e y -> z entonces x -> z. Ejemplo: si con el dni
puede determinarse el cdigo de la provincia de residencia de
una persona y con ste cdigo puede determinarse el
nombre de la provincia, entonces con el dni puede
determinarse el nombre de la provincia. ste es el mecanismo
bsico de funcionamiento del enlace entre tablas a partir de
claves ajenas.

Reglas de normalizacin
El punto de partida del proceso de normalizacin es un
conjunto de tablas con sus atributos, el denominado esquema
relacional. Se pretende mejorar dicho esquema de datos. Se
dice que una tabla est en una determinada forma normal si
satisface un cierto nmero de restricciones impuestas por la
correspondiente regla de normalizacin. La aplicacin de una
de estas reglas a un esquema relacional produce un nuevo

esquema relacional en el que no se ha introducido ningn


nuevo atributo.
Un esquema relacional se compone de una serie de ternas
T(A,D) donde T es el nombre de una tabla, A el conjunto de
los atributos de esa tabla y D el conjunto de dependencias
funcionales que existen entre esos atributos.
Si una tabla no satisface una determinada regla de
normalizacin, se procede a descomponerla en otras dos
nuevas que s las satisfagan. Esto usualmente requiere decidir
qu atributos de la tabla original van a residir en una u otra
de las nuevas tablas. La descomposicin tiene que conservar
dos propiedades fundamentales:
1. No prdida de informacin. Sea T(A, D) que se divide en
T1(A1, D1) y T2(A2, D2). A partir de los atributos
comunes en ambos esquemas es posible determinar los
atributos de T1 no presentes en T2 (es decir, el conjunto
A1 - A2) o bien los atributos de T2 no presentes en T1
(el conjunto diferencia A2 - A1). Desde cualquier
esquema se consigue recuperar los datos del otro
mediante un mecanismo de clave ajena que permite
reconstituir el esquema original de partida. Expresado
mediante dependencias funcionales, la interseccin de
los conjuntos de atributos A1 y A2 debe determinar
funcionalmente la diferencia de los conjuntos de
atributos A1 - A2 o bien A2 - A1.
2. No prdida de dependencias funcionales.
La normalizacin consiste pues en descomponer los esquemas
relacionales (tablas) en otros equivalentes (puede obtenerse
el original a partir de los otros) de manera que se verifiquen
unas determinadas reglas de normalizacin. Evidentemente
las reglas de normalizacin imponen una serie de restricciones
en lo relativo a la existencia de determinados esquemas
relacionales. Segn se avance en el cumplimiento de reglas y

restricciones se alcanzar una mayor forma normal. Existen


cinco formas normales hacia las cuales puede conducir el
proceso de normalizacin de forma incremental ms una
forma normal independiente de las otras.
Un esquema relacional que satisface todas las restricciones
impuestas por la tercera forma normal se considera de buena
calidad aunque es mejor que satisfaga una interesante
propiedad. La verificacin de una forma normal implica el
cumplimiento de todas las formas normales anteriores. La
primera forma normal es de cumplimiento obligatorio para
que exista siquiera un esquema relacional propiamente
formado
FN1. Se pretende garantizar la no existencia de grupos
repetitivos. Un grupo repetitivo es un conjunto de atributos de
igual semntica en el problema y dominio, que toman valores
distintos para la misma clave. Cualquier esquema que
tenga claves correctas est seguro en FN1.
FN2. Si FN1 y cada atributo de la tabla que no forma parte de
la clave depende funcionalmente de forma completa de la
clave primaria. Es decir, depende de toda la clave y no de
ningn subconjunto de ella. Se pretende garantizar una
correcta eleccin de claves y eliminar redundancias. Si la
clave est formada por un nico atributo entonces ese
esquema estar seguro en segunda forma normal.
FN3. Si FN2 y cada atributo no primo de la tabla no depende
funcionalmente de forma transitiva de la clave primaria.
FNBC (Forma Normal de Boyce-Codd). Se basa en el concepto
de determinante funcional: uno o varios atributos de
una tabla de los cuales dependen funcionalmente de forma
completa algn otro atributo de la misma tabla. Una relacin
est en FNBC si FN1 y cada determinante funcional es una
clave candidata de la tabla. As se garantiza que se han
elegido bien las claves al no existir dependencias funcionales

entre atributos que no son clave. Cada vez que se


verifica una dependencia funcional a -> b entonces a es clave
primaria
o
alterna
con
seguridad.
Todas
las
dependencias funcionales cumplen que en su parte izquierda
solo aparecen atributos que son parte de una clave
candidata. Esta forma normal es ms restrictiva que la tercera
y tiene la interesante propiedad de que su cumplimiento
implica la satisfaccin de FN3 o sea que FNBC -> FN3.
Ejemplo: Dependencias funcionales
Ejemplo a:
Empleado_departamento
nombre
nss
fecha_n
direccin
numero_dep
nombre_dep

Ejemplo b:
Empleado_proyecto
Nss
numero_proy

horas
nombre_emp
nombre_proy
lugar_proy
Emp_proy
- nss -> nombre (el nss del empleado determina de forma
nica el nombre de ese empleado)
- numero_proy -> {nombre_proy,lugar_proy}
- {nss, numero_proy} -> horas

También podría gustarte