Informatica
El proceso de normalización de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional.
Las bases de datos relacionales se normalizan para:
* Evitar la redundancia de los datos.
* Evitar problemas de actualización de los datos en las tablas.
* Proteger la integridad de losdatos.
En el modelo relacional es frecuente llamar tabla a una relación, aunque para que una tabla sea considerada como una relación tiene que cumplir con algunas restricciones:
* Cada tabla debe tener su nombre único.
* No puede haber dos filas iguales. No se permiten los duplicados.
* Todos los datos en una columna deben ser del mismo tipo.
La Primera Forma Normal
Esta primera FormaNormal, nos lleva a no repetir datos en nuestras tablas. Los famosos maestro – detalle, deben aplicarse a la estructura de la tabla. Si nuestra tabla de ventas repite una y otra vez (por cada venta) , el nombre, el domicilio y otros datos del Cliente, es que no hemos aplicado esta Normalización. Si tenemos una tabla clientes, en la tabla ventas, solo debería figurar el código del cliente, para queel resto de los datos se puedan referenciar automáticamente sin problemas y sin duplicar información. Lo mismo ocurriría en una tabla de detalle de ventas, si por cada ítem vendido colocamos el detalle del producto, con su descripción , medidas, etc.…Tendríamos un desaprovechamiento de espacio y recursos muy grande. Para ello, tendremos nuestra tabla maestra de Productos y con solo grabar elcódigo de dicho producto en nuestra tabla de ventas, será suficiente.
La Segunda Forma Normal (Si o si debe estar previamente aplicada la Primera Forma Normal) La Segunda Forma Normal nos habla de que cada columna de la tabla debe depender de la clave. Esto significa que todo un registro debe depender únicamente de la clave principal, si tuviéramos alguna columna que se repite a lo largo de todos losregistros, dichos datos deberían atomizarse en una nueva tabla. Veamos un ejemplo
VentaID | ItemID | FechaVenta | ClienteVenta | ProductoId | Cantidad |
1 | 1 | 01/12/2007 | 2 | 2334 | 10 |
1 | 2 | 01/12/2007 | 2 | 3333 | 2 |
1 | 3 | 01/12/2007 | 2 | 66643 | 34 |
1 | 4 | 01/12/2007 | 2 | 21 | 3 |
2 | 1 | 02/12/2007 | 5 | 3566 | 6 |
Ahí tenemos unclaro problema !!!Acaso no se busca NO REPETIR DATOS? Si toda una venta tendrá el mismo numero de Cliente y la misma Fecha…Por que no crear una Tabla de MAESTRO DE VENTAS y que contenga esos 2 datos ?Es evidente que la columna Cliente Venta y Fecha Venta se repetirán por cada venta realizada. Es por ello que proponemos el siguiente esquema
VentaID | ItemID | ProductoId | Cantidad |
1 | 1 |2334 | 10 |
1 | 2 | 3333 | 2 |
1 | 3 | 66643 | 34 |
1 | 4 | 21 | 3 |
2 | 1 | 3566 | 6 |
VentaId | FechaVenta | ClienteVenta |
1 | 01/12/2007 | 2 |
2 | 02/12/2007 | 5 |
La 2da Forma Normal
Nos habla de que cada columna de una tabla debe depender de toda la clave y no constituir un dato único para cada grupo de registros.
La Tercera Forma Normal
Enrealidad si nos guiamos en el ejemplo de esta nota, ya no quedaria normalización por aplicar y podríamos decir que nuestro ejemplo cumple con las 3 formas normales, ya que la 3ra Forma Normal nos habla de que :
Ninguna Columna puede depender de una columna que no tenga una clave
No puede haber datos derivados
En el 2do ejemplo hemos descubierto campos que dependían de la clave principal(VentaID) y que podrían incluirse en una tabla maestra.
Pero supongamos un ejemplo donde ciertas columnas no dependen de la clave principal y si dependen de una columna de nuestra tabla.
VentaID | ItemID | Producto ID | Cantidad | Descripción | Medida | Proveedor |
1 | 1 | 3455 | 12 | Impresora HP LJ8000 | 122cm | 1 |
1 | 2 | 2455 | 34 | Scanner HP A3555 | 33cm | 1 |
2 | 1...
Regístrate para leer el documento completo.