Denormalización (base de datos)

Denormalización (base de datos)

Denormalización (base de datos)

La denormalización es el proceso de procurar optimizar el desempeño de una base de datos por medio de agregar datos redundantes. A veces es necesaria porque las actuales DBMSs implementan el modelo relacional pobremente. Una verdadera DBMS relacional debe permitir una base de datos completamente normalizada a nivel lógico, mientras proporciona el almacenamiento físico de los datos afinado para alto rendimiento.

Un diseño normalizado a menudo almacenará diferentes, pero relacionadas, piezas de información en tablas lógicas separadas (llamadas relaciones). Si estas relaciones están almacenadas físicamente como archivos de disco separados, puede ser lento terminar una consulta de la base de datos que tome información de varias relaciones (una operación unión). Si muchas relaciones son unidas (join), puede ser prohibitivamente lento. Hay dos estrategias para tratar con esto. El método preferido es mantener normalizado el diseño lógico, pero permite al DBMS almacenar en el disco información redundante adicional para optimizar la respuesta a la consulta. En este caso, es responsabilidad del software del DBMS asegurarse de que cualquier copia redundante se mantenga consistente. Este método es a menudo implementado en SQL como vistas indexadas (MS SQL) o vistas materializadas (Oracle). Una vista representa la información en un formato conveniente para consultar, y el índice asegura que las consultas contra la vista estén optimizadas.

El acercamiento más usual es denormalizar el diseño de datos lógico. Con cuidado, esto puede alcanzar una mejora similar en respuesta de consulta, pero a un costo - ahora es la responsabilidad del diseñador de la base de datos de asegurarse de que la base de datos denormalizada no llegue a ser inconsistente. Esto es hecho creando reglas en la base de datos llamadas restricciones, que especifican cómo las copias redundantes de información se deben mantener sincronizadas. Es el aumento en la complejidad lógica del diseño de la base de datos y la complejidad añadida de las restricciones adicionales que hacen a este acercamiento peligroso. Por otra parte, debido a los gastos indirectos de evaluación de restricciones al insertar, actualizar, o eliminar datos, una base de datos denormalizada puede realmente ofrecer un desempeño peor que sus funcionalmente equivalentes contrapartes normalizadas. Cuando se está seleccionado o leyendo datos a menudo el desempeño será mejor.

Un modelo de datos denormalizado no es lo mismo que un modelo de datos que no ha sido normalizado, y la denomarlización debe tomar lugar solamente después de que haya ocurrido un nivel satisfactorio de normalización y de que hayan sido creadas las restricciones y/o reglas requeridas para ocuparse de las anomalías inherentes en el diseño. Por ejemplo, que todas las relaciones estén en la tercera forma normal y cualquier relación con dependencias de unión (join) y multi-valor sean manejadas apropiadamente.

Ejemplos de técnicas de denormalización incluyen:

  • Vistas materializadas, que pueden implementar lo siguiente:
    • Almacenando la cuenta de "muchos" objetos en una relación uno-a-muchos como un atributo de la relación "uno"
    • Agregando atributos a una relación de otra relación con la cual será unida (join)
  • Esquemas en estrella que también son conocidos como modelos hecho-dimensión y se han extendido a los esquemas de copo de nieve
  • Información de resumen preconstruida (útil para informes, data warehouse o data mining) o cubos OLAP

Véase también

  • 1NF - 2NF - 3NF - BCNF - 4NF - 5NF - DKNF - 6NF - Denormalización
Obtenido de "Denormalizaci%C3%B3n (base de datos)"

Wikimedia foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Mira otros diccionarios:

  • Forma normal (base de datos) — Saltar a navegación, búsqueda En la teoría de bases de datos relacionales, las formas normales (NF) proporcionan los criterios para determinar el grado de vulnerabilidad de una tabla a inconsistencias y anomalías lógicas. Mientras sea más alta la …   Wikipedia Español

  • Denormalización — Saltar a navegación, búsqueda Redirection: Denormalización (base de datos) Obtenido de Denormalizaci%C3%B3n …   Wikipedia Español

  • Normalización de bases de datos — Para otros usos de este término, véase Normalización (desambiguación). El proceso de normalización de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad relación al modelo relacional …   Wikipedia Español

  • Forma normal de dominio/clave — Saltar a navegación, búsqueda La forma normal de dominio/clave (DKNF) es una forma normal usada en normalización de bases de datos que requiere que la base de datos contenga restricciones de dominios y de claves. Una restriccion del dominio… …   Wikipedia Español

  • Primera forma normal — La primera forma normal (1FN o forma mínima) es una forma normal usada en normalización de bases de datos. Una tabla de base de datos relacional que se adhiere a la 1FN es una que satisface cierto conjunto mínimo de criterios. Estos criterios se… …   Wikipedia Español

  • Cuarta forma normal — La cuarta forma normal (4NF) es una forma normal usada en la normalización de bases de datos. La 4NF se asegura de que las dependencias multivaluadas independientes estén correcta y eficientemente representadas en un diseño de base de datos. La… …   Wikipedia Español

  • Segunda forma normal — La segunda forma normal (2NF) es una forma normal usada en normalización de bases de datos. La 2NF fue definida originalmente por E.F. Codd[1] en 1971. Una tabla que está en la primera forma normal (1NF) debe satisfacer criterios adicionales para …   Wikipedia Español

  • Tercera forma normal — La tercera forma normal (3NF) es una forma normal usada en la normalización de bases de datos. La 3NF fue definida originalmente por E.F. Codd[1] en 1971. La definición de Codd indica que una tabla está en 3NF si y solo si las dos condiciones… …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”