La desnormalización es una técnica de optimización de bases de datos en la que agregamos datos redundantes a una o más tablas. Esto puede ayudarnos a evitar uniones costosas en una base de datos relacional. Tenga en cuenta que la desnormalización no significa ‘revertir la normalización’ o ‘no normalizar’. Es una técnica de optimización que se aplica después de la normalización.
Básicamente, el proceso de tomar un esquema normalizado y convertirlo en no normalizado se llama desnormalización, y los diseñadores lo usan para ajustar el rendimiento de los sistemas para admitir operaciones críticas en el tiempo.
En una base de datos normalizada tradicional, almacenamos datos en tablas lógicas separadas e intentamos minimizar los datos redundantes. Podemos esforzarnos por tener solo una copia de cada dato en una base de datos.
Por ejemplo, en una base de datos normalizada, podríamos tener una tabla de Cursos y una tabla de Profesores. Cada entrada en Cursos almacenaría el ID del profesor para un curso, pero no el nombre del profesor. Cuando necesitamos recuperar una lista de todos los cursos con el nombre del profesor, hacemos una unión entre estas dos tablas.
De alguna manera, esto es genial; si un maestro cambia su nombre, solo tenemos que actualizar el nombre en un lugar.
El inconveniente es que si las tablas son grandes, podemos pasar un tiempo innecesariamente largo haciendo uniones en las tablas.
La desnormalización, entonces, alcanza un compromiso diferente. Bajo la desnormalización, decidimos que estamos de acuerdo con cierta redundancia y un esfuerzo adicional para actualizar la base de datos a fin de obtener las ventajas de eficiencia de menos uniones.
Ventajas de la desnormalización:
- La recuperación de datos es más rápida ya que hacemos menos uniones
- Las consultas para recuperar pueden ser más simples (y, por lo tanto, es menos probable que tengan errores),
ya que necesitamos mirar menos tablas.
Contras de la desnormalización:
- Las actualizaciones y las inserciones son más caras.
- La desnormalización puede hacer que actualizar e insertar código sea más difícil de escribir.
- Los datos pueden ser inconsistentes.
- La redundancia de datos requiere más almacenamiento.
En un sistema que exige escalabilidad, como el de cualquier empresa de tecnología importante, casi siempre usamos elementos de bases de datos tanto normalizadas como desnormalizadas.
Publicación traducida automáticamente
Artículo escrito por Swarnakamal Dhyawala y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA