Esquema de estrella y esquema de copo de nieve del almacén de datos
El modelo de estrella, el modelo de copo de nieve y el modelo de constelación son tres modelos importantes en el modelado dimensional de almacenes de datos. A continuación, hablemos de sus características y de la relación entre ellos.
El esquema en estrella consta de una tabla de hechos y varias tablas de dimensiones. La tabla de hechos incluye todas las claves principales (generalmente ID) de la tabla de dimensiones, así como otro contenido que no se incluye en la tabla de dimensiones. La tabla de dimensiones almacena información detallada de las dimensiones correspondientes.
Tomemos como ejemplo un formulario de compra. Principalmente necesita registrar la siguiente información:
Debido a que los usuarios, productos y tiendas tienen su propia información detallada, si todos se colocan en la tabla de compras, causará mucha redundancia y será difícil de mantener más adelante. (Imagínese si el usuario necesita agregar campos más adelante). Entonces, en este momento, puede elegir el esquema en estrella para colocar estos detalles en la tabla de dimensiones, y la tabla de compras como tabla de hechos solo mantiene la identificación del usuario, la identificación del producto y la identificación de la tienda. y tiempo de compra. (El tiempo de compra no se puede dividir en dimensiones, por lo que todavía se encuentra en la tabla de hechos).
La estructura general del modelo es como se muestra a continuación:
Puedes ver que siempre hay una. Tabla de hechos y tabla tridimensional de usuarios, productos y tiendas. Cuando todas las tablas de dimensiones están conectadas a tablas de hechos, todo el modelo tiene forma de estrella, por lo que se denomina modelo de estrella.
En el esquema en estrella, la tabla de dimensiones contiene toda la información sobre las dimensiones. Como no existe jerarquía, puede haber redundancia en las tablas de dimensiones.
Para reducir la redundancia de las tablas de dimensiones, en este momento se puede utilizar el modelo de copo de nieve. Según el esquema en estrella, el modelo de copo de nieve divide aún más algunos campos en la tabla de dimensiones para reducir la redundancia y hacerlo más jerárquico.
Tomemos como ejemplo el formulario de compra anterior. Supongamos que hay varios campos en la tabla de tiendas que almacenan información de ubicación de la tienda: {provincia, ciudad, ubicación específica}. En este momento podemos ver que estos campos en realidad pueden pertenecer a los atributos de "provincia", por lo que podemos dividir estos campos para formar una nueva tabla de dimensiones "provincia". Esta tabla de dimensiones está unida a la tabla de dimensiones de la tienda, no a la tabla de hechos en sí. Desde cierta perspectiva, el proceso de dividir la tabla de dimensiones en el modelo de copo de nieve es similar al proceso de dividir la tabla de hechos en el esquema de estrella.
Para la tabla Compras, el modelo de copo de nieve dividido se ve así:
Aquí puedes ver que hay una nueva tabla de dimensiones. Cuando hay muchas tablas de dimensiones, puede ver que todo el gráfico del modelo se expandirá como un copo de nieve, por lo que este modelo se llama modelo de copo de nieve.
El modelo de constelación es una extensión del modelo de estrella (puede verse como un modelo de estrella con múltiples versiones de tablas de hechos). Una de sus características es que varias tablas de hechos utilizan tablas de dimensiones en el modelo, lo que es adecuado para situaciones más complejas que el esquema de estrella y el esquema de copo de nieve.
Una de las razones por las que antes confundí el modelo de constelación con el modelo de copo de nieve es que tienen una forma algo similar. Desde una perspectiva gráfica, cada tabla de hechos puede considerarse como una estrella. Si hay varias estrellas en una constelación, se necesitan varias tablas de hechos. El modelo de copo de nieve puede entenderse como una forma (tabla de hechos) que continúa expandiéndose hacia afuera desde el centro del copo de nieve. Si los recuerdas de esta manera no volverás a confundirlos.