Schema del fiocco di neve nel modello di data warehouse

โšก Riepilogo intelligente

Lo schema a fiocco di neve nella modellazione del data warehouse organizza tabelle di dimensioni normalizzate che si diramano da una tabella dei fatti centrale, assumendo la forma di un fiocco di neve. Estende lo schema a stella, riduce la ridondanza dei dati e organizza le gerarchie tra piรน tabelle di riferimento correlate.

  • ๐Ÿงฉ Struttura principale: Una tabella centrale dei fatti si collega alle tabelle delle dimensioni, che vengono normalizzate in ulteriori tabelle di sottodimensioni e di ricerca.
  • โ„๏ธ Normalizzazione: Suddividere ciascuna dimensione in tabelle correlate elimina gli attributi ripetuti e spinge le gerarchie verso la terza forma normale.
  • ๐ŸŒŸ Relazione con lo schema a stella: Lo schema a fiocco di neve estende lo schema a stella normalizzando le sue tabelle dimensionali piatte e denormalizzate.
  • ๐Ÿ’พ Vantaggi dello stoccaggio: Le tabelle di ricerca normalizzate di dimensioni ridotte diminuiscono l'utilizzo del disco ed eliminano i dati ridondanti, semplificando la manutenzione.
  • ๐Ÿ”— Compromesso tra query: Un numero maggiore di tabelle implica un numero maggiore di join, il che puรฒ rallentare le prestazioni delle query e complicare la creazione di report.
  • ๐Ÿงญ Quando usare: Scegli questa soluzione per dataset di grandi dimensioni con gerarchie complesse, dove il risparmio di spazio di archiviazione e l'integritร  dei dati sono di fondamentale importanza.
  • ๐Ÿช Schemi correlati: I modelli di galassie e ammassi stellari si basano sui concetti di stelle e fiocchi di neve per creare modelli piรน complessi.

Schema a fiocco di neve in un data warehouse con tabelle delle dimensioni normalizzate che si diramano da una tabella dei fatti centrale.

Cos'รจ uno schema Snowflake?

A Schema del fiocco di neve in un data warehouse รจ una disposizione logica di tabelle in un database multidimensionale il cui diagramma entitร -relazione (ER) assomiglia alla forma di un fiocco di neve. รˆ un modello dimensionale in cui una tabella centrale dei fatti si collega alle tabelle delle dimensioni, e queste ultime sono ulteriormente suddivise in tabelle di sottodimensioni correlate.

Lo schema a fiocco di neve รจ un'estensione dello schema a stella. Mentre uno schema a stella mantiene ogni dimensione in un'unica tabella piatta, lo schema a fiocco di neve normalizza tali dimensioni, suddividendo i gruppi di dati ripetuti in tabelle di riferimento aggiuntive. Questa normalizzazione elimina la ridondanza e crea la struttura gerarchica e ramificata che dร  il nome allo schema.

Esempio di schema del fiocco di neve

Nell'esempio di schema a fiocco di neve riportato di seguito, una tabella dei fatti relativa alle vendite si trova al centro, circondata da dimensioni quali Prodotto, Data e Negozio. Invece di memorizzare ogni attributo all'interno di un'unica tabella delle dimensioni, le informazioni geografiche vengono normalizzate in modo che il Paese venga spostato in una tabella separata.

Esempio di schema a fiocco di neve con una tabella dei fatti centrale e una tabella delle dimensioni Paese normalizzata.
Esempio di schema del fiocco di neve

In questo caso, la dimensione Negozio fa riferimento a una tabella Cittร , la tabella Cittร  fa riferimento a una tabella Stato e la tabella Stato fa riferimento a una tabella Paese. Ogni valore viene memorizzato una sola volta e collegato tramite una chiave esterna, in modo che il nome di un Paese non venga mai ripetuto in milioni di righe. Questa normalizzazione a livelli รจ ciรฒ che distingue uno schema a fiocco di neve da uno schema a stella piatto.

Caratteristiche dello schema Snowflake

Lo schema a fiocco di neve presenta diverse caratteristiche distintive:

  • Utilizza meno spazio su disco, perchรฉ le tabelle dimensionali normalizzate evitano di memorizzare valori ripetuti.
  • รˆ possibile aggiungere nuove dimensioni allo schema con uno sforzo relativamente ridotto.
  • Le prestazioni delle query possono diminuire, poichรฉ il recupero dei dati richiede l'unione di numerose tabelle.
  • Richiede un maggiore impegno in termini di manutenzione, poichรฉ รจ necessario gestire un numero piรน elevato di tabelle di ricerca.

Come progettare uno schema a fiocco di neve

La progettazione di uno schema a fiocco di neve inizia come qualsiasi modello dimensionale, per poi aggiungere una fase di normalizzazione. L'obiettivo รจ identificare il processo aziendale da analizzare, modellarlo prima come uno schema a stella e quindi normalizzare le dimensioni che contengono gerarchie profonde. Segui i passaggi seguenti:

  1. Identificare il processo aziendale e la granularitร . Decidi cosa rappresenta una singola riga della tabella dei fatti, ad esempio una transazione di vendita, e definisci le misure numeriche, o i fatti, che devi riportare.
  2. Costruisci la tabella centrale dei fatti. Sommate le misure numeriche insieme alle chiavi esterne che puntano a ciascuna dimensione; insieme, queste chiavi esterne formano solitamente la chiave primaria composta.
  3. Definire le tabelle dimensionali. Crea una tabella per ogni dimensione descrittiva, come Prodotto, Cliente, Data e Negozio, e assegna a ciascuna una chiave primaria surrogata.
  4. Normalizzare le gerarchie. Suddividi ogni dimensione che contiene attributi ripetuti in tabelle di sottodimensioni, ad esempio spostando la Categoria fuori dal Prodotto, oppure Cittร , Stato e Paese fuori dalla dimensione Negozio.
  5. Collega le tabelle tramite chiavi esterne. Collega ciascuna sottodimensione alla sua tabella principale in modo che i rami formino chiare gerarchie uno-a-molti che assomiglino a un fiocco di neve.
  6. Convalidare e testare con le query. Eseguire query di reporting rappresentative per confermare che le join restituiscano risultati corretti e che le prestazioni complessive rimangano accettabili.

Poichรฉ il progetto normalizza i dati verso la terza forma normale, รจ fondamentale documentare chiaramente i percorsi di collegamento in modo che gli analisti comprendano come navigare in ciascun ramo. Una volta definita la struttura, รจ opportuno valutare i vantaggi e gli svantaggi dello schema.

Vantaggi dello schema a fiocco di neve

Lo schema a fiocco di neve offre numerosi vantaggi:

  • Il suo vantaggio principale รจ la riduzione dello spazio di archiviazione su disco, poichรฉ l'unione di tabelle di ricerca normalizzate piรน piccole evita la duplicazione dei dati dimensionali.
  • Offre una maggiore scalabilitร  nelle relazioni tra componenti e livelli dimensionali.
  • Elimina la ridondanza, migliorando l'integritร  dei dati e semplificando la manutenzione del modello.
  • Un attributo descrittivo viene aggiornato in un solo punto, riducendo cosรฌ il rischio di dati incoerenti.

Svantaggi dello schema Snowflake

Il progetto comporta anche dei compromessi da valutare:

  • La struttura normalizzata aumenta la manutenzione necessaria per gestire le numerose tabelle correlate.
  • Le query complesse che coinvolgono piรน join possono essere difficili da scrivere e da comprendere.
  • Un numero maggiore di tabelle implica un maggior numero di join, il che allunga i tempi di esecuzione delle query.
  • Gli utenti aziendali spesso trovano il modello ramificato piรน difficile da navigare rispetto a un semplice schema a stella.

Schema a fiocco di neve vs. Schema a stella

Lo schema del fiocco di neve e il schema a stella Gli schemi a stella e a fiocco di neve sono i due modelli multidimensionali piรน comuni nei data warehousing, e la differenza principale tra loro risiede nella normalizzazione. Uno schema a stella mantiene ogni dimensione in un'unica tabella piatta e denormalizzata per massimizzare la velocitร  delle query, mentre uno schema a fiocco di neve normalizza tali dimensioni in diverse tabelle correlate per risparmiare spazio di archiviazione e proteggere l'integritร  dei dati. Per questo motivo, i due schemi si adattano a prioritร  diverse.

AspettoSchema a stellaSchema del fiocco di neve
Tabelle dimensionaliDenormalizzato, una tabella per dimensioneNormalizzato in tabelle di sottodimensioni
ArchiviazioneOccupa piรน spazio a causa della ridondanzaOccupa meno spazio, nessuna ridondanza
Prestazioni di queryPiรน veloce, meno giunzioniPiรน lento, piรน si unisce
Complessitร  della querySemplice da scriverePiรน complesso
adatto perReportistica e business intelligence rapideDimensioni ampie e gerarchiche

In sintesi, scegliete uno schema a stella quando la velocitร  delle query e la semplicitร  dei report sono le prioritร , e uno schema a fiocco di neve quando l'efficienza dello storage, le gerarchie chiare e la bassa ridondanza dei dati sono prioritarie. Molti data warehouse reali combinano entrambi i modelli a seconda delle dimensioni e della profonditร  di ciascuna dimensione.

Quando utilizzare uno schema a fiocco di neve

Uno schema a fiocco di neve non รจ sempre la scelta giusta, quindi รจ utile adattare la progettazione al carico di lavoro e alle esigenze di reporting. Tende a funzionare meglio nelle seguenti situazioni:

  • Le dimensioni sono molto grandi e contengono molti attributi ripetuti che sprecano spazio di archiviazione quando vengono denormalizzate.
  • Le dimensioni presentano gerarchie profonde e ben definite, come Regione-Paese-Stato-Cittร , che si mappano naturalmente su tabelle separate.
  • L'integritร  e la coerenza dei dati sono piรน importanti per il progetto rispetto alla pura velocitร  di esecuzione delle query.
  • I costi di archiviazione rappresentano una reale preoccupazione e il risparmio di spazio su disco ottenuto con tabelle dimensionali di grandi dimensioni รจ significativo.
  • Il modello alimenta OLAP strumenti in grado di navigare in modo efficiente all'interno di gerarchie normalizzate.

Al contrario, quando la prioritร  รจ la creazione di report rapidi e semplici per gli analisti aziendali, uno schema a stella o un design ibrido a cluster di stelle รจ solitamente la soluzione migliore. Molti architetture di data warehouse combinare deliberatamente entrambi gli approcci per bilanciare velocitร  e capacitร  di archiviazione.

Cos'รจ uno schema Galaxy?

A Schema della galassia Contiene due o piรน tabelle dei fatti che condividono tabelle delle dimensioni. รˆ anche chiamato schema di costellazione dei fatti e, poichรฉ puรฒ essere visto come una collezione di stelle, prende il nome di schema galattico.

Esempio di uno schema di galassia con due tabelle dei fatti che condividono tabelle delle dimensioni conformi
Esempio di schema della galassia

Come potete vedere nell'esempio qui sopra, ci sono due tabelle dei fatti:

  1. Revseguito
  2. Prodotto

In uno schema galassia, le dimensioni condivise tra le tabelle dei fatti sono chiamate dimensioni conformi.

Caratteristiche dello schema Galaxy

Lo schema della galassia presenta le seguenti caratteristiche:

  • Le dimensioni sono suddivise in dimensioni distinte in base ai vari livelli della gerarchia.
  • Ad esempio, se la geografia ha quattro livelli gerarchici (regione, paese, stato e cittร ), allora lo schema della galassia dovrebbe avere quattro dimensioni.
  • รˆ possibile costruire questo tipo di schema suddividendo un singolo schema a stella in piรน schemi a stella.
  • Le dimensioni in questo schema sono ampie e devono essere costruite in base ai livelli della gerarchia.
  • Lo schema รจ utile per aggregare le tabelle dei fatti al fine di supportare una migliore analisi e comprensione.

Cos'รจ Stella Cluster Schema?

Uno schema a fiocco di neve contiene gerarchie completamente espanse, che possono aggiungere complessitร  e richiedere join extra. Uno schema a stella, d'altra parte, contiene gerarchie completamente compresse, che possono portare a ridondanza. La soluzione migliore รจ spesso un equilibrio tra questi due modelli, noto come schema a stella. Cluster Schema.

Esempio di schema a stella che bilancia i disegni a stella e a fiocco di neve
Esempio di stella Cluster Schema

sovrapposizioneping Le dimensioni appaiono come biforcazioni nelle gerarchie. Una biforcazione si verifica quando un'entitร  funge da genitore in due diverse gerarchie dimensionali. Queste entitร  biforcate vengono quindi identificate come classificazioni con relazioni uno-a-molti, il che limita il numero di tabelle aggiuntive create dal progetto.

DOMANDE FREQUENTI

Lo schema deve il suo nome al fatto che il diagramma delle relazioni tra entitร  si ramifica verso l'esterno come un fiocco di neve. La normalizzazione di ciascuna dimensione in sottodimensioni e tabelle di ricerca crea piรน livelli connessi che si irradiano dalla tabella dei fatti centrale, formando una struttura che ricorda un cristallo di fiocco di neve.

La normalizzazione suddivide una tabella delle dimensioni in tabelle correlate piรน piccole per rimuovere i dati ripetuti. In uno schema a fiocco di neve, attributi come categoria o paese vengono spostati in tabelle separate, raggiungendo in genere la terza forma normale, il che riduce la ridondanza e fa sรฌ che ogni valore venga memorizzato una sola volta.

Una tabella dei fatti memorizza eventi aziendali misurabili e numerici, come ad esempio gli importi delle vendite, oltre alle chiavi esterne che puntano alle dimensioni. Una tabella delle dimensioni, invece, memorizza attributi descrittivi, come il nome del prodotto o la regione, che forniscono un contesto a tali dati. Le tabelle dei fatti sono generalmente molto piรน grandi delle tabelle delle dimensioni.

Una sottodimensione, talvolta chiamata tabella di collegamento, รจ una tabella normalizzata che si dirama da una dimensione principale. Ad esempio, una dimensione Prodotto puรฒ essere collegata a una tabella Categoria separata. Queste tabelle aggiuntive creano la caratteristica gerarchia multilivello del diagramma a fiocco di neve.

Sรฌ. Molti magazzini mescolano entrambi i modelli, normalizzando solo le grandi dimensioni che ne traggono vantaggio, mantenendoping Dimensioni piรน piccole e piatte. Questo ibrido, a volte chiamato schema a stella, bilancia la velocitร  di interrogazione di uno schema a stella con il risparmio di spazio di archiviazione di uno schema a fiocco di neve.

Sรฌ. Uno schema a fiocco di neve alimenta OLAP I sistemi funzionano bene perchรฉ le loro gerarchie normalizzate si mappano in modo pulito sui livelli di dettaglio come paese, stato e cittร . Tuttavia, le join aggiuntive possono rallentare l'elaborazione del cubo, quindi i carichi di lavoro OLAP con un elevato numero di query a volte preferiscono uno schema a stella.

Gli assistenti basati sull'IA possono suggerire quali dimensioni normalizzare, generare strutture di tabelle a partire da una descrizione aziendale e raccomandare indici o percorsi di join che migliorino le prestazioni. Possono anche rilevare ridondanze e chiavi incoerenti, sebbene un ingegnere dei dati debba esaminare ogni raccomandazione prima di applicarla.

Sรฌ. Le serrature scorrevoli portatili e i catenacci a superficie possono essere usati per mettere in sicurezza una porta a scomparsa dall'esterno. Alcuni kit con catena di sicurezza consentono anche il bloccaggio esterno con chiave o manopola girevole. ChatGPT and Copilota GitHub รˆ possibile creare istruzioni CREATE TABLE e query di join per uno schema a fiocco di neve a partire da un breve prompt. รˆ sempre consigliabile rivedere le chiavi, i tipi di dati e le relazioni generate prima di eseguirle in produzione.

Riassumi questo post con: