Blogs

blogDatamodel

Star Schema ifht. en stor tabel

Et Star-Schema har flere fordele i forhold til en stor flad tabel (One Big Table OBT).

Nogle af de mest bemærkelsesværdige fordele omfatter:

Bedre forståelighed / navigerbarhed: Et star-schema organiserer data i dimensioner og fakta-tabeller, hvilket gør det lettere at navigere og forstå komplekse datastrukturer.

Forenkling af DAX for komplekse aggregationer: DAX-udtryk, som bruges til at beregne og aggregere data i Power BI, kan være meget komplekse og forvirrende. Med et star-schema kan man dog forenkle DAX-udtrykkene, da man kun behøver at henvise til dimensionstabellerne ved navn.

Forestil dig, at du har en salgstabel med kolonnerne ‘Dato’, ‘Produkt’, ‘Kunde’ og ‘Salg’. Du har også en dimensions tabel kaldet ‘Produkter’ med kolonnerne ‘Produkt’, ‘Kategori’ og ‘Brand’. Hvis du vil aggregere salget efter kategori, kan du bruge følgende DAX-udtryk:

Du vil lave en opsummering, der fjerner filterkonteksten på de ting, der hører til din produkt-dimension. Med en dimensionel model kan du bruge følgende DAX-formel:

CALCULATE ([Salg], ALL (‘Produkt’))

Men med en flad tabel kan du i stedet bruge følgende DAX-formel, for at fjerne filterkonteksten på produkt relateret data:

CALCULATE ( [Salg], ALL ( ‘OBT'[Produkt], ‘OBT'[Kategori], ‘OBT'[Brand], ‘OBT'[Produktfarve]) )

Navnerum for felter og beregninger: I et star-schema kan man give forskellige dimensioner og fakta-tabeller deres egne navnerum, hvilket hjælper med at undgå konflikter i navngivningen.

Håndtering af forskelligt granulerede fakta: I mange situationer vil man have fakta, der er forskelligt granulerede. Med et stjerne-schema kan man nemt håndtere dette ved at placere fakta i separate fakta-tabeller og tilknytte dem til de relevante dimensioner.

Lad os sige, at vi har en salgsfakta-tabel, der indeholder salgsoplysninger for en virksomhed på daglig basis. Fakta-tabellet indeholder følgende dimensioner:

  • Produkt: Et unikt produkt-ID for hvert solgt produkt.
  • Tid: Datoen for salget.
  • Lokation: Den geografiske placering, hvor produktet blev solgt.

Nu ønsker vi at analysere salgsdata på kvartalsbasis i stedet for på daglig basis. Problemet her er, at vores fakta-tabel ikke indeholder en kvartalsdimension. Vi kan løse dette problem ved at oprette en ny dimensionstabeller, der indeholder kvartalsoplysninger, og derefter oprette en relation mellem fakta-tabel og kvartalsdimensionstabellen. Men hvis vi ønsker at analysere data på daglig basis, skal vi stadig bruge den oprindelige fakta-tabel.

I dette tilfælde kan vi bruge forskelligt granulerede fakta i vores model. Vi kan oprette en fakta-tabel, der indeholder salgsoplysninger på daglig basis og en anden fakta-tabel, der indeholder salgsoplysninger på kvartalsbasis. Derefter kan vi oprette en relation mellem de to fakta-tabeller og bruge dem sammen i vores analyse. På den måde kan vi analysere salgsdata på både daglig og kvartalsbasis uden at skulle oprette en ny dimensionstabeller.

Samlet set kan et stjerne-schema gøre det lettere at opbygge og vedligeholde en Power BI-model, især når man arbejder med komplekse datastrukturer og mange forskellige fakta-tabeller.