La primera forma normal (3FN) se logra identificar cuando ningún atributo, diferente a las claves primarias, está en Dependencia Funcional con otro atributo no-clave.
(Clave Primaria)(PK)---> (Atributo1,Atributo2,Atributo3)
(Atributo3)(PK)--->(Atributo4)
Ejemplos:
1-
En esta primera tabla podemos observar que el Código del Evento (C_Evento) es el PK y los demás atributos que dependen de éste; sin embargo, la dirección del Local donde se realiza el evento (T_Direccion) , se guarda tupla por tupla y no se optimiza la información. Ahí es cuando se realiza la Tercera Forma Normal (3FN), logrando separarlos en dos tablas para un mejor almacenamiento de los datos:
(C_Evento)--->(N_Evento,N_Local)
(N_Local)--->(T_Direccion)
2-
La tabla anterior se representaría así:
(N_Torneo)--->(#_Año,N_Ganador,D_Nacimiento_Ganador)
Pero existe un error debido a que la Fecha de Nacimiento del Ganador (D_Nacimiento_Ganador), depende del Nombre del Ganador (N_Ganador).
Por lo que se separaría en dos tablas:
(N_Torneo)--->(#_Año,N_Ganador)
(N_Ganador,D_Nacimiento_Ganador)
3-
La clave primaria de la tabla anterior es el Código del Personal (C-Personal), los otros 3 atributos dependen funcionalmente de éste. Sin embargo, el valor booleano que me permite identificar si es mayor de edad (F_Mayor_Edad_Personal) se puede sacar a partir de la fecha de nacimiento de la persona (D_Nacimiento_Personal); por lo que se separa en dos tablas de la siguiente manera:
(C_Personal)--->(N_Personal,D_Nacimiento_Personal)
(D_Nacimiento_Personal)--->(F_Mayor_Edad_Personal)
4-
La tabla siguiente tiene como clave primaria al Numero de la Boleta (#_Boleta); los demás atributos son dependientes del numero de boleta.
Sin embargo, la dirección de la empresa también depende del nombre de la empresa.
(#_Boleta)--->(N_Cliente,N_Empresa,$_Precio_Total)
(N_Empresa)--->(D_Direccion_Empresa)
Errores en la 3FN
El error más común en la 3FN es confundirse con la cuarta normalización la cual consiste en el multivalor.
En esta tabla se está haciendo uso del multivalor limitando al alumno a inscribirse en 3 Cursos como máximo. Esto corresponde a la 4FN.
Lo que debería hacerse en todo caso es separar el C_Alumno con el N_Alumno, y en otra C_Alumno con N_Curso1, N_Curso2 y N_Curso3.













muy buena explicación, gracias
ResponderEliminar