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.

  • 🧩 Structura de bază: Un tabel central de fapte se conectează la tabele de dimensiuni care sunt normalizate în tabele de subdimensiuni și de căutare suplimentare.
  • ❄️ Normalizare: Împărțirea fiecărei dimensiuni în tabele corelate elimină atributele repetitive și împinge ierarhiile către a treia formă normală.
  • 🌟 Relația cu schema stelară: Schema fulgului de zăpadă extinde schema stea prin normalizarea tabelelor sale de dimensiuni plate, denormalizate.
  • 💾 Beneficii de stocare: Tabelele de căutare normalizate mai mici reduc utilizarea discului și elimină datele redundante, ceea ce facilitează întreținerea.
  • 🔗 Compromisul interogării: Mai multe tabele înseamnă mai multe joncțiuni, ceea ce poate încetini performanța interogărilor și poate complica raportarea.
  • 🧭 Când utilizați: Alegeți-l pentru dimensiuni mari cu ierarhii profunde, unde economiile de stocare și integritatea datelor contează cel mai mult.
  • 🪐 Scheme conexe: Proiectele de galaxii și roiuri stelare se bazează pe concepte de stele și fulgi de zăpadă pentru modele mai complexe.

Schema fulg de zăpadă în depozitul de date cu tabele de dimensiuni normalizate care se ramifică dintr-un tabel central de fapte

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.

Exemplu de schemă de tip fulg de nea cu un tabel central de fapte și un tabel de dimensiuni normalizate pentru țări
Exemplu de Schemă fulg de zăpadă

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:

  1. 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.
  2. 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ă.
  3. 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.
  4. 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.
  5. 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ă.
  6. 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 stelelorSchema fulgilor de nea
Tabele de dimensiuniDenormalizat, un tabel per dimensiuneNormalizat în tabele de sub-dimensiuni
StocareFolosește mai mult spațiu datorită redundanțeiFolosește mai puțin spațiu, fără redundanță
Performanța interogărilorMai rapid, mai puține alăturăriMai lent, mai multe alături
Complexitatea interogăriiSimplu de scrisMai complex
Cel mai potrivit pentruRaportare rapidă și BIDimensiuni 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.

Exemplu de schemă galactică cu două tabele de fapte care partajează tabele de dimensiuni conformate
Exemplu de Schema Galaxy

După cum puteți vedea în exemplul de mai sus, există două tabele de fapte:

  1. Revenue
  2. 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ă.

Exemplu de schemă a unui roi stelar care echilibrează modelele de stele și fulgi de zăpadă
Exemplu de Star 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.

Întrebări frecvente

Schema își câștigă numele deoarece diagrama sa entitate-relație se ramifică spre exterior, asemenea unui fulg de zăpadă. Normalizarea fiecărei dimensiuni în subdimensiuni și tabele de căutare creează mai multe niveluri conectate care radiază din tabelul central de fapte, formând o formă asemănătoare unui cristal de fulg de zăpadă.

Normalizarea împarte un tabel de dimensiuni în tabele mai mici, corelate, pentru a elimina datele repetitive. Într-o schemă de tip fulg de nea, atributele precum categoria sau țara se mută în propriile tabele, ajungând de obicei la a treia formă normală, ceea ce reduce redundanța și păstrează fiecare valoare stocată o singură dată.

Un tabel de fapte stochează evenimente numerice măsurabile, cum ar fi sumele de vânzări, plus chei externe pentru dimensiuni. Un tabel de dimensiuni stochează atribute descriptive, cum ar fi numele produsului sau regiunea, care oferă context acelor fapte. Tabelele de fapte sunt de obicei mult mai mari decât tabelele de dimensiuni.

O subdimensiune, uneori numită tabel outrigger, este un tabel normalizat care se ramifică dintr-o dimensiune principală. De exemplu, o dimensiune Produs poate face legătura cu un tabel Categorie separat. Aceste tabele suplimentare creează ierarhia pe mai multe niveluri caracteristică fulgului de zăpadă.

Da. Multe depozite combină ambele modele, normalizând doar dimensiunile mari care beneficiază de ele, păstrând în același timp...ping dimensiuni mai mici, plate. Acest hibrid, uneori numit schemă de roi stelar, echilibrează viteza de interogare a unei scheme stelare cu economiile de stocare ale unei scheme de tip fulg de nea.

Da. O schemă de fulgi de zăpadă alimentează OLAP sistemele funcționează bine deoarece ierarhiile sale normalizate se mapează perfect pe niveluri de detaliere, cum ar fi țara, statul și orașul. Cu toate acestea, joncțiunile suplimentare pot încetini procesarea cubului, astfel încât sarcinile de lucru OLAP cu interogări foarte mari favorizează uneori o schemă în stea.

Asistenții inteligenți artificiali pot sugera ce dimensiuni să fie normalizate, pot genera structuri de tabele dintr-o descriere a afacerii și pot recomanda indexuri sau căi de joncțiune care îmbunătățesc performanța. De asemenea, pot detecta redundanța și cheile inconsistente, deși un inginer de date ar trebui să revizuiască fiecare recomandare înainte de a o aplica.

Da. Chat GPT și Copilotul GitHub poate redacta instrucțiuni CREATE TABLE și interogări de tip join pentru o schemă de tip fulg de zăpadă dintr-o scurtă solicitare. Revizuiți întotdeauna cheile, tipurile de date și relațiile generate înainte de a le rula în producție.

Rezumați această postare cu: