Ing. Orlando Bettin j. Reestructurado y Modificado por BJ System NORMALIZACIONDE BASES DE DATOS Este documento contiene un ejemplo donde se explica el proceso de normalización a través de un ejemplo donde se normaliza los datos presentes en una factura de venta hasta la tercera forma normal. No contiene explicación sobre la teoría de normalización de bases de datos por lo que se aconseja hacer consultas de forma adicional acerca de éste tema. Ejemplo de normalización de una factura de venta En la siguiente factura de compra venta, usted debe analizar toda la información disponible y debe crear el diccionario de datos. No. 500456 Fecha: 05/04/2011 Ing. Orlando Bettin j. Reestructurado y Modificado por BJ System DESARROLLO 1. Creamos el Diccionario de Datos, para ello hacemos una lista de todos los campos presentes en el documento y elegimos para ellos una llave primaria. Clave Principal 2. Aplicamos Primera Forma Normal 1FN: Dividimos la lista de datos del diccionario de datos en dos grupos: El grupo # 1 estará formado por aquellos datos que no se repiten y en grupo # 2 por aquellos datos repetitivos No. 500456 Fecha: 05/04/2011 Datos no Repetitivos Dato s R E P E T I T I Ing. Orlando Bettin j. Reestructurado y Modificado por BJ System Al aplicar primera forma normal debemos adicionar en el grupo repetitivo el campo que se selecciono como llave primaria al momento de elaborar el diccionario de datos para que sirva como llave secundaria y permita establecer una relación de cardinalidad 1-N desde el grupo#1(no repetitivo) al grupo#2(grupo repetitivo) y seleccionamos una llave primaria al grupo#2. Aplicando lo anteriormente expuesto nos queda el siguiente modelo relacional en primera forma normal (1FN). Grupo repetitivo Llave secundaria Relación de cardinalidad 1-N 3. Aplicamos Segunda Forma Normal 2FN: Al aplicar segunda forma normal sólo se analiza el grupo repetitivo (grupo #2) y se determina que datos dependen de forma única del la llave primaria, Codigo_Producto en nuestro caso, estos datos junto con la llave primaria formarán un nuevo grupo (grupo #3) cuya llave primaria será la misma que tenía el grupo #2(Codigo_Producto) y este mismo dato se conserva en el grupo #2 pero para este grupo pasa a ser llave secundaria. Este grupo dependen de forma única del la llave primaria y son inherentes al producto. Este grupo No dependen de forma única del la llave primaria y son inherentes a la venta No al producto Al aplicar segunda forma normal nos que el siguiente modelo relacional Ing. Orlando Bettin j. Reestructurado y Modificado por BJ System 4. Aplicamos Tercera Forma Norma 3FN. Al aplicar tercera forma normal se analiza sólo al grupo no repetitivo, grupo # 1 en nuestro caso, y se separan de él aquellos campos que no dependan directamente de la llave primaria. Para el nuevo grupo se selecciona una llave primaria y dicho campo se conserva en el primer grupo como llave secundaria. Así nos queda el siguiente modelo. 5. D OTRAS OBSERVACIONES. Se ha seguido el proceso de normalización haciendo un ARD partiendo de un diccionario de datos formado a partir del esquema de una factura, es decir nos hemos basado en uno de los múltiples documentos que puede generar una empresa para formar la lista de datos, luego se ha procedido a aplicar 1FN,2FN y3FN. No obstante haber seguido el proceso de normalización hasta 3FN en posible que aun nuestra base de datos necesite algunos ajustes. En tal sentido procederemos a analizar cada una de las tablas y a hacer los ajustes que sean necesarios. Cambiaremos los nombres de las tablas. El cambio en los nombres de las tablas se hace para que dichos nombres guarden relación con los datos que almacenan cada tabla. Los cambios propuestos se muestran a continuación. Nota: Ahora asignar Nombres a las tablas NOMBRE DEL GRUPO DESCRIPCION DE LA INFORMACION QUE CONTIENE CADA GRUPO NUEVO NOMBRE PARA LA TABLA REPRESENTATIVA DE CADA GRUPO Grupo # 1 Información de la factura TBLFactura Grupo # 2 Detalles de la venta realizada, es la lista de productos vendido y relacionados en una factura particular. TBLDetalleFactura Grupo # 3 Datos de los productos. TBLProductos Grupo # 4 Datos del cliente TBLClientes Ing. Orlando Bettin j. Reestructurado y Modificado por BJ System Adicionamos datos en aquellas tablas que lo requieran. La tabla que guarda los datos de los productos no registra el valor actual de los productos por lo que se le adicionará un nuevo campo llamado VALOR_ACTUAL. Es importante no confundir el campo VALOR_ACTUAl de la tabla de productos con el campo VALOR_UNITARIO de la tabla de detalles de la factura el VALOR_ACTUAL como su nombre lo indica es el valor presente a la fecha de un producto en particular y el VALOR_UNITARIO es el precio al cual fue vendido un producto en particular Después de haber hecho los ajustes necesarios (cabio de nombres a las tablas y adición de nuevos datos) hemos llegado al final del proceso de normalización y podemos estar seguros de que tenemos un buen diseño de nuestra base de datos. El modelo relacional final es el siguiente