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