Modelo estrella en profundidad

Hablamos de los modelos de datos en estrella, un tipo de modelo muy utilizado en el ámbito del Business Intelligence y el análisis de datos

Los modelos de datos son una forma de representar la información que se almacena en una base de datos. Existen diferentes tipos de modelos de datos, cada uno con sus ventajas e inconvenientes, según el tipo de datos que se quiera gestionar y el objetivo que se persigue. En este artículo vamos a hablar de los modelos de datos en estrella, un tipo de modelo muy utilizado en el ámbito del Business Intelligence y el análisis de datos. Veremos qué son, cómo se construyen y qué beneficios aportan frente a un modelo relacional, que es el más común en las bases de datos relacionales.

¿Qué es un modelo de datos en estrella?

Un modelo de datos en estrella es una forma de organizar los datos en una base de datos que se basa en dos tipos de tablas: una tabla central o tabla de hechos, y varias tablas periféricas o tablas de dimensiones.

Tabla de hechos

La tabla de hechos contiene los datos numéricos o medidas que se quieren analizar, como por ejemplo las ventas, los ingresos, los costes, etc. Cada fila de esta tabla representa un hecho o evento que ha ocurrido en el negocio.

Tablas de dimensiones

Las tablas de dimensiones contienen los atributos o características que describen los hechos, como por ejemplo el cliente, el producto, la fecha, la ubicación, etc. Cada tabla de dimensiones tiene una clave primaria que se relaciona con una clave foránea en la tabla de hechos.

La estructura resultante tiene forma de estrella, donde la tabla de hechos está en el centro y las tablas de dimensiones la rodean. Por ejemplo, si queremos analizar las ventas por cliente, producto y fecha, tendríamos una tabla de hechos con las columnas venta_id, cliente_id, producto_id, fecha_id y cantidad_vendida, y tres tablas de dimensiones con las columnas cliente_id, nombre_cliente, producto_id, nombre_producto y fecha_id, año, mes y día.

Ventajas de un modelo de datos en estrella

Un modelo de datos en estrella tiene varias ventajas frente a un modelo relacional, especialmente para el análisis de datos. Algunas de estas ventajas son:

  • Simplifica las consultas: al tener menos tablas y menos relaciones entre ellas, las consultas son más sencillas y rápidas de escribir y ejecutar. Además, al tener los atributos en las tablas de dimensiones, se evita tener que hacer muchos joins para obtener la información deseada.
  • Facilita el análisis multidimensional: al tener los datos organizados por dimensiones, se puede realizar fácilmente el análisis desde diferentes perspectivas o ángulos. Por ejemplo, se puede analizar las ventas por cliente, por producto o por fecha, o combinar varias dimensiones para obtener resultados más detallados.
  • Mejora el rendimiento: al tener menos tablas y menos columnas, se reduce el espacio ocupado por los datos y se optimiza el acceso a los mismos. Además, al tener los datos numéricos en la tabla de hechos, se pueden aplicar técnicas como la agregación o el precálculo para mejorar la velocidad de las consultas.
  • Favorece la comprensión: al tener los datos más estructurados y organizados por temas o conceptos, se facilita la comprensión y el uso de los mismos por parte de los usuarios finales o analistas.

Modelo de Estrella vs Modelo Relacional

Un modelo relacional es el tipo de modelo más habitual en las bases de datos relacionales. Se basa en normalizar los datos para evitar la redundancia y la inconsistencia. Para ello, se dividen los datos en varias tablas relacionadas entre sí mediante claves primarias y foráneas.

Un modelo relacional tiene como objetivo principal garantizar la integridad y la calidad de los datos. Sin embargo, también tiene algunos inconvenientes para el análisis de datos. Algunos de estos inconvenientes son:

  • Complejidad en las consultas: La estructura relacional, ideal para entornos OLTP tienen muchas tablas y muchas relaciones entre ellas. Esto hace las consultas de análisis de datos más complejas y lentas de escribir y ejecutar. Además, al tener los atributos repartidos por varias tablas, se requieren muchos joins para obtener la información deseada.
  • Dificulta el análisis multidimensional: al tener los datos dispersos por varias tablas, se dificulta el análisis desde diferentes perspectivas o ángulos. Tenemos que pensar que este modelo está pensado para procesos específicos eficientes y no para un análisis global. Por ejemplo, para analizar las ventas por cliente, producto y fecha, se tendría que acceder a varias tablas y combinarlas mediante joins.
  • Rendimiento: al tener muchas tablas y muchas columnas, se incrementa el espacio ocupado por los datos y se ralentiza el acceso a los mismos cuando se quieren analizar todos juntos. Además, al tener los datos numéricos repartidos por varias tablas, se dificulta la aplicación de técnicas como la agregación o el precálculo para mejorar la velocidad de las consultas.
  • Comprensión: al tener los datos estructurados y organizados por temas o conceptos, se complica la visualización y el uso de los mismos de manera centralizada por parte de los usuarios finales o analistas.

Conclusión

Los modelos de datos en estrella son una forma de organizar los datos en una base de datos que se adapta muy bien al ámbito del Business Intelligence y el análisis de datos. Al tener una estructura simple y clara, con una tabla de hechos y varias tablas de dimensiones, se facilita la realización de consultas, el análisis multidimensional, el rendimiento y la comprensión de los datos.
Los modelos de datos en estrella son diferentes de los modelos relacionales, que son los más comunes en las bases de datos relacionales. Estos últimos, se basan en normalizar los datos para evitar la redundancia y la inconsistencia, pero también presentan algunos inconvenientes para el análisis de datos, como la complejidad de las consultas, la dificultad del análisis multidimensional, la reducción del rendimiento y la complicación de la comprensión de los datos.

Esperamos que te haya gustado este artículo y que te haya servido para aprender algo nuevo. Si tienes alguna duda o comentario, no dudes en dejarnos un mensaje en Twitter, por mail o dejarnos en los comentarios. Y recuerda que también tenemos un grupo de LinkedIn al que te puedes unir. 

Publicado por Roberto Carrancio

Mi nombre es Roberto Carrancio y soy un DBA de SQL server con más de 10 años de experiencia en el sector. Soy el creador del blog soydba.es donde intento publicar varios artículos a la semana (de lunes a viernes que los fines de semana me gusta estar con mi gente y disfrutar de mi moto) Espero que disfrutes leyendo este blog tanto como yo disfruto escribiendo y que te sea de utilidad. Si tienes alguna sugerencia, pregunta o comentario, puedes dejarlo al final de cada entrada o enviarme un correo electrónico. Estaré encantado de leerte y responderte. ¡Gracias por tu visita! Mi principal interés es compartir mi conocimiento sobre bases de datos con todo el que quiera aprenderlo. Me parece un mundo tan apasionante como desconocido. Fuera de lo profesional me encanta la cocina, la moto y disfrutar de tomar una cervecita con amigos.

1 comentario

[…] es la primera vez que hablamos en el blog sobre los modelos de estrella, ya le dedicamos este artículo completo hace unos meses. Para refrescar las ideas, el modelo de estrella es una forma de organizar […]

Deja una respuesta