jueves, 30 de agosto de 2012

Ejemplo Aplicando todas las Formas de Normalización

En este ejemplo, aplicaremos datos de alumnos de Universidad con sus respectivos cursos. Usaremos desde la 1FN hasta la 4FN.

Tabla con Datos Atomizados (1FN).


(C_Alumno) ---> (N_Alumno, C_Curso, N_Curso, Q_Creditos, C_Seccion, C_Profesor, N_Profesor).

Ahora, aplicando la 2FN, los datos deben estar en DFC con sus respectivas PK, para esto separamos los datos en distintas tablas.


(C_Alumno) ---> (N_Alumno).


(C_Curso) ---> (N_Curso, Q_Créditos).


(C_Sección) ---> (C_Profesor, N_Profesor).

Tablas en Tercera Forma Normal 3FN, donde tenemos la inclusión del dato C_Curso a la tabla de Alumnos pero solo de la PK para poder una estructura eficiente.


(C_Alumno) ---> (N_Alumno, C_Curso, C_Sección).


(C_Curso) ---> (N_Curso, Q_Créditos).


(C_Sección) ---> (C_Profesor, N_Profesor).

Finalmente, tablas en 4FN sin dependencia multivalor.


(C_Alumno) ---> (C_Curso, C_Sección).


(C_Alumno) ---> (N_Alumno).


(C_Curso) ---> (N_Curso, Q_Créditos).


(C_Sección) ---> (C_Profesor, N_Profesor).

Cuarta Forma Normal (4FN)

Una tabla está en 4FN si y solo si, está en 3FN y no posee dependencias multivaluadas no triviales. La 4FN confía en la noción de una dependencia multivaluada. Una tabla con una Dependencia Multivaluada es una donde la existencia de 2 o más relaciones independientes de muchos a muchos causa redundancia. La 4FN elimina esta redundancia.

Ejemplo 1:

Podemos notar la redundancia de datos presenta:


(N_Restaurante) ---> (T_Variedad, T_Área_Envío).

Existen 2 maneras de aplicar la 4FN la primera consiste en hacer una tabla más, aceptando la posibilidad, en este ejemplo que un Restaurante puede tener n áreas de envío y n Tipos de Variedad.


 (N_Restaurante) ---> (T_Variedad).


(N_Restaurante) ---> (T_Área_Envío).

Ejemplo 2:


(C_Jefe) ---> (N_Jefe, N_Empleado).

La Segunda forma de aplicar la 4FN es poniendo una restricción, también es posible que nos la brinden como requerimiento, es ponerle un máximo de datos. Por ejemplo, que cada jefe tenga solo 3 empleados a cargo.


(C_Jefe) ---> (N_Jefe).


(C_Jefe) ---> (N_Empleado1, N_Empleado2, N_Empleado3).

Ejemplo 3:


(C_Usuario) ---> (N_Usuario, N_Libro).

En este caso, no podemos poner restricción debido a que un usuario puede sacar varios libros.


(C_Usuario) ---> (N_Usuario).


(C_Usuario) ---> (N_Libro).

Ejemplo 4:


(C_Alumno) ---> (N_Alumno, N_Curso).

La restricción impuesta en este caso, es que un alumno puede llevar como máximo 2 cursos.


(C_Alumno) ---> (N_Alumno).


(C_Alumno) ---> (N_Curso1, N_Curso2)

miércoles, 29 de agosto de 2012

Tercera Forma Normal (3FN)

La Tercera Forma Normal (3FN), consiste en que ningún atributo dato. que depende de la PK, dependa de otro atributo dato. Es decir, no debe tener DEPENDENCIA TRANSITIVA. Hacemos la siguiente analogía.

Para que los Datos estén en 3FN, deben estar en 2FN y NO DEBEN tener Dependencia Transitiva DT.

X ---> Y --->Z

Ejemplo 1:


En este cuadro, tendríamos como Clave Primaria al C_Evento y los demás atributos dependen de la PK. Sin embargo, vemos que la Dirección del local T_Dirección depende del nombre del Local donde se realiza el evento. Para resolver este problema y tener un mejor almacenamiento de datos, la 3FN hace que creemos una 2da tabla haciendo PK al Nombre del local teniendo como atributo dato a la Dirección.




Ejemplo 2:


(N_Torneo) ---> (#_Año, N_Ganador, D_Nacimiento_Ganador).

Con la 3FN quedaría así:




(N_Ganador) ---> (D_Nacimiento_Ganador).

Ejemplo 3:


(C_Personal) ---> (N_Personal, D_Nacimiento, F_Mayor_Edad_Personal).



(D_Nacimiento_Personal) ---> (F_Mayor_Edad_Personal).

Ejemplo 4:



(#_Boleto) ---> (N_Cliente, N_Empresa, D_Dirección_Empresa, $_Precio).


(#_Boleto) ---> (N_Cliente, N_Empresa, $_Precio).


(N_Empresa) ---> (D_Dirección_Empresa).

Fallas en la 3FN

La falla que existe en la 3FN es que no se aplica por creer que los atributos dato se encuentran en la 4FN, la de multivalor.


Error: (C_Alumno) ---> (N_Alumno, N_Curso1, N_Curso2, N_Curso3).


(C_Alumno) ---> (N_Curso1, N_Curso2, N_Curso3).


(C_Alumno) ---> (N_Alumno).

martes, 28 de agosto de 2012

La Segunda Forma Normal (2FN)

La Segunda Forma Normal 2FN consiste en que todos los datos deben depender de la Clave Primaria (PK) presente, es decir deben tener Dependencia Funcional Completa DFC.

Es hacer que cada atributo dato dependa en forma funcional de la clave primaria, lo que quiere decir es que si hablamos de función, la clave primaria representaría el "X" y los atributos dato el "Y".

Ejemplo 1:


En este cuadro, los datos ya están en 1FN y podemos observar que la Clave Primaria correspondiente vendría a ser C_Alumno y que los 2 datos restantes dependen de la PK.

Función ->  (C_Alumno) ----> (N_Alumno, #_Promedio_Ponderado).

Ejemplo 2:


En este ejemplo tenemos que la PK sería el Código del libro (C_Libro), con 2 atributos dependientes.

(C_Libro) ---> (N_Título, N_Género).

Ejemplo 3:


Aquí podemos observar que la PK vendría a ser el Código del Doctor, con 4 atributos que dependen de esta.

(C_Doctor) ---> (N_Doctor, N_Especialidad, N_Paciente_1, N_Paciente_2).

Ejemplo 4:


Para finalizar, en este simple ejemplo la PK sería el Código del Alumno, con un solo atributo dependiente.

(C_Alumno) ---> (N_Carrera).

Fallas que presenta la 2FN


En este ejemplo observamos que la PK vendría a ser el Código del empleado; sin embargo, notamos que el atributo sueldo no depende del C_Empleado, sino del Área de trabajo. Para resolver este problema se hace lo siguiente:

Resultado Inicial: (C_Empleado) ---> (N_Empleado, T_Area_Trabajo, $_Sueldo)

Corregido: (C_Empleado) ---> (N_Empleado, T_Area_Trabajo).
Se crea una nueva relación para almacenar el dato restante: (T_Area_Trabajo) ---> ($_Sueldo).

lunes, 27 de agosto de 2012

Diferencia entre Datos NO Normalizados y Datos en 1raFN

La NORMALIZACIÓN es el proceso de organizar los datos para poder implementarlos en una Base de Datos. Para poder trabajar mejor estos DATOS se ordenan en TABLAS, así sera más fácil ver la relación que tienen unas con otras y poder eliminar datos que son irrelevantes para el caso que estamos desarrollando.

La 1ra Forma Normal (1FN) consiste en que TODOS los Datos deben estar Atomizados, esto quiere decir que no debe haber datos agrupados ni repetitivos.

La diferencia entre los datos NO normalizados y los datos en la 1FN, es que los datos se encuentran libres y sin ninguna relación entre ellos; mientras que los datos en 1FN están Atomizados, es decir que están relacionados y sin presentar datos repetidos, para poder obtener alguna información a partir de ellos.

Ejemplo 1:

- Datos Agrupados:



- Datos en 1FN:
Ejemplo 2:

- Datos Agrupados:


- Datos en 1FN:


Ejemplo 3:

- Datos Agrupados:

- Datos en 1FN:



Ejemplo 4:

- Datos Agrupados:

- Datos en 1FN: