Normalización de Bases de Datos

Unidad de Apoyo para el Aprendizaje

Iniciar

Introducción

Para mejorar el desempeño de una base de datos, así como evitar redundancia en la información que contiene y, en consecuencia, generar condiciones para un mejor diseño, el analista de sistemas debe conocer las formas de normalización y condiciones en las que la desnormalización es recomendable.

En este tema se abordarán aspectos conceptuales básicos relacionados con las formas de normalización, generalmente utilizadas en el análisis, desarrollo e implementación de sistemas de bases de datos (1FN, 2FN y 3FN); además, particularidades y consideraciones que el analista deberá evaluar para decidir normalizar a mayor grado una base de datos, mantener su forma normal actual o la desnormalización en un modelo relacional.

Imagen de una base de datos

Soudan, W. (2012). Database. Consultado el 28 de septiembre de 2017 de http://rhythmvs.herokuapp.com/articles/AnthroponymicalLexicon

Identificar las tres primeras reglas de normalización de estructuras de bases de datos (1FN, 2FN y 3FN), a través de los pasos para normalizar o desnormalizar una, con el fin de implementar mejores diseños a las mismas.

Momentos de uso de la normalización


La normalización es la transformación de las vistas de usuario complejas y del almacén de datos a un juego de estructuras de datos más pequeñas y estables. Además de ser más simples y estables, las estructuras de datos son más fáciles de mantener que otras estructuras de datos. (Kendall, 2005)


Coronel, Morris y Rob (2011) refieren que la normalización es utilizada en diferentes momentos:



Nueva estructura


1. Cuando diseñan una nueva estructura de bases de datos fundamentada en las necesidades de negocios de usuarios finales.

Análisis de relaciones entre atributos


2. Después de que el diseño inicial está completo, el diseñador puede usar normalización para analizar las relaciones que existen entre los atributos dentro de cada entidad, para determinar si la estructura se puede mejorar por medio de normalización.

Mejora en el diseño


3. Por medio de un análisis de relaciones entre los atributos o campos de la estructura de datos, el diseñador puede usar el proceso de normalización para mejorarla, a fin de crear un diseño apropiado de bases de datos.

Modificación de estructura


4. Para diseñar una nueva estructura de datos o modificar una ya existente, el proceso de normalización es el mismo.


En este tema revisaremos cuestiones que nos permitirán entender de mejor manera la concepción de análisis y diseño orientado a objetos, tomando en cuenta que directamente relacionadas con el modelo relacional de bases de datos, aunque realmente no formen parte de él, existe una serie de reglas formales para la normalización de las estructuras de las bases de datos. Hay seis formas normales o reglas de normalización, si bien las más conocidas y destacables son las tres primeras.

La normalización de una base de datos persigue varios objetivos, principalmente reducir la redundancia de datos y simplificar las dependencias entre columnas, aplicándose de manera acumulativa. Lo anterior quiere decir que la segunda forma normal incluye a la primera, la tercera a la segunda y así sucesivamente. Una base de datos que esté en segunda forma normal, por tanto, cumplirá las dos primeras reglas de normalización.

Reglas de normalización


La primera regla de normalización se expresa generalmente en forma de dos indicaciones separadas.


1. Todos los atributos, valores almacenados en las columnas, deben ser indivisibles.
2. No deben existir grupos de valores repetidos.


El valor de una columna debe ser una entidad atómica, indivisible, excluyendo así las dificultades que podría conllevar el tratamiento de un dato formado de varias partes.


Supongamos que tienes en una tabla una columna Dirección para almacenar la dirección completa, dato que se compondría del nombre de la calle, el número exterior, el número interior (puerta), el código postal, el estado y la capital.

Tabla con un atributo divisible en varias partes

Figura 1. Tabla con un atributo divisible en varias partes


Una tabla con esta estructura plantea problemas a la hora de recuperar información. Imagina que necesitas conocer todas las entradas correspondientes a una determinada población, o que quieres buscar a partir del código postal. Al ser la dirección completa una secuencia de caracteres de estructura libre no resultaría nada fácil.

Existirán más columnas, pero cada una de ellas contendrá un valor simple e indivisible que facilitará la realización de las operaciones antes mencionadas.

En cuanto a la segunda indicación, se debe evitar la repetición de los datos de la población y provincia en cada una de las filas. Siempre que al muestrear la información de una tabla aparezcan datos repetidos, existe la posibilidad de crear una tabla independiente con ellos.

Si el diseño de nuestra base de datos cumple estas premisas, está preparada para pasar de la primera a la segunda forma normal.

Aislamiento de los datos repetitivos de una tabla en otra independiente

Figura 2. Aislamiento de los datos repetitivos de una tabla en otra independiente

Además de cumplir con las dos reglas del punto previo, la segunda forma normal añade la necesidad de que no existan dependencias funcionales parciales. Esto significa que todos los valores de las columnas de una fila deben depender de la clave primaria de dicha fila, entendiendo por clave primaria los valores de todas las columnas que la formen, en caso de ser más de una.

Las tablas que están ajustadas a la primera forma normal, y además disponen de una clave primaria formada por una única columna con un valor indivisible, cumplen ya con la segunda forma normal. Ésta afecta exclusivamente a las tablas en las que la clave primaria está formada por los valores de dos o más columnas, debiendo asegurarse, en este caso, que todas las demás columnas son accesibles a través de la clave completa y nunca mediante una parte de esa clave.

En cuanto a la tercera forma normal, ésta indica que no deben existir dependencias transitivas entre las columnas de una tabla, lo cual significa que las columnas que no forman parte de la clave primaria deben depender sólo de la clave, nunca de otra columna no clave.

Características de las formas normales


En este contexto, Coronel, Morris y Rob (2011), por su parte, concluyen y describen las características de las tres primeras formas normales:


Previous Next

Desnormalización


Las reglas de normalización no consideran el rendimiento. En algunos casos es necesario considerar la desnormalización para mejorar el rendimiento. La desnormalización es la duplicación intencionada de columnas en varias tablas, lo cual aumenta la redundancia de datos.

La normalización crea más tablas al avanzar hacia formas normales más altas, sin embargo, a mayor número de tablas, mayor número de combinaciones al recuperar los datos; lo que contribuye a la ralentización de las consultas. Por esta razón, para mejorar la velocidad de determinadas consultas, se pueden anular las ventajas de la integridad de datos y devolver la estructura de los datos a una forma normal inferior.

Adicionalmente, Coronel, Morris y Rob (2011), al referir al proceso de desnormalización, señalan que la unión de muchas tablas requiere operaciones de entrada/salida (I/O) y lógica de procesamiento adicional en el disco, con lo que se reduce la velocidad del sistema. Por lo tanto, pueden existir circunstancias fortuitas que permitan algún grado de desnormalización para incrementar la velocidad de procesamiento. Debemos tomar en cuenta que la ventaja de una mayor velocidad de procesamiento debe evaluarse cuidadosamente contra la desventaja de datos anómalos.

Resumiendo


La normalización es una técnica utilizada para diseñar tablas en las que las redundancias de datos se reducen al mínimo. Las primeras tres formas normales (1FN, 2FN y 3FN) son las más utilizadas. Desde un punto de vista estructural, las formas de mayor nivel son mejores que las de menor nivel, porque aquellas producen relativamente pocas redundancias de datos en la base de datos. En otras palabras, 3FN es mejor que 2FN y ésta, a su vez, es mejor que 1FN. Casi todos los diseños de negocios utilizan la 3FN como forma ideal.

Una tabla está en 1FN cuando todos los atributos de clave están definidos y cuando todos los restantes dependen de la clave primaria. Sin embargo, una tabla en 1FN aún puede contener tanto dependencias parciales como transitivas (una dependencia parcial es aquella en la que un atributo es funcionalmente dependiente de una parte de una clave primaria de atributos múltiples. Una dependencia transitiva es aquella en la que un atributo es funcionalmente dependiente de otro atributo no de clave). Naturalmente una tabla con una clave primaria de un solo atributo no puede exhibir dependencias parciales.

Una tabla se encuentra en 2FN cuando está en 1FN y no contiene dependencias parciales. Por consiguiente, una tabla 1FN automáticamente está en 2FN si su clave primaria está basada solamente en un atributo simple. Una tabla en 2FN aún puede contener dependencias transitivas.

Una tabla se encuentra en 3FN si está en 2FN y no contiene dependencias transitivas, lo cual significa que las columnas que no forman parte de la clave primaria deben depender sólo de la clave, nunca de otra columna no clave.

Por último, en algunos casos, es necesario considerar la desnormalización para mejorar el rendimiento. La desnormalización es la duplicación intencionada de columnas en varias tablas, lo cual aumenta la redundancia de datos. No debe suponerse automáticamente que todas las uniones tardan demasiado tiempo.

Actividad 1. Características de normalización

Distinguir las características de la 1FN, 2FN y 3FN permitirá al alumno distinguir el nivel de normalización en el que se encuentra una tabla. En esta sección responderás las preguntas de acuerdo con los conocimientos adquiridos, indicando si la premisa es Verdadera o Falsa.


Actividad 2. Formas de normalización

Asociar las características específicas de cada nivel de normalización permitirá entender la transitividad al formar normales más complejas.


Autoevaluación. Normalización y desnormalización

Conocer las reglas de normalización permitirá crear mejores diseños de bases de datos; en tanto que la desnormalización busca mejorar el rendimiento. Para reafirmar los conocimientos adquiridos, realiza la siguiente autoevaluación.


Fuentes de información

Básicas

Bibliografía


Coronel, C., Morris, S. y Rob, P. (2011). Bases de datos. Diseño, implementación y administración. (J. H. Romo, trad.). México: Cengage Learning.

Coronel, C. y Rob, P. (2003). Sistemas de bases de datos. Diseño, implementación y administración. México: Thomson.

Kendall, K. E. y Kendall, J. E. (2005). Análisis y diseño de sistemas. México: Prentice Hall.


Documentos electrónicos


Rojas, A. y Méndez, C. (2016). Desarrollo de aplicaciones en manejadores de bases de datos relacionales. Apunte electrónico [Versión electrónica]. México: SUAYED-UNAM. Consultado el 17 de octubre de 2017 de http://fcasua.contad.unam.mx/apuntes/interiores/docs/20172/informatica/5/apunte/LI_1547_18116_A_Desarrollo_aplicaciones_BD_v1.pdf


Complementarias

Bibliografía


Mendelzon, A. (2000). Introducción a las bases de datos relacionales. México: Pearson Educación.

Connolly, T. M. y Begg, C. (2005). Sistemas de bases de datos (4.ª ed.). México: Pearson Educación-Addison Wesley.


Cómo citar


Pacheco, M. (2018). Normalización de Bases de Datos. Unidades de Apoyo para el Aprendizaje. CUAIEED/FCA-UNAM. (vínculo)