Snowflake Schema è un tipo di schema di data warehouse composto da una tabella centrale di fatti circondata da dimensioni denormalizzate. È un tipo di schema a stella in cui le dimensioni sono normalizzate in più tabelle correlate.
Il vantaggio principale dell'utilizzo di uno schema Snowflake è che consente un'interrogazione più efficiente dei dati rispetto a uno schema a stella. Inoltre, riduce la quantità di dati duplicati e migliora la scalabilità del sistema.
Lo svantaggio principale di Snowflake Schema è che i dati devono essere normalizzati, il che può portare a query troppo complesse e a prestazioni più lente. Inoltre, i dati devono essere organizzati e archiviati correttamente nel database, il che può richiedere molto tempo.
Snowflake Schema si utilizza al meglio quando i dati devono essere condivisi facilmente con più sistemi o quando i dati vengono archiviati da più fonti. È utile anche per l'analisi e l'estrazione dei dati.
Snowflake Schema è costituito da quattro componenti: la tabella dei fatti, le tabelle delle dimensioni, la tabella centrale e le tabelle delle dimensioni innevate. La tabella dei fatti è la tabella centrale che memorizza i dati, mentre le tabelle delle dimensioni sono collegate alla tabella dei fatti. La tabella centrale è il collegamento tra la tabella dei fatti e le tabelle delle dimensioni, mentre le tabelle delle dimensioni snowflaked sono le versioni normalizzate delle tabelle delle dimensioni.
I vantaggi di Snowflake Schema includono il miglioramento delle prestazioni delle query, una migliore organizzazione dei dati e una riduzione della ridondanza dei dati. Inoltre, rende più facile la condivisione dei dati tra più sistemi e facilita l'analisi dei dati e il data mining.
Le sfide associate a Snowflake Schema includono la necessità di normalizzare i dati, la necessità di organizzare e memorizzare correttamente i dati nel database e il rallentamento delle prestazioni delle query. Inoltre, Snowflake Schema può essere difficile da mantenere e può essere complesso da interrogare.
Esempi di Snowflake Schema sono un negozio al dettaglio online, un sistema di gestione delle relazioni con i clienti e un database di transazioni finanziarie. Il negozio al dettaglio online avrebbe una tabella di fatti che memorizza le informazioni sulle vendite e il sistema di gestione delle relazioni con i clienti avrebbe una tabella di fatti che memorizza le informazioni sui clienti. Il database delle transazioni finanziarie avrebbe una tabella di fatti che memorizza le informazioni sulle transazioni.
Uno schema a fiocco di neve è una disposizione logica delle tabelle in un database multidimensionale in modo che il diagramma delle relazioni tra entità assomigli alla forma di un fiocco di neve. In uno schema a fiocco di neve, ci sono una o più tabelle centrali (tabelle dei fatti) che contengono i dati primari e una serie di tabelle più piccole (tabelle delle dimensioni) che contengono i dati che descrivono le dimensioni. Le tabelle delle dimensioni sono collegate alla tabella dei fatti tramite chiavi esterne.
Ci sono alcune differenze fondamentali tra uno schema a fiocco di neve e uno schema a stella. Innanzitutto, uno schema a fiocco di neve è più normalizzato di uno schema a stella. Ciò significa che lo schema a fiocco di neve presenta una minore ridondanza, che può portare a un'archiviazione più efficiente. In secondo luogo, uno schema a fiocco di neve può essere più difficile da interrogare rispetto a uno schema a stella. Questo perché in uno schema a fiocco di neve i dati sono distribuiti su più tabelle. Infine, uno schema a fiocco di neve può essere più difficile da aggiornare rispetto a uno schema a stella. Questo perché i dati in uno schema a fiocco di neve sono spesso distribuiti su più tabelle, il che può rendere difficile tenere traccia di ciò che deve essere aggiornato.
Il termine "schema a fiocco di neve" è usato per descrivere uno schema a stella che è stato ulteriormente normalizzato. In uno schema a stella, ogni dimensione è rappresentata da una singola tabella e la tabella dei fatti contiene chiavi esterne a ciascuna delle tabelle delle dimensioni. In uno schema a fiocco di neve, le tabelle delle dimensioni sono normalizzate, il che significa che sono suddivise in più tabelle. La tabella dei fatti contiene ancora chiavi esterne a ciascuna tabella delle dimensioni, ma ora ci sono tabelle aggiuntive tra la tabella dei fatti e le tabelle delle dimensioni. Lo schema a fiocco di neve prende il nome dal fatto che il diagramma dello schema assomiglia a un fiocco di neve.
I database NoSQL sono talvolta chiamati "Non solo SQL" per sottolineare che possono supportare linguaggi di interrogazione simili a SQL. Snowflake è un database NoSQL.
Esistono tre tipi di schema: fisico, logico e di vista.
Schema fisico: Lo schema fisico è il progetto del database così come è fisicamente implementato nel database. Include le tabelle, i campi e gli indici del database.
Schema logico: Lo schema logico è il progetto del database così come viene visto dagli utenti. Include le tabelle, i campi e gli indici del database, ma non i dettagli dell'implementazione fisica.
Schema della vista: Lo schema della vista è un sottoinsieme dello schema logico che viene visto da un particolare utente. Uno schema di vista può includere solo alcune delle tabelle, dei campi e degli indici del database.