Snowflake Schema i Data Warehouse Model
⚡ Smart opsummering
Snefnugskema i datavarehusmodellering arrangerer normaliserede dimensionstabeller, der forgrener sig fra en central faktatabel og ligner en snefnug. Det udvider stjerneskemaet, reducerer dataredundans og organiserer hierarkier på tværs af flere relaterede opslagstabeller.
Hvad er et snefnugskema?
A Snefnugskema i et data warehouse er en logisk opstilling af tabeller i en flerdimensionel database, hvis ER-diagram (entitetsrelationsdiagram) ligner formen af en snefnug. Det er en dimensionel model hvor en central faktatabel linker til dimensionstabeller, og disse dimensionstabeller er yderligere opdelt i relaterede underdimensionstabeller.
Snefnugskemaet er en udvidelse af stjerneskemaet. Mens et stjerneskema holder hver dimension i en enkelt flad tabel, normaliserer snefnugskemaet disse dimensioner og opdeler gentagne grupper af data i yderligere opslagstabeller. Denne normalisering fjerner redundans og skaber den forgrenende, hierarkiske struktur, der giver skemaet sit navn.
Eksempel på snefnugskema
I det følgende eksempel på et snefnugskema sidder en tabel med salgsfakta i midten, omgivet af dimensioner som Produkt, Dato og Butik. I stedet for at gemme alle attributter i én dimensionstabel, normaliseres geografioplysningerne, så Land flyttes til sin egen separate tabel.

Her refererer dimensionen Store til en tabel City, tabellen City refererer til en tabel State, og tabellen State refererer til en tabel Country. Hver værdi gemmes kun én gang og er forbundet med en fremmednøgle, så et landsnavn gentages aldrig på tværs af millioner af rækker. Denne lagdelte normalisering er det, der adskiller et snefnugskema fra et fladt stjerneskema.
Karakteristika for Snowflake Schema
Snefnugskemaet har flere definerende karakteristika:
- Den bruger mindre diskplads, fordi normaliserede dimensionstabeller undgår at gemme gentagne værdier.
- Nye dimensioner kan tilføjes til skemaet med relativt lille indsats.
- Forespørgselsydeevnen kan falde, fordi hentning af data kræver sammenføjning af mange tabeller.
- Det kræver mere vedligeholdelsesindsats, da et større antal opslagstabeller skal administreres.
Sådan designer du et snefnugskema
Design af et snefnugskema starter på samme måde som enhver dimensionel model og tilføjer derefter et normaliseringstrin. Målet er at identificere den forretningsproces, du vil analysere, modellere den først som et stjerneskema og derefter normalisere de dimensioner, der indeholder dybe hierarkier. Arbejd dig gennem følgende trin:
- Identificer forretningsprocessen og kornet. Beslut, hvad en enkelt række i faktatabellen repræsenterer, f.eks. én salgstransaktion, og definer de numeriske målinger eller fakta, du skal rapportere om.
- Byg den centrale faktatabel. Læg de numeriske mål sammen med de fremmednøgler, der peger på hver dimension; sammen danner disse fremmednøgler normalt den sammensatte primærnøgle.
- Definer dimensionstabellerne. Opret én tabel for hver beskrivende dimension, f.eks. Produkt, Kunde, Dato og Butik, og tildel hver af dem en surrogatprimærnøgle.
- Normaliser hierarkierne. Opdel alle dimensioner, der indeholder gentagne attributter, i underdimensionstabeller, for eksempel ved at flytte Kategori ud af Produkt eller By, Stat og Land ud af en Butiksdimension.
- Forbind tabellerne med fremmednøgler. Forbind hver underdimension tilbage til dens overordnede tabel, så grenene danner klare en-til-mange-hierarkier, der ligner en snefnug.
- Valider og test med forespørgsler. Kør repræsentative rapporteringsforespørgsler for at bekræfte, at joinforbindelserne returnerer korrekte resultater, og at den samlede ydeevne forbliver acceptabel.
Da designet normaliserer data mod tredje normalform, skal join-stierne dokumenteres tydeligt, så analytikere forstår, hvordan de skal navigere i hver gren. Når strukturen er defineret, er det værd at afveje skemaets fordele mod dets omkostninger.
Fordele ved Snowflake Schema
Snefnugskemaet tilbyder en række fordele:
- Dens primære fordel er reduceret disklagring, fordi sammenføjning af mindre normaliserede opslagstabeller undgår duplikering af dimensionsdata.
- Det giver større skalerbarhed i forholdet mellem komponenter og dimensionsniveauer.
- Det fjerner redundans, hvilket forbedrer dataintegriteten og gør modellen nemmere at vedligeholde.
- En beskrivende attribut opdateres kun ét sted, hvilket mindsker risikoen for inkonsistente data.
Ulemper ved Snowflake Schema
Designet kommer også med kompromiser, der skal overvejes:
- Den normaliserede struktur øger den vedligeholdelse, der kræves for at administrere mange relaterede tabeller.
- Komplekse forespørgsler, der spænder over flere joins, kan være vanskelige at skrive og forstå.
- Et større antal tabeller betyder flere joinforbindelser, hvilket forlænger forespørgselsudførelsestiden.
- Forretningsbrugere finder ofte forgreningsmodellen sværere at navigere i end et simpelt stjerneskema.
Snefnugskema vs. Stjerneskema
Snefnugskemaet og stjerneskema er de to mest almindelige flerdimensionelle designs inden for data warehousing, og den vigtigste forskel mellem dem er normalisering. Et stjerneskema holder hver dimension i en enkelt flad, denormaliseret tabel for maksimal forespørgselshastighed, hvorimod et snefnugskema normaliserer disse dimensioner i flere relaterede tabeller for at spare lagerplads og beskytte dataintegriteten. På grund af dette passer de to skemaer til forskellige prioriteter.
| Aspect | Stjerneskema | Snefnugskema |
|---|---|---|
| Dimensionstabeller | Denormaliseret, én tabel pr. dimension | Normaliseret til underdimensionstabeller |
| Opbevaring | Bruger mere plads på grund af redundans | Bruger mindre plads, ingen redundans |
| Forespørgselsydelse | Hurtigere, færre tilslutninger | Langsommere, flere tilslutninger |
| Forespørgselskompleksitet | Enkel at skrive | Mere komplekst |
| Bedste velegnet til | Hurtig rapportering og BI | Store, hierarkiske dimensioner |
Kort sagt, vælg et stjerneskema, når forespørgselshastighed og enkel rapportering er vigtigst, og vælg et snefnugskema, når lagereffektivitet, rene hierarkier og lav dataredundans er prioriteret. Mange rigtige lagre kombinerer begge mønstre afhængigt af størrelsen og dybden af hver dimension.
Hvornår skal man bruge et snefnugskema
Et snefnugskema er ikke altid det rigtige valg, så det hjælper at matche designet til arbejdsbyrden og rapporteringsbehovene. Det fungerer typisk bedst i følgende situationer:
- Dimensioner er meget store og indeholder mange gentagne attributter, der spilder lagerplads, når de denormaliseres.
- Dimensioner har dybe, veldefinerede hierarkier, f.eks. Region til land til stat til by, der naturligt knyttes til separate tabeller.
- Dataintegritet og konsistens er vigtigere for projektet end hastigheden af rå forespørgsler.
- Lageromkostninger er en reel bekymring, og diskbesparelserne på tværs af tabeller med store dimensioner er betydelige.
- Modellen feeder OLAP værktøjer, der effektivt kan navigere i normaliserede hierarkier.
Omvendt, når hurtig og enkel rapportering for forretningsanalytikere er prioriteten, er et stjerneskema eller et hybridt stjerneklyngedesign normalt det bedste valg. data warehouse arkitekturer bevidst blande begge tilgange for at balancere hastighed og lagring.
Hvad er et Galaxy Schema?
A Galaxy-skema indeholder to eller flere faktatabeller, der deler dimensionstabeller mellem sig. Det kaldes også et faktakonstellationsskema, og fordi det kan ses som en samling af stjerner, får det navnet galakseskema.

Som du kan se i eksemplet ovenfor, er der to faktatabeller:
- Revenue
- Produkt
I et galakseskema kaldes de dimensioner, der deles mellem faktatabellerne, konformede dimensioner.
Karakteristika for Galaxy Schema
Galakseskemaet har følgende karakteristika:
- Dimensionerne er opdelt i forskellige dimensioner baseret på de forskellige niveauer i hierarkiet.
- For eksempel, hvis geografi har fire hierarkiniveauer - region, land, stat og by - så bør galakseskemaet have fire dimensioner.
- Det er muligt at opbygge denne type skema ved at opdele et enkelt stjerneskema i flere stjerneskemaer.
- Dimensionerne i dette skema er store og skal bygges i henhold til hierarkiets niveauer.
- Skemaet er nyttigt til at aggregere faktatabeller for at understøtte bedre analyse og forståelse.
Hvad er Star Cluster Skema?
Et snefnugskema indeholder fuldt udvidede hierarkier, hvilket kan øge kompleksiteten og kræve ekstra joins. Et stjerneskema indeholder derimod fuldt kollapsede hierarkier, hvilket kan føre til redundans. Den bedste løsning er ofte en balance mellem disse to designs, kendt som et stjerneskema. Cluster Skema.

overlapping Dimensioner vises som forgreninger i hierarkierne. En forgrening sker, når en enhed fungerer som en forælder i to forskellige dimensionelle hierarkier. Disse forgreningsenheder identificeres derefter som klassifikationer med en-til-mange-relationer, hvilket begrænser antallet af ekstra tabeller, designet opretter.

