Skisse av stjernemodell med en faktatabell i miden og tilknyttede dimensjonstabeller
Skisse av stjernemodell som viser hvordan dimensjoner med primærnøkler (PK) kobles sammen med faktatabellens fremmednøkler (FK)
Innen databehandling er en **stjernemodell**, også kalt et **stjerneskjema** eller **stjernediagram**, en enkel modell for flerdimensjonal dataanalyse, og er kanskje den vanligste tilnærmingen for å utvikle datavarehus og dimensjonale datatorg. Stjernemodellen består av en eller flere faktatabeller som refererer til et hvilket som helst antall dimensjonstabeller. Retningen til kardinalitetspilene vil ofte peke i retning av faktatabellen i en relasjon, hvilket vil være mot midten i en stjernemodell. Stjernemodellen er et viktig spesialtilfelle av snøflakmodellen, og er mer effektiv i å håndtere enkle spørringer.

Stjernemodellen har fått sitt navn av at den fysiske datamodellen minner om formen til et stjernepolygon med faktatabellen i midten og dimensjonstabellene rundt.

Modell
------

Stjernemodeller deler data fra forretningsprosesser inn i:

* Fakta som inneholder de målbare, kvantitative dataene om en virksomhet, og
* Dimensjoner som er deskriptive attributter som er relatert til fakta-dataene

Eksempler på faktadata er salgspris, salgmengde og tid, avstand-, hastighet- og vektmålinger. Eksempler på relaterte dimensjonsattributter inkluderer produktmodeller, produktfarger, produktstørrelser, geografiske lokasjoner og navn på selgere. (Selv om det finnes «typiske» fakta- og dimensjonstabeller, er det også eksempler på at det som tradisjonelt betraktes som en faktatabell i noen tilfeller tas i bruk som en dimensjonstabell.[*bør utdypes*] Imidlertid tillater ikke alle systemer dette.)

En stjernemodell som har mange dimensjoner har av noen blitt kalt en "tusenbeinmodell" (*centipede schema*). Å ha dimensjoner med bare noen få attributter gjør modellen enklere å vedlikeholde, men resulterer i spørringer med mange tabellskjøter og gjør en stjernemodell mindre lett å bruke.

### Faktatabeller

I faktatabeller registreres målinger eller beregninger for en bestemt hendelse. Faktatabeller består vanligvis av numeriske verdier, samt fremmednøkler til dimensjonale data hvor deskriptiv informasjon er lagret. Faktatabeller er laget for å ha uniforme detaljer på et veldig lavt nivå (høy granularitet), hvilket betyr hendelser kan registreres på et svært atomisk nivå. Dette kan medføre at det akkumuleres et stort antall oppføringer i en faktatabell over tid.Faktatabeller kan deles inn i tre typer:

* Transaksjon-faktatabeller: Fører opp fakta om en bestemt hendelse (for eksempel salgshendelser)
* Snapshot-faktatabeller: Fører opp fakta på et gitt tidspunkt (for eksempel kontodetaljer ved slutten av måneden)
* Akkumulerende snapshot-faktatabeller: Fører opp aggregerte fakta på et gitt tidspunkt (for eksempel samlede salg måned-til-dato for et produkt)

Faktatabeller tildeles vanligvis en surrogatnøkkel for å sikre at hver rad kan bli unikt identifisert. Denne nøkkelen er en enkel primærnøkkel.

### Dimensjonstabeller

Dimensjonstabller har vanligvis et relativt lite antall oppføringer (*records*) sammenlignet med faktatabeller, men hver oppføring kan ha et veldig stort antall attributter for å beskrive faktadataene. Dimensjoner kan definere et bredt utvalg av egenskaper, men noen av de mest vanlige attributtene som er definert av dimensjonstabeller inkluderer:

* Tabeller for tiddimensjon: Beskriver tiden med det laveste nivået av granularitet for hendelser som skal registreres i stjernemodellen.
* Tabeller for geografidimensjon: Beskriver lokasjonsdata, for eksempel land, fylke eller by.
* Tabeller for produktdimensjon: Beskriver produkter.
* Tabeller for ansattdimensjon: Beskriver ansatte, for eksempel selgere.
* Tabeller som beskriver intervaller eller spenn av tid, pengeverdier eller andre målbare mengder som kan forenkle rapportering

Dimensjonstabeller blir vanligvis tildelt en surrogat-primærnøkkel, som typisk er av datatypen heltall og i en enkelt kolonne. Den avbildes til kombinasjonen av dimensjonsattributter som danner den naturlige nøkkelen.

Fordeler
--------

Stjernemodeller er denormaliserte, hvilket betyr at typiske regler for normalisering i transaksjonsbaserte relasjonsdatabaser ikke håndheves så sterkt når man designer og bygger basert på stjernemodellen. Fordeler med denormaliseringen i stjernemodellen er:

* Enklere søk: Stjernemodellens skjøtlogikk (*join logic*) er som regel enklere enn skjøtelogikken som kreves for å hente data fra en svært normalisert transaksjonslogikk.
* Forenklet logikk for forretningsrapportering: Sammenlignet med et svært normalisert modell forenkler stjernemodellen en virksomhets delte rapporteringslogikk, som tid over tid (eksempelvis år over år, måned over måned, osv.) eller øyeblikks-rapportering.
* Bedre ytelse: For rapporteringsapplikasjoner med *read-only*-tilgang kan stjernemodeller gi bedre ytelse for sammenlignet med svært normaliserte datamodeller.
* Rask aggregering: De enklere spørringene mot en stjernenmodell kan gi bedre ytelse for aggregeringsoperasjoner.
* Fôring av kuber: Stjernemodeller brukes i alle OLAP-systemer for å effektivt bygge proprietære OLAP-kuber. Faktisk har de fleste store OLAP-systemer en driftsmodus for relasjons-OLAP (ROLAP) hvor man kan bruke en stjernemodell direkte som en kilde uten å bygge en proprietær kubestruktur.

Ulemper
-------

Den største ulempen med stjernemodellen er at den ikke er like fleksibelt som en normalisert datamodell med tanke på analytiske behov.[] Normaliserte modeller tillater utføring av alle former for analytiske spørringer så lenge de følger forretningslogikken som er definert i modellen. Stjernemodeller har en tendens til å være mer spesialtilpassede for en bestemt visning av dataene, og tillater dermed egentlig ikke mer komplekse analyser.[] Stjernenmodellen støtter ikke med letthet mange-til-mange-relasjoner mellom entiteter i foretaket. Det er typisk at disse relasjonene har blitt forenklet i en stjernemodell for å samsvare med den enkle dimensjonale modellen.

En annen ulempe er at dataintegritet ikke håndheves godt på grunn av den denormaliserte tilstanden.[] Engangs-inserts og -updates kan føre til anomalier som normaliserte modeller er laget for å unngå. Generelt sett blir stjernemodeller lastet på en svært kontrollert måte via batch-prosessering eller i nær sanntids "*trickle-feeds*" for å kompensere for det manglende vernet man kunne fått av normalisering.

Eksempel
--------

Stjernemodell brukt i en eksempelspørring.
Anta at man har en salgsdatabase for en butikkkjede klassifisert etter dato, butikk og produkt. Modellen til høyre er en stjernemodell-versjon av eksempelmodellen i artikkelen om snøflakmodell.

`Fact_Sales` er faktatabellen, og det er tre dimensjonstabeller kalt `Dim_Date`, `Dim_Store` og `Dim_Product`.

Hver dimensjonstabell har en primærnøkkel på sin `ID`-kolonne, som er knyttet til en av kolonnene (vist som rader i eksempelmodellen) i `Fact_Sales`-tabellen er trekolonnede (sammensatte) primærnøkkel (`Date_Id`, `Store_Id`, `Product_Id`). Ikke-primærnøkkel-kolonnen `Units_Sold` i faktatabellen i dette eksempelet representerer en måling eller beregning som kan brukes til beregninger og analyse. Ikke-primærnøkkel-kolonnene i dimensjonstabellene representerer flere attributter av dimensjonene (for eksempel `Year` (året) til `Dim_Date`-dimensjonen).

For eksempel vil den følgende spørringen svare på hvor mange TV-apparater har blitt solgt i 1997 for hvert merke og land:

```
SELECT
 P.Brand,
 S.Country AS Countries,
 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 Dim\_Product P ON (F.Product\_Id = P.Id)

WHERE D.Year = 1997 AND P.Product\_Category = 'tv'

GROUP BY
 P.Brand,
 S.Country

```

Se også
-------

* Datavarehus
* Online analytisk prosessering
* Omvendt stjernemodell
* Snøflakmodell
* Faktasammenstilling

Referanser
----------

1. ↑  INF212 - Databaseteori
2. ↑  Datavarehus – hva er det? - Felles studentsystem
3. ↑  Hvordan komme langt med lite? NMBU Innsikt - Ledelsesinformasjonsverktøy for NMBU. Digitaliseringskonferansen for høyere utdanning og forskning, 2019-06-05
4. ↑  Introduksjon til business intelligence, Lars Rinnan, 2014-11-04
5. ↑  Sluttprøve 5602 Databaser, 4f) 2009-12-01
6. ↑  Databasesystemer 2. utgave, kap. 17. Datavarehus, 17.2.4 Stjerneskjema og snøflakskjema
7. ↑  Operativsystemer – Eksamensoppgave – Høst 98
8. ↑  FOVA 1-1 Utvikling av beslutningsstøttesystemer og persondatabaser - Informatiske emner. 5.4 Dataanlyse, s. 16
9. ↑  Datamodellering og "Stjerneskjema"
10. ↑  Forstå stjerneskjema og viktigheten for Power BI - Power BI | Microsoft Learn
11. ↑  «Universitetet i Oslo - Institutt for informatikk - Implementasjon av datavarehus – et eksempel - Hovedoppgave av Anette Langmo Becker 22. oktober 2004» (PDF).
12. ↑  Dedić, N. and Stanier C. 2016. "An Evaluation of the Challenges of Multilingualism in Data Warehouse Development" in 18th International Conference on Enterprise Information Systems - ICEIS 2016, p. 196.
13. ↑   *DWH Schemas*, 2009,
14. ↑  ", p. 708
15. 1 2  Ralph Kimball and Margy Ross, *The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling (Second Edition)*, p. 393

| * v
* d
* r
Datavarehus |
| --- |
| Opprettelse av datavarehus | 

|  |  |
| --- | --- |
| Konsepter | 
* Database
	+ Edgar F. Codd
	+ Relasjonsdatabase
* Dimensjon
* Dimensjonsmodellering
* Fakta
* OLAP
* Stjernemodell
* Snøflakmodell
* Omvendt stjernemodell
* Aggregering

 |
| Varianter | 
* Datamaske
* Datanav
* Ensemble-modelleringsmønstre
	+ Ankermodellering
	+ Datahvelvmodellering
	+ Brennpunktmodellering
* Kolonneorientert database
* HOLAP
* MOLAP
* ROLAP
* Operasjonelt datalager

 |
| Elementer | 
* Dataordbok/metadata
* Datatorg
* Sjette normalform
* Surrogatnøkkel

 |
| Fakta | 
* Faktatabell
* Tidlig ankommende fakta
* Måling

 |
| Dimensjon | 
* Dimensjonstabell
* Degenerert
* Endringstreg

 |
| Fylling | 
* Uttrekk, transformasjon, lasting (ETL)
* Uttrekk, lasting, transformasjon (ELT)
* Uttrekk
* Transformasjon
* Lasting

 |

 |
| Bruk av datavarehus | 

|  |  |
| --- | --- |
| Konsepter | 
* Forretningsinnsikt
* Instrumentpanel
* Datautvinning
* Beslutningsstøtte
* OLAP-kube
* Datavarehus-automasjon

 |
| Språk | 
* Data Mining Extensions (DMX)
* MultiDimensional eXpressions (MDX)
* XML for Analysis (XMLA)

 |
| Verktøy | 
* Forretningsinnsikt-programvare
* Rapporteringsprogramvare
* Regneark

 |

 |
| Relatert | 

|  |  |
| --- | --- |
| Folk | 
* Bill Inmon
* Ralph Kimball
* Dan Linstedt
* Lars Rönnnbäck

 |

 |