Sobre la normalización de las bases de datos

El otro día, leyendo en debug_mode=ON el artículo de Gimenete sobre “Siena: persistencia en Java sencilla y escalable”, leí una frase con la que no puedo estar más de acuerdo:

Si tu aplicación necesita ser altamente escalable o simplemente muy rápida, desnormaliza la base de datos y utiliza Siena :)

Obviando la cuña publicitaria sobre Siena, la verdad es que cualquier lector poco avezado en estos asuntos, especialmente aquellos procedentes de entornos universitarios, podría llevarse las manos a la cabeza. El problema es que muchas algunas veces, el mundo académico más tradicional establece dogmas de tal forma que hace que los estudiantes no se atrevan a cuestionarlos.

Estaría bien que, intentando ir más allá de ejemplo “Libro-Ejemplar”, fuesen capaces de advertir de las enormes penalizaciones desde el punto de vista del rendimiento que supone, entre otros, normalizar una base de datos en aplicaciones con un alto volumen de tráfico.

La conclusión es que… todo depende ;-) . Everything is fast for small n, y en determinadas aplicaciones con un n no tan pequeño, habría que planteárselo muy mucho. Jeff Atwood lo explica mucho mejor en su post Maybe Normalizing Isn’t Normal, de muy recomendable lectura.

En una línea parecida, Gimenete volvió a escribir otro artículo, “Técnicas para la optimización de bases de datos” donde, entre otros, habla de la desnormalización. En este caso, yo creo que puede que haya técnicas de optimización que no tengan mucho sentido en ciertas aplicaciones (que no sean aplicaciones masivas de Internet). Una vez más, nos volvemos a dar cuenta de que no todo es blanco o negro, sino que hay grises.

Acabando con el tema de la normalización, dos artículos también recomendables:

Compartir:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • BarraPunto
  • DZone
  • email
  • Furl
  • LinkedIn
  • Meneame
  • MySpace
  • Print
  • Slashdot
  • Technorati
  • TwitThis

Did you enjoy this post? Why not leave a comment below and continue the conversation, or subscribe to my feed and get articles like this delivered automatically to your feed reader.

Comments

En este sentido recuerdo cuando en el módulo aprendíamos normalización y el profesor nos decía que eso está muy bien, pero que podíamos no aplicarla en sus exámenes si justificabamos adecuadamente el motivo.

Esa forma de enseñar me gustaba ya que es un “esto es lo más adecuado, pero no siempre es lo mejor” que creo que hace que no nos aferremos a lo que nos han enseñado y tratemos de ver un poco más allá.

Lo siento, los comentarios están cerrados.