Nombre: César Augusto Berríos Mesía | Curso: Base de Datos | Ciclo: 2011-2 | Profesor: Luis Enrique Serna Jherry La normalización en las Bases de Datos: Tablas
Mostrando entradas con la etiqueta Tablas. Mostrar todas las entradas
Mostrando entradas con la etiqueta Tablas. Mostrar todas las entradas

martes, 6 de septiembre de 2011

Normalización desde la 1FN hasta la 4FN

Aquí les dejo un ejemplo sobre el uso de las 4 formas normales. Este ejemplo es sobre los datos de una universidad. Luego de obtener diversos datos, se logró armar una tabla con atributos que permite que guarden una relación entre datos.

Tabla con los datos atomizados (1FN):


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

Tablas en segunda forma normal (2FN), por cada tabla hay una única clave primaria y los demás son atributos no claves que dependen funcionalmente de la PK.


(C_Alumno)--->(N_Alumno)


(C_Curso)--->(N_Curso,Q_Creditos_Curso)


(C_Seccion)--->(C_Profesor,N_Profesor)

Tablas en la tercera forma normal (3FN), se forman las dependencias transitivas para lograr unir las tablar y permitir construir una estructura eficiente.


(C_Alumno)--->(N_Alumno,C_Curso,C_Seccion)


(C_Curso)--->(N_Curso,Q_Creditos_Curso)


(C_Seccion)--->(C_Profesor,N_Profesor)

Las tablas en la cuarta forma normal (4FN), no contienen dependencias multivaloradas.


(C_Alumno)--->(C_Curso,C_Seccion)


(C_Alumno)--->(N_Alumno)


(C_Curso)--->(N_Curso,Q_Creditos_Curso)


(C_Seccion)--->(C_Profesor)


(C_Profesor)--->(N_Profesor)

lunes, 5 de septiembre de 2011

Explicación de la Tercera Forma Normal (3FN)


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.

domingo, 4 de septiembre de 2011

Explicación de la Segunda Forma Normal (2FN)

La segunda forma normal se identifica cuando cada atributo no clave de la relación depende funcionalmente de una clave primaria (Dependencia Funcional Completa).

Es como atribuirle una función en base a la clave primaria, donde las claves primarias son las variables y los atributos son el resultado de la función.

Ejemplos:

1- 


En este cuadro se pueden apreciar 3 atributos que han sido identificados gracias a la 1FN. Luego, podemos identificar la clave primaria, siendo ésta el Código del Alumno (C_Alumno) y los otros 2 atributos, son los dependientes de esta clave.

Esto generaría la siguiente función:

(C_Alumno)--->(N_Alumno,#_Promedio_Ponderado)


2-




En este caso, la clave primaria resultaría ser el Numero de DNI (#_DNI), la cual tendría 5 atributos dependientes.

(#_DNI)---> (N_Primer_Nombre,N_Segundo_Nombre,N_Primer_Apellido,
                   N_Segundo_Apellido,D_Nacimiento)

3-



Habrían 3 atributos dependientes de la clave primaria que en este caso sería el Código del Empleado (C_Empleado).

(C_Empleado)--->(N_Empleado,T_Area_Trabajo)


4- 



Finalmente en este caso bien simple, la clave primaria sería el Código del Alumno, la cual tendría un único atributo dependiente.

(C_Alumno)--->(N_Carrera)


Fallas que presenta la 2FN


Aquí podrá identificar una falla y saber como arreglarla:




En este caso se puede apreciar un error debido a que el atributo $_Sueldo no depende del Código del Empleado, que resulta ser la clave primaria; sino depende de el Área de Trabajo. Entonces lo que resultaba de esta manera:

(C_Empleado)--->(N_Empleado,T_Area_Trabajo,$_Sueldo)

Deberia de ser así:

(C_Empleado)--->(N_Empleado,T_Area_Trabajo)

(T_Area_Trabajo)--->($_Sueldo)

Se crea una nueva relación para almacenar el dato restante.

Diferencia entre datos Normalizados en 1FN y el universo de datos no normalizado


La normalización es el proceso de organizar los datos de una base de datos. Se incluye la creación de tablas y el establecimiento de relaciones entre ellas según reglas diseñadas tanto para proteger los datos como para hacer que la base de datos sea más flexible al eliminar la redundancia y las dependencias incoherentes. 

La primera forma normal (1FN) consiste en que todos los atributos que permiten guardan relaciones estén atomizados (no repetitivos).

La diferencia entre los datos no normalizados y la 1FN es que los datos no normalizados, se encuentran libres y sin relación alguna; mientras que los datos  formalizados por la 1FN ya están atomizados, es decir relacionados y no repetitivos, lo cual permite que se pueda llegar a conseguir información a partir de ello.


Ejemplos


1-

Datos No Normalizados


Datos Normalizados en la 1FN


2-

Datos No Normalizados


Datos Normalizados en la 1FN


3-

Datos No Normalizados


Datos Normalizados en la 1FN


4-

Datos No Normalizados


Datos Normalizados en la 1FN