lunes, 21 de mayo de 2012

NORMALIZACIÓN

CONCEPTO DE NORMALIZACÓN?
Es el proceso de elaborar, aplicar y mejorar las normas que se aplican a distintas actividades científicas, industriales o económicas con el fin de ordenarlas y mejorarlas. La asociación estadounidense para pruebas de materiales (ASTM) define la normalización como el proceso de formular y aplicar reglas para una aproximación ordenada a una actividad específica para el beneficio y con la cooperación de todos los involucrados.
Según la ISO (International Organization for Standarization) la normalización es la actividad que tiene por objeto establecer, ante problemas reales o potenciales, disposiciones destinadas a usos comunes y repetidos, con el fin de obtener un nivel de ordenamiento óptimo en un contexto dado, que puede ser tecnológico, político o económico.

La normalización persigue fundamentalmente tres objetivos:

  1. Simplificación: se trata de reducir los modelos para quedarse únicamente con los más necesarios.
  2. Unificación: para permitir el intercambio a nivel internacional.
  3. Especificación: se persigue evitar errores de identificación creando un lenguaje claro y preciso.
    Las elevadas sumas de dinero que los países desarrollados invierten en los organismos normalizadores, tanto nacionales como internacionales, es una prueba de la importancia que se da a la normalización.
    Además consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo relacional 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 los datos.
    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 restriccione.
    • 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 tipos. 
      
FORMAS NORMALES:
Las formas normales son aplicadas a las tablas de una base de datos. Decir que una base de datos está en la forma normal N es decir que todas sus tablas están en la forma normal N.  En general, las primeras tres formas normales son suficientes para cubrir las necesidades de la mayoría de las bases de datos. 
 
PRIMERA FORMA NORMAL (1FN):
 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 debería figurar el código del cliente, para que el 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, entre otros. Tendríamos 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. Una tabla está en Primera Forma Normal si: 
  • Todos los atributos son atómicos. 
  • Un atributo es atómico si los elemento del dominio son indivisibles, mínimos.
  • La tabla contiene una llave primaria única. 
  • No debe existir variación en el número de columnas. 
  • Los Campos no llave deben identificarse por la llave (Dependencia Funcional) 
  • Debe Existir una independencia del orden tanto de las filas como de las columnas, es decir, si los datos cambian de orden no deben cambiar sus significados 
  • Una tabla no puede tener múltiples valores en cada columna. 
  • Los datos son atómicos (a cada valor de X le pertenece un valor de Y viceversa). 
  • Esta forma normal elimina los valores repetidos dentro de una BD 
 
SEGUNDA FORMA NORMAL (2FN):
 
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 los registros, dichos datos deberían atomizarse en una nueva tabla. No se busca NO REPETIR DATOS ?Si toda una venta tendrá el mismo número de Cliente y la misma Fecha…Por qué no crear una Tabla de MAESTRO DE VENTAS y que contenga esos 2 datos ?Es evidente que la columna ClienteVenta y FechaVenta se repetirán por cada venta realizada. Es por ello que proponemos el siguiente esquema:



 Venta ID
ItemID 
ProductoId 
Cantidad 
1
2334 
10 
3333
66643 
34 
21 
 1
3566 


Y ahora nuestra nueva tabla maestra

VentaId 
FechaVenta 
ClienteVenta 
1
01/12/2007 
2
02/12/2007 
5


 Entonces, nuestra 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


 TERCERA FORMA NORMAL (3FN): 

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 (Venta ID) 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. Esto es muy normal encontrar en bases mal normalizadas. Vemos que los campos DESCRIPCION , MEDIDA y PROVEEDOR no dependen de VENTAID y es por ello que no deberían estar dentro de la tabla de detalle de ventas, ya que dependen de PRODUCTOID. Aquí no se trata ya de eliminar grupos repetidos de datos (1ra Forma Normal) sino que ante la inclusión de una clave perteneciente a otra tabla, cualquier campo que sea subordinado de dicha clave debe estar en otra tabla y no en nuestra tabla detalle. La tabla se encuentra en 3FN si es 2FN y si no existe ninguna dependencia funcional transitiva entre los atributos que no son clave.

 Ejemplo de las tablas normalizadas en el sistema actual:





No hay comentarios:

Publicar un comentario