Diferencia entre revisiones de «Denormalización (base de datos)»

Contenido eliminado Contenido añadido
Sin resumen de edición
m Revertidos los cambios de 190.99.166.37 a la última edición de AstaBOTh15
Línea 4:
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 [[Join|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 [[Vista (base de datos)|vistas]] [[Índice (base de datos)|indexadas]] (MS SQL) o [[vista materializada|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 se\\\\\\\\\\\\\rá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.