Snowflake Schema i datavarehusmodellen
โก Smart oppsummering
Snรธfnuggskjema i datavarehusmodellering arrangerer normaliserte dimensjonstabeller som forgrener seg fra en sentral faktatabell, og ligner en snรธfnugg. Det utvider stjerneskjemaet, reduserer dataredundans og organiserer hierarkier pรฅ tvers av flere relaterte oppslagstabeller.

Hva er et snรธfnuggskjema?
A Snรธfnuggskjema i et datavarehus er en logisk ordning av tabeller i en flerdimensjonal database hvis ER-diagram (entitetsrelasjonsdiagram) ligner formen pรฅ en snรธfnugg. Det er en dimensjonsmodell der en sentral faktatabell lenker til dimensjonstabeller, og disse dimensjonstabellene er videre delt inn i relaterte underdimensjonstabeller.
Snรธfnuggskjemaet er en utvidelse av stjerneskjemaet. Mens et stjerneskjema holder hver dimensjon i en enkelt flat tabell, normaliserer snรธfnuggskjemaet disse dimensjonene, og deler gjentakende grupper av data inn i ytterligere oppslagstabeller. Denne normaliseringen fjerner redundans og skaper den forgrenende, hierarkiske strukturen som gir skjemaet navnet sitt.
Eksempel pรฅ snรธfnuggskjema
I det fรธlgende eksemplet pรฅ snรธfnuggskjemaet ligger en salgsfaktatabell i midten, omgitt av dimensjoner som Produkt, Dato og Butikk. I stedet for รฅ lagre alle attributter i รฉn dimensjonstabell, normaliseres geografiinformasjonen slik at Land flyttes til sin egen separate tabell.

Her refererer Store-dimensjonen til en City-tabell, City-tabellen refererer til en State-tabell, og State-tabellen refererer til en Country-tabell. Hver verdi lagres bare รฉn gang og kobles sammen av en fremmednรธkkel, slik at et landsnavn aldri gjentas pรฅ tvers av millioner av rader. Denne lagdelte normaliseringen er det som skiller et snรธfnuggskjema fra et flatt stjerneskjema.
Kjennetegn ved Snowflake Schema
Snรธfnuggskjemaet har flere definerende kjennetegn:
- Den bruker mindre diskplass, fordi normaliserte dimensjonstabeller unngรฅr lagring av gjentatte verdier.
- Nye dimensjoner kan legges til skjemaet med relativt liten innsats.
- Spรธrringsytelsen kan bli dรฅrligere fordi henting av data krever at man slรฅr sammen mange tabeller.
- Det krever mer vedlikeholdsinnsats, siden et stรธrre antall oppslagstabeller mรฅ administreres.
Hvordan designe et snรธfnuggskjema
Utforming av et snรธfnuggskjema starter pรฅ samme mรฅte som en hvilken som helst dimensjonsmodell, og legger deretter til et normaliseringstrinn. Mรฅlet er รฅ identifisere forretningsprosessen du vil analysere, modellere den fรธrst som et stjerneskjema, og deretter normalisere dimensjonene som inneholder dype hierarkier. Arbeid deg gjennom fรธlgende trinn:
- Identifiser forretningsprosessen og kornet. Bestem hva รฉn enkelt rad i faktatabellen representerer, for eksempel รฉn salgstransaksjon, og definer de numeriske mรฅlene, eller faktaene, du mรฅ rapportere om.
- Lag den sentrale faktatabellen. Legg sammen de numeriske mรฅlene sammen med fremmednรธklene som peker til hver dimensjon; sammen danner disse fremmednรธklene vanligvis den sammensatte primรฆrnรธkkelen.
- Definer dimensjonstabellene. Opprett รฉn tabell for hver beskrivende dimensjon, for eksempel Produkt, Kunde, Dato og Butikk, og tilordne hver av dem en surrogatprimรฆrnรธkkel.
- Normaliser hierarkiene. Del alle dimensjoner som inneholder gjentakende attributter i underdimensjonstabeller, for eksempel รฅ flytte Kategori ut av Produkt, eller By, Stat og Land ut av en Butikk-dimensjon.
- Koble tabellene med fremmednรธkler. Koble hver underdimensjon tilbake til den overordnede tabellen, slik at grenene danner tydelige รฉn-til-mange-hierarkier som ligner en snรธfnugg.
- Valider og test med spรธrringer. Kjรธr representative rapporteringsspรธrringer for รฅ bekrefte at koblingene returnerer riktige resultater og at den generelle ytelsen forblir akseptabel.
Fordi designet normaliserer data mot tredje normalform, bรธr du dokumentere koblingsbanene tydelig, slik at analytikere forstรฅr hvordan de skal navigere i hver gren. Nรฅr strukturen er definert, er det verdt รฅ veie skjemaets fordeler mot kostnadene.
Fordeler med snรธfnuggskjema
Snรธfnuggskjemaet tilbyr en rekke fordeler:
- Den primรฆre fordelen er redusert disklagring, fordi sammenfรธyning av mindre normaliserte oppslagstabeller unngรฅr duplisering av dimensjonsdata.
- Det gir stรธrre skalerbarhet i forholdet mellom komponenter og dimensjonsnivรฅer.
- Det fjerner redundans, noe som forbedrer dataintegriteten og gjรธr modellen enklere รฅ vedlikeholde.
- Et beskrivende attributt oppdateres bare pรฅ ett sted, noe som reduserer risikoen for inkonsistente data.
Ulemper med snรธfnuggskjema
Designet kommer ogsรฅ med avveininger รฅ vurdere:
- Den normaliserte strukturen รธker vedlikeholdet som kreves for รฅ administrere mange relaterte tabeller.
- Komplekse spรธrringer som strekker seg over flere sammenfรธyninger kan vรฆre vanskelige รฅ skrive og forstรฅ.
- Et stรธrre antall tabeller betyr flere koblinger, noe som forlenger utfรธrelsestiden for spรธrringen.
- Forretningsbrukere synes ofte det er vanskeligere รฅ navigere i forgreningsmodellen enn i et enkelt stjerneskjema.
Snรธfnuggskjema vs. stjerneskjema
Snรธfnuggskjemaet og stjerneskjema er de to vanligste flerdimensjonale designene innen datavarehus, og hovedforskjellen mellom dem er normalisering. Et stjerneskjema holder hver dimensjon i en enkelt flat, denormalisert tabell for maksimal spรธrrehastighet, mens et snรธfnuggskjema normaliserer disse dimensjonene i flere relaterte tabeller for รฅ spare lagringsplass og beskytte dataintegritet. Pรฅ grunn av dette passer de to skjemaene til forskjellige prioriteringer.
| Aspekt | Stjerneskjema | Snรธfnuggskjema |
|---|---|---|
| Dimensjonstabeller | Denormalisert, รฉn tabell per dimensjon | Normalisert til underdimensjonstabeller |
| Oppbevaring | Bruker mer plass pรฅ grunn av redundans | Bruker mindre plass, ingen redundans |
| Forespรธrselsytelse | Raskere, fรฆrre sammenfรธyninger | Tregere, flere sammenfรธyninger |
| Spรธrrekompleksitet | Enkel รฅ skrive | Mer kompleks |
| Passer best for | Rask rapportering og BI | Store, hierarkiske dimensjoner |
Kort sagt, velg et stjerneskjema nรฅr spรธrrehastighet og enkel rapportering er viktigst, og velg et snรธfnuggskjema nรฅr lagringseffektivitet, rene hierarkier og lav dataredundans er prioritert. Mange virkelige lagre kombinerer begge mรธnstrene avhengig av stรธrrelsen og dybden til hver dimensjon.
Nรฅr du skal bruke et snรธfnuggskjema
Et snรธfnuggskjema er ikke alltid det riktige valget, sรฅ det hjelper รฅ tilpasse designet til arbeidsmengden og rapporteringsbehovene. Det fungerer vanligvis best i fรธlgende situasjoner:
- Dimensjoner er veldig store og inneholder mange gjentakende attributter som slรธser med lagringsplass nรฅr de denormaliseres.
- Dimensjoner har dype, veldefinerte hierarkier, for eksempel region til land til stat til by, som er kartlagt naturlig pรฅ separate tabeller.
- Dataintegritet og konsistens er viktigere for prosjektet enn hastigheten pรฅ rรฅ spรธrringer.
- Lagringskostnader er en reell bekymring, og diskbesparelsene pรฅ tvers av tabeller med store dimensjoner er betydelige.
- Modellen feeder OLAP verktรธy som kan navigere effektivt i normaliserte hierarkier.
Omvendt, nรฅr rask og enkel rapportering for forretningsanalytikere er prioritert, er et stjerneskjema eller en hybrid stjerneklyngedesign vanligvis det beste alternativet. datavarehusarkitekturer bevisst blande begge tilnรฆrmingene for รฅ balansere hastighet og lagring.
Hva er et galakseskjema?
A Galaxy -skjema inneholder to eller flere faktatabeller som deler dimensjonstabeller seg imellom. Det kalles ogsรฅ et faktakonstellasjonsskjema, og fordi det kan sees pรฅ som en samling av stjerner, fรฅr det navnet galakseskjema.

Som du kan se i eksemplet ovenfor, finnes det to faktatabeller:
- Revenue
- Produkt
I et galakseskjema kalles dimensjonene som deles mellom faktatabellene konformede dimensjoner.
Kjennetegn ved Galaxy Schema
Galakseskjemaet har fรธlgende egenskaper:
- Dimensjonene er delt inn i forskjellige dimensjoner basert pรฅ de ulike nivรฅene i hierarkiet.
- Hvis for eksempel geografi har fire hierarkinivรฅer โ region, land, stat og by โ bรธr galakseskjemaet ha fire dimensjoner.
- Det er mulig รฅ bygge denne typen skjema ved รฅ dele et enkelt stjerneskjema inn i flere stjerneskjemaer.
- Dimensjonene i dette skjemaet er store og mรฅ bygges i henhold til nivรฅene i hierarkiet.
- Skjemaet er nyttig for รฅ samle faktatabeller for รฅ stรธtte bedre analyse og forstรฅelse.
Hva er Star Cluster Skjema?
Et snรธfnuggskjema inneholder fullt utvidede hierarkier, noe som kan รธke kompleksiteten og kreve ekstra sammenfรธyninger. Et stjerneskjema inneholder derimot fullstendig kollapsede hierarkier, noe som kan fรธre til redundans. Den beste lรธsningen er ofte en balanse mellom disse to designene, kjent som et stjerneskjema. Cluster Skjema.

overlappingping Dimensjoner vises som forgreninger i hierarkiene. En forgrening skjer nรฅr en enhet fungerer som en overordnet enhet i to forskjellige dimensjonale hierarkier. Disse forgreningsenhetene identifiseres deretter som klassifiseringer med รฉn-til-mange-relasjoner, noe som begrenser antallet ekstra tabeller designet oppretter.
