Esquema de copo de nieve vs. Esquema de estrella

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 esquema de estrellas tienden a ser opciones populares. Esta comparación analiza la idoneidad de Star vs. Esquemas de copo de nieve en diferentes escenarios y sus características.

Cuadro comparativo

Gráfico de comparación del esquema del copo de nieve versus el esquema de la estrella
Esquema de copo de nieveEsquema de estrella
Facilidad de mantenimiento / cambio Sin redundancia, por lo que los esquemas de copo de nieve son más fáciles de mantener y cambiar. Tiene datos redundantes y, por lo tanto, menos fácil de mantener/cambiar
Facilidad de uso Consultas más complejas y, por lo tanto, menos fácil de entender Mayor complejidad de la consulta y fácil de entender
Rendimiento de la consulta Más claves extranjeras y, por lo tanto, un tiempo de ejecución de consultas más largo (más lento) Menos número de claves extranjeras y, por lo tanto, el tiempo de ejecución de consultas más corto (más rápido)
Tipo de dataWarehouse Bueno usar para el núcleo de datawarehouse para simplificar las relaciones complejas (muchos: muchos) Bueno para DataMarts con relaciones simples (1: 1 o 1: muchos)
Uniones Mayor número de uniones Menos uniones
Tabla de dimensión Un esquema de copo de nieve puede tener más de una tabla de dimensión para cada dimensión. Un esquema de estrella contiene solo una tabla de dimensión única para cada dimensión.
Cuándo usar Cuando la mesa de dimensiones es relativamente grande, la copia de nieve es mejor ya que reduce el espacio. Cuando la tabla de dimensiones contiene menos número de filas, podemos elegir el esquema de las estrellas.
Normalización/ des-normalización Las tablas de dimensión están en forma normalizada, pero la tabla de hechos está en forma desinformalizada Tanto la dimensión como las tablas de hechos están en forma se desinformalizan
Modelo de datos Enfoque de abajo hacia arriba Enfoque de arriba hacia abajo

Ejemplos

Considere una base de datos para un minorista que tiene muchas tiendas, con cada tienda vendiendo muchos productos en muchas categorías de productos y de varias marcas. Un almacén de datos o un mart de datos para dicho minorista necesitaría 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 de estrellas

Si este Data Mart estuviera usando un esquema de estrella, se vería de la siguiente manera:

Ejemplo de un esquema de estrella

La tabla de hechos sería un registro de transacciones de ventas, mientras que hay tablas de dimensiones para la fecha, la tienda y el producto. Las tablas de dimensión están conectadas a la tabla de hechos a través de su clave principal, que es una clave extranjera para la tabla de hechos. Por ejemplo, en lugar de almacenar la fecha de transacción real en una fila de la tabla de datos, se almacena el date_id. Esta fecha_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 los informes. mi.gramo., día de la semana, mes, trimestre del año, etc. Los datos se desnormalizan para informar más fáciles.

Así es como uno obtendría 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 estaría estructurado de la siguiente manera:

Ejemplo de esquema de copo de nieve (haga clic para agrandar)

La principal diferencia, en comparación con el esquema de Star, es que los datos en las tablas de dimensión están más normalizados. Por ejemplo, en lugar de almacenar mes, trimestre y día de la semana en cada fila de la tabla dim_date, se dividen aún más en sus propias tablas de dimensiones. De manera similar, para la tabla dim_store, el estado y el país son atributos geográficos que se eliminan un paso, en lugar de almacenarse en la tabla dim_store, ahora se almacenan en una tabla dim_geography separada.

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 de estrellas:

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.