Esquema de copo de nieve vs. esquema de estrella

Al elegir un esquema de base de datos para un almacén de datos, copo de nieve y esquemas en estrella Tienden a ser opciones populares. Esta comparación analiza la idoneidad de los esquemas de estrella contra copo de nieve en diferentes escenarios y sus características.

Gráfica comparativa

Esquema de copo de nieve en comparación con el esquema en estrella
Esquema de copo de nieveEsquema estelar
Facilidad de mantenimiento / cambio Sin redundancia, por lo que los esquemas de copos de nieve son más fáciles de mantener y cambiar. Tiene datos redundantes y, por lo tanto, menos fáciles de mantener / cambiar.
Facilidad de uso Consultas más complejas y por lo tanto menos fáciles de entender. Menor complejidad de consulta y fácil de entender.
Rendimiento de la consulta Más claves foráneas y, por lo tanto, mayor tiempo de ejecución de consultas (más lento) Menor número de claves externas y, por lo tanto, menor tiempo de ejecución de consultas (más rápido)
Tipo de Datawarehouse Es bueno usarlo para el núcleo de datawarehouse para simplificar relaciones complejas (muchas: muchas) Bueno para datamarts con relaciones simples (1: 1 o 1: muchos)
Se une Mayor número de uniones Menos se une
Mesa de dimensiones Un esquema de copo de nieve puede tener más de una tabla de dimensiones para cada dimensión. Un esquema en estrella contiene solo una tabla de dimensión única para cada dimensión.
Cuándo usar Cuando la tabla de dimensiones tiene un tamaño relativamente grande, el copo de nieve es mejor ya que reduce el espacio. Cuando la tabla de dimensiones contiene menos número de filas, podemos elegir el esquema en estrella.
Normalización / De-Normalización Las tablas de dimensiones están en forma normalizada pero la tabla de datos está en forma des-normalizada Tanto la dimensión como las tablas de hechos están en forma des-normalizada
Modelo de datos Enfoque de abajo hacia arriba Enfoque de arriba hacia abajo

Contenido: Snowflake Schema vs Star Schema

  • 1 ejemplos
    • 1.1 Ejemplo de esquema en estrella
    • 1.2 Ejemplo de esquema de copo de nieve
  • 2 referencias

Ejemplos

Considere una base de datos para un minorista que tenga muchas tiendas, donde cada tienda vende muchos productos en muchas categorías de productos y de varias marcas. Un almacén de datos o data mart para un minorista de este tipo tendría que proporcionar a los analistas la capacidad de ejecutar informes de ventas agrupados por tienda, fecha (o mes, trimestre o año), o categoría de producto o marca..

Ejemplo de esquema en estrella

Si este centro de datos estaba usando un esquema en estrella, se vería como sigue:

Ejemplo de un esquema en estrella

La tabla de hechos sería un registro de transacciones de ventas, mientras que hay tablas de dimensiones para fecha, tienda y producto. Cada una de las tablas de dimensiones está conectada a la tabla de hechos a través de su clave principal, que es una clave externa para la tabla de hechos. Por ejemplo, en lugar de almacenar la fecha real de la transacción en una fila de la tabla de hechos, se almacena el date_id. Este date_id corresponde a una fila única en la tabla Dim_Date, y esa fila también almacena otros atributos de la fecha que se requieren para agrupar en informes. por ejemplo, día de la semana, mes, trimestre del año y así sucesivamente. Los datos están desnormalizados para facilitar el reporte..

Aquí es cómo se puede obtener un informe del número de televisores vendidos por marca y por país con la ayuda de uniones internas.

Ejemplo de esquema de copo de nieve

El mismo escenario también puede usar un esquema de copo de nieve, en cuyo caso se estructuraría de la siguiente manera:

Ejemplo de esquema de copo de nieve (click para ampliar)

La principal diferencia, cuando se compara con el esquema en estrella, es que los datos en las tablas de dimensiones están más normalizados. Por ejemplo, en lugar de almacenar el mes, el trimestre y el día de la semana en cada fila de la tabla Dim_Date, estos se desglosan en sus propias tablas de dimensión. De forma similar para la tabla Dim_Store, el estado y el país son atributos geográficos que se eliminan en un solo paso, en lugar de almacenarse en la tabla Dim_Store, ahora se almacenan en una tabla separada Dim_Geography.

El mismo informe, el número de televisores vendidos por país y por marca, ahora es un poco más complicado que en un esquema en estrella:

Consulta SQL para obtener el número de productos vendidos por país y marca, cuando la base de datos utiliza un esquema de copo de nieve.

Referencias

  • wikipedia: Snowflake_schema
  • wikipedia: Star_schema