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:
Torneo | Año | Ganador | Fecha de nacimiento del ganador |
---|---|---|---|
Indiana Invitational | 1998 | Al Fredrickson | 21 de julio de 1975 |
Cleveland Open | 1999 | Bob Albertson | 28 de septiembre de 1968 |
Des Moines Masters | 1999 | Al Fredrickson | 21 de julio de 1975 |
Indiana Invitational | 1999 | Chip Masterson | 14 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:
Torneo | Año | Ganador |
---|---|---|
Indiana Invitational | 1998 | Al Fredrickson |
Cleveland Open | 1999 | Bob Albertson |
Des Moines Masters | 1999 | Al Fredrickson |
Indiana Invitational | 1999 | Chip Masterson |
-
-
Fecha de nacimiento del jugador Jugador Fecha de nacimiento Chip Masterson 14 de marzo de 1977 Al Fredrickson 21 de julio de 1975 Bob Albertson 28 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