Snowflake Schema i Data Warehouse Model
โก Smart sammanfattning
Snรถflingescheman i datalagermodellering arrangerar normaliserade dimensionstabeller som fรถrgrenar sig frรฅn en central faktatabell, och liknar en snรถflinga. Det utรถkar stjรคrnschemat, minskar dataredundans och organiserar hierarkier รถver flera relaterade uppslagstabeller.

Vad รคr ett Snowflake Schema?
A Snรถflingaschema i ett datalager รคr en logisk uppstรคllning av tabeller i en flerdimensionell databas vars ER-diagram (entitetsrelationsdiagram) liknar formen av en snรถflinga. Det รคr en dimensionell modell dรคr en central faktatabell lรคnkar till dimensionstabeller, och dessa dimensionstabeller รคr vidare indelade i relaterade underdimensionstabeller.
Snรถflingeschemat รคr en utvidgning av stjรคrnschemat. Medan ett stjรคrnschema hรฅller varje dimension i en enda platt tabell, normaliserar snรถflingeschemat dessa dimensioner och delar upp upprepade datagrupper i ytterligare uppslagstabeller. Denna normalisering tar bort redundans och skapar den fรถrgrenande, hierarkiska struktur som ger schemat dess namn.
Exempel pรฅ snรถflingaschema
I fรถljande exempel pรฅ snรถflingeschemat sitter en fรถrsรคljningsfaktatabell i mitten, omgiven av dimensioner som Produkt, Datum och Butik. Istรคllet fรถr att lagra varje attribut i en dimensionstabell normaliseras den geografiska informationen sรฅ att Land flyttas till en egen separat tabell.

Hรคr refererar dimensionen Store till en tabell รถver stad, tabellen รถver stad refererar till en tabell รถver delstater och tabellen รถver delstater till en tabell รถver land. Varje vรคrde lagras endast en gรฅng och lรคnkas av en frรคmmande nyckel, sรฅ ett landsnamn upprepas aldrig รถver miljontals rader. Denna lagerbaserade normalisering รคr det som skiljer ett snรถflingeschema frรฅn ett platt stjรคrnschema.
Egenskaper fรถr Snowflake Schema
Snรถflingeschemat har flera definierande egenskaper:
- Den anvรคnder mindre diskutrymme, eftersom normaliserade dimensionstabeller undviker att lagra upprepade vรคrden.
- Nya dimensioner kan lรคggas till i schemat med relativt liten anstrรคngning.
- Frรฅgeprestanda kan fรถrsรคmras eftersom hรคmtning av data krรคver att mรฅnga tabeller kopplas samman.
- Det krรคver mer underhรฅllsinsatser, eftersom ett stรถrre antal uppslagstabeller mรฅste hanteras.
Hur man utformar ett snรถflingeschema
Att utforma ett snรถflingeschema bรถrjar pรฅ samma sรคtt som vilken dimensionell modell som helst och lรคgger sedan till ett normaliseringssteg. Mรฅlet รคr att identifiera den affรคrsprocess du vill analysera, modellera den fรถrst som ett stjรคrnschema och sedan normalisera de dimensioner som innehรฅller djupa hierarkier. Arbeta dig igenom fรถljande steg:
- Identifiera affรคrsprocessen och spannmรฅlen. Bestรคm vad en enskild rad i faktatabellen representerar, till exempel en fรถrsรคljningstransaktion, och definiera de numeriska mรฅtt, eller fakta, som du behรถver rapportera om.
- Bygg den centrala faktatabellen. Lรคgg till de numeriska mรฅtten tillsammans med de frรคmmande nycklar som pekar pรฅ varje dimension; tillsammans bildar dessa frรคmmande nycklar vanligtvis den sammansatta primรคrnyckeln.
- Definiera dimensionstabellerna. Skapa en tabell fรถr varje beskrivande dimension, till exempel Produkt, Kund, Datum och Butik, och tilldela varje dimension en surrogatprimรคrnyckel.
- Normalisera hierarkierna. Dela upp varje dimension som innehรฅller upprepade attribut i underdimensionstabeller, till exempel flytta kategori frรฅn produkt, eller stad, delstat och land frรฅn en butiksdimension.
- Koppla ihop tabellerna med frรคmmande nycklar. Lรคnka varje underdimension tillbaka till dess รถverordnade tabell sรฅ att grenarna bildar tydliga en-till-mรฅnga-hierarkier som liknar en snรถflinga.
- Validera och testa med frรฅgor. Kรถr representativa rapporteringsfrรฅgor fรถr att bekrรคfta att kopplingarna returnerar korrekta resultat och att den totala prestandan fรถrblir acceptabel.
Eftersom designen normaliserar data mot tredje normalform, dokumentera kopplingsvรคgarna tydligt sรฅ att analytiker fรถrstรฅr hur man navigerar i varje gren. Med strukturen definierad รคr det vรคrt att vรคga schemats fรถrdelar mot dess kostnader.
Fรถrdelar med snรถflingeschema
Snรถflingeschemat erbjuder ett antal fรถrdelar:
- Dess frรคmsta fรถrdel รคr minskad disklagring, eftersom sammankoppling av mindre normaliserade uppslagstabeller undviker duplicerade dimensionsdata.
- Det ger stรถrre skalbarhet i relationerna mellan komponenter och dimensionsnivรฅer.
- Det tar bort redundans, vilket fรถrbรคttrar dataintegriteten och gรถr modellen enklare att underhรฅlla.
- Ett beskrivande attribut uppdateras endast pรฅ ett stรคlle, vilket minskar risken fรถr inkonsekventa data.
Nackdelar med snรถflingeschema
Designen har ocksรฅ avvรคgningar att ta hรคnsyn till:
- Den normaliserade strukturen รถkar det underhรฅll som krรคvs fรถr att hantera mรฅnga relaterade tabeller.
- Komplexa frรฅgor som strรคcker sig รถver flera kopplingar kan vara svรฅra att skriva och fรถrstรฅ.
- Ett stรถrre antal tabeller innebรคr fler kopplingar, vilket fรถrlรคnger kรถrningstiden fรถr frรฅgor.
- Affรคrsanvรคndare tycker ofta att fรถrgreningsmodellen รคr svรฅrare att navigera รคn ett enkelt stjรคrnschema.
Snรถflingeschema vs. stjรคrnschema
Snรถflingeschemat och stjรคrnschema รคr de tvรฅ vanligaste flerdimensionella designerna inom datalager, och den viktigaste skillnaden mellan dem รคr normalisering. Ett stjรคrnschema hรฅller varje dimension i en enda platt, denormaliserad tabell fรถr maximal frรฅgehastighet, medan ett snรถflingeschema normaliserar dessa dimensioner till flera relaterade tabeller fรถr att spara lagring och skydda dataintegriteten. Pรฅ grund av detta passar de tvรฅ scheman olika prioriteringar.
| Aspect | Stjรคrnskema | Snรถflingaschema |
|---|---|---|
| Mรฅtttabeller | Avnormaliserad, en tabell per dimension | Normaliserad till underdimensionstabeller |
| lagring | Anvรคnder mer utrymme pรฅ grund av redundans | Anvรคnder mindre utrymme, ingen redundans |
| Frรฅgeprestanda | Snabbare, fรคrre anslutningar | Lรฅngsammare, fler anslutningar |
| Frรฅgekomplexitet | Enkelt att skriva | Mer komplex |
| Bรคst lรคmpad fรถr | Snabb rapportering och BI | Stora, hierarkiska dimensioner |
Kort sagt, vรคlj ett stjรคrnschema nรคr frรฅgehastighet och enkel rapportering รคr viktigast, och vรคlj ett snรถflingeschema nรคr lagringseffektivitet, rena hierarkier och lรฅg dataredundans รคr prioriterat. Mรฅnga riktiga lager kombinerar bรฅda mรถnstren beroende pรฅ storleken och djupet fรถr varje dimension.
Nรคr man ska anvรคnda ett snรถflingeschema
Ett snรถflingeschema รคr inte alltid rรคtt val, sรฅ det รคr bra att matcha designen med arbetsbelastningen och rapporteringsbehoven. Det brukar fungera bรคst i fรถljande situationer:
- Dimensioner รคr mycket stora och innehรฅller mรฅnga upprepade attribut som slรถsar lagringsutrymme nรคr de avnormaliseras.
- Dimensioner har djupa, vรคldefinierade hierarkier, till exempel Region till Land till Delstat till Stad, som mappas naturligt till separata tabeller.
- Dataintegritet och konsekvens รคr viktigare fรถr projektet รคn hastigheten pรฅ rรฅa frรฅgor.
- Lagringskostnader รคr ett verkligt problem och diskbesparingarna รถver tabeller med stora dimensioner รคr betydande.
- Modellflรถdena OLAP verktyg som effektivt kan navigera i normaliserade hierarkier.
Omvรคnt, nรคr snabb och enkel rapportering fรถr affรคrsanalytiker รคr prioriterad, รคr ett stjรคrnschema eller en hybrid stjรคrnklusterdesign vanligtvis den bรคsta lรถsningen. datalagerarkitekturer medvetet blanda bรฅda metoderna fรถr att balansera hastighet och lagring.
Vad รคr ett Galaxy Schema?
A Galaxy Schema innehรฅller tvรฅ eller flera faktatabeller som delar dimensionstabeller mellan sig. Det kallas ocksรฅ ett faktakonstellationsschema, och eftersom det kan ses som en samling stjรคrnor fรฅr det namnet galaxschema.

Som du kan se i exemplet ovan finns det tvรฅ faktatabeller:
- Intรคkter
- Produkter
I ett galaxschema kallas de dimensioner som delas mellan faktatabellerna fรถr konformade dimensioner.
Egenskaper fรถr Galaxy Schema
Galaxschemat har fรถljande egenskaper:
- Dimensionerna รคr uppdelade i distinkta dimensioner baserat pรฅ de olika nivรฅerna i hierarkin.
- Om till exempel geografi har fyra hierarkinivรฅer โ region, land, delstat och stad โ bรถr galaxschemat ha fyra dimensioner.
- Det รคr mรถjligt att bygga den hรคr typen av schema genom att dela upp ett enskilt stjรคrnschema i fler stjรคrnscheman.
- Dimensionerna i detta schema รคr stora och mรฅste byggas enligt hierarkinens nivรฅer.
- Schemat รคr anvรคndbart fรถr att aggregera faktatabeller fรถr att stรถdja bรคttre analys och fรถrstรฅelse.
Vad รคr Star Cluster Schema?
Ett snรถflingeschema innehรฅller helt expanderade hierarkier, vilket kan รถka komplexiteten och krรคva extra kopplingar. Ett stjรคrnschema, รฅ andra sidan, innehรฅller helt hopfรคllda hierarkier, vilket kan leda till redundans. Den bรคsta lรถsningen รคr ofta en balans mellan dessa tvรฅ designer, sรฅ kallad stjรคrnschema. Cluster Schema.

รถverlappningping Dimensioner visas som gafflar i hierarkierna. En gaffel intrรคffar nรคr en entitet fungerar som fรถrรคlder i tvรฅ olika dimensionella hierarkier. Dessa gaffelentiteter identifieras sedan som klassificeringar med en-till-mรฅnga-relationer, vilket begrรคnsar antalet extra tabeller som designen skapar.
