La desnormalización es una estrategia que se utiliza en una base de datos previamente normalizada para aumentar su rendimiento. En informática , la desnormalización es el proceso de intentar mejorar el rendimiento de lectura de una base de datos , a costa de perder algo de rendimiento de escritura, mediante la adición de copias redundantes de datos o la agrupación de datos. [ 1 ] [ 2 ] A menudo, su motivación radica en el rendimiento o la escalabilidad del software de bases de datos relacionales que necesitan realizar un gran número de operaciones de lectura. La desnormalización se diferencia de la forma no normalizada en que sus beneficios solo se pueden aprovechar plenamente en un modelo de datos que, por lo demás, está normalizado.
Implementación
Un diseño normalizado suele almacenar información diferente pero relacionada en tablas lógicas separadas (denominadas relaciones). Si estas relaciones se almacenan físicamente como archivos de disco separados, completar una consulta de base de datos que extrae información de varias relaciones (una operación de unión ) puede ser lento. Si se unen muchas relaciones, puede ser prohibitivamente lento. Existen dos estrategias para abordar este problema mediante la desnormalización:
- "Soporte de DBMS": El sistema de gestión de bases de datos almacena copias redundantes en segundo plano, que el software DBMS mantiene consistentes.
- "Implementación de DBA": El administrador (o diseñador) de la base de datos diseña una solución para el problema desnormalizando el diseño lógico de los datos.
Soporte para DBMS
Con este enfoque, los administradores de bases de datos pueden mantener el diseño lógico normalizado, pero permitir que el sistema de gestión de bases de datos (DBMS) almacene información redundante adicional en disco para optimizar la respuesta a las consultas. En este caso, es responsabilidad del software del DBMS garantizar que las copias redundantes se mantengan consistentes. Este método se implementa a menudo en SQL como vistas indexadas ( Microsoft SQL Server ) o vistas materializadas ( Oracle , PostgreSQL ). Una vista puede, entre otros factores, representar información en un formato conveniente para las consultas, y el índice garantiza que las consultas sobre la vista se optimicen físicamente.
Implementación de DBA
Con este enfoque, un administrador o diseñador de bases de datos debe desnormalizar el diseño lógico de los datos. Con cuidado, esto puede lograr una mejora similar en la respuesta a las consultas, pero a un costo: ahora es responsabilidad del diseñador de la base de datos garantizar que la base de datos desnormalizada no se vuelva inconsistente. Esto se logra creando reglas en la base de datos llamadas restricciones , que especifican cómo deben mantenerse sincronizadas las copias redundantes de la información, lo que puede fácilmente hacer que el procedimiento de desnormalización sea inútil. Es el aumento en la complejidad lógica del diseño de la base de datos y la complejidad adicional de las restricciones adicionales lo que hace que este enfoque sea peligroso. Además, las restricciones introducen una compensación , acelerando las lecturas ( SELECTen SQL) mientras ralentizan las escrituras ( INSERT, UPDATE, y DELETE). Esto significa que una base de datos desnormalizada bajo una carga de escritura pesada puede ofrecer un rendimiento peor que su contraparte normalizada funcionalmente equivalente.
Desnormalización frente a datos no normalizados
Un modelo de datos desnormalizado no es lo mismo que un modelo de datos no normalizado, y la desnormalización solo debe realizarse después de haber alcanzado un nivel de normalización satisfactorio y de haber establecido las restricciones y/o reglas necesarias para abordar las anomalías inherentes al diseño. Por ejemplo, todas las relaciones deben estar en tercera forma normal y las relaciones con dependencias de unión y dependencias multivaluadas deben gestionarse adecuadamente.
Ejemplos de técnicas de desnormalización incluyen:
- "Almacenar" el recuento de los "muchos" elementos en una relación uno a muchos como un atributo de la relación "uno".
- Agregar atributos a una relación desde otra relación con la que se unirá
- Esquemas de estrella , también conocidos como modelos de dimensión de hechos, se han extendido a esquemas de copo de nieve.
- Cubos OLAP o de resumen predefinidos
Con el continuo y drástico aumento del almacenamiento, la capacidad de procesamiento y el ancho de banda en todos los niveles, la desnormalización en las bases de datos ha pasado de ser una técnica inusual o complementaria a algo común, e incluso a la norma. Por ejemplo, una desventaja específica de la desnormalización era, simplemente, que "utilizaba más almacenamiento" (es decir, literalmente más columnas en una base de datos). Salvo en el caso de sistemas realmente enormes, el aumento de los requisitos de almacenamiento se considera un problema relativamente menor en la década de 2020.
Véase también
Referencias
- ↑ GL Sanders y SK Shin. Efectos de la desnormalización en el rendimiento de los SGBD . En Actas de la Conferencia HICSS, enero de 2001.
- ↑ SK Shin y GL Sanders. Estrategias de desnormalización para la recuperación de datos de almacenes de datos . Decision Support Systems, 42(1):267-282, octubre de 2006.
- Normalización de la base de datos