Designa star-schema

Slutförd

Det är ovanligt att en Power BI-semantisk modell består av en enda tabell. En modell med en enda tabell kan vara en enkel design, kanske en som passar för en datautforskningsuppgift eller ett konceptbevis, men inte en optimal modelldesign. En optimal modell följer star principer för schemadesign. Star-schema refererar till en designmetod som ofta används av relationsdatalagerdesigners eftersom det presenterar en användarvänlig struktur och stöder analytiska frågor med höga prestanda.

Den här designprincipen kallas för ett star-schema eftersom den klassificerar modelltabeller som antingen fakta eller dimension. I ett diagram utgör en faktatabell en mitten på en stjärna, medan dimensionstabeller, som placeras runt en faktatabell, representerar stjärnans strålar.

Faktatabeller

Faktatabellens roll är att lagra en ackumulering av rader som representerar observationer eller händelser som registrerar en speciell affärsaktivitet. Händelser som lagras i en faktatabell över försäljning kan till exempel vara försäljningsordrar och orderrader. Du kan också använda en faktatabell för att registrera lagerförflyttningar, lagersaldo eller dagliga valutaväxlingskurser. Faktatabeller innehåller oftast många rader. Med tiden ackumuleras rader i faktatabell. I analysfrågor (som kommer att definieras senare i den här modulen) sammanfattas faktatabelldata för att producera värden som försäljning och kvantitet.

Dimensionstabeller

Dimensionstabeller beskriver dina affärsenheter, som ofta representerar personer, platser, produkter eller koncept. En datumdimensionstabell, som innehåller en rad för varje datum, är ett vanligt exempel på en konceptdimensionstabell. Kolumnerna i dimensionstabeller kan filtrera och gruppera faktatabelldata.

Varje dimensionstabell måste ha en unik kolumn som kallas dess nyckelkolumn. En unik kolumn innehåller inte dubblettvärden och den får aldrig ha värden som saknas. I en produktdimensionstabell kan kolumnen heta ProductKey eller ProductID. Förmodligen kommer ytterligare kolumner att lagra beskrivande värden, t. ex. produktnamn, underkategori, kategori, färg och så vidare. I analysfrågor används dessa kolumner för att filtrera och gruppera data.

Jämföra fakta- och dimensionstabeller

Följande bild jämför egenskaperna hos fakta- och dimensionstabeller.

Egenskap Dimensionstabell Faktatabell
Modellens syfte Lagrar affärsenheter Lagrar händelser eller observationer
Tabellstruktur Innehåller en nyckelkolumn och beskrivande kolumner för filtrering och gruppering Innehåller dimensionsnyckel kolumner och numeriska måttkolumner som kan sammanfattas
Datavolym Innehåller vanligtvis färre rader (jämfört med faktatabeller) Kan innehålla flera rader
Syfte med fråga Att filtrera och gruppera Att sammanfatta

Relatera star-schematabeller

I modellen är dimensionstabeller relaterade till faktatabeller via en-till-många-relationer. Relationerna tillåter att filter och grupper som tillämpas på dimensionstabellkolumner sprids till faktatabellen. Det här är ett vanligt designmönster.

Dimensionstabeller kan användas för att filtrera flera faktatabeller och faktatabeller kan filtreras efter flera dimensionstabeller. Det är dock inte bra att relatera en faktatabell direkt till en annan faktatabell.

För att öva på det här konceptet ska du ladda ner filen Adventure Works DW 2020 M01. pbix, öppna filen och sedan växla till modelldiagrammet.

Observera att modellen består av sju tabeller, varav en heter Försäljning och är faktatabellen. De återstående tabellerna är dimensionstabeller och de har följande namn:

  • Kund
  • Datum
  • Product
  • Reseller
  • Försäljningsorder
  • Säljområde

Observera relationerna mellan dimensions-och faktatabellerna och att varje relationsfilters riktning pekar mot faktatabellen. Det innebär att när filter tillämpas på dimensionstabellens kolumner (för att filtrera eller gruppera efter kolumnvärden), så filtreras och sammanfattas relaterade fakta.

Om du ser på helheten kan du se en stjärnform.

Mer information om star schemadesign finns i Förstå star schema och vikten för Power BI.