Proceso de normalización de una relación
Terminos:
relación = tabla o archivo
atributo = campo o columna
tupla = registro, fila o renglón
En el proceso de normalización, según la propuesta original de Codd en 1972, se somete un esquema de relación a una serie de pruebas para "certificar" si pertenece o no a una cierta forma normal. En un principio, Codd propuso tres formas normales, a las cuales llamó (en un ataque de inspiración ) primera, segunda y tercera formas normales (1FN, 2FN, 3FM). Posteriormente Boyce y Codd propusieron una definición más estricta de la 3FN a la que se conoce como forma normal Boyce-Codd (FNBC). Todas estas formas normales se basan en las dependencias funcionales entre atributos de una relación. Más adelante se propusieron la cuarta forma normal (4FN) y una quinta (5FN), con fundamento en los conceptos de dependencias multivaluadas y dependencias de reunión, respectivamente.
La normalización de los datos puede considerarse un proceso durante el cual los esquemas de relación que no cumplen las condiciones se descomponen repartiendo sus atributos entre esquemas de relación más pequeños que cumplen las condiciones establecidas. Un objetivo del proceso de normalización es garantizar que no ocurran anomalías de actualización.
El proceso de normalización por descomposición debe confirmar la existencia de propiedades adicionales que los esquemas relacionales deben poseer. Dos de estas propiedades son:
-La propiedad de reunión sin pérdida, que garantiza que no se presentará el problema de las tuplas erróneas.
-La propiedad de conservación de las dependencias, que asegura que todas las dependencias funcionales estén representadas en alguna de las relaciones individuales o resultantes.
-La propiedad de conservación de las dependencias, que asegura que todas las dependencias funcionales estén representadas en alguna de las relaciones individuales o resultantes.
La utilidad práctica de las formas normales suele quedar en entredicho cuando las restricciones en las que se basan son difíciles de entender o detectar pero también cabe destacar que los diseñadores de DB "no tienen que" normalizar hasta la forma normal más alta posible. Las relaciones pueden dejarse en formas normales inferiores por razones de rendimiento.
Primera forma normal
Una relación está en primera forma normal (1FN) si los valores para cada atributo de la relación son atómicos
Esto quiere decir simplemente que cada atributo sólo puede pertenecer a un dominio (es indivisible) y que tiene un valor único, para cada tupla.La primera forma normal se definió para prohibir atributos multivaluados, compuestos y sus combinaciones.
Cuando una relación no está en primera forma normal, se divide en otras relaciones, repartiendo sus atributos entre las resultantes. Normalmente la idea es eliminar el atributo que viola la 1FN de la relación original y colocarlo en una relación a aparte junto con la clave primaria de la relación de partida.
Segunda forma normal
Una relación está en segunda forma normal si está en 1FN y todos los atributos no clave dependen de la clave completa y no sólo de una parte
Este paso solo se aplica a relaciones que tienen claves compuestas, es decir, que están formadas por más de un atributo. Si un esquema de relación no está en 2FN se puede normalizar a varias relaciones en 2FN en las que los atributos que dependen de una parte de la clave formarán una nueva relación que tendrá esa parte de la clave como clave primaria.Código :
PROVEEDOR(APELLIDO, ARTICULO, direccion, precio)
Tenemos que PRECIO depende de (APELLIDO, ARTICULO)
Código :
(APELLIDO, ARTICULO) -> PRECIOEn cambio DIRECCION solo depende de APELLIDO
Código :
(APELLIDO) -> DIRECCIONHabrá que descomponerla en dos para que esté en 2FN
Código :
PROVEEDOR(APELLIDO, direccion) PRODUCTO(APELLIDO, ARTICULO, precio)
Tercera forma normal
Una relación está en tercera forman normal si todos los atributos de la relación dependen funcionalmente solo de la clave, y no de ningún otro atributo
Podemos observar que si una relación está en tercera forma normal, está también en segunda, sin embargo lo inverso no siempre es cierto.Código :
COCHE(MATRICULA, modelo, potencia, color, consumo)Tenemos que tanto el CONSUMO como la POTENCIA dependen del MODELO (no de la matricula )
Código :
MODELO -> CONSUMO, POTENCIApor lo tanto hay que descomponerla:
Código :
COCHE(MATRICULA,modelo,color) MODELO(MOD, potencia, consumo)
Espero no se hayan desmayado con el toston
Un saludo
P.D:El tema problablemente de para más quizá no solo en normalización sino un tuto sobre el modelo entidad relacion (amenazo con hacerlo )