Normalización de Bases de Datos (las 3 formas normales)
La Primera Forma Normal Esta primera Forma Normal, 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 deberia figurar el codigo del cliente, para que el resto de los datos se puedan referenciar automaticamente sin problemas y sin duplicar información.Lo mismo ocurriria en una tabla de detalle de ventas, si por cada item vendido colocamos el detalle del producto, con su descripción , medidas, etc…Tendriamos un desaprovechamiento de espacio y recursos muy grande. Para ello, tendremos nuestra tabla maestra de Productos y con solo grabar el có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 tuvieramos alguna columna que se repite a lo largo de todos los registros, dichos datos deberian 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 |
| 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 Tercera Forma Normal En realidad si nos guiamos en el ejemplo de esta nota, ya no quedaria normalización por aplicar y podriamos 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
| VentaID | ItemID | ProductoID | Cantidad | Descripcion | Medida | Proveedor |
| 1 | 1 | 3455 | 12 | Impresora HP LJ8000 | 122cm | 1 |
| 1 | 2 | 2455 | 34 | Scanner HP A3555 | 33cm | 1 |
| 2 | 1 | 5444 | 21 | Mouse HP Wireless | – | 1 |
ConclusiónFinalmente si tomamos en cuenta que una tabla de detalle de venta (item x item) puede contener un volumen de millones de registros, al haberle aplicado las 3 formas normales nos estaremos ahorrando varios Gigabytes de tamaño en dicha tabla y por supuesto mejorado notablemente la performance.
No hay comentarios:
Publicar un comentario