Normalización de Bases de Datos Relacionales: Conceptos y Aplicación Práctica

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 5,03 KB

Proceso de Normalización de Bases de Datos

El proceso de normalización en bases de datos toma un esquema relacional y aplica un conjunto de técnicas para producir un nuevo esquema que representa la misma información, pero con menos redundancia y evitando posibles anomalías en las inserciones, actualizaciones y borrados. Este proceso consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional.

El Modelo Relacional de Bases de Datos

El modelo relacional de bases de datos se basa en un modelo formal especificado de acuerdo con la teoría de conjuntos. Una base de datos relacional puede considerarse como un conjunto de relaciones o tablas de la forma R (A1, ..., AN), donde R es el nombre de la relación que se define por una serie de atributos (A1, etc.).

Etapas del Proceso de Normalización

El proceso de normalización implica comprobar secuencialmente si el esquema está en:

  • Primera Forma Normal (1FN)
  • Segunda Forma Normal (2FN)
  • Tercera Forma Normal (3FN)

Objetivos de la Normalización de Bases de Datos

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.

Relaciones y Tablas en el Modelo Relacional

En el modelo relacional, es frecuente llamar "tabla" a una relación. Sin embargo, para que una tabla sea considerada como tal, debe cumplir con ciertas restricciones:

  • Cada columna debe tener un nombre único.
  • No puede tener dos filas iguales; no se permiten duplicados.
  • Todos los datos en una columna deben ser del mismo tipo.

Ejemplo: Consideremos una empresa pública donde los puestos de trabajo están regulados por el gobierno, de modo que las condiciones salariales están determinadas por el cargo.

Primera Forma Normal (1FN)

Una tabla está en Primera Forma Normal (1FN) si cumple las siguientes condiciones:

  • Todos los atributos son atómicos (indivisibles).
  • La tabla contiene una clave primaria.
  • La clave primaria no contiene atributos nulos.
  • No debe existir variación en el número de columnas.
  • Una columna no puede tener múltiples valores.

Esta forma normal elimina los valores repetidos dentro de una base de datos.

Ejemplo de Aplicación de 1FN

Una tabla está en Primera Forma Normal (1FN) si sus atributos son atómicos. En un ejemplo común, si el atributo "email" tiene más de un valor para un mismo registro, viola la Primera Forma Normal.

Solución para 1FN

Una posible solución para la violación de la 1FN consiste en separar el atributo que la incumple, creando una nueva tabla. Por ejemplo, si se duplican registros con valores repetidos, se podría crear una tabla separada como EmpleadosA.

Segunda Forma Normal (2FN)

Una relación está en Segunda Forma Normal (2FN) si está en Primera Forma Normal (1FN) y si los atributos que no forman parte de ninguna clave dependen de forma completa de la clave principal (es decir, no existen dependencias parciales).

La Segunda Forma Normal (2FN) se aplica a las relaciones que tienen una clave primaria compuesta de dos o más atributos. Si una relación (tabla) está en Primera Forma Normal (1FN) y su clave es simple (cuando tiene un solo atributo), entonces también está en Segunda Forma Normal.

En conclusión, siguiendo el ejemplo de las soluciones anteriores (EmpleadosA), la tabla EmpleadosB estaría en Primera Forma Normal (1FN), y si la tabla de email no tiene atributos no clave, el esquema ya estaría en Segunda Forma Normal (2FN).

Tercera Forma Normal (3FN)

Una relación está en Tercera Forma Normal (3FN) si y solo si está en Segunda Forma Normal (2FN) y cada atributo que no está incluido en la clave primaria no depende transitivamente de la clave primaria.

Por lo tanto, a partir de un esquema que está en Segunda Forma Normal, debemos buscar dependencias funcionales entre atributos que no estén en la clave. Siguiendo el ejemplo anterior, podemos detectar la siguiente transitividad:

  • NSSCargo
  • CargoSueldo

En este caso, NSS determina el Cargo, y el Cargo determina el Sueldo. Para aplicar la 3FN, se crearía una nueva tabla para Cargo, donde Cargo sería la nueva clave primaria. Esta nueva tabla de Cargo también quedaría como una clave ajena referenciando a la tabla Empleados. El resto de las tablas permanecerían iguales.

Entradas relacionadas: