domingo, 4 de septiembre de 2011

Normalización Paso a Paso (1FN - 4FN)

La tabla es almacena informacion sobre diferentes tipos de deportes con sus equipos


Tomando en cuenta que los datos no se repiten y los datos están atomizados podríamos decir que la tabla ya se encuentra en Primera Forma Normal.

Ahora Haciendo Uso de la 2da forma normal veremos las dependencias y quedaran las siguientes tablas


Ahora haciendo uso de la 3ra forma normal veremos la transitividad, si bien es cierto el equipo depende del deporte y los jugadores dependen del equipo.

Ahora si observamos se encuentra una relacion de muchos a muchos entre deporte y equipos que sera solucionada con la 4ta forma normal

Ahora solo nos quedarian las siguientes tablas:






Explique detalladamente que resuelve la cuarta forma normal

La 4NF se asegura de que las dependencias multivaluadas independientes estén correcta y eficientemente representadas en un diseño de base de datos.

Una tabla está en 4NF si y solo si esta en Tercera forma normal o en BCNF (Cualquiera de ambas) y no posee dependencias multivaluadas no triviales. La definición de la 4NF confía en la noción de una dependencia multivaluada. Una tabla con una dependencia multivaluada es una donde la existencia de dos o más relaciones independientes muchos a muchos causa redundancia; y es esta redundancia la que es suprimida por la cuarta forma normal.

Primer Ejemplo

Tenemos 3 especialidades con electivos cada una, sin embargo la especialidad de sistemas tiene mas de un electivo, por eso con ayuda de la 4ta forma normal mejoraremos la tabla

                                                         (C_Especialidad, N_Especialidad)

En esta parte se asocia solo la especialidad con su codigo

                                                         (C_Especialidad,N_Electivo)
y aqui se relaciona el codigo con los electivos

Segundo Ejemplo

En ese caso, tenemos los codigos de 2 cursos y cada uno cuenta con salones distintos, y estos con alumnos distintos donde se cumple que muchos cursos pueden tener muchos salones y muchos salones pueden tener muchos alumnos

                                                                (C_Curso, C_Salon)

                                                               (C_Salon, C_Alumno)



Tercer Ejemplo

                                                     
                                                          (C_Campeonato, C_Equipo)

                                                            (C_Equipo,C_Jugador)
Cuarto Ejemplo


En este ejemplo que se trata de resturantes de pizza con zonas de delivery y la variedad de pizza usaremos la 4ta forma normal para normalizar los datos

Las relaciones en esta tablas son:

A muchos restaurantes muchas variedades de Pizza
A muchos restaurantes muchas redes de envio

                                                    (Restaurante, Variedad de Pizza)

                                                         (Restaurante, Red de Envio)

Explique detalladamente que resuelve 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
Un atributo no-primario es un atributo que no pertenece a ninguna clave candidata. Una dependencia transitiva es una dependencia funcional XZ en la cual Z no es inmediatamente dependiente de X, pero sí de un tercer conjunto de atributos Y, que a su vez depende de X. Es decir, XZ por virtud de XY e YZ.

Primer Ejemplo

Cuando hablamos de la segunda forma normal y su error en la dependencias transitivas, dejamos un ejemplo sin terminar


Que por la dependencia transitiva y con ayuda de la tercera forma normal quedara de esta forma



                                          (C_Vendedor,N_Vendedor, $_SueldoBase,Q_Ventas)

                                                                (Q_Ventas,$_Comision)

Segundo Ejemplo

En este caso tenemos una tabla con informacion sobre ganadores de torneos

Donde Fech de nacimiento depende del Ganador y el ganador depende del torneo, haciendo uso de la 3FN quedaran dos tablas asi:


                                                      (C_Torneo, D_Año, N_Ganador)

                                                     (N_Ganador, D_Nacimiento Ganador)

Tercer Ejemplo

En esta tabla vemos como el nombre del alumno depende del codigo del alumno , y la nota depende del curso y del alumno, haciendo uso de la 3ra forma normal quedaria asi.

                                                              (C_Alumno, N_Alumno)

                                                          (C_Alumno, C_Curso, #_Nota)

Cuarto Ejemplo

El nombre del empleado con el distrito depende del codigo del empleado, y el codigo postal depende del distrito

                                                    (C_Empleado, N_Empleado, N_Distrito)

                                                              (N_Distrito, C_Codigo Postal)

Explique detalladamente que resuelve la segunda forma normal (2FN)

Una tabla está en la Segunda Forma Normal si:
 
Está en la Primera Forma Normal, y cada atributo que no es una clave es funcionalmente dependiente de la clave completa.

Dependencia Funcional Completa: Sean X e Y subconjuntos de atributos de una relación. Diremos que Y tiene una dependencia funcional de X, o que X determina a Y, si cada valor de X tiene asociado siempre un único valor de Y. 

Primer Ejemplo

Como se observa el sueldo base dependera del codigo del empleado, donde este indica su tipo.

C_ empleado(PK) ----> Sueldo Base


Segundo Ejemplo 

 En este caso, vemos como los atributos nombre, precio y stock dependen del codigo del producto




C_Producto(PK) ----> (N_Producto, Q_Stock, $_Precio)


Tercer Ejemplo

Y del mismo modo en este ejemplo se ve que el apellido paterno, materno y el nombre del lector dependen del codigo

C_Lector(PK) ----->(T_Paterno,T_Materno,N_Lector)

Cuarto Ejemplo y Error


 En este caso vemos que los atributos dependen del codigo del vendedor. Sin embargo el Atributo comision tambien depende de la cantidad de ventas.


Estamos frente a un cas de transtividad, y para eliminar deberiamos separar la tabla dejando los atributos de este modo




C_vendedor(PK)---> (N_Vendedor,$_Sueldo Base, Q_Ventas)
Q_ventas (PK) ---> $_Comision
 

I.- Explique la diferencia que existe entre los datos Normalizados en primera forma normal (1FN) y el universo de datos no normalizado

NORMALIZACION DE DATOS
La normalización de datos es el proceso de transformación de las entidades complejas enentidades simples, siempre que se normaliza se crean por lo menos dos entidades nuevas.Esta es otra forma de encontrar las entidades del proceso de negocio, por medio de losdocumentos que son los que se puede normalizar, podemos diseñar los modelos de datos. 
¿CUÁL ES EL OBJETIVO DE LA NORMALIZACIÓN?



El objetivo principal es el de evitar la redundancia de los datos en las tablas,mejorar u optimizar el diseño del sistema para brindar una mejor performance delos procesos. Solo un diseño normalizado puede garantizar que nuestro sistemacumple con los requisitos de los usuarios.Además Evitar problemas de actualización de los datos en las tablas.Proteger la integridad de los datos.
Según la definición de Date de la 1FN, una tabla está en 1FN si y solo si es "isomorfa a alguna relación", lo que significa, específicamente, que satisface las siguientes cinco condiciones:
1. No hay orden de arriba-a-abajo en las filas.
2. No hay orden de izquierda-a-derecha en las columnas.
3. No hay filas duplicadas.
4. Cada intersección de fila-y-columna contiene exactamente un valor del dominio aplicable (y nada más).
5. Todas las columnas son regulares
Primer Ejemplo
ID Cliente Nombre Apellido Teléfono
123 Rachel Ingram 555-861-2025   555-851-2132
456 James Wright 555-403-1659  123-432-1221 
555-776-4100
789 Cesar Dure 555-808-9633  454-322-1212
 En este caso en la columna telefono, se esta colocando mas de 1 valor, porque lo que no esta normalizado.
Para que este en primera forma normal deberia estar asi
ID Cliente Nombre Apellido Teléfono 1 Teléfono 2
123 Rachel Ingram 555-861-2025 555-851-2132
456 James Wright 555-403-1659 123-432-1221
789 Cesar Dure 555-808-9633 454-322-1212
Segundo Ejemplo
La tabla tampoco deberia tener contenidos nulos
ID Cliente Nombre Apellido Teléfono 1 Teléfono 2 Teléfono 3
123 Rachel Ingram 555-861-2025

456 James Wright 555-403-1659 555-776-4100
789 Cesar Dure 555-808-9633

Tercer Ejemplo
No puede haber datos repetidos
ID ClienteNombreApellidoTeléfono
123RachelIngram555-861-2025

123RachelIngram555-861-2025

789CesarDure555-808-9633
Cuarto Ejemplo
         
          ID Cliente Nombre Apellido Teléfono
          123            Rachel Ingram 555-861-2025
          456            James Wright 555-403-1659
555-776-4100
          789            Cesar Dure 555-808-9633