Kimball sterren voor flexibele informatie
-
Upload
alexander-van-helm -
Category
Documents
-
view
1.764 -
download
3
description
Transcript of Kimball sterren voor flexibele informatie
D A T A W A R E H O U S E
it artikel beschrijft twee praktijk-voorbeelden die laten zien hoezogenaamde Kimball-sterren
gebruikt kunnen worden voor flexi-bele informatievoorziening. Het eer-ste voorbeeld toont hoe het historischeffect van minidimensies is te creërenmet behulp van procesdata. Uit hettweede voorbeeld blijkt hoe specifie-ke rapportagegroepen makkelijkgeselecteerd kunnen worden.
Kimball-sterren worden vooral gebruikt
voor datamarts. Dimensies moeten het ver-
haal vertellen over de gegevens. In de
meeste ontwerpen van dimensies bestaan
daardoor -op de technische dataware-
housesleutel en -geldigheidsperiode na-
alleen velden die voor de informatie-
voorziening interessant zijn. De ETL-
programmatuur die de ster vult bevat de
afleidingsregels, die aangeven welk
dimensierecord bij een bepaald feit hoort.
De afleidingsregels zijn de business-
rules: de logica die vertelt hoe een organi-
satie naar haar gegevens kijkt. Zijn de
business-rules ingebouwd in de ETL-pro-
grammatuur, dan zorgt een wijziging daar-
van voor verandering in de ETL-program-
matuur. Maar ook zullen miljoenen
records moeten worden aangepast, en dat
is zonde van de ICT-moeite. Kunnen we
dat voorkomen?
GEBRUIK VAN PROCESDATA
Kan het datawarehouse ervoor zorgen dat
de actuele afleiding beschikbaar is?
Zeker kan dat. Door dimensies uit te brei-
den of zelfs puur te creëren met die pro-
cesgegevens, die bepalend zijn voor de
afleiding van de actuele situatie. Tevens
door de attributen waarvan de actuele situ-
atie interessant is, af te splitsen als minidi-
mensie. Dit is mogelijk dankzij het histo-
risch effect van die dimensies.
Een minidimensie is een stel attribu-
ten, die afgesplitst worden uit een dimen-
sie om op hun beurt een nieuwe dimensie
te vormen. De oude dimensie verwijst
met behulp van de datawarehousesleutel
naar de minidimensie. In de oude dimen-
sie wordt de datawarehousesleutel bijge-
werkt (historie type 3) naar de actuele
situatie. De historische verwijzing is te
vinden in de feitentabel. Meestal wordt
een minidimensie afgesplitst om teveel
groei in de dimensie (historie type 2) te
voorkomen.
We geven een klassiek voorbeeld, uit
de cursus van Harm van der Lek. Door
met name de attributen leeftijdcategorie
Minidimensies en rapportages in de praktijk
‘Kimball-sterren’ voor flexibele informatie
Alexander van Helm en Murad Maas
D
D a t a b a s e M a g a z i n e - N u m m e r 3 - m e i 2 0 0 2 34
Definitie Kimball-sterEen Kimball-ster is een datamodel speciaal ontworpen voor informatievoorziening. Hij
bestaat uit een feitentabel met daaraan gekoppeld dimensies. Feittabellen bevatten de
meetwaarden, de te rapporteren gegevens. Dimensies vormen de business-’kapstok’. Ze
omschrijven hoe men naar gegevens moet kijken. Denk hierbij aan hierarchieën en der-
gelijke. Ze geven aan hoe de gegevens aan elkaar relateren. Het bijzondere aan een
Kimball-ster is dat bij een join altijd een rechtstreekse koppeling bestaat tussen de fei-
tentabel en de betrokken dimensie.
Verkoopfeiten
Demografische dimensie
Klantdimensie
Tijd key (FK)Product key (FK)Klant key (FK)Demografie key (FK)AantalOmzetKosten
AchternaamVoornaamGeboortejaarAdresPostcodeWoonplaatsSofinummerDemografie key (FK)
Klant key
Leeftijd categorieInkomenGeslachtBurgerlijke staatKoopgedrag
Demografie key
FIGUUR 1: KLASSIEK VOORBEELD VAN AFGESPLITSTE ATTRIBUTEN TOT MINIDIMENSIE.
D A T A W A R E H O U S E
en inkomen af te splitsen van de klantdi-
mensie vermijden we veelvuldig stapelen;
zie figuur 1.
MINIDIMENSIES EN HISTORIE
Wat is het effect van minidimensies op de
historie? In de oude (klant)dimensie staat
de actuele verwijzing naar de minidimen-
sie. Nu kunnen we door een rechtstreekse
koppeling van de feitentabel naar de mini-
dimensie kijken naar de demografische
waarden ten tijde van het feit en door een
koppeling naar de minidimensie via de
klantdimensie naar de actuele demografi-
sche waarden.
Hoewel dit in de literatuur als bijko-
mend effect wordt gepresenteerd, kun je in
de praktijk dit effect juist opzoeken. We
proberen dat toe te lichten aan de hand
van een praktijkvoorbeeld.
Bij de Agis Groep -en waarschijnlijk
ook bij andere zorgverzekeraars- wordt de
grootboekrekening waarop een declaratie
drukt, bepaald door een aantal zaken:
• type zorgverlener (zorgverlenersoort en
specialisme);
• type verrichting (honoreringssoort en
honoreringscode);
• premiesoort (welk pakket dekt de
declaratie).
Dit zijn procesgegevens, die we kunnen
omschrijven als boekingsregel. De boe-
kingsregels kunnen per jaar veranderen.
In het ene jaar kan een zelfde soort decla-
ratie op een andere grootboekrekening
drukken dan in het andere jaar. Voor het
bedrijf is het interessant te weten op welke
grootboekrekening een schade drukt bij
registratie, maar ook waarop de declaraties
nu zouden drukken. Met dat in het achter-
hoofd is de volgende oplossing bedacht.
In plaats van alleen een grootboekdi-
mensie te creëren is een boekingsregeldi-
mensie aangemaakt. Deze dimensie heeft
als attributen de procesgegevens van het
grootboek (type zorgverlener, type verrich-
ting en premiesoort) en alle attributen van
de grootboekdimensie. Deze is een minidi-
mensie van de boekingsregeldimensie.
Doordat de boekingsregel tijdens de
verwerking wordt bijgewerkt naar de actu-
ele situatie zijn declaraties historisch
(grootboekdimensie) en actueel (boekings-
regeldimensie) te bekijken. Voor de helder-
heid van het model zijn alle grootboekdi-
mensie-attributen opgenomen in de boe-
kingsregeldimensie. Dit betekent wel dat
men elke verandering in de grootboekdi-
mensie ook moet doorvoeren in de boe-
kingsregeldimensie (zie figuur 2).
We werken het voorbeeld uit met fictie-
ve gegevens. Stel dat huisartsbezoeken
eerst drukken op grootboekrekening ‘huis-
arts algemeen’ (5) en vanaf een bepaald
moment op ‘huisarts praktijk’ (6). De enige
wijziging in de data is dan het verwijzende
record in de actuele grootboekdimensie.
Kijk wat er gebeurt met volgnummer 21
van boekstuknummer 9812000001 in tabel
1, met betrekking tot drie huisartsbezoeken
voor 120 gulden, in de tabellen 2, 3 en 4.
Een join van declaratiefeiten met de
twee dimensies, levert vóór de verandering
het resultaat op van tabel 5. En na de ver-
andering ontstaat tabel 6.
Zo kunnen we een ingewikkeld pro-
bleem oplossen, door een dimensie te creë-
ren met procesgegevens die bepalend zijn
voor de actuele situatie (type zorgverlener,
type verrichting en premiesoort) en de attri-
buten waarvan zowel de actuele als histori-
sche waarde interessant is (de grootboekdi-
mensie) af te splitsen als minidimensie.
Natuurlijk moet de ETL-programmatuur
nog wel ontwikkeld worden. Vooral voor
prognoses en ‘what if ’-analyses is dit ge-
bruik van minidimensies zeer interessant.
RESULTAAT
De procesgegevens hoeven voor de
gebruiker niet zichtbaar te zijn. Datamarts
worden hetzij via een logische laag beke-
ken of doorgeladen in een OLAP-tool; in
de praktijk bij Agis is dat Business Objects.
De procesgegevens worden dan niet aan
de gebruiker getoond. Deze heeft beschik-
king over een actueel grootboek, een his-
torisch grootboek of in sommige gevallen
zelfs beide.
Het gewenste resultaat is bereikt. Deze
werkwijze is natuurlijk op meer problemen
D a t a b a s e M a g a z i n e - N u m m e r 3 - m e i 2 0 0 2 35
Grootboek dimensie
Declaraties feiten
Boekingsregel dimensie
Grootboek nummerGrootboek omschrijving
Grootboek key
Type zorgverlenerType verrichtingPremiesoortGrootboek key (FK)Grootboek nummerGrootboek omschrijving
Boekingsregel key
Grootboek key (FK)Boekingsregek key (FK)Meetwaarden
Boekstuknummer
FIGUUR 2: GROOTBOEKDIMENSIE-ATTRIBUTEN OPGENOMEN IN DE BOEKINGSREGELDIMENSIE.
Rapportage groep deelname
Rapportage groepKlantnummer
Feit tabel
KlantnummerDimensieMeetwaarden
FIGUUR 3.
Het datawarehouse kanervoor zorgen dat de actu-ele afleiding beschikbaar is
D A T A W A R E H O U S E
dan het grootboek alleen toepasbaar, en de
techniek is eventueel ook in sneeuwvlok-
schema’s te gebruiken.
RAPPORTAGEGROEPEN
Vaak wordt met veel moeite een specifieke
klantengroep bepaald, waarop allerlei rap-
portages gemaakt moeten worden. Deze
klantengroep is niet eenvoudig te bepalen
en bestaat misschien wel uit duizenden
klanten. Men moet daarom een mechanis-
me bedenken dat deze groep bewaart en
inzetbaar houdt voor andere rapportages.
In de praktijk wordt veelal gekozen
voor de aanmaak van tijdelijke tabellen
met daarin de klantnummers van deze
groep. Dit werkt prima, zolang het data-
warehouse maar door een zeer selecte
groep mensen wordt bekeken, die zelf ook
werken aan de ontwikkeling daarvan.
Zodra het warehouse echter breder ingezet
wordt, zal de organisatie moeten waken
voor een wildgroei van tabellen. Ook kost
dit erg veel onderhoud op de logische
laag: kenbaar maken en joinen van de tij-
delijke tabellen.
De Agis Groep maakte veelvuldig
gebruik van steekproeven. Denk hierbij
aan bepaalde selectiegroepen, bijvoor-
beeld suikerpatiënten, en een tegengroep
voor medische onderzoeken. Steekproeven
zijn namelijk eigenlijk niets meer dan rap-
portagegroepen, waarvoor je de afleiding
niet telkens opnieuw wilt doen. Bij Agis
moest een flexibelere methode worden
bedacht dan het gebruik van tijdelijke
tabellen. Dat is gelukt, en de gevonden
oplossing is vrij eenvoudig in een wille-
keurig datawarehouse te implementeren.
• Maak een brugtabel met daarin klant-
nummers gekoppeld aan een rapporta-
gegroep.
• Zorg dat in alle feiten het klantnummer
als de-generate dimension opgeslagen is.
• Een nieuwe rapportagegroep laad je
D a t a b a s e M a g a z i n e - N u m m e r 3 - m e i 2 0 0 2 36
Declaratie feitenBoekstuk- Volg- Actueel Historisch Aantal Bedragnummer nummer grb grb... ... ... ... ... ...9812000001 21 5 5 3 120... ... ... ... ... ...
TABEL 1.
Grootboek dimensieKey Omschrijving... ...5 Huisarts algemeen6 Huisarts praktijk... ...
TABEL 2.
Boekingsregel dimensie voor veranderingKey Zorg- Honorerings- Premie- Grb key Omschrijving
verlener code soort... ... ... ... ... ...123 1010 1234567890 01011010 5 Huisarts
algemeen... ... ... ... ... ...
TABEL 3.
Boekingsregel dimensie na veranderingKey Zorg- Honorerings- Premie- Grb key Omschrijving
verlener code soort... ... ... ... ... ...123 1010 1234567890 01011010 6 Huisarts praktijk... ... ... ... ... ...
TABEL 4.
Boekstuk- Volg- Actueel Historisch Aantal Bedragnummer nummer grb grb... ... ... ... ... ...9812000001 21 Huisarts algemeen Huisarts algemeen 3 120... ... ... ... ... ...
TABEL 5.
Boekstuk- Volg- Actueel Historisch Aantal Bedragnummer nummer grb grb... ... ... ... ... ...9812000001 21 Huisarts praktijk Huisarts algemeen 3 120... ... ... ... ... ...
TABEL 6.
Een eenvoudige beperkingis tot een selectieve groepte maken
D A T A W A R E H O U S E
door de tabel uit te breiden met de rap-
portagegroepgegevens. Hiervoor is
geen technische aanpassing nodig.
Zuiver gezien is de rapportagegroepbrug-
tabel overigens een factless fact-tabel over
deelname aan rapportagegroepen.
Het is nu mogelijk feiten voor een rap-
portagegroep te bekijken door via de brug-
tabel deze rapportagegroep als voorwaarde
te stellen. Pas wel op dat de voorwaarde
altijd op één rapportagegroep of op elkaar
uitsluitende rapportagegroepen wordt
gelegd, omdat anders dubbeltellingen
kunnen ontstaan. Via een logische laag
kan dit ook aan de gebruikers beschikbaar
gesteld worden. (Zie figuur 3.)
Een voorbeeld uitgewerkt met fictieve
data geven de tabellen 7 tot en met 11. Let
in de laatste, ‘Declaraties voor rapportage-
groep suiker of hart’, op de dubbeltelling.
ROBUUST EN FLEXIBEL
Uit beide voorbeelden blijkt dat, met een
beetje creativiteit, Kimball-sterren robuus-
te en toch flexibele oplossingen kunnen
bieden voor op het eerste gezicht lastige
problemen. Zowel een actueel als histo-
risch perspectief is zichtbaar te maken
door het creëren van minidimensies. Met
de rapportagegroeptechniek kan een een-
voudige beperking tot een selectieve groep
worden gemaakt. ●
Alexander van Helm([email protected]) is werkzaam bij
PinkRoccade en gespecialiseerd in business intelli-
gence & datawarehousing. Hij was en is betrokken
bij datawarehouses voor onder meer KLM, Delta
Lloyd en Agis Groep. Aan het in dit artikel
beschreven project bij Agis heeft ook Van Helms
collega Gert-Jan Kooren gewerkt.
Murad Maas is werkzaam bij Agis Groep als infor-
matie-analist en systeemontwikkelaar. Hij is vanaf
het begin betrokken geweest bij de ontwikkeling
van het datawarehouse van zijn bedrijf.
D a t a b a s e M a g a z i n e - N u m m e r 3 - m e i 2 0 0 2 37
Boekstuknummer Volgnummer Klantnummer Aantal Bedrag9812000001 5 123456789 5 1209812000001 8 123456789 2 2509812000001 12 123456789 8 3009812000013 2 123456789 2 2209812000001 12 987654321 8 3009812000003 1 987654321 1 609812000003 4 987654321 4 809806000001 1 123451234 2 120Totaal 32 1450
TABEL 7: DECLARATIES.
Klant Rapportagegroep123456789 Suiker123451234 Suiker987654321 Hart123451234 Hart
TABEL 8: RAPPORTAGEGROEPEN.
Boekstuknummer Volgnummer Klantnummer Aantal Bedrag9812000001 5 123456789 5 1209812000001 8 123456789 2 2509812000001 12 123456789 8 3009812000013 2 123456789 2 2209806000001 1 123451234 2 120Totaal 19 1010
TABEL 9: DECLARATIES VOOR RAPPORTAGEGROEP SUIKER.
Boekstuknummer Volgnummer Klantnummer Aantal Bedrag9812000001 12 987654321 8 3009812000003 1 987654321 1 609812000003 4 987654321 4 809806000001 1 123451234 2 120Totaal 15 560
TABEL 10: DECLARATIES VOOR RAPPORTAGEGROEP HART.
Boekstuknummer Volgnummer Klantnummer Aantal Bedrag9812000001 5 123456789 5 1209812000001 8 123456789 2 2509812000001 12 123456789 8 3009812000013 2 123456789 2 2209812000001 12 987654321 8 3009812000003 1 987654321 1 609812000003 4 987654321 4 809806000001 1 123451234 2 1209806000001 1 123451234 2 120Totaal 34 1570
TABEL 11: DECLARATIES VOOR RAPPORTAGEGROEP SUIKER OF HART.
Deze werkwijze is natuurlijkop meer problemen dan hetgrootboek alleen toepasbaar