Hvad er dimensionel datamodellering? Eksempler, proces og fordele
Virksomheder bevæger sig i stigende grad mod datavarehuse at udnytte den store mængde data, som de genererer hver dag. Datalagring er den bedste løsning til analyse. Men virksomheder havde ikke altid denne mulighed. Tidlig databaser var primært designet til transaktionsbehandling og manglede den nødvendige effektivitet til analytisk rapportering, hvilket affødte dimensionsmodellering.
I begyndelsen af 1990'erne, Ralph Kimball, en fremtrædende figur, når det kommer til data warehouse tilgange, udviklede principperne for dimensionel modellering. Hans bog "The Data Warehouse Toolkit", først udgivet i 1996, skitserede koncepterne og bedste praksis for dimensionel modellering. Kimballs tilgang fokuserede på modellering af data på en måde, der stemmer overens med forretningsprocesser og brugerkrav, med vægt på enkelhed og brugervenlighed.
I denne artikel vil vi dykke dybt ned i begreberne dimensional datamodellering og forstå dets processer, fordele og begrænsninger.
Hvad er en dimensionsdatamodel?

En dimensionel datamodel er en måde at organisere og strukturere data på i en database eller et datavarehus for at gøre det nemmere for virksomheder at analysere og få indsigt fra deres data. De er især nyttige, når de håndterer store mængder data, og når brugere skal udforske data fra forskellige vinkler eller dimensioner.
Forskellige applikationer kræver forskellige dimensionelle modelleringsteknikker. Der er primært to modelleringsteknikker: Normaliserede Entity-Relationship-modeller (ER-modeller) og Dimensional modellering.
Normaliserede Entity-Relationship-modeller (ER-modeller) er på den anden side designet til at eliminere dataredundans, hurtigt udføre Indsæt, Opdater og Slet-operationer og få dataene ind i en database.
I modsætning hertil er dimensionelle modeller eller Kimball dimensionelle datamodeller denormaliserede strukturer designet til at hente data fra et datavarehus. De bruger fakta- og dimensionstabeller til at vedligeholde en registrering af historiske data i datavarehuse. Desuden er de optimeret til at udføre Type drift og bruges i den grundlæggende designramme til at bygge meget optimerede og funktionelle datavarehuse.
Elementer involveret i dimensionsmodellering
Faktatabeller eller forretningsmål
Faktatabeller gemmer de numeriske oplysninger om forretningsmål og fremmednøgler til dimensionstabellerne. Forretningsfakta kan være additive, semi-additive eller ikke-additive. Tabel 1 forklarer de tre typer faktatabeller.
| Type af fakta | Produktbeskrivelse |
| Additive fakta | Forretningsmål, der kan aggregeres på tværs af alle dimensioner |
| Semi-additive fakta | Forretningsmål, der kan aggregeres på tværs af nogle dimensioner og ikke på tværs af andre (normalt dato- og tidsdimensioner) |
| Ikke-additive fakta | Forretningsmål, der ikke kan aggregeres på tværs af nogen dimension |
Tabel 1: Faktatyper i en faktatabel
Faktatyper forklaret med en dimensionel datamodel
En beklædningsbutik vedligeholder følgende data i faktisk tabelrækker for en salgstransaktion:
| Dato | Store placering | Produkt Type | Antal | Enhedspris | Salgsbeløb | Inventory | Moms |
| 6/3/2018 | CA | nylon | 5 | 100 | 500 | 30 | 7.75% |
| 6/3/2018 | CA | polyester | 7 | 250 | 1750 | 50 | 7.75% |
| 6/3/2018 | PA | nylon | 6 | 100 | 600 | 65 | 6.00% |
| 6/3/2018 | PA | polyester | 3 | 250 | 750 | 25 | 6.00% |
| 6/4/2018 | CA | nylon | 7 | 100 | 700 | 36 | 7.75% |
| 6/4/2018 | CA | polyester | 6 | 250 | 1500 | 17 | 7.75% |
| / 4 / 2018 | PA | nylon | 9 | 100 | 900 | 14 | 6.00% |
| 6/4/2018 | PA | polyester | 10 | 250 | 2500 | 20 | 6.00% |
Tabel 2: Transaktionstabel vedligeholdt af en beklædningsbutik
Kolonnerne med numerisk information om forretningsprocessen er vores forretningsfakta. I dette eksempel, Antal, Enhedspris, Salgsbeløb, Inventoryog Moms er fakta. Og resten af enhederne (Dato, Butikog Produkt Type) er dimensioner.
Salgsbeløb kan tilføjes på tværs af alle dimensioner. Derfor er det et additivt faktum. Desuden tilføjer Inventory information på tværs af Butik dimension giver nyttige forretningsoplysninger. Men da dette kun er et øjebliksbillede af antallet af varer på et bestemt tidspunkt, tilføjer det på tværs af Dato dimension giver ikke nogen nyttig forretningsindsigt. Siden Inventory er additiv på tværs af nogle dimensioner og ikke-additiv på tværs af andre, er det en semi-additiv kendsgerning. Overvej nu Moms. Tilføjelse Moms på tværs af enhver dimension vil give problemer under analytisk behandling. Moms er derfor et ikke-additivt faktum.
Dimensionstabeller
Dimensionstabeller gemmer beskrivende oplysninger om forretningsfakta for at hjælpe med at forstå og analysere dataene bedre. I eksemplet vist i tabel 2, Dato, Store placeringog Produkt Type er dimensionsenheder, der giver flere oplysninger om forretningsfakta. Den samlede mængde Salg er et vigtigt mål at registrere, men uden dimensionerne kan en virksomhed ikke vurdere, hvilken butiksplacering eller produkttype, der giver mere salg.

Figur 1: Stjerneskema med fakta- og dimensionstabeller
Primærnøgle
Den primære nøgle er en kolonne i dimensionstabeller, der identificerer unikke poster. Surrogatnøglen vil være den primære nøgle til de langsomt skiftende dimensioner.
Fremmed nøgle
Fremmednøgler forbinder to tabeller (normalt fakta- og dimensionstabeller). Den primære nøgle i en dimensionstabel er en fremmednøgle i den relaterede faktatabel og bruges til at referere til den pågældende dimension.
Eksempel på dimensionsdatamodellering
Lad os overveje et virkeligt eksempel på dimensionel modellering for en detailvirksomhed. Forestil dig en kæde af butikker, der ønsker at analysere sine salgsdata for at få indsigt i dens ydeevne. I dette scenarie kan en dimensionel datamodel anvendes som følger:
- Fakta: De primære fakta i dette scenarie ville være salgstransaktioner. Disse fakta vil omfatte data som:
- Salgsindtægter
- Mængde af solgte produkter
- Der anvendes rabatter
- Fortjenstmargener
- Mål: Forskellige dimensioner vil give kontekst til salgsdataene:
- Tidsdimension: Denne dimension kan omfatte attributter som år, kvartal, måned, dag og endda tidspunkt på dagen. For eksempel kan det hjælpe med at besvare spørgsmål som: "Hvad var vores salg for hvert kvartal sidste år?"
- Produkt Dimension: Det kunne beskrive de produkter, der sælges i butikkerne. Det kan omfatte attributter som produktkategori, brand og produktnavn. For eksempel kan det hjælpe med at besvare spørgsmål som "Hvilken produktkategori genererede mest omsætning?"
- Butiksdimension: Denne kunne indeholde oplysninger om de enkelte butiksplaceringer, såsom butiksnavn, by, stat og butikschef. Det kunne besvare spørgsmål som: "Hvilken butik havde det højeste salg i sidste måned?"
- Kundedimension: Det kunne give indsigt i kundernes demografi, såsom alder, køn og placering. Det kunne hjælpe med at besvare spørgsmål som: "Hvad er det gennemsnitlige købsbeløb pr. kundesegment?"
- Fakta-til-dimensions forhold: Faktatabellen, der indeholder salgstransaktionerne, ville have fremmednøgler, der forbinder den med dimensionstabellerne. For eksempel kan hver salgstransaktionspost have fremmednøgler, der peger på det tilsvarende tidspunkt, produkt, butik og kunde i deres respektive dimensionstabeller.
- Hierarkier: Hierarkier inden for dimensioner vil hjælpe brugere med at navigere og analysere data på forskellige granularitetsniveauer. For eksempel kan tidsdimensionen have et hierarki, der går fra år til kvartal til måned til dag.
- Foranstaltninger: Mål ville blive beregnet ud fra salgsfakta for at give værdifuld indsigt. For eksempel:
- Samlet salgsbeløb
- Gennemsnitlig rabatprocent
- Fortjenestemarginprocent
Med denne dimensionelle datamodel på plads kunne detailvirksomheden bruge den til at besvare en lang række spørgsmål, såsom:
- "Hvad var vores samlede salg for hver produktkategori i det sidste kvartal?"
- "Hvilken butik havde den højeste salgsvækst sammenlignet med samme periode sidste år?"
- "Hvad er den gennemsnitlige fortjenstmargen for produkter i hver produktkategori?"
Design af en dimensionel datamodel
At forstå processen med design af dimensionelle modeller, lad os overveje eksemplet med en beklædningsserie, der sælger to slags vindjakker - Nylon og Polyester i sine to butikker i Californien og Pennsylvania. Eksempeldataene for eksemplet er vist i tabel 2.
Trin 1: Identificer forretningsprocesserne
Før du modellerer dataene, bør du finde de typer dimensionsmodellering, der passer til din datamodel. Den dimensionelle modelleringsprocessen (eller enhver datamodellering) begynder med identifikation af den forretningsproces, du vil spore. I dette tilfælde ønsker vi at spore salget af de to typer vindjakker.
Trin 2: Identificer fakta og dimensioner i din dimensionelle datamodel
Oplysningerne i en dimensionsmodel er kategoriseret i to tabeltyper – Fakta og Mål. Det næste trin er at identificere de forretningsfakta, du vil måle, og deres tilknyttede dimensioner. I vores eksempel er vindjakkesalg det faktum, at vi ønsker at måle. Dato, butiksplacering (Californien og Pennsylvania) og produkttype (Nylon-vindjakker og polyester-vindjakker) er de dimensioner, der giver os yderligere indsigt i salgsprocessen.
Trin 3: Identificer attributterne for dimensioner
Når du har identificeret dimensionerne og fakta for din forretningsproces, er næste trin at identificere attributter og oprette en separat dimensionstabel for hver dimension. Der er forskellige typer dimensionstabeller for hver datatype. Hver post i dimensionstabellen skal have en unik nøgle. Denne nøgle vil blive brugt til at identificere posterne i dimensionstabellen og som fremmednøgle i faktatabellen for at referere til den bestemte dimension og forbinde den med faktatabellen. Tabel 3-5 viser de forskellige typer dimensioner i et datavarehus i vores beklædningslinjeeksempel.
| Dato Dimension | ||
| Dato nøgle | Dato | Dag |
| 10201 | 6/3/2018 | Søndag |
| 10202 | 6/4/2018 | Mandag |
Tabel 3: Dimensionstabel for Dato
| Butiksdimension | |||
| Butiksnøgle | Store navn | By | Tilstand |
| 151 | AngAngies sparel | Los Angeles | Californien |
| 152 | AngAngies sparel | Pittsburgh | Pennsylvania |
Tabel 4: Dimensionstabel for Store
| Produkt Dimension | |||
| Produktkode | Kollektion | Materiale | Farve |
| 131620 | Windbreaker – Efterårskollektion | nylon | Orange |
| 131571 | Windbreaker – Efterårskollektion | polyester | Sort |
Tabel 5: Dimensionstabel for Produkt
Trin 4: Definer granulariteten for forretningsfakta
Granularitet refererer til niveauet af information, der er gemt i enhver tabel. For eksempel, i vores eksempel, registreres salgsbeløbet dagligt; derfor er granulariteten, i dette tilfælde, daglig. Faktatabellerne i en dimensionsmodel skal være i overensstemmelse med den foruddefinerede granularitet.
Trin 5: Lagring af historiske oplysninger (langsomt skiftende dimensioner)
Et vigtigt træk ved dimensionelle modeller er, at de dimensionelle attributter nemt kan ændres uden at ændre den komplette transaktionsinformation. For eksempel beslutter tøjlinjen sig for at fortsætte nylon-vindjakken fra efterårskollektionen til forårskollektionen og opdaterer navnet i Kollektion attribut. Det er nemt at lave opdateringen i dimensionstabellen, men vi mister vores tidligere data med opdateringen. Hvis målet med dit datamodellering og datavarehus er at vedligeholde og gemme historik, kan dette være et problem. Dimensioner, der ændrer sig langsomt over tid, kaldes Slowly Changing Dimensions. Derudover genereres tidsdimensionstabellen i et datavarehus automatisk og fanger det tidspunkt, hvor forskellige transaktioner finder sted. Du kan vedligeholde og gemme historiske data ved at spore langsomt skiftende dimensioner.
Lær mere om at designe en automatiseret dimensionsmodellering med vores trinvise vejledning
Hvad er multidimensionel datamodel i datavarehus?
En multidimensionel datamodel er en specifik implementering af dimensionel datamodellering, der er skræddersyet til mere avancerede analyse- og rapporteringsbehov. Det udvider koncepterne for almindelig dimensionel datamodellering for at give yderligere muligheder. Her er nogle vigtige faktorer at bemærke om dimensionel datamodel:
- Det tilføjer kompleksitet ved at introducere konceptet med datakuber. Datakuber gemmer på forhånd aggregerede data, hvilket kan føre til en mere kompleks, men mere effektiv struktur til multidimensionel analyse.
- Det fortsætter med at være brugervenligt, men tilbyder endnu flere muligheder for brugere at interagere med data ved hjælp af OLAP-værktøjer. Brugere kan pivotere, bore ned og analysere data fra flere dimensioner samtidigt.
- Det involverer ofte denormaliserede dimensionstabeller og præ-aggregerede data i datakuber. Selvom dette kan øge lagringsbehovet for de aggregerede data, kan det reducere redundans i dimensionstabeller, hvilket fører til mere effektiv lagring.
- Den er ideel til avancerede analyser, kompleks rapportering og scenarier, hvor ydeevnen er kritisk, såsom store datavarehuse med omfattende historiske data.
Fordele ved dimensionsmodellering
Dimensionsmodellering er stadig den mest anvendte datamodelleringsteknik til at designe virksomhedsdatavarehuse på grund af de fordele, det giver. Disse omfatter:
Optimeret til forespørgselsydeevne: Dimensionsmodeller er specielt designet til forespørgsler og rapportering, hvilket resulterer i hurtigere forespørgselsydeevne, især for komplekse analytiske forespørgsler.
Hurtigere datahentning: Dimensionel datamodellering fusionerer tabellerne i selve modellen, hvilket gør det muligt for brugere at hente data hurtigere fra forskellige datakilder ved at køre joinforespørgsler. Det denormaliserede skema for et dimensionsmodeldatavarehus er i stedet for det normaliserede i snefnugskemaet optimeret til at køre ad hoc-forespørgsler. Som et resultat heraf supplerer det i høj grad en organisations mål for business intelligence (BI).
Flkan ændres: En dimensionel modelleringsramme gør data warehousing-processen udvidelig. Designet kan nemt ændres for at inkorporere nye forretningskrav eller justere det centrale lager. Nye enheder kan tilføjes til modellen, eller layoutet af de eksisterende kan ændres, så de afspejler ændrede forretningsprocesser.
Multidimensionel analyse: Dimensionsmodeller understøtter multidimensionel analyse, så brugere kan udforske data fra forskellige dimensioner og hierarkier samtidigt.
Reduceret dataredundans: Dimensionsmodeller involverer ofte denormalisering, hvilket reducerer dataredundans og dermed forbedrer forespørgselsydeevne sammenlignet med meget normaliserede modeller.
Begrænsninger af dimensionsmodellering
Mens dimensionsmodellering er en kraftfuld teknik til analytiske behov og rapporteringsbehov, har den også nogle begrænsninger, og der er scenarier, hvor det måske ikke er den mest egnede tilgang. Så det er vigtigt at vurdere, om det stemmer overens med karakteristika og krav til dine data og brugssager. Her er nogle begrænsninger af dimensionsmodellering og situationer, hvor du kan overveje alternative modelleringsteknikker:
- Komplekse forhold: Dimensionsmodellering forudsætter, at sammenhænge mellem dimensioner og fakta er relativt enkle. Hvis dine data involverer meget komplekse relationer, som ikke let kan repræsenteres i et stjerne- eller snefnugskema, er dimensionsmodellering muligvis ikke det bedste valg.
- Hyppige dataændringer: Dimensionsmodeller er designet til historisk analyse og håndterer muligvis ikke data, der ændres ofte eller kræver opdateringer i realtid. I sådanne tilfælde kan en transaktionel eller normaliseret model være mere passende.
- Sparsomme data: Når du har med data at gøre, hvor mange kombinationer af dimensioner ikke har tilknyttede fakta (sparsomme data), kan dimensionsmodeller føre til ineffektiv lagring og forespørgselsydeevne.
- Store og ustrukturerede data: Hvis dine data indeholder store mængder ustrukturerede eller semistrukturerede data (f.eks. tekstdokumenter, sociale medier-feeds), er dimensionsmodellering alene muligvis ikke tilstrækkelig. Du skal muligvis inkorporere teknikker som NoSQL-databaser eller dokumentorienterede databaser.
Automation – En Game Changer for dimensionsmodellering
Design af dimensionelle modeller er et væsentligt skridt i opbygningen af rammerne for en virksomhedens datavarehus. Processen kan strømlines ved hjælp af et robust data warehouse automatiseringsværktøj som f.eks Astera Data Warehouse Builder.
Med Astera DW Builder, kan du hurtigt bygge dimensionelle modeller i et visuelt kodefrit integreret udviklingsmiljø. Enheder kan denormaliseres med simpel træk-og-slip og fletninger. Enhedsroller (fakta og dimensioner) kan tildeles i bulk, hvilket sparer dig værdifuld tid, når du arbejder med hundredvis af enheder. Derudover giver produktet dig mulighed for at håndtere langsomt skiftende dimensioner med indbygget understøttelse af SCD type 1, 2, 3 og 6.
Astera DW Builder er en end-to-end data warehouse-automatiseringsplatform med indbyggede dimensionelle datamodelleringsfunktioner, understøttelse af en lang række databaser og CRM-applikationer, automatiseret datakortlægning og dataindlæsningsfunktioner og indbygget integration med business intelligence-platforme som f.eks. Tableau og Power BI.
Se Astera DW Builders demo eller tilmeld dig en gratis prøveversion at opleve kraften ved automatisering af datavarehuse.


