Schema fulg de zăpadă în modelul de depozit de date
⚡ Rezumat inteligent
Schema fulg de zăpadă în modelarea depozitului de date aranjează tabele de dimensiuni normalizate care se ramifică dintr-un tabel central de fapte, asemănându-se cu un fulg de zăpadă. Aceasta extinde schema stea, reduce redundanța datelor și organizează ierarhiile în mai multe tabele de căutare corelate.
Ce este o schemă fulg de zăpadă?
A Schema fulgilor de nea Într-un depozit de date este un aranjament logic de tabele într-o bază de date multidimensională, a cărui diagrama entitate-relație (ER) seamănă cu forma unui fulg de zăpadă. Este un model dimensional în care un tabel central de fapte face legătura cu tabele de dimensiuni, iar aceste tabele de dimensiuni sunt împărțite în continuare în tabele de subdimensiuni aferente.
Schema fulg de zăpadă este o extensie a schemei stea. În timp ce o schemă stea păstrează fiecare dimensiune într-un singur tabel plat, schema fulg de zăpadă normalizează acele dimensiuni, împărțind grupurile repetitive de date în tabele de căutare suplimentare. Această normalizare elimină redundanța și creează structura ierarhică ramificată care dă schemei numele.
Exemplu de schemă fulg de zăpadă
În următorul exemplu de schemă fulg de zăpadă, un tabel de fapte de vânzări se află în centru, înconjurat de dimensiuni precum Produs, Dată și Magazin. În loc să stocheze fiecare atribut într-un singur tabel de dimensiuni, informațiile geografice sunt normalizate, astfel încât Țara este mutată într-un tabel separat.

Aici, dimensiunea Store face referire la un tabel City, tabelul City face referire la un tabel State, iar tabelul State face referire la un tabel Country. Fiecare valoare este stocată o singură dată și legată printr-o cheie externă, astfel încât numele unei țări nu se repetă niciodată pe milioane de rânduri. Această normalizare stratificată este ceea ce distinge o schemă de tip fulg de zăpadă de o schemă stea plată.
Caracteristicile Schemei Fulgi de Nea
Schema fulgului de zăpadă are câteva caracteristici definitorii:
- Folosește un spațiu pe disc mai mic, deoarece tabelele de dimensiuni normalizate evită stocarea valorilor repetate.
- Noi dimensiuni pot fi adăugate la schemă cu relativ puțin efort.
- Performanța interogărilor poate scădea, deoarece recuperarea datelor necesită unirea mai multor tabele.
- Necesită mai mult efort de întreținere, deoarece trebuie gestionat un număr mai mare de tabele de căutare.
Cum să proiectezi o schemă de fulg de zăpadă
Proiectarea unei scheme de tip fulg de zăpadă începe în același mod ca orice model dimensional, apoi adaugă o etapă de normalizare. Scopul este de a identifica procesul de business pe care doriți să îl analizați, de a-l modela mai întâi ca o schemă stea și apoi de a normaliza dimensiunile care conțin ierarhii profunde. Parcurgeți următorii pași:
- Identificați procesul de afaceri și cerealele. Decideți ce reprezintă un singur rând al tabelului de fapte, cum ar fi o tranzacție de vânzare, și definiți măsurile numerice sau faptele pe care trebuie să le raportați.
- Construiți tabelul central de fapte. Adunați măsurile numerice împreună cu cheile externe care indică fiecare dimensiune; împreună, aceste chei externe formează de obicei cheia primară compozită.
- Definiți tabelele de dimensiuni. Creați câte un tabel pentru fiecare dimensiune descriptivă, cum ar fi Produs, Client, Dată și Magazin, și atribuiți fiecăreia o cheie primară surogat.
- Normalizați ierarhiile. Împărțiți fiecare dimensiune care conține atribute repetitive în tabele de subdimensiuni, de exemplu, mutând Categoria din Produs sau Orașul, Statul și Țara dintr-o dimensiune Magazin.
- Conectați tabelele cu chei externe. Legați fiecare subdimensiune înapoi la tabelul părinte, astfel încât ramurile să formeze ierarhii clare de tip unu-la-mai-mulți, care seamănă cu un fulg de zăpadă.
- Validați și testați cu interogări. Executați interogări de raportare reprezentative pentru a confirma că asocierile returnează rezultate corecte și că performanța generală rămâne acceptabilă.
Deoarece designul normalizează datele către a treia formă normală, documentați clar căile de joncțiune, astfel încât analiștii să înțeleagă cum să navigheze în fiecare ramură. Odată ce structura este definită, merită să evaluați beneficiile schemei în raport cu costurile sale.
Avantajele schemei fulgului de zăpadă
Schema fulgului de zăpadă oferă o serie de avantaje:
- Principalul său avantaj este spațiul redus de stocare pe disc, deoarece unirea tabelelor de căutare normalizate mai mici evită duplicarea datelor dimensionale.
- Oferă o scalabilitate mai mare în relațiile dintre componente și nivelurile de dimensiune.
- Elimină redundanța, ceea ce îmbunătățește integritatea datelor și face modelul mai ușor de întreținut.
- Un atribut descriptiv este actualizat într-un singur loc, ceea ce reduce riscul unor date inconsistente.
Dezavantaje ale schemei fulgului de zăpadă
Designul vine și cu compromisuri de luat în considerare:
- Structura normalizată crește întreținerea necesară pentru gestionarea multor tabele corelate.
- Interogările complexe care se întind pe mai multe joncțiuni pot fi dificil de scris și de înțeles.
- Un număr mai mare de tabele înseamnă mai multe joncțiuni, ceea ce prelungește timpul de execuție a interogărilor.
- Utilizatorii business consideră adesea modelul de ramificare mai greu de navigat decât o simplă schemă în stea.
Schema fulgului de zăpadă vs. schema stelei
Schema fulgului de zăpadă și schema stea sunt cele două cele mai comune modele multidimensionale în depozitarea datelor, iar diferența cheie dintre ele este normalizarea. O schemă stea păstrează fiecare dimensiune într-un singur tabel plat, denormalizat, pentru o viteză maximă de interogare, în timp ce o schemă fulg de nea normalizează acele dimensiuni în mai multe tabele corelate pentru a economisi spațiu de stocare și a proteja integritatea datelor. Din acest motiv, cele două scheme corespund priorităților diferite.
| Aspect | Schema stelelor | Schema fulgilor de nea |
|---|---|---|
| Tabele de dimensiuni | Denormalizat, un tabel per dimensiune | Normalizat în tabele de sub-dimensiuni |
| Stocare | Folosește mai mult spațiu datorită redundanței | Folosește mai puțin spațiu, fără redundanță |
| Performanța interogărilor | Mai rapid, mai puține alăturări | Mai lent, mai multe alături |
| Complexitatea interogării | Simplu de scris | Mai complex |
| Cel mai potrivit pentru | Raportare rapidă și BI | Dimensiuni mari, ierarhice |
Pe scurt, alegeți o schemă stea atunci când viteza interogărilor și simplitatea raportării contează cel mai mult și alegeți o schemă fulg de nea atunci când eficiența stocării, ierarhiile curate și redundanța redusă a datelor sunt prioritatea. Multe depozite reale combină ambele modele în funcție de dimensiunea și adâncimea fiecărei dimensiuni.
Când să folosești o schemă de fulg de zăpadă
O schemă de tip fulg de zăpadă nu este întotdeauna alegerea potrivită, așa că este util să potriviți designul cu volumul de muncă și nevoile de raportare. Aceasta tinde să funcționeze cel mai bine în următoarele situații:
- Dimensiunile sunt foarte mari și conțin multe atribute repetitive care irosesc spațiu de stocare atunci când sunt denormalizate.
- Dimensiunile au ierarhii profunde și bine definite, cum ar fi Regiune, Țară, Stat, Oraș, care se mapează în mod natural pe tabele separate.
- Integritatea și consistența datelor sunt mai importante pentru proiect decât viteza de interogare brută.
- Costurile de stocare sunt o preocupare reală, iar economiile de spațiu pe disc în tabelele cu dimensiuni uriașe sunt semnificative.
- Modelul se alimentează OLAP instrumente care pot naviga eficient prin ierarhii normalizate.
În schimb, atunci când raportarea rapidă și simplă este prioritatea pentru analiștii de afaceri, o schemă stea sau un design hibrid de grup stelar este de obicei cea mai potrivită. Multe arhitecturi de depozite de date combină în mod deliberat ambele abordări pentru a echilibra viteza și stocarea.
Ce este o Schemă Galaxy?
A Schema Galaxy conține două sau mai multe tabele de fapte care partajează tabele de dimensiuni între ele. Se numește și schemă de constelație de fapte și, deoarece poate fi privită ca o colecție de stele, își câștigă denumirea de schemă de galaxie.

După cum puteți vedea în exemplul de mai sus, există două tabele de fapte:
- Revenue
- Produs
Într-o schemă galactică, dimensiunile partajate între tabelele de fapte se numesc dimensiuni conformate.
Caracteristicile Schemei Galaxy
Schema galaxiei are următoarele caracteristici:
- Dimensiunile sunt separate în dimensiuni distincte pe baza diferitelor niveluri ale ierarhiei.
- De exemplu, dacă geografia are patru niveluri ierarhice — regiune, țară, stat și oraș — atunci schema galaxiei ar trebui să aibă patru dimensiuni.
- Este posibil să se construiască acest tip de schemă prin împărțirea unei singure scheme în stea în mai multe scheme în stea.
- Dimensiunile din această schemă sunt mari și trebuie construite în funcție de nivelurile ierarhiei.
- Schema este utilă pentru agregarea tabelelor de fapte pentru a sprijini o mai bună analiză și înțelegere.
Ce este Steaua Cluster Schemă?
O schemă de tip fulg de nea conține ierarhii complet extinse, ceea ce poate adăuga complexitate și poate necesita joncțiuni suplimentare. Pe de altă parte, o schemă stea conține ierarhii complet restrânse, ceea ce poate duce la redundanță. Cea mai bună soluție este adesea un echilibru între aceste două modele, cunoscut sub numele de schemă stea. Cluster Schemă.

suprapuneping Dimensiunile apar ca furci în ierarhii. O furcă apare atunci când o entitate acționează ca părinte în două ierarhii dimensionale diferite. Aceste entități furcă sunt apoi identificate ca clasificări cu relații unu-la-mai-mulți, ceea ce limitează numărul de tabele suplimentare create de design.

