1. Libros y videos
  2. Diseño de bases de datos
  3. Normalización de datos
Extrait - Diseño de bases de datos Del análisis a la implementación
Extractos del libro
Diseño de bases de datos Del análisis a la implementación Volver a la página de compra del libro

Normalización de datos

Introducción

La normalización de datos es el proceso de optimización de las bases de datos para que sean más fáciles de usar y que los datos estén más disponibles cuando sea necesario.

En este capítulo, veremos qué es la normalización de datos, y para ello empezaremos por definir los conceptos técnicos que nos ayudarán a entender mejor el resto de temas a tratar.

A continuación, explicaremos cuáles son las fases que se debe llevar a cabo para estandarizar una base de datos.

Veremos cuáles son las formas normales de Boyce-Codd, consideradas un estándar cuando hablamos de normalización.

También veremos cuáles son las 12 reglas de Codd, que determinan la fidelidad de un sistema de base de datos con el modelo relacional.

Por último, le recomendaremos una serie de herramientas para realizar la normalización de bases de datos, con algunos ejemplos prácticos.

¿Qué es la normalización de datos?

La normalización de datos es un proceso de diseño de bases de datos relacionales, que tiene como objetivo reducir la redundancia de datos, así como reducir el número de anomalías que pueden encontrar los usuarios finales. Estas mejoras buscan aumentar la eficiencia y la integridad y mejorar el mantenimiento de la base de datos.

El proceso de normalización implica organizar los datos en tablas, utilizando reglas específicas para distribuir los atributos de forma lógica y reducir la duplicación.

El objetivo principal de la normalización es minimizar las anomalías de datos, incluidos los problemas de actualización, inserción y eliminación, que se pueden producir cuando los datos están mal estructurados. Discutiremos el concepto de anomalía en detalle en este capítulo.

La normalización consiste en hacer que la base de datos sea más eficiente, de modo que todos los usuarios puedan encontrar y utilizar la información de forma rápida y eficiente.

Para establecer un sistema de normalización, generalmente nos basamos en una serie de formas normales. Estas formas normales se denominan formas normales de Boyce-Codd (FNBC), en inglés BCNF Boyce Codd Normal Form).

Al normalizar una base de datos, se obtiene una estructura más modular, donde cada tabla se centra en un solo...

Definición de conceptos técnicos: tipos de claves, dependencias, etc.

Definamos algunos conceptos útiles cuando hablamos de normalización.

1. Tipos de clave

En el capítulo de Modelado de datos, pudimos ver en detalle los diferentes tipos de claves desde el punto de vista del modelado.

Ahora abordaremos el tema, pero esta vez desde una perspectiva de normalización, que nos permite aplicar un enfoque óptimo ligeramente diferente para los mismos objetos.

a. Claves primarias

Las claves primarias deben existir en cada tabla. De esta manera, seremos capaces de identificar de forma única un registro en esa tabla.

Cuando hablábamos de modelado de bases de datos, veíamos que la creación de claves primarias era opcional, pero recomendable. En el caso de una normalización, estamos obligados a crear claves primarias para poder considerar una base de datos como normalizada.

Estas claves primarias deben ser capaces de identificar de forma clara y única un registro, garantizar el control de la integridad y facilitar el orden de la información. 

b. Claves foráneas

Al igual que ocurría con las claves primarias, en un proceso de normalización, nos vemos obligados a crear claves foráneas para establecer relaciones entre las diferentes tablas o entidades de nuestra base de datos.

Las claves foráneas se deben identificar correctamente y garantizar...

Fases de normalización de bases de datos

La normalización en una base de datos se puede realizar en diferentes etapas de madurez. Es posible que, en el propio proceso de diseño de una base de datos, nos planteáramos el objetivo de contar con una base de datos normalizada, lo que sería más sencillo en cuanto al procesamiento de datos, ya que nos permitiría crear la base de datos tal y como estaba en el momento de su diseño.

Otra posibilidad, más común en la práctica, es que se quiera estandarizar una base de datos que está en producción y, por lo tanto, contiene datos en sus tablas. 

Un proceso de normalización de datos se puede dividir en varias fases:

  • La elección de nuestro objetivo. Esta es la fase más importante. Antes de comenzar el proceso de normalización, debemos determinar qué queremos lograr. Para ello, es importante entender las diferentes formas normales que tenemos disponibles para poder definir las pautas a seguir para conseguir nuestro objetivo.

  • Análisis de datos. En esta fase, realizamos un análisis exhaustivo de nuestra base de datos, que nos permite entender qué acciones tomar para conseguir el objetivo marcado. A la hora de analizar los datos, se debe tener en cuenta la finalidad elegida, como la tercera forma normal (3NF), ya que esto nos permite realizar el análisis de los datos con mayor precisión....

Formas normales

Definiremos cuáles son las diferentes formas normales y cómo podemos aplicar ejemplos prácticos para poder identificarlas y transformar nuestra base de datos a la forma normal deseada.

Como regla general, podemos definir formas normales como una forma de estandarizar nuestras bases de datos, de manera que podamos acceder a nuestra información de una manera más óptima, en función de nuestros objetivos.

En general, se considera que una base de datos está normalizada si sigue la tercera forma normal (3NF). Sin embargo, los requisitos de normalización de bases de datos pueden variar en función de nuestras necesidades.

1. Base de datos no normalizada

Antes de introducir las diferentes formas normales, nos planteamos la posibilidad de que nuestra base de datos, en su estado actual, no coincida con ninguna forma normal. A esto se le llama base de datos no normalizada.

Antes de realizar el análisis necesario, podemos suponer que nuestra base de datos o nuestro conjunto de tablas a analizar, pertenece a este grupo de bases de datos no normalizadas.

Siempre que nuestra base de datos respete al menos la primera forma normal (1NF), que describiremos a continuación, ya podemos considerar que nuestra base de datos está normalizada y, por lo tanto, ya no pertenece a esta categoría.

Una base de datos que aún no se ha analizado se considera una base de datos no normalizada, porque no podemos determinar su nivel de normalización antes de analizarla.

2. La primera forma normal (1NF)

Los pasos para normalizar, es decir, para asegurarse de que una tabla está en la primera forma normal, son los siguientes:

1. Debemos asegurarnos de que no haya grupos repetitivos en las tablas individuales. Cada dato se debe considerar atómico, evitando la repetición.

2. El segundo paso nos dice que debe haber una tabla separada para cada uno de los datos vinculados. Almacenar todos los datos en una sola tabla gigantesca es una mala práctica que no entra dentro de la normalización.

3. Se debe utilizar una clave primaria siempre que queramos establecer relaciones entre tablas.

Hay que tener en cuenta los siguientes aspectos a la hora de implantar la primera forma normal:

  • Todos los atributos son atómicos:...

Reglas de Codd

Aquí definimos qué son las reglas de Codd. Edgar F. Codd definió una serie de doce reglas, llamadas reglas de Codd, que sirven de base para definir los estándares que debe cumplir una base de datos para ser considerada una base de datos relacional.

Recordemos que una base de datos es simplemente un conjunto de datos estructurados, pero la definición de una base de datos no determina cómo se deben estructurar estos datos o qué relación deben tener entre sí.

Codd se dio cuenta de que no había consenso en cuanto a la normalización de las bases de datos y por eso definió estas reglas, que se utilizan hoy en día como estándar para la normalización.

Un sistema se podría considerar más o menos relacional dependiendo de la cantidad de reglas de Codd que respete.

1. Regla 0: regla fundamental

La primera regla o más bien la regla 0, se conoce como la regla fundamental. Esta regla define que para que una base de datos se considere una base de datos relacional, debe ser capaz de administrar datos solo mediante el uso de sus capacidades relacionales.

En otras palabras, no se puede normalizar una base de datos utilizando las reglas de Codd y, por lo tanto, considerarla relacional si el sistema de gestión de bases de datos no cuenta con los mecanismos necesarios para lograr este tipo de relación.

Por ejemplo, si nuestro sistema de gestión de bases de datos tiene la capacidad de crear claves primarias, claves foráneas y relaciones entre tablas, esta es una buena indicación de que estamos cumpliendo con la regla fundamental de Codd.

De lo contrario, a menos que haya otro mecanismo para establecer relaciones entre tablas, se denominará base de datos, pero no base de datos relacional.

2. Regla 1: regla de la información

Esta regla determina que toda la información de la base de datos relacional debe estar representada explícitamente de una sola manera, a través de sus valores en las diferentes tablas.

Esto parece una regla bastante lógica, pero hay otras formas de representar la información en una base de datos. Por ejemplo, podríamos considerar que los datos están en archivos externos o que, para acceder a los valores necesarios para establecer las relaciones en la base de datos, necesitamos utilizar enlaces web y recuperar...

Herramientas para realizar la normalización de bases de datos

Estas son algunas herramientas que se pueden utilizar para realizar la normalización de la base de datos. Algunos nos dan una serie de recomendaciones a seguir para conseguir el proceso de normalización, mientras que otros simplemente nos sirven de base para obtener la información necesaria para este proceso.

1. Normalization Tool

Creada por la universidad de Griffith, esta herramienta gratuita ayuda a los estudiantes a comprender las diferentes formas normales, las dependencias funcionales y los pasos a seguir al normalizar una base de datos.

Esta herramienta fue creada con fines académicos, por lo que puede ser útil no solo para estandarizar una base de datos de producción, sino también para entender cómo funciona el proceso de normalización de una manera más práctica que a través de un manual.

La herramienta está disponible a través del siguiente enlace: http://www.ict.griffith.edu.au/normalization_tools/normalization/index.html

2. Table Analyzer

Table Analyzer es una herramienta específica de Microsoft SQL Server que permite realizar automáticamente análisis sobre la normalización de datos.

Esta herramienta está disponible en el cliente que Microsoft SQL Server proporciona para conectarse a sus bases de datos, que se denomina SQL Server Management Studio (SSMS).

No entraremos...