domingo, 26 de enero de 2014

Normalizacion - 3FN

La Tercera Forma Normal (3FN)



La tercera forma normal (3NF) es una forma normal usada en la normalización de bases de datos. La 3NF fue definida originalmente por E.F. Codd en 1971. La definición de Codd indica que una tabla está en 3NF si y solo si las dos condiciones siguientes se mantienen:

  • La tabla está en la segunda forma normal (2NF)
  • Ningún atributo no-primario de la tabla es dependiente transitivamente de una clave primaria

Cada atributo debe representar un hecho acerca de la clave, la clave entera, y nada excepto la clave. La versión 3NF de la definición es más débil que la variación de BCNF de Date, pues el anterior se refiere solamente a asegurarse de que los atributos no-clave son dependientes en las claves. Los atributos primarios (que son claves o partes de claves) no deben ser funcionalmente dependientes en absoluto; cada uno de ellos representa un hecho sobre la clave en el sentido de proporcionar parte o toda la clave en sí misma. Debe ser observado que esta regla se aplica solamente a los atributos funcionalmente dependientes, Ya que aplicándola a todos los atributos prohibiría implícitamente claves de candidato compuestas, puesto que cada parte de cualquiera de tales claves violaría la cláusula de "clave completa".


Dependencia transitiva:


Dada la relación R(x, y, z) en la que existen las siguientes dependencias funcionales:
X® y
y® z
se dice que z tiene una dependencia transitiva respecto a x a través de y.

Mediante el grafo de dependencias podemos encontrar de forma fácil las dependencias transitivas





Ejemplo:


Sea la relación R(codigo_alumno,nombre,curso,aula), con las siguientes dependencias funcionales:
Codigo_alumno®nombre,curso;
Curso®aula;

Con la consiguiente tabla:

                                   R
Código_alumno
Nombre
Curso
Aula
1
Marcos
Informática
Aula A
2
Lucas
Inglés
Aula B
3
Marta
Contabilidad
Aula C


Realizamos su grafo de dependencias que es tal que así:




   
1.-Suponemos que la tabla está en 1FN (por los datos de la tabla lo está) y comprobamos que esta en 2FN. Pero existe dependencia funcional transitiva por lo cual no está en 3FN. D

2.-Aplicamos descomposición sin pérdidas para la dependencia que impide la 3FN. Obtenemos:

R1(curso,aula)

R2(codigo_alumno,nombre,curso)


Estas dos relaciones se encuentran en 3FN y se conservan las dependencias funcionales de la relación original R, pues en R2 se mantiene Codigo_alumno®nombre y con la unión de las dependencias de R2 Codigo_alumno®curso y R1 curso®aula  se mantienen la dependencia  Codigo_alumno®curso®aula.


Quedándonos las tablas normalizadas hasta 3FN:

TABLA R1
Curso
Aula
Informática
Aula A
Inglés
Aula B
Contabilidad
Aula C


TABLA R2

Código
Nombre
Curso
1
Marcos
Informática
2
Lucas
Inglés
3
Marta
Contabilidad

Fallas de la 3FN:




Ejemplo
Un ejemplo de una tabla 2NF que falla en satisfacer los requerimientos de la 3NF es:

Ganadores del torneo
TorneoAñoGanadorFecha de nacimiento del ganador
Indiana Invitational1998Al Fredrickson21 de julio de 1975
Cleveland Open1999Bob Albertson28 de septiembre de 1968
Des Moines Masters1999Al Fredrickson21 de julio de 1975
Indiana Invitational1999Chip Masterson14 de marzo de 1977




La única clave candidata es {Torneo, Año}.

La violación de la 3NF ocurre porque el atributo no primario Fecha de nacimiento del ganador es dependiente transitivamente de {Torneo, Año} vía el atributo no primario Ganador. El hecho de que laFecha de nacimiento del ganador es funcionalmente dependiente en el Ganador hace la tabla vulnerable a inconsistencias lógicas, pues no hay nada que impida a la misma persona ser mostrada con diferentes fechas de nacimiento en diversos registros.
Para expresar los mismos hechos sin violar la 3NF, es necesario dividir la tabla en dos:

Ganadores del torneo
TorneoAñoGanador
Indiana Invitational1998Al Fredrickson
Cleveland Open1999Bob Albertson
Des Moines Masters1999Al Fredrickson
Indiana Invitational1999Chip Masterson
Fecha de nacimiento del jugador
JugadorFecha de nacimiento
Chip Masterson14 de marzo de 1977
Al Fredrickson21 de julio de 1975
Bob Albertson28 de septiembre de 1968
Las anomalías de actualización no pueden ocurrir en estas tablas, las cuales están en 3NF.

No hay comentarios.:

Publicar un comentario