2.1. Teoria de la Normalización.

NORMALIZACIÓN. ENFOQUE INTUITIVO

 La normalización es un método científico de convertir tablas complejas en estructuras de tablas simples usando ciertas reglas. Es el proceso mediante el cual se transforman datos complejos a un conjunto de estructuras de datos más pequeñas, que además de ser más simples y más estables, son más fáciles de mantener. También se puede entender la normalización como una serie de reglas que sirven para ayudar a los diseñadores de bases de datos a desarrollar un esquema que minimice los problemas de lógica. Cada regla está basada en la que le antecede. Una base de datos normalizada ocupa menos espacio en disco que una no normalizada. Hay menos repetición de datos, lo que tiene como consecuencia un mucho menor uso de espacio en disco.

 La teoría de normalización tiene como fundamento el concepto de formas normales; se dice que una relación está en una determinada forma normal si satisface un conjunto de restricciones. 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.
  • Prevenir inconsistencias.
  • Evitar campos cuyos valores se repitan frecuentemente
  • Visualizar si se pueden combinar campos poco necesarios para convertirlos en uno solo.
  • Estructurar adecuadamente las llaves primarias y foráneas de las tablas.

 

NORMALIZACIÓN BASADA EN DEPENDENCIAS FUNCIONALES.

La teoría de la normalización está basada en la noción fundamental de dependencia. Existen varios tipos:

1. Dependencia funcional: dado un conjunto B decimos que dicho conjunto depende funcionalmente de otro conjunto A si para cualquier valor de A le corresponde un único valor de B. Se denota A à B.

Al conjunto A del que depende funcionalmente el conjunto B se le llama determinante.  Al conjunto B se le llama implicado.

Ejemplo

EJEMPLO.

Tenemos la tabla TRABAJADOR que contiene tres campos: DUI, NOMBRE, DEPTO. El nombre de un trabajador depende de su número de DUI y para cada DUI en particular solo existe un nombre de trabajador posible. En cambio, DEPTO. No tiene dependencia funcional, ya que en un Departamento pueden haber muchos DUI’s y para un mismo DUI no puede haber más de un departamento.

   
  Si tenemos la siguiente tabla EMPLEADOS:
  T1
  En este caso Código es el determinante porque de él dependen Nombre y Ciudad.
Código será único en cada tupla (fila) lo que significa que es una llave candidata.
Código es el determinante y podemos decir que Código determina Ciudad y Nombre.

 

2. Dependencia funcional completa: decimos que un conjunto B tiene dependencia funcional completa respecto a otro conjunto A,  si depende de dicho conjunto en su totalidad y no de una de sus partes. Se denota A => B.

Por ejemplo, en una tabla que tiene llave compuesta, si un campo depende de las dos llaves para existir, implica que es dependencia funcional completa; si solo depende de una llave, no lo es.

Ejemplo

EJEMPLO.

En una tabla de CLIENTES, el conjunto de atributos formado por el NOMBRE y el DUI  producen una dependencia funcional sobre el atributo APELLIDOS. DUI si produce una dependencia funcional completa sobre el campo APELLIDOS.

   

 

3. Dependencia transitiva: se dice que un conjunto B depende de forma transitiva de otro conjunto A, si existe un conjunto Z que depende funcionalmente de A y B depende funcionalmente de Z. Se denota A á Z á B.

Ejemplo

EJEMPLO.

Si A es el atributo Número de Clase de un Instituto (código de clase), y B es el atributo Código Tutor. Entonces AàB (el tutor depende funcionalmente del número de clase). Si Z representa el Código del departamento, entonces Bà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 BàA (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 AàBàZ (el código del departamento depende transitivamente del código de la clase).

   

 

4. Dependencia elemental: Se produce cuando A y B forman una dependencia funcional completa y además B es un único atributo.