Está en la página 1de 5

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.

COLOMBIAN SYSTEMS
ACCESORIOS y PARTES DE COMPUTADOR

FACTURA DE COMPRA-VENTA No. 500456


No. 5656801
Fecha: 05/04/2011
. Enero
Cliente JOSE PEREZ PRITO
CRA 7 NO. 50-50

.DC
~e

LISTA DE PRODUCTOS
CATEGO~ CODIGO D~N VR.UNIT \..ANIIUAD
51238 Dim iMB 1 $ 115.00J 2
• ¡:;¡:;n
1 s --ªªº.OOJ 1
~ MSI ,ATA 133 1 s 7?Il rrn 1
11 I'non'-l lG 52X $ ~.OOJ 1
~
I! -to 1$ nrrn 1
PS2 $ 15.00J 1
~
,r.~n;". $ 13.00J 2
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.

'iI NUMERO_FACTURA
FECHA_FACTURA Clave Principal
CEDULA_NIT_CUENTE
NOMBRE_CUENTE
DIRECCION_CUENTE
CIUDAD_CUENTE
TELEFONO_CUENTE
CODIGO_PRODUCTO
DESCRIPCION
CATEGORIA
VALOR_UNITARIO
CANTIDAD

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

COlOMBIAN SYSTEMS
ACCESORIOS y PARTES DE COMPUTADOR

FACTURA DE COMPRA-VENTA No, 5656801


No. 500456
Enero
Fecha: 05/04/2011
JOSE :PRITO
CRA 7 NO, 50-50
('o~,,'o/~IIT
r.i"rl.rl ,OC Datos no Repetitivos
de

Dato
LISTA DE _1 us
s
CAl f DESe VIUINIT CAN'lIuAu
51238 Dim 1-" ; 1. i3 256 MB $ 115,000 2
R
68989 I!':.m."nn r550 $ 'lRn nnn 1
IMSI KM266 ATA 133 $ 220000 1
E
18888 LG52X $ 7n nnn 1
P n" LG $ 150000 1
I ecraoor..ni". PS2 $ 15,000 1
IMouse r.oni". $ 13,000 2
E

I
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
TBLGrupol TBLGrupo2
I
1/ NUMERO_FAaURA 1/ CODIGO_PRODUaO
FECHA_FAaURA DESCRIPOON
CEDULA_NIT_CUENTE CATEGORIA
NOMBRE_CUENTE VAlOR_ UNITARIO
DIRECOON_CUENTE CANTIDAD Llave secundaria
00
aUDAD_CUENTE NUMERO_FAGURA
TElEFONO_CUENTE

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.

TBLGrupo2 Este grupo dependen de forma única del la llave primaria y son
1/ CODIGO_PRODuao
DESCRIPCION inherentes al producto.
CATEGORIA
VAlOR_UNITARIO
CANTIDAD
NUMERo_fAaURA 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

TBLGrupol TBlGrupo3

r,
TBLGrupo2
'i CODIGO_PRODUaO

/
1/ NUMERO_FAaURA VAlOR_UNITARIO
FECHA_FAaURA DESCRIPCJON
CANTIDAD
(EDULA_NIT_CUENTE NUMERO_FAGURA CATEGORIA
NOM6RE_CUENTE CODIGO_PRODUaO
DIRECOON_CUENTE
OUDAD_CUENTE
TElEFONO_CUENTE
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.

TBlGrup04 TBlGrupOl TBlGrupo2 TBlGrupo3

J
'i CEOULA_NIT_CUENTE 'l/ CODIGO_PRODUaO

r\
'l/

1\
NUMERO_FACTURA VALOR_UNITARIO
NOMBRE_ CUENTE FECHA_FACTURA CANTIDAD DESCRJP(JON
OIRECaON_ CUENTE CEDULA_ NlT_CUENTE NUMERO_FAaURA CATEGORIA
OUDP_O_CUENTE CODIGO_PRODUCTO
TUEFONO_CUENTE

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 TBLDetalleFactura


vendido y relacionados en una factura particular.

Grupo # 3 Datos de los productos. TBLProductos

Grupo # 4 Datos del cliente TBLClientes


 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

TBlChentes
\'1 CEDUlA_NrT_CLlENTE
NOMBRE_CLIENTE
OIRECCION_CUENTE
aUOAD _CUENTE
r-, TBlFactura
V NUMERO_fAaURA
fECHA_fACTURA
CEOULA_tlrT_CUEtIlf
NI
TBlDetalleFactura
VAlOR_UNrTARlO
CANTIDAD
NUMERO_fACTURA
COOIGO_PROOUaO
j
TBlProductos
" CODIGO_PRODUaO
DESCRIPOOtl
CATEGORIA
VAlOR_ACTUAl
TELEfONO_CUENTE

También podría gustarte