La normalización de una base de
datos, consiste en aplicar una serie de reglas a las relaciones obtenidas tras
el paso del modelo entidad-relación al relacional.
Una vez obtenido el esquema relacional resultante del modelo entidad
relación que representa la base de datos, normalmente se tendrá una buena base
de datos. Pero otras veces, debido a fallos en el diseño o a problemas
indetectables en esta fase del diseño, tendremos un esquema que puede producir
una base de datos que incorpore estos problemas:
- Redundancia. Se llama así a los datos que se repiten continua e innecesariamente por las tablas de las bases de datos.
- Ambigüedades. Datos que no clarifican suficientemente el registro al que representan.
- Pérdida de restricciones de integridad.
- Anomalías en operaciones de modificación de datos. El hecho de que al insertar un solo elemento haya que repetir tuplas o registros en una tabla para variar unos pocos datos. O que eliminar un elemento suponga eliminar varias tuplas.
- El principio fundamental reside en que las tablas deben referirse a objetos o situaciones muy concretas.
La solución para estos problemas o anomalías suele ser dividir la tabla con
problemas en otras tablas más adecuadas.
Las formas normales se corresponden a una teoría de normalización iniciada por Codd y continuada por otros
autores (entre los que destacan Boyce y Fagin). Codd definió en 1970 la primera
forma normal, desde ese momento aparecieron la segunda, tercera, la Boyce-Codd,
la cuarta y la quinta forma normal.
Una tabla puede encontrarse en primera forma normal y no en segunda forma
normal, pero no al contrario. Es decir los números altos de formas normales son
más restrictivos (la quinta forma normal cumple todas las anteriores).
Primera forma normal.
Una tabla se encuentra en primera forma normal si impide que un atributo de
una tupla pueda tomar más de un valor.
Segunda forma normal.
Si una tabla está en primera forma normal y además cada atributo que no sea
clave, depende de forma funcional completa respecto de cualquiera de las
claves. Toda la clave principal debe hacer dependientes al resto de atributos,
si hay atributos que depende sólo de parte de la clave, entonces esa parte de
la clave y esos atributos formarán otra tabla.
Se dice que un conjunto de atributos (Y) depende funcionalmente de otro
conjunto de atributos (X) si para cada valor de X hay un único valor posible
para Y. Simbólicamente se denota por X→Y.
Por ejemplo el nombre de una persona depende funcionalmente del DNI, para
un DNI concreto sólo hay un nombre posible.
Tercera forma normal.
Ocurre cuando una tabla está en segunda forma normal y además ningún
atributo que no sea clave depende transitivamente de las claves de la tabla. Es
decir no ocurre cuando algún atributo depende funcionalmente de atributos que
no son clave.
Se produce cuando tenemos tres conjuntos de atributos X, Y y Z. Y depende
funcionalmente de X (X→Y), Z depende funcionalmente de Y (Y→Z). Además X no
depende funcionalmente de Y. Entonces ocurre que X produce una dependencia
funcional transitiva sobre Z.
Esto se denota como: (X-→Z)
Por ejemplo si X es el atributo Número
de Clase de un instituto, e Y es el atributo Código Tutor. Entonces X→Y (el tutor depende funcionalmente del
número de clase). Si Z representa el Código
del departamento, entonces Y→Z (el código del departamento depende
funcionalmente del código tutor, cada tutor sólo puede estar en un
departamento). Como no ocurre que Y→X (el código de la clase no depende
funcionalmente del código tutor, un código tutor se puede corresponder con
varios códigos de clase).
Entonces X-→Z (el código del departamento depende transitivamente del
código de la clase).
Forma normal de Boyce-Codd (FNBC).
Ocurre si una tabla está en tercera forma normal y además todo determinante
es una clave candidata.
Cuarta forma normal.
Ocurre esta forma normal cuando una tabla está en forma normal de Boyce
Codd y toda dependencia multivaluada es una dependencia funcional.
Una dependencia multivaluada de una tabla con atributos X, Y, Z de X sobre
Z (es decir X->>Z) ocurre cuando los posibles valores de Y sobre
cualquier par de valores X y Z dependen sólo del valor de X y son independientes
de Z.
Quinta forma normal.
Ocurre cuando existen
restricciones especiales entre claves que no han sido desglosados, se deben a
restricciones muy concretas y complejas.
A continuacion un video: