Stjärnschema
Inom datoranvändning är stjärnschemat den enklaste stilen av datamart- schema och är det tillvägagångssätt som används mest för att utveckla datalager och dimensionella datamarts. Stjärnschemat består av en eller flera faktatabeller som refererar till valfritt antal dimensionstabeller . Stjärnschemat är ett viktigt specialfall av snöflingaschemat och är mer effektivt för att hantera enklare frågor.
Stjärnschemat har fått sitt namn från den fysiska modellens likhet med en stjärnform med en faktatabell i mitten och dimensionstabellerna som omger den representerar stjärnans punkter.
Modell
Stjärnschemat separerar affärsprocessdata i fakta, som innehåller den mätbara, kvantitativa informationen om ett företag, och dimensioner som är beskrivande attribut relaterade till faktadata. Exempel på faktadata inkluderar försäljningspris, försäljningskvantitet och tid, distans, hastighet och viktmätningar. Exempel på relaterade dimensionsattribut inkluderar produktmodeller, produktfärger, produktstorlekar, geografiska platser och säljarnamn.
Ett stjärnschema som har många dimensioner kallas ibland ett tusenfotingsschema . Att ha dimensioner på endast ett fåtal attribut, samtidigt som det är enklare att underhålla, resulterar i frågor med många tabellkopplingar och gör stjärnschemat mindre lätt att använda.
Faktatabeller
Faktatabeller registrerar mätningar eller mätvärden för en specifik händelse. Faktatabeller består i allmänhet av numeriska värden och främmande nycklar till dimensionsdata där beskrivande information förvaras. Faktatabeller är utformade med en låg nivå av enhetlig detalj (kallad "granularitet" eller "korn"), vilket innebär att fakta kan registrera händelser på en mycket atomär nivå. Detta kan resultera i ackumulering av ett stort antal poster i en faktatabell över tid. Faktatabeller definieras som en av tre typer:
- Transaktionsfaktatabeller registrerar fakta om en specifik händelse (t.ex. försäljningshändelser)
- Snapshot-faktatabeller registrerar fakta vid en given tidpunkt (t.ex. kontouppgifter i slutet av månaden)
- Ackumulerande ögonblicksbildstabeller registrerar aggregerade fakta vid en given tidpunkt (t.ex. total månadsförsäljning för en produkt)
Faktatabeller tilldelas i allmänhet en surrogatnyckel för att säkerställa att varje rad kan identifieras unikt. Denna nyckel är en enkel primärnyckel.
Måtttabeller
Dimensionstabeller har vanligtvis ett relativt litet antal poster jämfört med faktatabeller, men varje post kan ha ett mycket stort antal attribut för att beskriva faktadata. Dimensioner kan definiera en mängd olika egenskaper, men några av de vanligaste attributen som definieras av dimensionstabeller inkluderar:
- Tidsdimensionstabeller beskriver tid på den lägsta nivån av tidsgranularitet för vilken händelser registreras i stjärnschemat
- Geografidimensionstabeller beskriver platsdata, till exempel land, stat eller stad
- Produktdimensionstabeller beskriver produkter
- Anställda dimensionstabeller beskriver anställda, till exempel säljare
- Tabeller för intervalldimensioner beskriver tidsintervall, dollarvärden eller andra mätbara kvantiteter för att förenkla rapportering
Dimensionstabeller tilldelas vanligtvis en surrogatprimärnyckel , vanligtvis en heltalsdatatyp med en kolumn, mappad till kombinationen av dimensionsattribut som bildar den naturliga nyckeln.
Fördelar
Stjärnscheman är denormaliserade , vilket innebär att de typiska normaliseringsreglerna som tillämpas på transaktionsrelationsdatabaser är lättade under stjärnschemadesign och implementering. Fördelarna med stjärnschema-denormalisering är:
- Enklare frågor – star-schema join-logic är i allmänhet enklare än join-logiken som krävs för att hämta data från ett mycket normaliserat transaktionsschema.
- Förenklad logik för affärsrapportering – jämfört med mycket normaliserade scheman förenklar stjärnschemat vanliga affärsrapporteringslogik, såsom period-över-period och rapportering från och med.
- Frågeprestandavinster – stjärnscheman kan ge prestandaförbättringar för skrivskyddade rapporteringsapplikationer jämfört med mycket normaliserade scheman.
- Snabba aggregering – de enklare frågorna mot ett stjärnschema kan resultera i förbättrad prestanda för aggregeringsoperationer.
- Matningskuber – stjärnscheman används av alla OLAP- system för att effektivt bygga proprietära OLAP-kuber ; Faktum är att de flesta större OLAP-system tillhandahåller ett ROLAP- driftläge som kan använda ett stjärnschema direkt som en källa utan att bygga en proprietär kubstruktur.
Nackdelar
Den största nackdelen med stjärnschemat är att det inte är lika flexibelt vad gäller analytiska behov som en normaliserad datamodell. [ citat behövs ] Normaliserade modeller tillåter att alla typer av analytiska frågor exekveras, så länge de följer affärslogiken som definieras i modellen. Stjärnscheman tenderar att vara mer specialbyggda mot en viss vy av data och tillåter därför inte riktigt mer komplexa analyser. [ citat behövs ] Stjärnscheman stöder inte lätt många-till-många-relationer mellan affärsenheter. Typiskt förenklas dessa relationer i ett stjärnschema för att överensstämma med den enkla dimensionsmodellen.
En annan nackdel är att dataintegriteten inte upprätthålls väl på grund av dess denormaliserade tillstånd [ citat behövs ] . Engångsinfogningar och uppdateringar kan resultera i dataavvikelser, vilket normaliserade scheman är utformade för att undvika. Generellt sett laddas stjärnscheman på ett mycket kontrollerat sätt via batchbearbetning eller nästan realtids "trickle feeds", för att kompensera för bristen på skydd som ges av normalisering .
Exempel
Tänk på en databas med försäljning, kanske från en butikskedja, klassificerad efter datum, butik och produkt. Bilden av schemat till höger är en stjärnschemaversion av exempelschemat som finns i artikeln om snöflingaschema .
Fact_Sales
är faktatabellen och det finns tre dimensionstabeller Dim_Date
, Dim_Store
och Dim_Product
.
Varje dimensionstabell har en primärnyckel i sin Id-
kolumn, relaterad till en av kolumnerna (visas som rader i exempelschemat) i tabellen Fact_Sales
trekolumn (sammansatt) primärnyckel ( Date_Id
, Store_Id
, Product_Id
). Den icke-primära nyckelkolumnen Units_Sold
i faktatabellen i detta exempel representerar ett mått eller ett mått som kan användas i beräkningar och analys. De icke-primära nyckelkolumnerna i dimensionstabellerna representerar ytterligare attribut för dimensionerna (t.ex. året för
dimensionen Dim_Date) .
Till exempel svarar följande fråga på hur många TV-apparater som har sålts, för varje märke och land, 1997:
VÄLJ P . Brand , S . Land AS Länder , SUM ( F. Units_Sold ) FROM Fact_Sales F INNER JOIN Dim_Date D ON ( F . Date_Id = D. Id ) INNER JOIN Dim_Store S ON ( F . Store_Id = S. Id ) INNER JOIN I Dim_Product P . _ _ _ _ _ _ = P. Id ) VAR D . _ År = 1997 OCH P . Product_Category = 'tv' GRUPPER AV P . Brand , S . Land
Se även
- Datalager
- Online analytisk bearbetning
- Omvänt stjärnschema
- Snöflinga schema
- Fakta konstellation
- Aktivitetsschema