5 - Ejercicio

Tutorial creado por Javier.
12 de Enero de 2007

Consideremos el documento ORDEN DE COMPRA de la figura 4, usado para colocar una orden de pedido al proveedor de discos compactos.

Figura4 
 
Esta es la descripción general del Anuncio. es una breve explicación del cursos que sirva como guía al estudiante. Esta es la descripción general del curso. es una breve explicación del cursos que sirva como guía al estudiante. Esta es la descripción general del curso. es una breve explicación del cursos que sirva como guía al estudiante.
 
ORD-NO: Número de Oreden de Compra

ORD-DATE : Fecha de la Orden de Compra

PROV-NO: Numero del Proveedor

PROV-NAME: Nombre del Proveedor

PROV-DIR: Dirección del Proveedor

PROV-NIT: NIT o Cédula del Proveedor

CODIGO: Código del CD o Álbum

TITULO: Titulo del CD o Álbum

CANT : Cantidad de CDs a pedir

VR-UNIT: Valor unitario del CD o Álbum
 

Incluso las formas no normalizadas deben tener una llave. En el ejemplo de arriba, podemos deducir que ORD-NO es la llave. Las llaves usualmente son subrayadas durante el análisis ARD.

PRIMERA FORMA NORMAL (1FN)
 
Regla 1. Separar el grupo repetitivo:

En la lista de arriba, los ítems después de PROV-NIT son repetitivos, esto quiere decir, que para una misma orden aparecen varias veces, dado que en una misma orden se pueden encargar varias categorías, o varios títulos de la misma categoría.

Los grupos repetitivos deben ser separados de la UNF y ser escritos como un grupo independiente con su respectiva llave. Este grupo debe relacionarse con el grupo no repetitivo
 
Grupo NO Repetitivo
ORD-NO

ORD-DATE

PROV-NO

PROV-NAME

PROV-DIR

PROV-NIT
 Grupo Repetitivo
CODIGO

TITULO

CANT

VR-UNIT
 
El grupo repetitivo tiene a CODIGO como llave. Sin embargo, esta llave no es única, dado que se puede repetir en otros números de orden. Necesita ser combinada con la llave del primer grupo. Al combinar el campo ORD-NO junto con el campo CODIGO para el segundo grupo, podemos deducir que esta combinación puede actuar como llave única, ya que no puede haber una misma orden que tenga 2 códigos iguales. Por lo tanto, después de aplicar la primera forma normal, obtenemos estos grupos:
 
GRUPO 1
ORD-NO

ORD-DATE

PROV-NO

PROV-NAME

PROV-DIR

PROV-NIT
 GRUPO 2
ORD-NO
CODIGO

TITULO

CANT

VR-UNIT
 
SEGUNDA FORMA NORMAL (2FN)
 
Regla 2. Separar dependencias de las llaves compuestas.

Solo aquellos grupos de datos que tengan llaves combinadas son analizados. (llaves que tengan mas de un campo o atributo para lograr unicidad). Por lo tanto, para la segunda forma normal, nos concentraremos solo en el grupo 2, el cual tiene una llave compuesta.

En el grupo2 , cualquier atributo que no dependa enteramente de la llave compuesta (es decir, que no dependa de todos los atributos de la llave a la vez sino de solo uno de ellos) es separado del grupo principal, y es aislado en un grupo independiente junto con el atributo de la llave inicial del cual sí es dependiente. Veamos el proceso para que haya mayor claridad:

Al analizar el grupo 2, encontramos que el campo TITULO depende enteramente del campo CODIGO, y no de la llave compuesta. Llegamos a esta conclusión deduciendo que el título del CD esta asociado a un único código, por lo cual podríamos pensar que CODIGO y TITULO son campos redundantes ya que con cualquiera de ellos podemos identificar al elemento, pero pensemos en que el diseño no nos permite deshacernos de ninguno de los campos, ya que las instrucciones nos obligan a usar y almacenar TODA la información disponible en el diccionario de datos.

Por ello, lo que sí podemos hacer, aplicando la segunda forma normal, es aislar un tercer grupo, que tenga a CODIGO como llave, y TITULO como campo de la tabla. Igua sucede con el campo VR-UNIT. Este campo esta asociado exclusivamente al campo CODIGO. Esto es, cada Titulo de CD con un código determinado, debe corresponder a un valor de evnta que se establece una sola vez por cada elemento. De esta manera, si en algun momento necesitamos alterar el valor unitario de un CD, solo debemos hacerlo en la tabla del grupo 3, una única vez por elemento.

En conclusión , después de aplicar la segunda forma normal, obtenemos estos grupos:
 
GRUPO 1
ORD-NO

ORD-DATE

PROV-NO

PROV-NAME

PROV-DIR PROV-NIT
 GRUPO 2
ORD-NO
CODIGO

CANT
 GRUPO 3
CODIGO

TITULO

VR-UNIT
 
     

En este nivel, ya nos podemos imaginar mentalmente la utilidad de separar el diccionario de datos en distintos grupos. Imaginémonos que queremos ingresar 50 ordenes al sistema, y en todas está incluido el CD de Juanes, cuyo código es 1520. El título asociado al código 1520 es "Fíjate bien". Si no existiera el grupo 3, para cada una de las ordenes estaríamos ingresando no solo 50 veces el código 1520, sino que también nos toca digitar 50 veces el texto "Fíjate bien" . Consideramos que esto último es un trabajo que se puede ahorrar al aplicar la segunda forma normal, ya que si dejamos una tabla separada para CODIGO y TITULO, al ingresar las ordenes solo nos toca digitar 50 veces el código 1520 en la tabla del grupo 2 (cada vez asociado a un número de orden distinto y único), y UNA sola vez el mismo código en la tabla 3, con lo cual el texto "Fíjate bien" solo tendría que ser digitado una sola vez por ende. En el evento en que se nos pida consultar el titulo del CD en un registro de la tabla 2, simplemente usaremos el valor del campo CODIGO de dicho registro para trasladar la consulta a la tabla 3, quien nos devolverá la información buscada del Titulo.

Si han logrado entender la justificación de la normalización con el ejemplo anterior, tenemos ya un gran terreno ganado en el proceso de aprender a diseñar bases de datos.

TERCERA FORMA NORMAL (3FN)
 
Regla 3. Examinar las interdependencias entre los campos o atributos que no son llaves.

Todos los campos o atributos en cada grupo que no sean llaves, deben ser examinados para chequear que no existan interdependencias entre ellos. Si se encuentran algunas, tales dependencias deben ser separadas en distintos grupos cuya llave debe ser el campo del cual son dependientes, dejando este campo llave también en el grupo original.

Si analizamos el grupo 1, encontramos que los campos PROV-NAME, PROV-DIR y PROV-NIT son enteramente dependientes del campo PROV-NO.

Del grupo 2 ya sacamos las interdependencias durante la segunda forma normal, y el grupo tres es precisamente el resultado de esa separación en la segunda forma normal, por lo tanto lo ignoramos en esta etapa. Nos concentramos solo en el grupo 1.

Al separar en un grupo la información del proveedor, dejando un cuarto grupo con esta información, obtenemos la tercera forma normal, la cual queda de la siguiente manera:
 
GRUPO 1
ORD-NO

ORD-DATE

PROV-NO
 GRUPO 2
ORD-NO

CODIGO

CANT
 GRUPO 3
CODIGO

TITULO

VR-UNIT
 GRUPO 4
PROV-NO
PROV-NAME

PROV-DIR

PROV-NIT
 
RESUMEN DE LA NORMALIZACION
 
UNF - FORMA NO NORMALIZADA
 Diccionario de datos
 
1NF - PRIMERA FORMA NORMAL
 Separar el grupo repetitivo
 
2NF - SEGUNDA FORMA NORMAL
 Separar dependencias de llaves compuestas
 
3NF - TERCERA FORMA NORMAL
 Separar dependencias de los campos no llaves

22 opiniones

hola

hola
base

esta muy bueno
Excelente Articulo

Claro preciso y consciso
gracias

me sirvio muchisimo
Anomalías que solventa la normalizacion

Me ha servido mucho
GRacias
1 2 3 4 5 | siguiente >

Tutoriales relacionados con 'Diseño de bases de datos en SQL'

Este curso contiene cuatro actividades. Publico la primera actividad.
Qué son y como funcionan las bases de datos. Trataremos conceptos muy básicos que os... Más »
Debian es el nombre de una organización dedicada al desarrollo y mantenimiento de sistemas operativos... Más »
El principal objetivo es introducir y discutir el modo principal[2] PSGML de Emacs y las... Más »
El Linux Benchmarking CÓMO trata sobre algunos aspectos asociados con el benchmarking en los sistemas... Más »