SlideShare a Scribd company logo
1 of 111
Download to read offline
1
Ontwerp van data warehouses:
opslag van data en integratie van constraints
Ferry Kemperman
Huissen / Nijmegen
Februari – December 2000
Afstudeerscriptie nr. 475
Bedrijfsgerichte Informatica
Faculteit der Natuurwetenschappen, Wiskunde en Informatica
Katholieke Universiteit Nijmegen
2
3
VOORWOORD.............................................................................................................................................. 5
1 CONTEXTBEPALING ............................................................................................................................... 6
1.1 WAT IS EEN DATA WAREHOUSE EN WAT KUN JE ER MEE DOEN? .................................................................. 6
1.2 DE DATA WAREHOUSE ARCHITECTUUR ..................................................................................................... 8
1.2.1 De operationele systemen ................................................................................................................. 9
1.2.2 De extractietools: Wrapper en Monitor............................................................................................. 9
1.2.3 De Integrator.................................................................................................................................. 10
1.2.4 De data warehouse gezien als database .......................................................................................... 10
1.2.5 De metadata................................................................................................................................... 10
1.2.6 De data mart .................................................................................................................................. 10
1.2.7 De multidimensionale database....................................................................................................... 11
1.2.8 De Molap/Rolap server................................................................................................................... 11
1.2.9 De front end tools of OLAP tools .................................................................................................... 11
1.3 PROBLEMATIEK OMTRENT DE OPSLAG VAN DATA EN INTEGRATIE VAN CONSTRAINTS ............................... 11
1.3.1 Iets over data opslag in data warehouses ........................................................................................ 12
2 CONSTRAINTS IN EEN DATA WAREHOUSE, EEN VERKENNING VIA PSM ............................... 14
2.1 KORTE INTRODUCTIE VAN HET DIMENSIONALE MODEL ............................................................................ 14
2.1.1 Een case uitwerking........................................................................................................................ 14
2.1.1.1 Introductie van de case ..............................................................................................................................14
2.1.1.2 De case wordt in het dimensionale model gegoten.....................................................................................15
2.1.1.3 Case invulling van het geschetste model van Down Under..........................................................................17
2.2 CONSTRAINTS IN HET DIMENSIONALE MODEL, EEN BENADERING VIA HET RELATIONELE MODEL................ 19
2.2.1 Introductie van PSM....................................................................................................................... 20
2.2.2 Populaties in PSM.......................................................................................................................... 23
2.2.2.1 Universe of instances gedefinieerd.............................................................................................................23
2.2.2.2 Populaties gedefinieerd..............................................................................................................................24
2.2.3 Constraints in PSM......................................................................................................................... 27
2.2.3.1 Relationele algebra....................................................................................................................................27
2.2.3.1.1 Schema gedefinieerd ..........................................................................................................................28
2.2.3.1.2 Val gedefinieerd.................................................................................................................................28
2.2.3.1.3 Meer relationele operaties...................................................................................................................30
2.2.3.2 Constraints onder de loep ..........................................................................................................................33
2.2.3.2.1 Total role constraint ...........................................................................................................................33
2.2.3.2.2 Uniqueness constraint.........................................................................................................................36
2.2.3.2.2.1 Uniqueness constraint applied to one facttype ..............................................................................37
2.2.3.2.2.2 Uniqueness constraint applied to more facttypes...........................................................................39
2.2.3.2.2.3 Uniqueness constraint applied to objectification ...........................................................................42
2.2.3.2.3 Occurrence frequency constraint.........................................................................................................49
2.2.3.2.4 Set constraints....................................................................................................................................50
2.2.3.2.5 Enumeration constraint.......................................................................................................................50
2.2.3.2.6 Power type constraints........................................................................................................................50
2.2.3.2.7 Specialisation constraints....................................................................................................................51
2.2.3.2.8 Subtype defining rules........................................................................................................................51
2.2.3.2.9 Schema type constraints .....................................................................................................................52
2.2.3.2.10 Constraint definities .........................................................................................................................52
3 HET DIMENSIONALE MODEL UITGEDIEPT..................................................................................... 53
3.1 EEN VERDERE VERKENNING VAN CONSTRAINTS IN HET DIMENSIONALE MODEL......................................... 53
3.2 FUNCTIES VAN DE CONSTRAINTS IN HET DIMENSIONALE MODEL............................................................... 54
3.3 EEN VERKENNING VAN DE CONSTRAINTS IN DE DATA CUBE VIA EEN VOORBEELD...................................... 54
3.3.1 De data cube geanalyseerd ............................................................................................................. 54
3.3.1.1 Perspectieven van dimensies: de rotate-functie...........................................................................................56
3.3.1.2 Aggregatie van data: Drill Up/Down en Roll Up ........................................................................................56
3.3.1.3 Begrippenkader.........................................................................................................................................57
3.3.2 De presentatie van gegevens in data cube jargon ............................................................................ 58
3.3.2.1 Enkelvoudige cel.......................................................................................................................................58
3.3.2.2 Tweedimensionale slice.............................................................................................................................58
3.3.2.3 Multidimensionale sub cube ......................................................................................................................59
3.4 DE CASE DOWN UNDER IN HET DATA CUB E CONCEPT .............................................................................. 60
3.4.1 De intra-cube constraints................................................................................................................ 62
3.4.2 De inter-cube constraints............................................................................................................... 63
4
3.5 CONSTRAINTS BENADERD VANUIT HET DIMENSIONALE MODEL VIA STAR JOIN SCHEMA............................. 64
3.6 VOORBEELD VAN HET GEBRUIK VAN DE JOIN EN APPLICATION CONSTRAINT ............................................. 64
3.6.1 De dimensie geografische ligging en de application constraint........................................................ 66
3.6.2 SQL en de join constraint................................................................................................................ 67
4 RELATIONEEL EN DIMENSIONAAL: EEN VERGELIJKEND ONDERZOEK MET BETREKKING
TOT CONSTRAINTS EN MEER................................................................................................................ 69
4.1 INTRODUCTIE VAN NESTED DATA CUBES ............................................................................................... 69
4.2 NESTED DATA CUBES OPGEBOUWD ........................................................................................................ 69
4.3 NESTED DATA CUBES: EEN EERSTE VERKENNING VIA DOWN UNDER ....................................................... 71
4.4 KLASSIEKE DATASTRUCTUREN IN NDC .................................................................................................. 72
4.5 NDC ALGEBRA...................................................................................................................................... 73
4.5.1 De bagify operator ......................................................................................................................... 73
4.5.2 De extend operator ......................................................................................................................... 74
4.5.3 De nest operator............................................................................................................................. 75
4.5.4 De unnest operator......................................................................................................................... 77
4.5.5 De duplicate operator..................................................................................................................... 77
4.5.6 De select operator .......................................................................................................................... 78
4.5.7 De rename operator........................................................................................................................ 79
4.5.8 De aggregate operator.................................................................................................................... 79
4.6 MODELLERING VAN RELATIONELE OPERATOREN IN HET NDC MODEL...................................................... 80
4.7 NDC ALGEBRA TOEPASBAAR OP ELKE DIEPTE IN EEN NDC ..................................................................... 84
4.8 EEN INFORMELE MAPPING VAN RELATIONEEL OP DIMENSIONAAL EN VICE VERSA...................................... 84
4.9 DOWN UNDER IN PSM: EEN VERGELIJKING MET HET NDC MODEL .......................................................... 86
4.10 OPSLAG VAN AGGREGATIES IN EEN DATA WAREHOUSE .......................................................................... 93
4.11 MULTIDIMENSIONALE BENADERING VAN AGGREGATIES IN PSM GEMODELLEERD .................................. 93
4.12 EEN AANZET TOT DE BESCHRIJVING VAN DE SEMANTIEK VAN CONSTRAINTS IN HET DIMENSIONALE MODEL
................................................................................................................................................................... 97
4.13 EEN INTERMEZZO OVER VIEW MAINTENANCE ...................................................................................... 100
5 CONCLUSIES EN VERDER ONDERZOEK ........................................................................................ 102
5.1 SAMENVATTING................................................................................................................................... 102
5.2 ALGEMENE CONCLUSIES ...................................................................................................................... 103
5.3 VERDER ONDERZOEK ........................................................................................................................... 104
5.4 TERUGBLIK ......................................................................................................................................... 105
BIBLIOGRAFIE ........................................................................................................................................ 106
BRONVERMELDING FIGUREN EN TABELLEN................................................................................. 108
INDEX ........................................................................................................................................................ 109
FIGURENINDEX....................................................................................................................................... 111
TABELLENINDEX.................................................................................................................................... 111
5
Voorwoord
Voor u ligt mijn afstudeerscriptie “Ontwerp van data warehouses: opslag van data en integratie van
constraints”, de kroon op mijn studie Bedrijfsgerichte Informatica. Deze scriptie heeft mij veel tijd en
moeite gekost, evenals mijn studie. Moeizame periodes wisselden zich tijdens mijn studietijd af met
momenten van goede motivatie. Sommige vakken vond ik zeer interessant (vooral die uit de
specialisatierichting en de leerzame GiP-reeks) en gingen me dan ook redelijk goed af, maar andere
bezorgden me hoofdbrekens. Met name P4, W4 en W6 vielen me erg zwaar en hebben me de nodige
moeite gekost te halen.
Na 8 jaar middelbare school en 6½ jaar universiteit vind ik het mooi geweest. Ik wil iedereen
bedanken die mij gedurende mijn gehele studietijd en scriptie heeft geholpen, op welke wijze dan ook.
Mensen die ik in dit verband bij name wil noemen zijn: mijn ouders en mijn broer Mark, mijn goede
vrienden Ernest Neijenhuis en Jaap Penders met wie ik zeer veel heb samengewerkt in het verleden,
mijn goede vriend en studiegenoot Dennis Noy voor een perfecte samenwerking gedurende de gehele
studie aan de KUN. We vulden elkaar perfect aan. Verder mijn afstudeerbegeleider Patrick van
Bommel voor de goede begeleiding en de (bijna) wekelijkse nuttige bijeenkomsten. Verder heb ik
gedurende mijn studie prettig samengewerkt met mijn goede vriend Sander van Woerkom en Richard
Arts. Zij hebben mij geholpen bij vakken die me moeilijk vielen.
Zonder hen was ik hier nooit gekomen!
Bedankt allemaal!
Ferry Kemperman
22 december 2000
Een tweetal opmerkingen vooraf: Dit werk is in de wij-vorm geschreven. Ik heb hier bewust voor
gekozen. De definitie van Val wordt in de literatuur beschreven met een ruimtelijk haakje. Door
printerproblemen is in dit werk het een gewoon haakje ( [ en ] ) geworden.
Informatie over de auteur:
Ferry Remon Kemperman werd op 16 januari 1974 geboren in Huissen. Na de HAVO (1986 -1991)
aan het Nederrijn College in Arnhem vervolgde hij op dezelfde school met het VWO (1991-1994). In
september 1994 begon hij met de opleiding Informatica aan de Katholieke Universiteit Nijmegen. In
de periode december 2000 rondde hij in de specialisatierichting Bedrijfsgerichte Informatica deze
studie af met het voor u liggende werk. Het afstudeerpraatje werd gehouden op 12 januari 2001 om
14.00 uur in colloquiumkamer A2041.
6
They say it's always the same, two steps forward one step back
Whatever he arranges, we must do the best we can
Your pain is mine, my blood is yours, can you hear me, I'm calling you
You have the power over me, I'm rendered helpless, you've got me on my knees
You have the power over me, nothing is certain, I wait for recovery
Power Over Me, Mr.Mister
1 Contextbepaling
In dit eerste hoofdstuk zal een kader worden geschept voor de probleemstelling die wordt behandeld in
deze scriptie. Als eerste zal worden ingegaan op de vraag wat een data warehouse nu precies inhoudt
en wat je ermee kan doen. Vervolgens zal een introductie worden gegeven over hoe een data
warehouse technisch gezien eruit ziet en wat voor specifieke problemen er kunnen optreden bij het
opzetten van zo’n data warehouse. Als laatste zal dit hoofdstuk worden afgesloten met een
uiteenzetting naar de specifieke probleemstelling van deze scriptie, namelijk de opslag van data in data
warehouses voor OLAP-toepassingen en de integratie van constraints. Hier zullen ook de
verschillende problemen aan bod komen.
1.1 Wat is een data warehouse en wat kun je er mee doen?
De term data warehouse komt al geruime tijd voor in wetenschappelijke en technische vakbladen,
maar ook in magazines en tijdschriften van specifieke maatschappelijke en commerciële sectoren. Een
voorbeeld van zo’n sector is het bankwezen. Hieronder zien we een artikel dat door NCR banken uit
Noorwegen op het WWW is gezet als persbericht [WWW03]. In dit persbericht wordt een mooie
toepassing geschetst van een data warehouse, in het Nederlands ook wel gegevenspakhuis genoemd.
De toekomst volgens NCR en Sparebanken NOR
Amsterdam, 7 augustus 1998 - Volgens NCR Corporation en Sparebanken NOR
(Noorwegen) wordt bankieren gemakkelijker, sneller en leuker voor de consument,
leidt het tot minder kosten voor de banken en tot minder papierwerk voor iedereen.
De twee bedrijven hebben tezamen het bankfiliaal van morgen bedacht, ontworpen
en ingevoerd.
Zodra een klant een filiaal van Sparebanken NOR binnenloopt, voert hij zijn
bankcard in. Met een speciaal genummerd kaartje wordt hij geïdentificeerd door het
gegevenspakhuis, dat een bericht terugstuurt met de klantgegevens. Een
videoscherm boven de baliemedewerker toont op de klant gerichte advertenties en
de baliemedewerker zelf heeft alle relevante gegevens onmiddellijk bij de hand,
zoals welke folders naar deze klant zijn gestuurd en welke diensten verder kunnen
worden aangeboden. Klanten bekrachtigen hun opdrachten elektronisch, zodat
geen papier nodig is. Dit concept maakt ook de omvangrijke procedureboeken en
de dagelijkse papieren administratie van het bankkantoor overbodig.
Iedere week worden vijf filialen van Sparebanken NOR herbouwd en uitgerust, en
worden de medewerkers omgeschoold. Inmiddels zijn meer dan 140 nieuwe filialen
omgevormd. Volgens plan zullen medio 1999 alle 350 kantoren in het netwerk van
Sparebanken NOR en zijn partners volgens dit concept zijn aangepast.
In dit artikel wordt de indruk gewekt dat de data warehouse een soort grote database is met een grote
mate van flexibiliteit m.b.t. tot het vinden van informatie en verbanden in die informatie. Dit laatste is
onder meer te halen uit de zin “Een videoscherm boven de baliemedewerker toont op de klant gerichte
7
advertenties en de baliemedewerker zelf heeft alle relevante gegevens onmiddellijk bij de hand”. Nu er
een gedachte is gecreëerd omtrent het begrip data warehouse kunnen we een definitie aangeven op een
hoog abstractieniveau.
“Een data warehouse is een concept dat is opgebouwd uit hard- en software elementen dat het
mogelijk maakt om zeer grote hoeveelheden gegevens te analyseren om zodoende managers in
staat te stellen om betere bedrijfsbeslissingen te nemen op strategisch en tactisch niveau”
Een kanttekening die hier geplaatst dient te worden is het volgende. Een data warehouse is op vele
abstractieniveaus te definiëren, van zeer abstracte naar technisch zeer gedetailleerde definities. Tevens
is er een groot aantal definities in omloop, waarbij een ieder zijn eigen interpretatie aan dit begrip
geeft. In dit document zullen we de bovenstaande definitie aanhouden wanneer we praten op het
niveau van het gebruik van data warehouses (dus de meer algemene definitie) en de definitie die wordt
gegeven in de volgende paragraaf in het geval er op technisch niveau over data warehouses wordt
gesproken. Dan is er ook nog een derde interpretatie die in dit document voorkomt, namelijk de data
warehouse beschouwende als een database. Deze interpretatie zal uitsluitend voorkomen bij het
gebruik in figuren en bespreking van deze figuren.
Wanneer we de definitie onder de loep nemen, vallen gelijk aan aantal zaken op. Een data warehouse
is een concept en geen nieuwe technologie. Een data warehouse moet men dus beschouwen als een
vernieuwd inzicht opgebouwd uit al reeds bekende zaken. Een van die zaken zijn de zogenaamde
legacy-systemen, bestaande uit een informatiesysteem en een database die er zijn voor operationele
doeleinden.
Een intuïtieve definitie die men van een data warehouse zou kunnen geven is een grote verzameling
gegevens (een soort super database) die geanalyseerd kan worden om bepaalde verbanden en trends te
vinden om zo een betere bedrijfsvoering er op na te kunnen houden.
Vragen die hierbij rijzen zijn natuurlijk:
Hoe kom je aan zo’n grote verzameling gegevens?
Welke gegevens komen er in die super database en op welke wijze?
Welke eisen dienen er gesteld te worden aan die gegevens?
Welke analyses moeten er met de gegevens gemaakt kunnen worden?
Hoe pak je die analyses aan?
Etcetera
Een antwoord op enkele van deze vragen zal in de loop van deze scriptie worden gegeven. Een andere
vraag die gesteld kan worden is de vraag naar de noodzaak van zo’n data warehouse. Zijn operationele
systemen (ook wel OLTP of legacy-systeem genoemd) niet in staat de gevraagde analyses te plegen?
Een ontkennend antwoord moet hier worden gegeven. Een dergelijke analyse vereist een aantal
belangrijke aspecten van het systeem en de gegevens.
Operationele systemen konden dit niet aan vanwege [Hobo97]:
• Gebrek aan historische data
• Inconsistentie en verandering van gegevens
• Gegevens die nodig zijn voor een analyse zitten vaak in verschillende operationele systemen
• Query uitvoeringen duren extreem lang (zeer complexe query’s, slechte retrievaltijd)
De belangrijke verschillen tussen een operationeel systeem en een data warehouse kunnen hieruit
direct worden afgeleid (gedeeltelijk afgeleid uit [Hobo97]).
• Tijdsfactor
In een data warehouse is het van groot belang dat de historie van gegevens wordt vastgehouden.
Er wordt dus een historie opgeslagen van de gegevens. Er worden geen updates van de gegevens
gemaakt en de gegevens zijn in principe read-only in een data warehouse. In een operationeel
systeem is een historie niet aanwezig. De tijdsdimensie van gegevens is een zeer belangrijk aspect
bij een data warehouse.
8
• Onderwerp georiënteerde kijk
In een data warehouse gaat het erom de eindgebruiker als referentiepunt te zien in het presenteren
van de gegevens. In een operationeel systeem zijn de gegevens vaak georganiseerd naar het
perspectief van een applicatie.
• Grote hoeveelheid gegevens
Bij een data warehouse gaat het om beheer van zeer grote aantallen gegevens. Dit komt mede door
het feit dat er historische gegevens dienen te worden opgeslagen (in principe wordt er in een data
warehouse niets verwijderd vanuit historisch perspectief). In tegenstelling tot een operationeel
systeem, waarbij vaak historische gegevens worden geüpdate, is het hier dus van essentieel belang
deze juist te bewaren.
• Samenvattingen en geaggregeerde gegevens
In operationele databases is er vaak een zeer grote mate van detail aanwezig in de gegevens. Een
data warehouse zal samenvattingen en aggregatie van gegevens moeten toepassen om tot goed
gebruik te komen van de data warehouse. Dit is een noodzaak om informatie te kunnen extraheren
die voor beslissingsondersteunde doeleinden worden gebruikt.
• Integratie en associatie van gegevens uit verschillende bronnen
De data warehouse “voedt” zichzelf via vaak al bestaande (operationele) systemen en
verschillende applicaties. Deze verschillende bronnen gebruiken vaak verschillende manieren
waarop hun gegevens worden opgeslagen en worden beheerd. Voor opname in de data warehouse
dienen de gegevens consistent te zijn en moeten bepaalde zaken geconverteerd worden. Dit alles
om een bruikbare data warehouse te verkrijgen.
• Multidimensionaliteit van gegevens
Gegevens die in een data warehouse worden opgeslagen kunnen vanuit meerdere dimensies
worden opgeslagen. Dit om er voor te zorgen dat de gegevens vanuit elk gewenst perspectief
bekeken en geraadpleegd kunnen worden. Een toepassing hiervan is de presentatie van gegevens
in een kubus i.p.v. de traditionele 2-dimensionale tabellen.
Nu we een beeld hebben gevormd van een data warehouse en zijn doelen kunnen we in de volgende
paragraaf doorgaan met het conceptidee achter een data warehouse. We doen dit door aan de hand van
een meer technisch perspectief naar een data warehouse te kijken.
1.2 De data warehouse architectuur
Het begrip data warehouses passeert vaak de revue in de vakliteratuur over databases. In deze
literatuur worden allerlei verschillende technische definities gebruikt voor een data warehouse.
Om een goed kader te geven aan het begrip data warehouse in technische zin is het noodzakelijk in te
zien dat we een data warehouse moeten beschouwen als een architectuur van deels al reeds bestaande
systemen en technieken. Een data warehouse is eigenlijk een architectuur voor het genereren van
informatie die kan ondersteunen bij bedrijfsbeslissingen op het tactisch en strategisch
managementniveau.
Nu zullen we een bespreking geven van de algemene architectuur van een data warehouse. Wanneer
het technische kader rond een data warehouse is geschept, kunnen we ons toespitsen op de
problematiek omtrent gegevensopslag in de volgende paragraaf.
In onderstaande figuur (figuur 1) zien we een algemene structuur van een data warehouse. Het figuur
is ontleend aan [SMKK98].
9
Figuur 1: De data warehouse architectuur
We zullen de verschillende onderdelen van de architectuur afzonderlijk bespreken in de nu volgende
paragrafen. Dit draagt bij aan het creëren van een goed inzicht in de architectuur van een data
warehouse, hetgeen weer belangrijk is als fundament voor het inzicht in de opslag van data in een data
warehouse.
1.2.1 De operationele systemen
Onder operationele systemen worden die systemen verstaan die in een bedrijf als dagelijks gebruik
dienen. Deze systemen zorgen voor de dagelijkse informatievoorziening van het bedrijf en bevatten
gegevens van alledag. Een operationeel systeem is vaak een eenvoudige database met relatief weinig
(complexe) informatie en een onderliggend informatiesysteem. We hebben reeds gezien wat de
kenmerken van dergelijke systemen zijn (paragraaf 1.1). Een belangrijk kenmerk van operationele
systemen is het ontbreken van een historie. De gegevens in een operationeel systeem zijn bedoeld voor
dag tot dag beslissingen. [Hobo97] spreekt over gegevens voor het draaiende houden van de
onderneming. Een belangrijk inzicht bij operationele systemen is dat ze van heel verschillende aard
kunnen zijn. De systemen kunnen zeer uiteenlopend zijn qua gegevensopslag, soort database, soort
informatie, manier van beheer, manier van retrieval van informatie (en daarmee samenhangend de
responsietijden). Voorbeelden zijn een Relational Database Management Systemen (RDBMS) of
andere, bijvoorbeeld, heterogene informatiesystemen. De bedoeling is nu om gegevens uit deze
operationele systemen als bron te gebruiken voor de data warehouse data. Om deze gegevens in een
data warehouse te kunnen opnemen is het noodzakelijk de gegevens te bewerken. Dit wordt gedaan
door de zogenaamde extractietools als de wrapper en de monitor. Deze worden in de volgende
paragraaf besproken.
1.2.2 De extractietools: Wrapper en Monitor
De wrapper is een stuk software dat er voor zorgt dat de informatie afkomstig uit de operationele
gegevenbronnen wordt geanalyseerd voor opname in de data warehouse. De gegevens dienen te
worden geselecteerd, getransformeerd en te worden opgeschoond alvorens ze worden doorgegeven
10
aan de zogenaamde integrator. De integrator zal in de volgende paragraaf worden besproken. De
wrapper gaat bijvoorbeeld kijken of de gegevensmodellen van de operationele gegevensbronnen
aansluiten bij het gegevensmodel van de data warehouse. Wanneer dit niet het geval is, zal de wrapper
een transformatie moeten maken van de presentatie van deze gegevens. Een voorbeeld van zo’n
transformatie is de presentatie van flat files in de vorm van een relationeel gegevensmodel (wanneer
de data warehouse gebruikt maakt van het relationele gegevensmodel).
De monitor heeft hetzelfde doel als de wrapper, maar focust op een ander punt. De monitor, zoals de
naam als suggereert, “monitort” op veranderingen in de operationele gegevensbronnen. Wanneer er
zich een wijziging voordoet in de operationele systemen, zal er een update moeten plaatsvinden van de
data warehouse. De monitor spaart veranderingen in de bronnen op en zal deze op gezette tijden
doorgeven aan de integrator. Dit is uiterst belangrijk, daar de data warehouse up-to-date dient te
blijven in vrijwel alle gevallen. De monitor bekijkt bijvoorbeeld veranderingen van bepaalde waarden
en formaten van de operationele systemen. Wanneer de data warehouse continu online moet zijn, zal
de monitor de veranderingen direct moeten doorgeven aan de integrator. Wanneer de data warehouse
af en toe offline kan zijn (denk aan ’s nachts of in het w eekend) is het mogelijk om op gezette tijden de
data warehouse te updaten (in deze offline tijd). Echter, in deze tijd, waar handel over de hele wereld
en dus in verschillende tijdzones plaatsvindt, is het zeer wenselijk de data warehouse continu online te
laten. Dit brengt met zich mee dat het maken van een update in de data warehouse niet zo gemakkelijk
meer is. Een probleem dat optreedt is het geval dat er concurrent gebruikt wordt gemaakt van bepaalde
updates en query-vragen. Dit probleem zal later nog aan de orde komen.
1.2.3 De Integrator
De integrator is een tool dat de data, na aanlevering door de wrapper /monitor, opmaakt voor opslag in
de data warehouse. Denk hierbij aan data die inconsistent is uit verschillende bronnen en data die
conflicten kunnen opleveren. Het uiteindelijke doel is het creëren van een data warehouse dat direct
kan inspelen op de vraag naar managementinformatie die nodig wordt geacht. De integrator is
voornamelijk bedoeld om de data klaar te zetten voor tools die het vervolgens in de data warehouse
laden.
1.2.4 De data warehouse gezien als database
De feitelijke database die als data warehouse wordt beschouwd kan op meerdere manieren worden
uitgelegd. In de data warehouse worden gegevens opgeslagen uit de externe bronnen. Dit kunnen
gegevens zijn die een afbeelding zijn van de externe bron (lees een view) of de feitelijke data. Deze
gegevens kunnen ook geaggregeerd zijn, d.w.z. dat ze zijn voorbewerkt door een eerdere aanvraag. Op
deze wijze ontstaat redundantie in de database. De wijze waarop de data warehouse is opgebouwd
hangt af van de gebruikte architectuur, relationeel of multidimensionaal.
1.2.5 De metadata
De metadata is een speciaal soort data in de data warehouse. Metadata laat zich het best uitleggen als
data over data. Hiermee wordt bedoeld data die wordt opgeslagen over de feitelijke data in de data
warehouse. Denk aan gegevens die iets vertellen over wanneer bepaalde data in de warehouse is
opgeslagen, wanneer er voor het laatst geüpdate is vanuit een bepaalde externe bron, etc.
Ook gegevens die iets zeggen over de creatie van gegevens in een data warehouse en het gebruik van
deze gegevens in een data warehouse vallen onder metadata.
1.2.6 De data mart
Een data mart is een verkleind data warehouse. Een data mart richt zich op speciale afdelingen van een
bedrijf en is dus ook bedoeld voor analyses t.b.v. 1 soort divisie. Aangezien de data mart niet binnen
de scope van deze scriptie valt, zal ik hier volstaan met een verwijzing naar een recent artikel over data
marts. Zie hiervoor het artikel van Rob Arntz voor de NSCCS 2000 [Arntz00].
11
1.2.7 De multidimensionale database
De multidimensionale database bevat, naast de gewone data warehouse, gegevens die worden
gepresenteerd in multidimensionale vorm. Dit zijn vaak geaggregeerde gegevens, die reeds zijn
voorbewerkt door de OLAP-server (uit eerdere query’s) en voor een snelle retrievaltijd van een
nieuwe query stand-by blijven. Wanneer nu een query wordt gelanceerd die de geaggregeerde
gegevens direct kan gebruiken, zonder ze eerst te hoeven berekenen uit de gewone data, kan deze
binnen een veel snellere retrievaltijd worden beantwoord. De data warehouse hoeft echter niet een
aparte database voor dit soort query’s te hebben. Het is goed mogelijk dat de data warehouse zelf een
multidimensionale gegevensopslag gebruikt. De multidimensionale database vormt een belangrijk
onderdeel van deze scriptie.
1.2.8 De Molap/Rolap server
De MOLAP-architectuur en ROLAP-architectuur zijn de twee verschillende architecturen die gebruikt
worden voor het uitvoeren van de analyses door de OLAP tools. De MOLAP architectuur is een
architectuur die zich baseert op het multidimensionale model. De geaggregeerde gegevens worden bij
deze architectuur in een aparte database opgeslagen naast de data warehouse. Deze database slaat de
gegevens multidimensionaal op. In dit geval is het niet nodig geaggregeerde gegevens op te slaan in de
feitelijke data warehouse. De server heeft voornamelijk tot doel de gebruikersvragen om te zetten in
complexe query’s (extended SQL ) die geschikt zijn om informatie te halen uit de data warehouse en
deze vervolgens in de vorm van een multidimensionale presentatie aan te bieden aan de OLAP tools.
De ROLAP architectuur is een architectuur waarbij de data warehouse wordt opgebouwd volgens het
relationele model. Hierbij dienen de OLAP tools de relationele structuur van de data warehouse te
benaderen. Multidimensionale aspecten van de gegevens dienen in een relationeel model te worden
opgeslagen. Dit is zeer wel mogelijk. [Hobo97] spreekt over een mythe die ontkracht wordt door
Sjoerd Hobo: “gegevens dienen multidimensionaal te worden opgeslagen indien men ze
multidimensionaal wilt benaderen.” Dit is pertinent onwaar.
1.2.9 De front end tools of OLAP tools
De front end tools zijn de gebruikersprogramma’s waarmee de eindgebruikers van de data warehouse ,
bijv. de manager die een analyse maakt, de data warehouse aanspreekt voor het uitvoeren van een
analyse. De front end tool lanceert de query, bijvoorbeeld geformuleerd in de vorm van een extended
SQL-query (hier komen we later op terug), en presenteert na acceptabele retrievaltijd het antwoord in
een duidelijke en overzichtelijke tabel of tabellen. Zo’n front end tool kan zijn een spreadsheet, een
data mining tool of andersoortige analyseprogramma’s zijn. [Hobo97] omschrijft OLAP tools als
“gereedschappen die gebruikt worden om gegevens te analyseren, de resultaten te visualiseren en die
mogelijkheden bieden informatie samen te stellen als resultaat van die analyse.” Deze definitie dekt de
drie belangrijke functies van deze tools. Analyse, presentatie en samenstelling van informatie vormen
de hoofdtaken van een OLAP tool.
1.3 Problematiek omtrent de opslag van data en integratie van constraints
In deze scriptie zullen we verschillende kanten van de data warehouse belichten. Het uitgangspunt
hierbij is de verschillende problemen die spelen bij de opslag en benadering van data in een data
warehouse in kaart te brengen. We zullen hiervoor het gebruik van constraints in een data warehouse
als rode draad nemen. Het gebruik van constraints in data warehouses is namelijk een ondergeschoven
kindje in het huidige onderzoek naar data warehouses. We laten de importantie van een goede
constraint set aan het licht komen. We benaderen het gebruik van constraints in een data warehouse op
twee verschillende manieren: vanuit het concept van de data cube en het star join schema.
Het dimensionale model, waarop data warehouses worden gemodelleerd, wordt krachtig
geïntroduceerd en diep geanalyseerd. Aan de hand van een case zullen we de werking van de
verschillende concepten in dit model demonstreren. Een link met het relationele model is
onontbeerlijk: veel inzichten van dit model kunnen we doortrekken naar het dimensionale model.
12
We bekijken hiertoe de manier waarop constraints worden gedefinieerd in het relationele model. Dit
doen we uitgebreid aan de hand van de modelleringstechniek PSM. Na introductie van een
modelleringstechniek voor het dimensionale model, het zogenaamde Nested Data Cube model (NDC),
proberen we de lijn van deze constraints door te trekken naar dit model.
Ons uiteindelijke doel is het aanreiken van mogelijkheden en inzichten om constraints in het
dimensionale model te beschrijven in de NDC algebra of soortgelijke algebra’s. Dit doen we
ondermeer door de verschillende problemen uit de beide modellen te vergelijken (o.a. het modelleren
van de belangrijke aggregatiemogelijkheden uit het dimensionale model in het relationele model).
Het belang van een goede en formele beschrijving van constraints in een data warehouse is zeer groot.
Dit wordt duidelijk gemaakt aan de hand van verschillende invalshoeken.
We zullen ter verduidelijking de inhoud van deze scriptie even kort bespreken. Hoofdstuk 1 geeft de
contextbepaling weer. We bespreken het concept data warehouse op verschillende manieren en geven
de problemen weer van het huidige onderzoek naar data warehouses. Tevens bakenen we het
probleemgebied van deze scriptie af. Hoofdstuk 2 introduceert het dimensionale model aan de hand
van een casebeschrijving. Tevens kijken we naar PSM en de benadering van constraints in dit model.
Hoofdstuk 3 diept het dimensionale model helemaal uit met een beschrijving van de data cube en de
problematiek omtrent constraints in een data warehouse wordt hierin uitgemeten. Hoofdstuk 4
introduceert het NDC model en diens algebra en maakt een vergelijking tussen het dimensionale
model en het relationele model. Verschillende problemen binnen data warehouses komen hier aanbod,
zoals view maintenance, de uitdrukkingskracht van de NDC algebra, de modellering van relationele
operatoren in de NDC algebra, de benadering van aggregaties en de modellering hiervan in het
relationele model. Tenslotte geven we een handreiking naar de mogelijkheid om de constraints in het
dimensionale model te beschrijven op een manier waarop dit binnen PSM is gedaan. De “taal”
hiervoor zou de NDC algebra kunnen zijn.
Als laatste in deze paragraaf een kleine technische sectie ter verduidelijking van de manier waarop
data wordt opgeslagen in een data warehouse.
1.3.1 Iets over data opslag in data warehouses
Het uiteindelijke doel van een data warehouse is het direct kunnen inspelen op de vraag naar
managementinformatie die nodig wordt geacht. Hierdoor dient de data warehouse een zeer flexibele
“houding”aan te nemen. Deze “houding”moet het mogelijk maken om bepaalde complexe en zeer
uiteenlopende vragen (lees: zeer complexe query’s, gesteld via bijvoorbeeld een spreadsheet -achtige
applicatie) zeer snel te kunnen verwerken. Het format van een data warehouse kan zeer uiteenlopen.
Er zijn drie manieren om de warehouse data op te bouwen: top-down, bottom-up en een hybride
manier, die de twee eerste combineert. Bij de top-down manier gaat het erom dat de bronnen direct
worden aangesproken om de warehouse data te creëren. Dit gaat op basis van de bestaande data
warehouse applicaties. Eenvoudige, vaak gebruikte en bekende query’s zijn reeds uitgevoerd en
opgeslagen in de data warehouse. Al het voorwerk is dus reeds gedaan. Bij bottom-up worden de
acties pas uitgevoerd, zodra er een vraag wordt gesteld aan de data warehouse. De gecombineerde,
hybride versie maakt gebruikt van sommige reeds bewerkte data uit de data warehouse en sommige
onbewerkte data rechtstreeks uit de bronnen.
Een manier om de data warehouse met deze grote mate van flexibiliteit te laten werken kan gedaan
worden door de data warehouse op te laten bouwen volgens het multidimensionale datamodel.
Het idee hierachter is dat data op zo een manier wordt opgeslagen dat alle mogelijkheden van
interpretatie van de data nog mogelijk zijn. De noodzaak van deze benadering is dat data warehouses
niet kunnen worden ontworpen met traditionele methoden. In legacy systemen (operationele systemen)
worden vaak eenvoudige query’s uitgevoerd. Bij data warehouses moeten zeer ingewikkelde query’s
kunnen worden uitgevoerd. Dit vraagt om een zeer flexibele opslag van gegevens (zoals we al zeiden:
alle mogelijke interpretaties moeten nog open liggen). Een voorbeeld hiervan is het gebruik van vele
join-operaties op de opgeslagen gegevens (dit blijkt vaak voor te komen bij data warehouses).
13
Het multidimensionale datamodel maakt gebruik van zogenaamde feiten en dimensies. Feiten bevatten
de eigenlijke data en dimensies geven een interpretatie van deze gegevens. Hierdoor ontstaan
redundantie, maar dit is juist de bedoeling. Een voorbeeld van een multidimensionaal datamodel is de
zogenaamde data cube.
14
2 Constraints in een data warehouse, een verkenning via PSM
In dit tweede hoofdstuk zullen we beginnen met een korte introductie van het dimensionale model,
waarbij we dit model demonstreren aan de hand van een case. Vervolgens verleggen we het accent
naar de modelleringstechniek PSM. PSM zal worden geformaliseerd en als basis dienen voor de
beschrijving van constraints in het dimensionale model. De semantiek van PSM die in deze exercitie
wordt beschreven zal als eerste in een reeks van twee formalisaties (waarbij de NDC’s uit hoofdstuk 4
de tweede vormen) dienen als uitgangspositie voor een beschrijving van constraints in een data
warehouse.
2.1 Korte introductie van het dimensionale model
Ten grondslag aan een data warehouse ligt het dimensionale model. [Kim96] spreekt over het
dimensionale model en [SMKK98] heeft het over het multidimensionale model. De heren Kimball en
Samtani c.s. spreken naar mijn mening over hetzelfde model. Op exact dezelfde wijze wordt het model
opgebouwd en met precies dezelfde vocabulaire. Het conceptuele idee wordt echter op een iets andere
manier benaderd. Waar Kimball het heeft over het Star-join schema spreekt Samtani c.s. over de data
cube. Beide benaderingen zullen worden gebruikt om zo een verschillende toenadering te maken naar
het gebruik van constraints in dit model.
Aangezien een bespreking van dit model later uitgebreid wordt beschreven, is een korte introductie
hier noodzakelijk voor een goed begrip van de problematiek rond constraints.
In dit model hebben we te maken met een feitentabel en dimensietabellen. De feitentabel bevat alle,
veelal numerieke en optelbare gegevens (bijvoorbeeld totale verkopen, totaal aantal verkochte
eenheden) over elke mogelijke combinatie van de dimensies. Deze tabel is dus vergeleken met de
dimensietabellen zeer groot. De dimensietabellen hebben een dimensie als uitgangspunt. Een dimensie
moet opgevat worden in dit verband als een variabel gegeven waarin informatie uit de feitentabel
worden opgeslagen. Voorbeelden van zulke dimensies zijn tijd (denk aan jaren, kwartalen, maanden,
weken, etc.) soort product (soort product, beschrijving, merk, etc.) en geografische ligging (Europa,
Azië, Australië, USA, etc.). De dimensietabellen bevatten naast een dimensie-key (de unieke sleutel
voor elk record in de dimensietabel) een reeks attributen die de dimensie verder beschrijven. Deze
attributen zijn dan ook vaak van tekstuele aard. De attributen van de dimensietabel worden
voornamelijk gebruikt om bij query-aanvragen (lees extended SQL, want daar hebben we het over bij
data warehouses) te dienen als bron voor het kunnen gebruiken van constraints en “row headers”. Dit
laatste geeft aan dat dit het hoofdattribuut wordt in het antwoord op de gestelde query-vraag van het
systeem naar de eindgebruiker (de SQL gebruiker). Ter verduidelijking van dit model volgt in de
volgende paragraaf een uitwerking van een voorbeeld.
2.1.1 Een case uitwerking
In deze paragraaf zal een case worden beschreven die verder als voorbeeld zal dienen bij de
verduidelijking van zo’n dimensionaal model. Als eerste zal er een korte introductie plaatsvinden
waarin de case beschreven wordt. Vervolgens zullen de gegevens uit deze case worden geplaatst in het
dimensionale model. Aan de hand van de invulling in dit model zal het model verder worden
uitgediept.
2.1.1.1 Introductie van de case
Een E-commerce bedrijf, genaamd Down Under, gevestigd in Sydney, Australië verkoopt CD’s aan de
consument via het Internet. Het bedrijf biedt deze CD’s aan via een interactieve website waarop de
consument zijn bestelling kan plaatsen. We spreken hier dus over een B2C (Business 2 Consumer)
bedrijf en laten de B2B-tak (Business 2 Business) hier dus helemaal weg. Op deze website bevinden
zich allerlei opties om het voor de consument makkelijk te maken om kiezen. Men kan zoeken in de
online database op auteur, titel, jaar van verschijnen, genre etc. Van de in de database aanwezige en
15
dus leverbare CD’s is het mogelijk om een track listing op te vrage n. Wanneer een bestelling is
geplaatst kan de wijze van betaling worden opgegeven. Dit kan op drie manieren. Allereerst kan online
de creditcard gedebiteerd worden, ten tweede kan een factuur in de vorm van een acceptgiro worden
meegestuurd met de bestelling (waarmee men achteraf kan betalen) en als laatste is er nog de
mogelijkheid om de bestelling zelf af te halen en contant te betalen. Voor de distributie van de CD’s
gebruikt men regionale centra om de vervoers- en transactiekosten zo laag mogelijk te houden. Het
bedrijf zorgt zelf voor de levering van de goederen, zodat men vanuit deze regionale centra
distribueert naar de consument. Deze centra houden er dus zelf een magazijn op na. De centra zijn
gevestigd in Darwin voor verspreiding in Northern Territory, Perth voor verspreiding in West
Australia, Brisbane voor verspreiding in Queensland en Sydney voor verspreiding in New South
Wales, South Australia, Victoria en Tasmanië.
Er zijn dus vier van deze regionale centra, waarbij het hoofdkantoor in Sydney een groot deel voor
haar rekening neemt. Down Under levert dus alleen aan consumenten binnen Australië.
Sinds kort heeft Down Under het plan opgevat om ook te gaan leveren in Nieuw Zeeland. De levering
gebeurt vanuit het kantoor in Sydney, maar door de hoge transportkosten en lange levertijd is het
bedrijf een distributiepunt gestart in Auckland, Nieuw Zeeland. Het loopt goed, dus het distributiepunt
blijft bestaan. De levering gebeurt eens per maand met kleine vans vanuit de distributiepunten die de
bestellingen gaan afleveren. Een voordeel van deze manier is dat wanneer een CD niet op voorraad is,
men deze tijdig kan bestellen en als nog binnen het gestelde termijn kan leveren.
Voor de case gaan we er even vanuit dat het bedrijf dus geen gebruik maakt van de bestaande
postdiensten (in Australië is dit in de dunbevolkte delen toch een lastig vraagstuk, daar hier zeer
zelden de posterijen de consument aandoen en dan nog per vliegtuig).
Omdat het bedrijf zich inzicht wil verschaffen in de verschillende verkopen en een nauwkeurige
analyse wil maken van de historische cijfers m.b.t. de invloed van seizoenen, levertijd, genreverkopen,
etc. etc. is het noodzakelijk dat er een data warehouse wordt aangelegd om deze analyses mogelijk te
maken. Met dit hulpmiddel (de data warehouse) en de daaraan gekoppelde analyses kan men de
strategie voor de toekomst bepalen en zo ook beter inspelen op de commerciële problematiek.
Beslissingen op tactisch en strategisch niveau kunnen beter worden onderbouwd.
Een opmerking die op deze plaats gemaakt dient te worden is, dat vanwege de eenvoud van het
voorbeeld slechts 1 feitentabel wordt gedefinieerd. In een data warehouse heeft men altijd te maken
met zeer veel feitentabellen met allen, soms verschillende dimensies.
2.1.1.2 De case wordt in het dimensionale model gegoten
Als eerste moeten we bepalen wat de belangrijke structuur vormt voor de data warehouse. Hiermee
wordt bedoeld welke gegevens interessant zijn om opgenomen te worden in de data warehouse.
Dit is een eerste stap in het bepalen van de dimensies. In onze case is het product, de CD, een aparte
dimensie. Men wil precies weten welke CD wat waar doet. Ten tweede is er natuurlijk de bijna
standaard aanwezige tijddimensie en als derde is er de geografische dimensie. Deze dimensies zijn
bijna zo goed als standaard in een productiebedrijf en een handelsbedrijf. In ons geval moet de vraag
worden gesteld of er nog een extra dimensie dient te worden toegevoegd. Gemakshalve doen we dat
hier niet, om de eenvoud van het voorbeeld te behouden. Een dimensie die [Kim96] aanhaalt is ook
een vaak voorkomende, namelijk de promotiedimensie. Hierbij gaat het erom of de verkoop van
bepaalde producten afhangt van bepaalde promotionele activiteiten, zoals bonnen, aanbiedingen of
reclamedrukwerk.
Nu we de dimensies Tijd, Geografie en Product hebben afgeleid dient de opmerking te worden
gemaakt dat in de feitentabel het betalingsverkeer wordt opgenomen. De wijze van betaling,
creditcard, acceptgiro of cash, wordt aangegeven in de vorm van omzet per soort betaling in de
feitentabel. Nu we de basisconstructie voor het dimensionale model hebben afgeleid, kunnen we dit in
een eerste schema zetten. Zie hiervoor figuur 2. We zien de feitentabel in het midden van de figuur.
Deze bevat de specifieke gegevens over de verkoop en afzet van de CD’s. Aangezien dit een in
principe onuitputtelijke lijst is, geven we een aantal voorbeelden van zulke cijfers. Het aantal
verkochte eenheden is een voorbeeld van zo’n cijfer. Als men nadenkt over de betekenis van dit veld
zie je vanzelf dat het een combinatie is van de reeds gedefinieerde dimensies. Ook de wijze waarop de
16
betaling plaatsvindt kan men definiëren in de feitentabel. Denk hierbij aan het feit dat de
betalingswijze nergens is opgenomen binnen de gedefinieerde dimensies!
Figuur 2: Het dimensionale model voor Down Under, de Verkoop feitentabel
De sleutels die genoemd staan in de feitentabel komen altijd voort uit de reeds gedefinieerde
dimensies. Een unieke combinatie van Tijd, Plaats en Product leveren de records op voor de
feitentabel. De echte analytische gegevens staan dus in de feitentabel, terwijl de beschrijvende
gegevens in de dimensietabellen staan!
Nu we het basisidee te pakken hebben, is de volgende stap in onze casebeschrijving de invulling van
de dimensieattributen die de dimensies moeten beschrijven. Zoals we zullen zien spelen deze
dimensieattributen een belangrijke rol in het gebruik van constraints. Hierover later meer in dit
hoofdstuk en hoofdstuk 3.
De dimensie Tijd heeft een verdeling in jaren, maanden, dagen etc. Dit zijn sowieso attributen die
moeten worden opgenomen, maar ook vakanties, weekends, uitverkoopdagen dienen te worden
opgenomen in de dimensie Tijd. In de productdimensie worden zaken opgenomen titel, artiest, genre,
jaar van verschijnen, een attribuut dan aangeeft of het een single of cd betreft, platenmaatschappij etc.
etc. Let erop dat dit niet altijd zaken zijn die hiërarchisch of causaal een relatie met elkaar
onderhouden. We zullen later zien dat dit geen problemen oplevert met SQL-aanvragen. In de
geografische dimensie worden zaken opgenomen als verkocht in Australië of Nieuw Zeeland, geleverd
uit welke stad, verkocht in welke regio of stad (uit welke gedeelten van het land of welke steden
worden de CD’s gekocht) etc. Wanneer we dit in een schema pl aatsen komen we uit bij figuur 3.
De attributen die de dimensies bevat geven aan de SQL-vragensteller de mogelijkheid om binnen de
dimensies afbakeningen te regelen. Dit gebeurt in de vorm van beperken van velden binnen deze
dimensies. Binnen de dimensie “Tijd”kan bijvoorbeeld worden beperkt op een bepaald jaar of
bepaalde maand. Om nu een concrete uitwerking van zo’n vraagstelling te geven, volgt nu een
invulling van het dimensionale model van Down Under m.b.t. tot de verkooptabel. In de vorm van vier
invullingen van de feitentabel en de drie dimensietabellen zal worden geprobeerd het principe van een
aanvraag te verduidelijken.
17
Figuur 3: De dimensies met de dimensieattributen van de Down Under verkooptabel
We zullen dit doen in de volgende paragraaf.
2.1.1.3 Case invulling van het geschetste model van Down Under
Allereerst maken we een invulling van de drie dimensietabellen met daarin alle in figuur 3 genoemde
dimensieattributen. We moeten wel realiseren dat dit een zeer klein fragment is van de werkelijke
grootte van de tabel. In het echt zijn dit vele malen grotere tabellen. Voor de doeleinden die we hier
echter willen demonstreren, is een tabel van deze grootte uitermate geschikt.
Plaatssleutel Distributiecentrum State/Department Plaats Land
1 Darwin Northern Territory Katherine Aus
2 Darwin Northern Territory Darwin Aus
3 Perth Western Australia Perth Aus
4 Perth Western Australia Broome Aus
5 Perth Western Australia Hyden Aus
6 Auckland n/a Wellington NZ
7 Sydney New South Wales Tamworth Aus
Tabel 1: Invulling van de geografische dimensietabel
Productsleutel Artiest Titel Platenmy jaar Genre Single
1 Springsteen, Bruce Greatest Hits Columbia 1995 Rock nee
2 Springsteen, Bruce Nebraska Columbia 1982 Rock nee
3 Police, The Outlandos d'Amour A&M 1978 Pop nee
4 Lauper, Cyndi Hat Full Of Stars Epic 1993 Pop nee
5 Foreigner 4 Atlantic 1981 Rock nee
Tabel 2: Invulling van de productdimensietabel
18
Tijdsleutel Maand Maandnr Weekend Schoolvak. Dagnummer Opruimingsdag Kwartaal Jaar
1 Jan 1 Nee Nee 18 nee 1 2000
2 Jan 1 Nee Nee 19 ja 1 2000
3 Mrt 3 Nee Nee 55 nee 1 2000
4 Mrt 3 Nee Nee 56 nee 1 2000
5 Mei 5 Nee Nee 131 nee 2 2000
6 Mei 5 Nee Nee 133 nee 2 2000
7 Dec 12 Nee Ja 350 nee 4 2000
Tabel 3: Invulling van de tijddimensietabel
Tabel 1, 2 en 3 geven een fragment van de invulling van de dimensietabellen weer. Alle
dimensierecords hebben een unieke sleutel in de vorm van, in dit geval, een nummer. Voor de
dimensieattributen is een invulling gemaakt. In de volgende tabel 4 zien we een fragment van de
invulling van de feitentabel Verkoop van Down Under. Zoals hier duidelijk zichtbaar is, vormt de
samengestelde sleutel een combinatie van sleutels uit de dimensietabellen (visueel gezien kun je dit
voorstellen als de data cube met zijn hokjes waarin elke waarde betrekking heeft op een combinatie
van de dimensies!)
Plaatssleutel Tijdsleutel Productsleutel Aantal
verkocht
Omzet #
Creditcard
#
Acceptgiro
#
Cash
#
Terug
1 1 1 4 400 3 1 0 0
1 1 2 5 520 1 4 0 0
2 2 2 6 650 6 0 0 0
2 1 2 4 400 0 4 0 0
1 1 3 7 850 5 2 0 0
1 1 4 3 400 3 0 0 1
2 1 1 2 170 0 2 0 0
Tabel 4: Invulling van de feitentabel Verkoop
Per record is in de feitentabel aangegeven welke cijfers zijn bepaald voor de verschillende producten,
tijden en plaatsen. Voor een goed inzicht zullen we het eerste record even tekstueel uitschrijven.
In het eerste record hebben we te maken met de unieke plaats-, tijd- en productsleutel 1. In een zin
beschreven betekent dit dat dit record in de feitentabel iets zegt over het aantal verkochte albums van
Bruce Springsteen met Greatest Hits op 18 januari 2000 in Katherine verspreidt via het
distributiekantoor in Darwin. Van de vier personen die deze CD in huis hebben gehaald op die dag
hebben er drie met creditcard online betaald en eentje via een acceptgiro. Nu zegt die zeer specifieke
informatie natuurlijk erg weinig en lijkt deze informatie van weinig waarde. De kracht zit hem echter
in het feit dat je selecties kunt maken in de attributen en joins kunt maken met de verschillende
dimensietabellen.
Omdat dit concept uitgebreid aan de orde komt bij de bespreking van de verschillende constraints in
de volgende paragrafen wil ik het hier laten bij een SQL voorbeeld die de werking zal verduidelijken.
SELECT p.artiest, sum(f.aantal_verkocht)
FROM feitentabel f, product p, tijd t, geografie g
WHERE f.productsleutel = p.productsleutel AND f.tijdsleutel = t.tijdsleutel AND
f.plaatssleutel = g.plaatssleutel AND g.state/department = “Northern Territory”
AND p.genre =”Rock”
GROUP BY p.artiest
ORDER BY p.artiest
19
Bovenstaand stukje SQL is een eenvoudig voorbeeld over een mogelijke query die gesteld kan worden
aan ons systeem, beschreven in de case. Door middel van de joins tussen de dimensietabellen en de
feitentabel (de sleutel matching) is het mogelijk om attributen uit de verschillende dimensies op te
nemen in het antwoord. De matching van de attributen uit de dimensietabellen zorgt ervoor dat het
antwoord wordt afgebakend op precies die informatie die je wilt hebben. Hier gaat het dus om
artiesten uit het rockgenre en CD’s die verspreidt zijn in het Northern Territory. Wanneer deze query
wordt losgelaten zal het volgende antwoord worden gegenereerd. Zie tabel 5.
Artiest SUM(aantal_verkocht)
Foreigner 0
Springsteen, Bruce 21
Tabel 5: Gegenereerd antwoord
Tot zover de uitwerking van deze case. Het dimensionale model heeft hiermee een duidelijk voorbeeld
gekregen in de vorm van een reële uitwerking. Nu is de basis gelegd voor een verdere analyse naar het
gebruik van constraints toe in dit model.
2.2 Constraints in het dimensionale model, een benadering via het relationele model
Nu dit model is geschetst is de basis gelegd voor een introductie van de constraints die een rol spelen
in dit model. Als eerste kijken we naar de benadering die gemaakt wordt door [SMKK98]. Vanuit het
perspectief van relationele databases wordt geprobeerd de lijn door te trekken naar het dimensionale
model als basis voor een data warehouse. Bij het ontwerpen van relationele databases wordt in de
conceptuele gegevensmodelleringsfase al rekening gehouden met het gebruik van constraints.
Constraints worden gebruikt om bepaalde zaken te verplichten dan wel te verbieden bij het maken van
bijvoorbeeld een voorbeeldpopulatie van het gegevensmodel (wat natuurlijk een afbeelding van de
werkelijkheid is! Denk hierbij aan het Universe of Discourse). Dit komt reeds tot uiting in de
conceptuele fase. Constraints die hierbij optreden zijn als volgt te categoriseren.
• Key constraints
• Referential integrity constraints
• Not Null constraints
• Relation-based check constraints
• Attribute-based constraints
• General assertions
Voordat we verderop ingaan op de wijze waarop de tweedeling van constraints van [SMKK98] tot
stand komt vanuit dit relationele perspectief, is het op zijn plaats hier een link te leggen naar de
gegevensmodellering met behulp van PSM (Predicator Set Model, zie voor een uitgebreide
beschrijving van PSM [Hof94]). In [Hof94] wordt namelijk een goede en uitgebreide beschrijving
gegeven van de constraints zoals die hierboven door [SMKK98] zijn gecategoriseerd. We zullen nu
een korte informele beschrijving geven van één van deze constraints. Een key constraint is in de
wereld van PSM een zogenaamde uniqueness constraint. Deze constraint zorgt ervoor dat een
populatie in een gedeelte van het feittype (een tabel in het relationele model) maar 1 keer mag
voorkomen. Dit gedeelte kan slaan op slechts 1 veld, maar ook op meerdere velden. Het gedeelte van
het feittype dat hieraan moet voldoen wordt de sleutel genoemd, vandaar ook de term key constraint.
Ook kan een uniqueness constraint over meerdere feittypes gaan en zelfs over nog meer
gecompliceerde structuren. Dit zullen we hier buiten beschouwing laten. In PSM wordt gebruikt
gemaakt van een relationele algebra om de semantiek van verschillende constraints te kunnen
beschrijven. Sommige constraints, waaronder ook de uniqueness constraint, hebben ook een grafische
notatie in PSM-schema’s.
We zullen nu aan de hand van de formele definities van de verschillende soorten constraints een basis
creëren voor de constraints die later in het dimensionale mode kunnen worden beschreven. We zullen
voortborduren op het reeds aangehaalde PSM. In de volgende subparagraaf wordt als eerste een
20
introductie gegeven van PSM en vervolgens zullen, verderop, de verschillende constraints worden
besproken. Deze uitstap naar PSM vormt een belangrijke basis voor de latere formalisering van
constraints in het dimensionale model. We kiezen PSM als uitgangspunt voor zo’n formalisering.
2.2.1 Introductie van PSM
Aangezien er vele informatiemodelleringmethoden zijn (Bijv. ER-diagrammen), is het weinig zinvol
hier een algemeen betoog te houden over deze verschillende methoden. Voor het doel, het construeren
van constraints in het dimensionale model, beperken we ons hier tot NIAM en PSM. NIAM is een
informatiemodelleringstechniek die gebruikt wordt als basis voor de constructen van PSM. Je kunt
NIAM als een soort voorloper beschouwen. In [Hof94] wordt op basis van een introductie van NIAM
verder gebouwd aan de constructies die mogelijk zijn in PSM.
De manier waarop we de constructies en constraints in PSM introduceren en bespreken zal gaan aan
de hand van een aantal figuren uit [Hof93] en [Hof94]. [Hof93] is het proefschrift waarop het
collegedictaat [Hof94] is gebaseerd. Het eerste figuur (figuur 4) staat echter alleen in [Hof93], met
daarbij een interessante sectie over constraints, waar later nog kort gebruik van wordt gemaakt.
Aan de hand van dit figuur maken we een analyse van de voorkomende constructen. We bekijken
figuur 4.
Figuur 4: PSM schema inzake Amerikaanse presidenten
In dit figuur zien we de verschillende (niet alle) constructen in de modelleringtechniek PSM. De
belangrijkste en opvallende grafische notaties zijn de bollen, blokjes en de relaties hiertussen.
We zullen eerst een korte informele bespreking geven van de verschillende onderdelen uit het figuur.
De bollen stellen de objecttypes voor, die weer onderverdeeld kunnen worden in labeltypes en
entiteittypes. Labeltypes worden in dit schema aangegeven met de haakjes ( ). De rest van de bollen
zijn entiteittypes. Tussen de bollen, de entiteiten, geven de blokjes relaties aan tussen deze entiteiten.
Zo’n relatie (1,2 of meer blokjes) wordt een feittype genoemd. De namen bij de blokjes worden
21
predicatoren genoemd. De pijltjes in het schema hebben betrekking op constraints. Hier gaan we later
op in.
We zullen nu een consistente en formele notatie invoeren voor zo’n PSM schema als figuur 4. Figuur
4 wordt, zonder de constraints te beschrijven, een informatiestructuur genoemd. Een
informatiestructuur bestaat uit een vijftiental onderdelen. De verzameling van deze onderdelen vormen
samen een informatiestructuur, aangeduid met het symbool I.
De vijftiental onderdelen worden hieronder beschreven.
1. Een eindige verzameling van predicatoren, genoteerd met P
2. Een niet lege, eindige verzameling van objecttypes, genoteerd met O
3. Een verzameling labeltypes, genoteerd met L, waarbij geldt L⊆O
4. Een verzameling entiteiten (of entiteittypes), genoteerd met
  , waarbij geldt
  ⊆O
5. Een partitie F van de verzameling van predicatoren P. F is een verzameling van feittypes. Een
predicator speelt een rol in een feittype. De functie Fact: P ¡ F geeft bij elke predicator het
feittype waarin deze voorkomt. De definitie van deze functie is Fact(p) = f ¢ p £ f. Er geldt
tevens F ⊆O
6. Een verzameling G van powertypes. Er geldt G⊆O
7. Een verzameling S van sequentietypes. Er geldt S⊆O
8. Een verzameling C van schematypes. Er geldt C⊆O
9. Een functie die een predicator verbindt aan zijn basis uit de verzameling objecttypes. De definitie
is Base: P ¡ O
10. Een functie die het elementtype van een powertype of sequentietype oplevert. De definitie is Elt:
G ¤ S ¡ O
11. Een relatie die de elementen van een schematype verbindt met het schematype. De definitie is ¥ ⊆
C ¦ O
12. Een binaire relatie Spec op objecttypes, die specialisatie vastlegt
13. Een binaire relatie Gen op objecttypes, die generalisatie vastlegt
14. Een algebra D die opgebouwd wordt uit de verzameling D van concrete domeinen (bijv. strings,
int, natno, long int, etc) en de verzameling F van operatoren (bijv. +, -, *, etc). Definitie D =
<D,F>
15. Een functie Dom: L ¡ D. Deze functie verbindt alle labeltypes aan een concreet domein uit D. De
instanties van labeltypes (denk bijv. aan een naam) komen uit een dezer domeinen.
Deze 15 onderdelen vormen samen dus I. De notatie voor zo’n informatiestructuur ziet er als volgt uit:
I = <P, O, L,
  , F, G, S, C, Base, Elt, ¥¨§ Spec, Gen, D, Dom>
Een informatiestructuur I moet voldoen aan een reeks voorwaarden die in [Hof94] uitgebreid wordt
besproken. Het is niet erg zinvol om deze hier te beschrijven. Vandaar een verwijzing op deze plek
naar [Hof94], de voorwaarden PSM1 t/m PSM11 over de regels m.b.t. de constructie van PSM-
schema’s, de type-gerelateerdheid van objecten zijn vastgelegd in de regels T1 t/m T8. Deze zijn te
vinden op blz.46 t/m 52 van [Hof94]. Een derde soort voorwaarden, voor ons de interessantste, gaat
over de toegestane populaties in de informatiestructuren. Toegestane populaties leggen de semantiek
van een data model vast, in dit geval een PSM schema. Hieruit is direct de link te leggen met
constraints, die immers bepaalde populaties toestaan dan wel uitsluiten.
Voor we echter verder gaan met populaties in PSM schema’s, schrijven we eerst het genoemde
voorbeeld uit in de zojuist geïntroduceerde notatie. Hiertoe zullen we de verzamelingen definiëren.
P = {headed-by, being-president-of, having-as-vice-president, being-vice-president-of, inaugurated-in,
being-inauguration-year-of, resulting-from, resulting-in, being-spouse-of, having-spouse-as, p1, p2,
p3, won-by, winning, having-as, of, being-member-of, having-as-member, born-in, being-birthstate-of,
serving, being-served-by, dying-at, being-age-at-death-of}
22
O = {Administration, Adm-nr, Person, Person-name, Nr-of-votes, Nr, Election, Elec-Id, Nr-of-
children, Politician, President, Year, Year-nr, Age, Nr-of-years, State, State-name, Party, Party-name,
Hobby, Hobby-name, Marriage, Admin-pres, {having-as-vice-president, being-vice-president-of},
Election-results, {won-by, winning}, {inaugurated-in, being-inauguration-year-of}, Family-size,
Birthyear, {having-as, of}, {being-member-of, having-as-member}, Birthstate, {serving, being-served-
by}, {dying-at, being-age-at-death-of}}
L = {Adm-nr, Person-name, Nr, Elec-Id, Year-nr, Hobby-name, Party-name, State-name}
 
= {Administration, Person, Nr-of-votes, Election, Year, Age, Nr-of-years, State, Party, Hobby,
President, Politician, Nr-of-children}
F = {Admin-pres, {having-as-vice-president, being-vice-president-of}, {won-by, winning},
{inaugurated-in, being-inauguration-year-of}, {having-as, of}, {being-member-of, having-as-
member}, Birthstate, {serving, being-served-by}, {dying-at, being-age-at-death-of}, Election-results,
Family-size, Marriage, Birthyear}
G = ¡
S = ¡
C = ¡
Verder geven de gedefinieerde functies en relaties de volgende (gedeeltelijke) invulling:
President Spec Politician
Politician Spec Person
Fact(headed-by) = Admin-pres
Fact(won-by) = {won-by, winning}
etcetera
Base(being-served-by) = Nr-of-years
Base(of) = Hobby
etcetera
Dom(Hobby-name) = string
Dom(Year-nr) = integer
etcetera
De overige functies en relaties zijn hier niet gedefinieerd, omdat sommige constructies (zoals
powertypes) ontbreken in het voorbeeld PSM schema.
Een eerste opmerking die hier dient te worden gemaakt m.b.t figuur 4 betreft het feit dat feittypes op
twee manieren kunnen worden weergegeven. Ten eerste is een naamgeving aan het construct feittype
mogelijk, zoals we zien bij Admin-pres. Een andere mogelijkheid is het feittype aan te duiden als een
verzameling van zijn rollen (of predicatoren). Het feittype {having-as, of} is zo’n voorbeeld.
Een tweede opmerking betreft het construct Marriage uit figuur 4. Het gaat hier om een zogenaamd
geobjectificeerd feittype. Dit is een feittype dat door middel van objectificatie (grafisch gezien als een
bol over het feittype) wordt getransformeerd tot een entiteit die zelf weer rollen kan spelen in feittypes.
Hoe zo’n geobjectificeerd feittype dient te worden behandeld, zal worden besproken bij de
beschrijving van populaties in PSM.
23
2.2.2 Populaties in PSM
In een PSM schema, met constraints nog buiten beschouwing latend, kunnen populaties worden
gedefinieerd. Een populatie moet men zien als een invulling van een informatiestructuur I aan de hand
van de gedefinieerde objecten (objecttypen). Zo’n invulling is een eindige verzameling van instanties
die aan de objecttypes uit O worden toegewezen. Uiteraard moet de invulling voldoen aan de regels
van de informatiestructuur I. Deze zullen we definiëren in een volgende subparagraaf.
Als eerste moeten we definiëren wat nu precies een populatie is.
[Hof94] definieert een expressie (predikaat) IsPop(I,Pop). Dit predikaat geeft de waarde TRUE als
een populatie Pop op I kan worden toegepast. Anders gezegd: I heeft een geldige populatie in Pop.
Wanneer Pop een populatie is van I, dan is Pop een afbeelding van alle objecttypes uit O op  ¢¡¤£¥ (¦ ).
Deze laatste verzameling bestaat uit alle eindige deelverzamelingen van de universe of instances.
De universe of instances ¦ bevat alle mogelijke instanties die in een informatiestructuur kunnen
optreden. Deze universe of instances wordt in de volgende subparagraaf inductief gedefinieerd.
Belangrijk is te zien dat ¦ een zeer algemene verzameling is die voor ALLE (geldige)
informatiestructuren een basis vormt voor een geldige populatie. Anders gezegd: Een populatie voor
een informatiestructuur I is een invulling van objecttypes in eindige verzamelingen van
deelverzamelingen van de universe of instances.
2.2.2.1 Universe of instances gedefinieerd
Voordat we ¦ kunnen definiëren kijken we eerst naar de instanties van labeltypes en entiteiten.
Labeltypes worden geïnstancieerd door hun concrete domein die gedefinieerd is d.m.v. de functie
Dom, die aan ieder labeltype een concreet domein toevoegt. We hebben in het voorbeeld gezien dat dit
bijvoorbeeld het labeltype Year-nr verbindt aan het concrete domein integer. De instanties van
entiteiten komen uit een speciaal domein § , dat bestaat uit ongestructureerde waarden.
De universe of instances ¦ wordt door de volgende regels vastgelegd. ¦ is een kleinste verzameling
die voldoet aan:
1. ¨ D ⊆ ¦
2. § ⊆ ¦
3. X1,….,Xn © ¦ P1,….,Pn © P’  {P1 : X1,….,Pn : Xn} © ¦ , met P’ de verzameling van alle
mogelijke predicatoren die kunnen voortkomen in een informatiestructuur
4. X1,….,Xn © ¦ X1,….,Xn} © ¦
5. X1,….,Xn © ¦ X1,….,Xn © ¦
6. Y1,…,Yn ⊆ ¦ O1,….,On © O’  {O1 : Y1,…., On :Yn } © ¦ met O’ de verzameling van alle
mogelijke objecttypes die kunnen voortkomen in een informatiestructuur
Wanneer we kijken naar deze zes regels vallen een aantal zaken op met betrekking tot de constructie
van populaties. De universe of instances bestaat uit twee gedefinieerde domeinen (regel 1 en 2) en vier
geconstrueerde verzamelingen (regels 4 t/m 6). Bij regel drie wordt een verzameling gedefinieerd die
dient ter invulling van een feittype. De predicatoren uit een feittype krijgen een element uit de universe
of instances toegewezen. De toegewezen verzameling is dan zelf weer een element van de universe of
instances. Dit dient om een zinvolle invulling te geven aan feittypes. Regel 4 en 5 zorgen ervoor dat
respectievelijk het powertype en sequentietype gepopuleerd kunnen worden. Regel 4 construeert een
verzameling van elementen uit de universe of instances en regel 5 geeft een lijst (sequentie,
verzameling met volgordeafhankelijkheid) van elementen uit de universe of instances. Tenslotte geeft
regel 6 aan hoe schematypes gepopuleerd worden. Schematypes bevatten elementen uit de
verzameling van objecttypes (een schematype kan dus ook een schematype bevatten!). De
verzameling van objecttypes die in een schematype voorkomen kunnen door middel van een
24
toewijzing van de objecten aan hun populaties (de Y’s in regel 6) in een verzameling weer een element
van de universe of instances opleveren.
Met deze regels is de opbouw van mogelijke instanties van PSM-schema’s vastgelegd.
2.2.2.2 Populaties gedefinieerd
In [Hof94] volgt een veertiental regels met betrekking tot deze instanties. Deze populatieregels leggen
beperkingen op aan de mogelijke populaties met betrekking tot de semantiek van de PSM constructies.
We zullen deze regels hier opschrijven met daaronder een korte beschrijving van de werking van de
regel. Dit is van belang bij het introduceren van de constraints in PSM.
[P1] x  y
¡ x,y ¢ L £ Pop(x) ¤ Pop(y) = ¥
Deze regel geeft aan dat wanneer twee objecttypes x en y niet type-gerelateerd zijn en geen van beiden
labeltypes zijn, er geen gemeenschappelijke instanties in hun populatie kunnen zitten. De term type-
gerelateerdheid (symbool x¦ y, x is type-gerelateerd met y) geeft aan dat instanties van een objecttype
ook kunnen voorkomen in hun type-gerelateerde objecttypes. Denk hierbij bijvoorbeeld aan als x Gen
y geldt, er dan altijd geldt dat elke mogelijke instantie uit de populatie van y ook een instantie is van x.
[P2] x§ L £ Pop(x) ⊆ Dom(x)
Deze elementaire regel was in principe al afleidbaar bij de constructie van de universe of instances. De
populatie van een labeltype komt uit zijn concrete domein.
[P3] Root(x) £ Pop(x) ⊆ ¨ , met Root(x) = x§© ¡ gen(x)
¡ spec(x)
De definitie Root geeft aan dat het gaat om zogenaamde root entity types, hetgeen entiteittypes zijn die
niet gegeneraliseerd zijn of een subtype zijn. P3 geeft dus aan dat wanneer x een root entity type is,
dan moet de populatie van x uit het abstracte domein ¨ komen.
[P4] x§ F
¡ y§ Pop(x) £ y : x   ¡ p x [y(p) § Pop(Base(p))]
Deze regel zorgt ervoor dat de populatie van een feittype, tupels, wordt opgebouwd uit een toewijzing
van elementen uit de universe of instances aan de predicatoren voorkomende in dat feittype. Een
tweede eis is dat de toegewezen elementen aan de predicatoren uit het feittype elementen zijn die ook
voorkomen in de basis van deze predicatoren.
[P5] x§ G
¡ y§ Pop(x) £ y § (Pop(Elt(x))){¥ }
De populaties van powertypes worden opgebouwd uit deelverzamelingen van de populaties uit hun
elementtypes. Dit wordt in P5 precies weergegeven. De powerset van de populatie van het
elementtype (van de powertype in kwestie) met het element lege verzameling daaruit weggelaten.
[P6] x§ G £ Pop(§ x) = {{§ p
x : u, § e
x : v} u § Pop(x)
¡ v § u}
In deze regel wordt de populatie van het impliciete feittype § x ,dat de relatie beschrijft tussen een
elementtype en zijn powertype, gedefinieerd. De twee predicatoren van dit impliciete feittype, met hun
toewijzing uit respectievelijk de populatie van x en u (hetgeen weer een element is uit de populatie van
het elementtype van x). Dit tupel wordt genoteerd met { § p
x : u, § e
x : v}, met de eerste predicator die
als basis het powertype heeft, en de tweede predicator die als basis het elementtype heeft. Het
impliciete feittype, dat bij ieder powertype kan worden gedefinieerd, wordt meestal niet grafisch
25
weergegeven, tenzij er speciale eisen worden gesteld aan de invulling van dit feittype, zoals
constraints. Hierover later meer.
[P7] x  S ¡ y  Pop(x) ¢ y   Pop(Elt(x))+
Wanneer de populatie van een sequentietype aan de orde komt, is het noodzaak dat er een volgorde
afhankelijkheid wordt vastgelegd. P7 geeft aan dat y als instantie van een sequentietype een lijst is van
elementen afkomstig uit het elementtype van het sequentietype.
[P8] Pop(I) = { n  ¤£ {0} ¥§¦ s¨ S ¦ u¨ Pop(s) [|u| © n] }
Wanneer een sequentietype voorkomt in een PSM-schema worden er automatisch 2 feittypes
gedefinieerd. De eerste is, net als bij het powertype, het impliciete feittype die een brug slaat tussen
het elementtype en het sequentietype. Deze wordt genoteerd met   x = {   s
x ,   e
x }. Het tweede
impliciete feittype dat bij sequentietypes wordt gemaakt, is degene die de elementen in de sequentie
indexeert. Dit is van belang, omdat hier de volgorde er wel toe doet. Dit gebeurt op de volgende wijze.
Figuur 5: Impliciete feittypes voor een sequentietype
26
We kijken naar figuur 5. We zien het sequentietype playlist. Een playlist is een lijst met songs met
volgordeafhankelijkheid. Gemakshalve hebben we hier de identificatie voor playlist weggelaten. Het
labeltype Index zorgt voor de indexering van de elementen uit de playlist. Dit gebeurt via het
impliciete feittype @playlist. Dit feittype bestaat uit 2 predicatoren, n.l. @s
playlist en @i
playlist. De tweede
heeft als basis het labeltype Index. Hierbij geldt dat Dom(Index) =   .
Op deze wijze wordt een index bijgehouden van de elementen in de elementen van het sequentietype.
De volgende 2 regels zijn van toepassing op deze twee impliciete feittypes.
[P9] x¡ S ¢ Pop(¡ x) = { { ¡ s
x: u , ¡ e
x: v } £ u ¡ Pop(x) ¤¦¥ i§ Pop(I) [ui = v] }
Deze regel geeft aan hoe de populatie van het eerste impliciete feittype wordt opgebouwd. Men ziet
dat de tweede predicator (met als basis het elementtype van x) een toewijzing v krijgt (uit de populatie
van dit elementtype dus) die moet voldoen aan het bestaan van een geïndexeerd element.
[P10] x¡ S ¢ Pop(¨ x) = { { ¨ s
x: u , ¨ i
x: v } £ u ¡ Pop(¡ x) ¤ u(¡ s
x)v = u(¡ e
x) }
De populatie van het impliciete feittype dat voor de indexering zorgt is wat ingewikkelder.
Het eerste lid van een tupel uit de populatie van ¨ x , de predicator die als basis het geobjectificeerde
feittype ¡ x heeft, wordt bij de toewijzing bij zo’n e lement uit Pop(¡ x) een verplichting opgelegd die
staat beschreven in het tweede deel van P10. De index v die wordt toegevoegd door I, moet
overeenkomen met het geïndexeerde element toegevoegd aan de predicator ¡ e
x.
[P11] x¡ C ¤ y¡ Pop(x) ¢ IsPop(Ix, y)
Deze regel zegt dat de populatie van een schematype wordt bepaald door de populaties van de
onderliggende informatiestructuur. Anders gezegd: de populatie van de onderdelen uit een schematype
zijn de basis van de populatie van het schematype. Ix is de denotatie van de informatiestructuur in een
schematype en voldoet aan alle eisen van een gewone informatiestructuur.
[P12] x © y ¢ Pop(¡ x,y) = { {¡x,y: u, ¡ x,y: v} £ u ¡ Pop(x) ¤ v ¡ u(y) }
Ook schematypes hebben impliciete feittypes tussen de objecten in het schematype en het schematype
zelf. Zo’n impliciet feittype wordt aangeduid met ¡ x,y , waarbij x het schematype is en y het object in
de decompositie. De predicatoren in dit impliciete feittype worden aangeduid met een klein c’tje in de
bovenhoek voor de predicator met de basis het schematype en een klein d’tje voor de predicator met
als basis het gedecomposeerde objecttype. De populatie van dit feittype bestaat uit tupels met als
eerste element een toewijzing uit de elementen van het schematype. Het tweede lid van de tupel is een
element dat voorkomt in de populatie van y, maar tevens “zitting heeft”in het geselecteerde ele ment
uit de populatie van het schematype (u).
[P13] x Spec y ¢ Pop(x) ⊆ Pop(y)
Deze regel spreekt voor zich. Immers de populatie van een specialisatie is een deelverzameling van
zijn bovenliggende pater familias. Denk bijvoorbeeld aan een object Zoogdieren met subtypes Mensen
en Apen. Een mens is een zoogdier, maar een zoogdier is niet altijd een mens. Een simpele regel laat
de waarheid van P13 zien.
[P14] gen(x) ¢ Pop(x) =  Pop(y) £ x Gen y}
Wanneer x een generalisatie is van een stelletje objecten, dan is de populatie van x een vereniging van
de populaties van zijn onderliggende objecten.
27
Met de in deze paragraaf vastgelegde regels met betrekking tot populaties, is het mogelijk om nu in te
gaan op de verschillende constraints binnen PSM.
2.2.3 Constraints in PSM
Alvorens we in gaan op de wijze waarop in PSM met constraints wordt omgegaan, is het eerst
noodzakelijk een categorisatie te maken van de constraints zoals deze in PSM voorkomen.
In [Hof94] wordt als eerste gesproken over een tweedeling in constraints, namelijk als eerste
constraints die grafisch worden aangeduid in PSM-schema’s. Voorbeelden daarvan zijn we al
tegengekomen, zoals de pijltjes boven feittypes en de bollen aan de objecttypes. De tweede soort
constraints zijn degene die beschreven worden aan de hand van een relationele algebra.
Naast deze tweedeling spreekt men ook over het verschil tussen statische en dynamische constraints.
Een statische constraint is een constraint die populaties uitsluit die niet geldig zijn. Niet geldig zijn is
het niet overeenkomen met een toestand in het Universe of Discourse. Het Universe of Discourse is
het model van een gedeelte van de werkelijkheid dat gemodelleerd dient te worden. Dynamische
constraints verbieden bepaalde transities/verschuivingen tussen populaties.
Statische constraints zijn de constraints waar wij voorlopig op zullen focussen.
PSM gebruikt voor de beschrijving van de semantiek van statische constraints een relationele
algebra. Een relationele algebra is geïntroduceerd in het relationele gegevensmodel met als doel het
maken van een retrieval mogelijkheid. Dit hoofddoel zal later ook nog aan bod komen, maar als eerste
gaan we kijken naar de beschrijving van constraints met behulp van deze relationele algebra.
Als eerste definiëren we een PSM schema   als een combinatie van een informatiestructuur I en een
verzameling van constraints R. Een populatie van een PSM schema wordt gedefinieerd als een
populatie van zijn informatiestructuur en de geldigheid van de gedefinieerde constraints in deze
structuur. Formeel:
IsPop(  ,Pop) = IsPop(I,Pop) ¡£¢ r¤ R [Pop ¥ r]
De “voor alle”expressie geeft aan dat de populatie alle constraints in het schema waar moet maken.
Nu we weten wat een PSM schema precies inhoudt, rijst de vraag hoe we de verzameling constraints R
kunnen beschrijven en definiëren. We zullen hiertoe de relationele algebra introduceren.
2.2.3.1 Relationele algebra
Een relationele algebra voor PSM gebruikt als bouwstenen zogenaamde relationele expressies.
Relationele expressies worden als volgt geconstrueerd. Ze zijn of een feittype of een relationele
operatie toegepast op één of meer relationele expressies. Relationele operaties zullen we hier niet
uitgebreid bespreken. Voor een uitgebreide beschrijving van relationele operaties verwijzen we naar
[Weide]. In [Weide] wordt het relationele gegevensmodel vanaf scratch opgebouwd. Voor een goede
opbouw van de theorie die hierna volgt, is het noodzakelijk dat we hier de relationele operatoren kort
noemen. In [Weide] worden de volgende 4 voor ons interessante relationele operaties genoemd.
1. De projectie operatie, genoteerd met ¦ . De projectie operatie wordt gebruikt om een beperking
mogelijk te maken in de kolommen (attributen, predicatoren) van een tabel in het relationele
gegevensmodel.
2. De selectie operatie, genoteerd met § . De selectie operatie maakt het mogelijk beperkingen uit te
voeren in de tupels van een tabel. Alleen de gewenste tupels worden zo geselecteerd.
3. De join operatie, genoteerd met ¨ . Deze operatie maakt het mogelijk twee tabellen te koppelen
tot een nieuwe tabel, waarbij de attributen uit de afzonderlijke tabellen worden gekoppeld met
gemengde tupels in het resultaat van een join operatie.
28
4. De hernoem operatie, genoteerd met   . Deze operator hernoemt een attribuut in een relationele
expressie.
Deze vier operaties spelen een grote rol in de opbouw en werking van de relationele algebra van PSM.
Uiteraard bestaan naast deze wat meer geavanceerde operaties, de standaardoperaties zoals vereniging
en verschil. Deze komen, waar nodig, aan bod.
We zullen nu verder gaan met de opbouw van relationele expressies.
Een relationele expressie is eigenlijk een beschrijving van een afgeleid feittype. Zo’n afgeleid feittype
(afgeleid, omdat er dus via relationele operatoren kan worden gerekend met feittypes) heeft twee
kenmerken, namelijk een type en een populatie. Dit geheel in overstemming met PSM-schema’s.
Twee operaties op relationele expressies geven de mogelijkheid om deze twee kenmerken te
genereren. Het zijn de operaties Schema voor de generatie van het type en Val voor de generatie van
de bijbehorende populatie. Deze zijn als volgt gedefinieerd.
2.2.3.1.1 Schema gedefinieerd
Als relationele expressie een enkel feittype f is dan:
Schema (f) = f (= de verzameling van predicatoren uit f)
Anders is Schema gedefinieerd naar de opbouw van de relationele expressies. Schema is altijd te
schrijven als een verzameling van predicatoren.
Dit gaat als volgt.
Laat r en s relationele expressies zijn. Dan geldt:
Schema (r ¡ s) = Schema (r) ¢ Schema (s)
Laat r een relationele expressie zijn, q1,…q n (allen verschillend) en p1,…pn (uit Schema (r))
predicatoren, dan is de projectie £
q1:p1,…,qn:pn (r) een relationele expressie met de volgende definitie:
Schema (£
q1:p1,…,qn:pn (r)) = {q1,…q n}
Wanneer we kijken naar de selectie operatie, dan kunnen voor wat betreft de schemadefinitie kort zijn.
Een relationele expressie r, waarbij een selectie operatie op wordt toegepast heeft geen directe invloed
op het resultaat van het type van het afgeleide feittype. We noemen F een willekeurige selectie. Dan
geldt voor de selectie ¤
F(r) (ook een relationele expressie):
Schema (¤
F(r)) = Schema (r)
2.2.3.1.2 Val gedefinieerd
De operatie Val geeft bij elke relationele expressie een populatie op basis van een informatiestructuur
en een voorbeeldpopulatie. We zullen Val ook definiëren aan de hand van de opbouw van relationele
expressies via relationele operaties. Als eerste hebben we de basisdefinitie van de populatie van een
feittype f. Dit is eigenlijk triviaal, maar dient als basis voor de opbouw van de operatie Val.
Val [ f ] (Pop) = Pop(f)
Voor de definitie van Val is het interessant om als eerste te kijken naar de standaardoperaties
vereniging en verschil. Wanneer we 2 relationele expressies r en s bekijken, met bijvoorbeeld Schema
29
(r) = Schema (s), dan zijn de vereniging r   s en het verschil r ¡ s gedefinieerd als relationele
expressies met de volgende populaties.
Val [ r   s ] (Pop) = Val [ r ] (Pop)   Val [ s ] (Pop)
Val [ r ¡ s ] (Pop) = Val [ r ] (Pop) ¡ Val [ s ] (Pop)
Wanneer we kijken naar twee relationele expressies r en s, kunnen we de join tussen deze twee als
volgt populeren. Dit gebeurt middels de volgende definitie van Val.
Val [ r ¢ s ] (Pop) = { t £ t[Schema (r)] ¤ Val [ r ] (Pop) ¥ t[Schema (s)] ¤ Val [ s ] (Pop) }
In deze definitie zien we dat alle tupels die gevormd worden uit het cartesisch product van de
populaties van de relationele expressies r en s worden verwerkt in de populatie van hun join.
Ook de andere operaties, projectie en selectie, hebben een dergelijke definitie. Hieronder komen ze
voorbij.
Voor de definitie van Val met betrekking tot de projectie operatie, gaan we uit van dezelfde
voorwaarden als bij de definitie van de projectie bij Schema.
Val [¦ q1:p1,…,qn:pn (r) ] (Pop) = { t £¨§ s© Val [ r ] (Pop)  1 i n [t (qi) = s (pi)] }
Deze ingewikkelde definitie verdient een nadere verklaring. Deze definitie geeft aan dat wanneer een
tupel (met een geprojecteerde predicator) voorkomt in de populatie van de projectie, deze ook moet
voorkomen in de populatie van de relationele expressie, zoals die voor de projectie bestaat.
Merk op dat de projectie operatie tevens kan dienen voor het hernoemen van predicatoren.
Voor we een Val definitie voor de selectie operatie kunnen opstellen, is het noodzakelijk eerst een
definitie te geven van de mogelijke selectieformules. Hiertoe geven we eerst de definitie van de
verzameling  , de selectieformules.  is de kleinste verzameling die voldoet aan: (met P’ alle
mogelijke predicatoren uit een informatiestructuur en D de verzameling van concrete domeinen)
1. p, q ¤ P’  p = q ¤ 
2. p ¤ P’, c ¤  D  p = c ¤ 
3. f, g ¤   f ¥ g ¤ 
4. f ¤   f ¤ 
Voor de definitie van Val met betrekking tot de selectie operatie is verder nodig te weten wanneer een
tupel uit de populatie van de relationele expressie met een selectie operatie voldoet aan een
selectieformule uit  . We schrijven het volgende, met tupel t voldoet aan de selectieformule f uit 
t  f, met t een partiële functie van P’naar en f uit  , dan en slechts dan als
t(p) = t(q) en § k©¨! [t(p) = k] en § k©¨! [t(q) = k], met f van de vorm p = q
t(p) = c en § k©¨! [t(p) = k], met f van de vorm p = c
t  x en t  y, met f van de vorm x ¥ y
t # x, met f van de vorm  x
30
Nu we de betekenis van “t   f”hebben vastgelegd, kunnen we de definitie van Val voor de selectie
operatie vastleggen.
Wanneer r een relationele expressie is, f een selectieformule, dan is de selectie ¡
f (r) een ook een
relationele expressie met de volgende populatie.
Val [ ¡
f (r) ] (Pop) = { t ¢ Val [ r ] (Pop)
£
t  
f }
Nu het voorwerk van deze definitie is gedaan, is de uitleg van deze Val niet meer moeilijk. Alle tupels
uit de populatie van relationele expressie r worden overgenomen, indien ze voldoen aan de
selectieformule f.
Nu voor de definities voor Schema en Val zijn opgebouwd aan de hand van de opbouw van de
relationele expressies, is het fundament gelegd voor een verdere uitbreiding van de relationele algebra
voor PSM-schema’s. In de volgende subparagraaf introduceren we nog meer relationele operaties,
waarmee de relationele algebra wordt uitgebreid. Hierbij worden voor iedere operatie de definities van
Schema en Val bijgewerkt.
2.2.3.1.3 Meer relationele operaties
In deze paragraaf breiden we het aantal relationele operaties op relationele expressies uit.
Als eerste introduceren we de extensie operatie ¤ . Deze operatie breidt een relationele expressie r uit
met een nieuwe predicator a. Deze predicator telt het aantal tupels met een gelijke waarde voor een
verzameling van predicatoren uit Schema (r). Deze verzameling wordt gedefinieerd als ¥ .
We definiëren:
Schema (¤ (r, ¥ , a)) = Schema (r) ¦ {a}
Val [ ¤
(r, ¥
, a) ] (Pop) =
{ t
£
t[Schema (r)] ¢ Val [ r ] (Pop) § t(a) = |{s ¢ Val [ r ] (Pop)
£
t(¥ ) = s(¥ ) } | }
Deze definities zijn verder duidelijk. Als tweede introduceren we de “unnest ”operatie. Deze operatie
wordt gebruikt om geneste feittypes te “unnesten”. Dit “unnesten”is feitelijk het elimineren van een
extra laag in een hiërarchische geneste structuur. We zullen dit nu formaliseren.
Laat g een relationele expressie zijn, p een predicator uit Schema (g), f een feittype zodat geldt Base
(p) is type-gerelateerd met f.. We definiëren vervolgens S = Schema (g)  {p}. We kunnen dan ¨
p
f (g)
als relationele expressie definiëren. We zullen nu het bijbehorende figuur uit [Hof94] ter
verduidelijking opnemen. Zie figuur 6.
Het feittype f wordt als het ware geëlimineerd en diens predicatoren komen bij het feittype g te zitten.
De bijbehorende definitie voor Schema en Val zijn als volgt.
Schema (¨
p
f (g)) = f ¦
S
Val [ ¨
p
f (g) ] (Pop) = { t ¦ s[S]
£
t ¢ Val [ f ] (Pop) § s ¢ Val [ g ] (Pop) § s(p) = t }
De definitie van Schema spreekt voor zich, daar de verzameling S de predicatoren uit het feittype f er
bij krijgt. De definitie van Val relateert hier duidelijk aan. De populatie uit het feittype f wordt
gekoppeld aan die uit g, met dien verstande dat de populatie toegewezen aan predicator p vervangen
wordt door de reeks uit f.
31
Figuur 6: Werking van de unnest operatie
In een speciaal geval van unnesten kan er bij de definitie van de unnest operatie een probleem
optreden. Dit is het geval wanneer de doorsnede van de verzameling S en Schema (f) niet leeg is. Dit
betekent dat er 1 of meer gemeenschappelijke predicatoren zijn tussen g en f. Het probleem dat dan
optreed is, dat de waardenverzameling van Val [  
p
f (g) ] (Pop) dan kan bestaan uit relaties in plaats
van functies. In dit geval is deze Val niet gedefinieerd. Om dit te ondervangen is een sterke versie van
de unnest operatie nodig. Deze introduceren we als “strong unnest ”. Deze operatie werkt als volgt. W e
nemen een relationele expressie g, een predicator p uit Schema (g), en f een feittype zodat Base (p)
type-gerelateerd is met f. Nu is S = Schema (g)  {p} en T = f ¡ S. T geeft dus de verzameling van
predicatoren die de feittypes f en g gemeenschappelijk hebben, met daaruit weggelaten p. De strong
unnest operatie ¢
p
f (g), werkend op g, is een relationele expressie met de volgende definities.
Schema (¢
p
f (g)) = f £ S
Val [ ¢
p
f (g) ] (Pop) =
{ t £ s[S] ¤ t ¥ Val [ f ] (Pop) ¦ s ¥ Val [ g ] (Pop) ¦ s(p) = t ¦ s[T] = s(p)[T] }
De strong unnest operatie gedraagt zich op dezelfde wijze als de gewone unnestoperatie, in het geval
de verzameling T leeg is.
[Hof94] bespreekt nog enkele boolean operaties, waarvan we de volgenden even aanstippen.
Wanneer b een boolean expressie is, schrijven we het volgende wanneer een populatie voldoet aan
deze boolean expressie.
Pop § b
Een voorbeeld hiervan is de test IsEmpty (r), waarbij de relationele expressie getest wordt op het feit
of deze een lege populatie heeft. Dit wordt genoteerd als:
Pop §
IsEmpty (r) ¨ Val [ r ] (Pop) = ©
32
Een belangrijke boolean expressie is degene die functionele afhankelijkheid vastlegt binnen een
relationele expressie. Wanneer we 2 deelverzamelingen uit Schema (l), met l een relationele expressie
en de deelverzamelingen   , ¡ ⊆ Schema (l) nemen, dan noteren we de volgende boolean expressie.
  l ¢ ¡
Deze boolean expressie is waar in een populatie, wanneer een populatie voldoet aan de volgende
eigenschap. De populatie moet voor elke instantie uit de predicatorenverzameling   rechtstreeks dat
gedeelte afleiden uit het ¡ -gedeelte van deze betreffende instantie. Formeel opgeschreven ziet dit er
als volgt uit.
Pop £¤  l ¥ ¡ ¦ § x,y¨ Val [ l ] (Pop) [x[  ] = y[  ] © x[¡ ] = y[¡ ]]
De boolean expressie   l ¢ ¡ is waar in populatie Pop dan en slechts dan als voor alle
instanties uit Val [ l ] (Pop) geldt dat wanneer de instanties voor een bepaalde
predicatorenverzameling hetzelfde zijn, dan dit ook voor een andere, willekeurige
predicatorenverzameling uit het relationele schema waar moet zijn.
Vergelijkingsoperaties tussen relationele expressies bestaan, maar ze zijn alleen nuttig in het geval van
verschillende relationele schema’s van relationele expressies. We zullen drie vergelijkingsoperaties
kort introduceren. r en s zijn hierin relationele expressies met verschillende relationele schema’s.
De subset operatie:
Pop £ r ⊆ s ¦ § t¨ Val [ r ] (Pop)  u¨ Val [ s ] (Pop) § p¨ Schema (r) [t(p) = u( (p))] , waarbij geldt dat  :
Schema (r)  Schema (s) , met  p Schema (r) [p ~  (p)]
De gelijkheidsoperatie:
Pop  r = s  r ⊆ s  s ⊆!# r , met de subset operatie gedefinieerd zoals hierboven.
De exclusie operatie:
Pop  r $% s   t Val [ r ] (Pop)  u Val [ s ] (Pop)  p Schema (r) [t(p) = u( (p))]
Als laatste categorie operaties, voeren we hier nog een tweetal speciale operaties aan.
De eerste is de zogenaamde range operatie, genoteerd met ' p (r). Deze operatie genereert de
waardenverzameling behorende bij 1 predicator (p) uit een bepaalde relationele expressie r. Deze
waardenverzameling kan een populatie zijn, maar kan ook een objectenverzameling zijn uit
bijvoorbeeld entiteiten. Hiervoor kan deze operatie geen algebraïsche operatie worden genoemd. De
definiëring voor Schema en Val zien er als volgt uit voor deze operatie.
Schema ( ' p (r) ) = {p}
Val [ ' p (r) ] (Pop) = { t(p) ( t ) Val [ r ] (Pop) }
De omgekeerde versie van de range operatie, is de lift operatie. Deze operatie kan als invoer een
objecttype hebben of een relationele expressie. De definities van Val en Schema zien er als volgt uit.
33
Schema (  
p (r) ) = {p}
Val [  
p (r) ] (Pop) = { t ¡ t(p) ¢ Val [ r ] (Pop) }
Een klein nuanceverschil in de definitie met de range operatie, maar de populatieverzameling van de
lift operatie is totaal verschillend. Bij de range operator worden alleen de elementen uit de universe of
instances m.b.t. de geselecteerde predicator gegenereerd, terwijl de lift operatie tot gevolg heeft dat de
volledige tupels (dus predicator met toewijzing uit de universe of instances) worden gegenereerd. De
predicator hoeft dus niet per se een onderdeel te zijn van een relationele expressie. Bij een objecttype
als invoer van de lift operatie worden de elementen van dit objecttype toegevoegd aan de predicator
die door de lift operatie wordt gebruikt. Het is natuurlijk wel noodzakelijk dat dit objecttype de basis is
van zo’n predicator.
Hierbij eindigt de beschrijving van de relationele algebra voor PSM. Vanuit deze relationele algebra
zullen we een beschrijving gaan geven van de verschillende soorten constraints in PSM.
2.2.3.2 Constraints onder de loep
We zullen als eerste een categorisatie maken van de voorkomende constraints in PSM. Na deze
categorisatie zal een bespreking plaatsvinden van de total role constraint en de uniqueness constraints
samengaand met een voorbeeld, bestaande uit een PSM schema en een voorbeeldpopulatie. Deze
constraints vormen de basis van alle constraints. Ook het doel van deze constraints wordt uitgelegd.
Vervolgens zal de formalisering van de constraints plaatsvinden. Deze formalisering wordt, zoals
reeds gezegd, opgeschreven in de besproken theorie m.b.t. PSM en diens relationele algebra. De
formalisering van de overige constraints zal in vogelvlucht gaan, daar de basis wordt gelegd bij de
twee genoemde soorten constraints.
We hebben in PSM de volgende (soorten) constraints (gebaseerd op [Hof94]). Gezien de naamgeving
van de constraints in het Engels is, zullen we deze niet trachten te vertalen naar een krom Nederlands
construct.
• Total role constraint
• Uniqueness constraint applied to one facttype
• Uniqueness constraint applied to more facttypes
• Uniqueness constraint applied to objectification
• Occurrence frequency constraint
• Set constraints
• Enumeration constraint
• Power exclusion constraint
• Cover constraint
• Set cardinality constraint
• Membership constraint
• Specialisation constraints
• Subtype constraints (subtype defining rules)
• Schema type constraints
De belangrijkste constraints, dat wil zeggen vaak voorkomend, hebben een grafische notatie binnen
PSM. Onder deze vallen o.a. de total tole constraint, de verschillende uniqueness constraints (met
verreweg de moeilijkste semantiek), occurence frequency constraints en set constraints. We zullen
beginnen met deze grafische constraints.
2.2.3.2.1 Total role constraint
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics
MSc Thesis Business Informatics

More Related Content

What's hot

Linked in netwerking_op_het_internet_okt_2009
Linked in netwerking_op_het_internet_okt_2009Linked in netwerking_op_het_internet_okt_2009
Linked in netwerking_op_het_internet_okt_2009kittyleuverink
 
3D objectvisualisatie, een onderzoek
3D objectvisualisatie, een onderzoek3D objectvisualisatie, een onderzoek
3D objectvisualisatie, een onderzoekErfgoed 2.0
 
Handleiding We Gaan Naar De Sterren
Handleiding We Gaan Naar De SterrenHandleiding We Gaan Naar De Sterren
Handleiding We Gaan Naar De Sterrenharriettenhove
 
Versie Aug 2008 Wetensch Vertaling Ned
Versie Aug 2008 Wetensch Vertaling NedVersie Aug 2008 Wetensch Vertaling Ned
Versie Aug 2008 Wetensch Vertaling NedKees Methorst
 
Algemene regeling gbo handboek
Algemene regeling gbo handboekAlgemene regeling gbo handboek
Algemene regeling gbo handboekFrank Smilda
 
Meerjaren Monumentenbeleidsplan St.Maarten
Meerjaren Monumentenbeleidsplan St.MaartenMeerjaren Monumentenbeleidsplan St.Maarten
Meerjaren Monumentenbeleidsplan St.Maartenpearl studio
 
Kerkvoorbijdehorizon-compl
Kerkvoorbijdehorizon-complKerkvoorbijdehorizon-compl
Kerkvoorbijdehorizon-complJoost Theunissen
 
Scriptie Stijn Blom Wnra
Scriptie Stijn Blom WnraScriptie Stijn Blom Wnra
Scriptie Stijn Blom WnraStijn Blom
 
Eindrapport Onderzoek cultuurraden 05
Eindrapport Onderzoek cultuurraden 05Eindrapport Onderzoek cultuurraden 05
Eindrapport Onderzoek cultuurraden 05sofieverhoeven
 
Unilin - USystem - NL
Unilin - USystem - NLUnilin - USystem - NL
Unilin - USystem - NLArchitectura
 
Coachingsessies
CoachingsessiesCoachingsessies
CoachingsessiesVUBrussel
 
Objectieve Risicoanalyse, van utopie naar realiteit
Objectieve Risicoanalyse, van utopie naar realiteitObjectieve Risicoanalyse, van utopie naar realiteit
Objectieve Risicoanalyse, van utopie naar realiteitKlaas Coevering
 
Brochure accessoires 2013 nl web
Brochure accessoires 2013 nl webBrochure accessoires 2013 nl web
Brochure accessoires 2013 nl webNick Van Dessel
 
Visuele Enterprise Architectuur, Studieboek over de open methode Dragon1
Visuele Enterprise Architectuur, Studieboek over de open methode Dragon1Visuele Enterprise Architectuur, Studieboek over de open methode Dragon1
Visuele Enterprise Architectuur, Studieboek over de open methode Dragon1Mark Paauwe
 
Onderzoek onderpresteren 'motiveren leidt tot beter presteren'
Onderzoek onderpresteren 'motiveren leidt tot beter presteren'Onderzoek onderpresteren 'motiveren leidt tot beter presteren'
Onderzoek onderpresteren 'motiveren leidt tot beter presteren'Ingrid Dirksen
 
Trudo jaarverslag 2011
Trudo jaarverslag 2011Trudo jaarverslag 2011
Trudo jaarverslag 2011Sint Trudo
 
L. de Rooij - MA scriptie - Cultural Anthropology
L. de Rooij - MA scriptie - Cultural AnthropologyL. de Rooij - MA scriptie - Cultural Anthropology
L. de Rooij - MA scriptie - Cultural AnthropologyLotte de Rooij
 
Eindraport versie 14; 24 08-2014
Eindraport versie 14; 24 08-2014Eindraport versie 14; 24 08-2014
Eindraport versie 14; 24 08-2014Thomas Leflere
 
ENLI-CMT-XX-WS_s1080094Staal
ENLI-CMT-XX-WS_s1080094StaalENLI-CMT-XX-WS_s1080094Staal
ENLI-CMT-XX-WS_s1080094Staalsiebo staal
 

What's hot (20)

Linked in netwerking_op_het_internet_okt_2009
Linked in netwerking_op_het_internet_okt_2009Linked in netwerking_op_het_internet_okt_2009
Linked in netwerking_op_het_internet_okt_2009
 
3D objectvisualisatie, een onderzoek
3D objectvisualisatie, een onderzoek3D objectvisualisatie, een onderzoek
3D objectvisualisatie, een onderzoek
 
Handleiding We Gaan Naar De Sterren
Handleiding We Gaan Naar De SterrenHandleiding We Gaan Naar De Sterren
Handleiding We Gaan Naar De Sterren
 
Versie Aug 2008 Wetensch Vertaling Ned
Versie Aug 2008 Wetensch Vertaling NedVersie Aug 2008 Wetensch Vertaling Ned
Versie Aug 2008 Wetensch Vertaling Ned
 
Algemene regeling gbo handboek
Algemene regeling gbo handboekAlgemene regeling gbo handboek
Algemene regeling gbo handboek
 
Meerjaren Monumentenbeleidsplan St.Maarten
Meerjaren Monumentenbeleidsplan St.MaartenMeerjaren Monumentenbeleidsplan St.Maarten
Meerjaren Monumentenbeleidsplan St.Maarten
 
Kerkvoorbijdehorizon-compl
Kerkvoorbijdehorizon-complKerkvoorbijdehorizon-compl
Kerkvoorbijdehorizon-compl
 
Scriptie Stijn Blom Wnra
Scriptie Stijn Blom WnraScriptie Stijn Blom Wnra
Scriptie Stijn Blom Wnra
 
Eindrapport Onderzoek cultuurraden 05
Eindrapport Onderzoek cultuurraden 05Eindrapport Onderzoek cultuurraden 05
Eindrapport Onderzoek cultuurraden 05
 
Unilin - USystem - NL
Unilin - USystem - NLUnilin - USystem - NL
Unilin - USystem - NL
 
Coachingsessies
CoachingsessiesCoachingsessies
Coachingsessies
 
Objectieve Risicoanalyse, van utopie naar realiteit
Objectieve Risicoanalyse, van utopie naar realiteitObjectieve Risicoanalyse, van utopie naar realiteit
Objectieve Risicoanalyse, van utopie naar realiteit
 
Onderzoek naar de effecten van een eenheidsschaal voor tussenkomsten van onde...
Onderzoek naar de effecten van een eenheidsschaal voor tussenkomsten van onde...Onderzoek naar de effecten van een eenheidsschaal voor tussenkomsten van onde...
Onderzoek naar de effecten van een eenheidsschaal voor tussenkomsten van onde...
 
Brochure accessoires 2013 nl web
Brochure accessoires 2013 nl webBrochure accessoires 2013 nl web
Brochure accessoires 2013 nl web
 
Visuele Enterprise Architectuur, Studieboek over de open methode Dragon1
Visuele Enterprise Architectuur, Studieboek over de open methode Dragon1Visuele Enterprise Architectuur, Studieboek over de open methode Dragon1
Visuele Enterprise Architectuur, Studieboek over de open methode Dragon1
 
Onderzoek onderpresteren 'motiveren leidt tot beter presteren'
Onderzoek onderpresteren 'motiveren leidt tot beter presteren'Onderzoek onderpresteren 'motiveren leidt tot beter presteren'
Onderzoek onderpresteren 'motiveren leidt tot beter presteren'
 
Trudo jaarverslag 2011
Trudo jaarverslag 2011Trudo jaarverslag 2011
Trudo jaarverslag 2011
 
L. de Rooij - MA scriptie - Cultural Anthropology
L. de Rooij - MA scriptie - Cultural AnthropologyL. de Rooij - MA scriptie - Cultural Anthropology
L. de Rooij - MA scriptie - Cultural Anthropology
 
Eindraport versie 14; 24 08-2014
Eindraport versie 14; 24 08-2014Eindraport versie 14; 24 08-2014
Eindraport versie 14; 24 08-2014
 
ENLI-CMT-XX-WS_s1080094Staal
ENLI-CMT-XX-WS_s1080094StaalENLI-CMT-XX-WS_s1080094Staal
ENLI-CMT-XX-WS_s1080094Staal
 

Viewers also liked

ZonMw programmaschets Goed Gebruik Geneesmiddelen
ZonMw programmaschets Goed Gebruik GeneesmiddelenZonMw programmaschets Goed Gebruik Geneesmiddelen
ZonMw programmaschets Goed Gebruik GeneesmiddelenEuroBioForum
 
Gip: Re-lamping, hou de watts in toom
Gip: Re-lamping, hou de watts in toomGip: Re-lamping, hou de watts in toom
Gip: Re-lamping, hou de watts in toomwybo
 
Bachelor paper: how to get free publicity for your advertising campaign
Bachelor paper: how to get free publicity for your advertising campaignBachelor paper: how to get free publicity for your advertising campaign
Bachelor paper: how to get free publicity for your advertising campaignJudithstr
 

Viewers also liked (8)

Scriptie
ScriptieScriptie
Scriptie
 
Scriptie Vandenbroeck Silke
Scriptie Vandenbroeck SilkeScriptie Vandenbroeck Silke
Scriptie Vandenbroeck Silke
 
Besluit
BesluitBesluit
Besluit
 
ZonMw programmaschets Goed Gebruik Geneesmiddelen
ZonMw programmaschets Goed Gebruik GeneesmiddelenZonMw programmaschets Goed Gebruik Geneesmiddelen
ZonMw programmaschets Goed Gebruik Geneesmiddelen
 
Inleiding
InleidingInleiding
Inleiding
 
Gip: Re-lamping, hou de watts in toom
Gip: Re-lamping, hou de watts in toomGip: Re-lamping, hou de watts in toom
Gip: Re-lamping, hou de watts in toom
 
Woord vooraf
Woord voorafWoord vooraf
Woord vooraf
 
Bachelor paper: how to get free publicity for your advertising campaign
Bachelor paper: how to get free publicity for your advertising campaignBachelor paper: how to get free publicity for your advertising campaign
Bachelor paper: how to get free publicity for your advertising campaign
 

Similar to MSc Thesis Business Informatics

080824 Ned Vertaling Informatiegids Voor Recurve Boogschutters
080824 Ned Vertaling Informatiegids Voor Recurve Boogschutters080824 Ned Vertaling Informatiegids Voor Recurve Boogschutters
080824 Ned Vertaling Informatiegids Voor Recurve BoogschuttersKees Methorst
 
080824 Instellen Boog
080824 Instellen Boog080824 Instellen Boog
080824 Instellen BoogKees Methorst
 
Groenplan 2012 vlaardingen blijvend groen
Groenplan 2012 vlaardingen blijvend groenGroenplan 2012 vlaardingen blijvend groen
Groenplan 2012 vlaardingen blijvend groenCarlos Mota
 
Communicatie familiebedrijven
Communicatie familiebedrijvenCommunicatie familiebedrijven
Communicatie familiebedrijvenTessa Smits
 
Digitaliseringsplan Erfgoed (Universiteitsbibliotheek Amsterdam) 2010-2011. B...
Digitaliseringsplan Erfgoed (Universiteitsbibliotheek Amsterdam) 2010-2011. B...Digitaliseringsplan Erfgoed (Universiteitsbibliotheek Amsterdam) 2010-2011. B...
Digitaliseringsplan Erfgoed (Universiteitsbibliotheek Amsterdam) 2010-2011. B...HenrietteReerink
 
19112010 berenschot onderzoeksrapport_bestuurlijk_juridische_vormgeving_po-ko...
19112010 berenschot onderzoeksrapport_bestuurlijk_juridische_vormgeving_po-ko...19112010 berenschot onderzoeksrapport_bestuurlijk_juridische_vormgeving_po-ko...
19112010 berenschot onderzoeksrapport_bestuurlijk_juridische_vormgeving_po-ko...AndereTijden
 
Sociale media strategie_voor_politie
Sociale media strategie_voor_politieSociale media strategie_voor_politie
Sociale media strategie_voor_politieFrank Smilda
 
Computerspeciaalzaak Codima
Computerspeciaalzaak CodimaComputerspeciaalzaak Codima
Computerspeciaalzaak CodimaCodima
 
Netwerkmeeting Presentatie (2)
Netwerkmeeting Presentatie (2)Netwerkmeeting Presentatie (2)
Netwerkmeeting Presentatie (2)QHSE Professionals
 
The Best of Three Worlds (boek)
The Best of Three Worlds (boek)The Best of Three Worlds (boek)
The Best of Three Worlds (boek)Peter Versteegh
 
080825 Opbouw En Samenstelling Pijlen
080825 Opbouw En Samenstelling Pijlen080825 Opbouw En Samenstelling Pijlen
080825 Opbouw En Samenstelling PijlenKees Methorst
 
EnerPro | Energieonderzoek
EnerPro | EnergieonderzoekEnerPro | Energieonderzoek
EnerPro | EnergieonderzoekRick van Manen
 
Presentatie wp fujifilm eneco 110412
Presentatie wp fujifilm eneco 110412Presentatie wp fujifilm eneco 110412
Presentatie wp fujifilm eneco 110412jaapbosch
 
Eindrapport evaluatie-wetbeschermingpersoonsgegevens
Eindrapport evaluatie-wetbeschermingpersoonsgegevensEindrapport evaluatie-wetbeschermingpersoonsgegevens
Eindrapport evaluatie-wetbeschermingpersoonsgegevensFrank Smilda
 
Berenschot Duurzaamheid ABC's
Berenschot Duurzaamheid ABC'sBerenschot Duurzaamheid ABC's
Berenschot Duurzaamheid ABC'sBTMMTE
 
business word
business wordbusiness word
business wordJeroen
 
Regioplan van zeeuws vlaanderen gezondleven nl 2012 2022
Regioplan van zeeuws vlaanderen gezondleven nl 2012 2022Regioplan van zeeuws vlaanderen gezondleven nl 2012 2022
Regioplan van zeeuws vlaanderen gezondleven nl 2012 2022Arend Roos
 
XML en Organisatie: vijf tegenstellingen
XML en Organisatie: vijf tegenstellingenXML en Organisatie: vijf tegenstellingen
XML en Organisatie: vijf tegenstellingenPieter van der Hijden
 

Similar to MSc Thesis Business Informatics (20)

080824 Ned Vertaling Informatiegids Voor Recurve Boogschutters
080824 Ned Vertaling Informatiegids Voor Recurve Boogschutters080824 Ned Vertaling Informatiegids Voor Recurve Boogschutters
080824 Ned Vertaling Informatiegids Voor Recurve Boogschutters
 
080824 Instellen Boog
080824 Instellen Boog080824 Instellen Boog
080824 Instellen Boog
 
Groenplan 2012 vlaardingen blijvend groen
Groenplan 2012 vlaardingen blijvend groenGroenplan 2012 vlaardingen blijvend groen
Groenplan 2012 vlaardingen blijvend groen
 
Communicatie familiebedrijven
Communicatie familiebedrijvenCommunicatie familiebedrijven
Communicatie familiebedrijven
 
Digitaliseringsplan Erfgoed (Universiteitsbibliotheek Amsterdam) 2010-2011. B...
Digitaliseringsplan Erfgoed (Universiteitsbibliotheek Amsterdam) 2010-2011. B...Digitaliseringsplan Erfgoed (Universiteitsbibliotheek Amsterdam) 2010-2011. B...
Digitaliseringsplan Erfgoed (Universiteitsbibliotheek Amsterdam) 2010-2011. B...
 
19112010 berenschot onderzoeksrapport_bestuurlijk_juridische_vormgeving_po-ko...
19112010 berenschot onderzoeksrapport_bestuurlijk_juridische_vormgeving_po-ko...19112010 berenschot onderzoeksrapport_bestuurlijk_juridische_vormgeving_po-ko...
19112010 berenschot onderzoeksrapport_bestuurlijk_juridische_vormgeving_po-ko...
 
eGo Manual
eGo ManualeGo Manual
eGo Manual
 
Sociale media strategie_voor_politie
Sociale media strategie_voor_politieSociale media strategie_voor_politie
Sociale media strategie_voor_politie
 
Computerspeciaalzaak Codima
Computerspeciaalzaak CodimaComputerspeciaalzaak Codima
Computerspeciaalzaak Codima
 
Netwerkmeeting Presentatie (2)
Netwerkmeeting Presentatie (2)Netwerkmeeting Presentatie (2)
Netwerkmeeting Presentatie (2)
 
thesis Steve Catternan
thesis Steve Catternanthesis Steve Catternan
thesis Steve Catternan
 
The Best of Three Worlds (boek)
The Best of Three Worlds (boek)The Best of Three Worlds (boek)
The Best of Three Worlds (boek)
 
080825 Opbouw En Samenstelling Pijlen
080825 Opbouw En Samenstelling Pijlen080825 Opbouw En Samenstelling Pijlen
080825 Opbouw En Samenstelling Pijlen
 
EnerPro | Energieonderzoek
EnerPro | EnergieonderzoekEnerPro | Energieonderzoek
EnerPro | Energieonderzoek
 
Presentatie wp fujifilm eneco 110412
Presentatie wp fujifilm eneco 110412Presentatie wp fujifilm eneco 110412
Presentatie wp fujifilm eneco 110412
 
Eindrapport evaluatie-wetbeschermingpersoonsgegevens
Eindrapport evaluatie-wetbeschermingpersoonsgegevensEindrapport evaluatie-wetbeschermingpersoonsgegevens
Eindrapport evaluatie-wetbeschermingpersoonsgegevens
 
Berenschot Duurzaamheid ABC's
Berenschot Duurzaamheid ABC'sBerenschot Duurzaamheid ABC's
Berenschot Duurzaamheid ABC's
 
business word
business wordbusiness word
business word
 
Regioplan van zeeuws vlaanderen gezondleven nl 2012 2022
Regioplan van zeeuws vlaanderen gezondleven nl 2012 2022Regioplan van zeeuws vlaanderen gezondleven nl 2012 2022
Regioplan van zeeuws vlaanderen gezondleven nl 2012 2022
 
XML en Organisatie: vijf tegenstellingen
XML en Organisatie: vijf tegenstellingenXML en Organisatie: vijf tegenstellingen
XML en Organisatie: vijf tegenstellingen
 

MSc Thesis Business Informatics

  • 1. 1 Ontwerp van data warehouses: opslag van data en integratie van constraints Ferry Kemperman Huissen / Nijmegen Februari – December 2000 Afstudeerscriptie nr. 475 Bedrijfsgerichte Informatica Faculteit der Natuurwetenschappen, Wiskunde en Informatica Katholieke Universiteit Nijmegen
  • 2. 2
  • 3. 3 VOORWOORD.............................................................................................................................................. 5 1 CONTEXTBEPALING ............................................................................................................................... 6 1.1 WAT IS EEN DATA WAREHOUSE EN WAT KUN JE ER MEE DOEN? .................................................................. 6 1.2 DE DATA WAREHOUSE ARCHITECTUUR ..................................................................................................... 8 1.2.1 De operationele systemen ................................................................................................................. 9 1.2.2 De extractietools: Wrapper en Monitor............................................................................................. 9 1.2.3 De Integrator.................................................................................................................................. 10 1.2.4 De data warehouse gezien als database .......................................................................................... 10 1.2.5 De metadata................................................................................................................................... 10 1.2.6 De data mart .................................................................................................................................. 10 1.2.7 De multidimensionale database....................................................................................................... 11 1.2.8 De Molap/Rolap server................................................................................................................... 11 1.2.9 De front end tools of OLAP tools .................................................................................................... 11 1.3 PROBLEMATIEK OMTRENT DE OPSLAG VAN DATA EN INTEGRATIE VAN CONSTRAINTS ............................... 11 1.3.1 Iets over data opslag in data warehouses ........................................................................................ 12 2 CONSTRAINTS IN EEN DATA WAREHOUSE, EEN VERKENNING VIA PSM ............................... 14 2.1 KORTE INTRODUCTIE VAN HET DIMENSIONALE MODEL ............................................................................ 14 2.1.1 Een case uitwerking........................................................................................................................ 14 2.1.1.1 Introductie van de case ..............................................................................................................................14 2.1.1.2 De case wordt in het dimensionale model gegoten.....................................................................................15 2.1.1.3 Case invulling van het geschetste model van Down Under..........................................................................17 2.2 CONSTRAINTS IN HET DIMENSIONALE MODEL, EEN BENADERING VIA HET RELATIONELE MODEL................ 19 2.2.1 Introductie van PSM....................................................................................................................... 20 2.2.2 Populaties in PSM.......................................................................................................................... 23 2.2.2.1 Universe of instances gedefinieerd.............................................................................................................23 2.2.2.2 Populaties gedefinieerd..............................................................................................................................24 2.2.3 Constraints in PSM......................................................................................................................... 27 2.2.3.1 Relationele algebra....................................................................................................................................27 2.2.3.1.1 Schema gedefinieerd ..........................................................................................................................28 2.2.3.1.2 Val gedefinieerd.................................................................................................................................28 2.2.3.1.3 Meer relationele operaties...................................................................................................................30 2.2.3.2 Constraints onder de loep ..........................................................................................................................33 2.2.3.2.1 Total role constraint ...........................................................................................................................33 2.2.3.2.2 Uniqueness constraint.........................................................................................................................36 2.2.3.2.2.1 Uniqueness constraint applied to one facttype ..............................................................................37 2.2.3.2.2.2 Uniqueness constraint applied to more facttypes...........................................................................39 2.2.3.2.2.3 Uniqueness constraint applied to objectification ...........................................................................42 2.2.3.2.3 Occurrence frequency constraint.........................................................................................................49 2.2.3.2.4 Set constraints....................................................................................................................................50 2.2.3.2.5 Enumeration constraint.......................................................................................................................50 2.2.3.2.6 Power type constraints........................................................................................................................50 2.2.3.2.7 Specialisation constraints....................................................................................................................51 2.2.3.2.8 Subtype defining rules........................................................................................................................51 2.2.3.2.9 Schema type constraints .....................................................................................................................52 2.2.3.2.10 Constraint definities .........................................................................................................................52 3 HET DIMENSIONALE MODEL UITGEDIEPT..................................................................................... 53 3.1 EEN VERDERE VERKENNING VAN CONSTRAINTS IN HET DIMENSIONALE MODEL......................................... 53 3.2 FUNCTIES VAN DE CONSTRAINTS IN HET DIMENSIONALE MODEL............................................................... 54 3.3 EEN VERKENNING VAN DE CONSTRAINTS IN DE DATA CUBE VIA EEN VOORBEELD...................................... 54 3.3.1 De data cube geanalyseerd ............................................................................................................. 54 3.3.1.1 Perspectieven van dimensies: de rotate-functie...........................................................................................56 3.3.1.2 Aggregatie van data: Drill Up/Down en Roll Up ........................................................................................56 3.3.1.3 Begrippenkader.........................................................................................................................................57 3.3.2 De presentatie van gegevens in data cube jargon ............................................................................ 58 3.3.2.1 Enkelvoudige cel.......................................................................................................................................58 3.3.2.2 Tweedimensionale slice.............................................................................................................................58 3.3.2.3 Multidimensionale sub cube ......................................................................................................................59 3.4 DE CASE DOWN UNDER IN HET DATA CUB E CONCEPT .............................................................................. 60 3.4.1 De intra-cube constraints................................................................................................................ 62 3.4.2 De inter-cube constraints............................................................................................................... 63
  • 4. 4 3.5 CONSTRAINTS BENADERD VANUIT HET DIMENSIONALE MODEL VIA STAR JOIN SCHEMA............................. 64 3.6 VOORBEELD VAN HET GEBRUIK VAN DE JOIN EN APPLICATION CONSTRAINT ............................................. 64 3.6.1 De dimensie geografische ligging en de application constraint........................................................ 66 3.6.2 SQL en de join constraint................................................................................................................ 67 4 RELATIONEEL EN DIMENSIONAAL: EEN VERGELIJKEND ONDERZOEK MET BETREKKING TOT CONSTRAINTS EN MEER................................................................................................................ 69 4.1 INTRODUCTIE VAN NESTED DATA CUBES ............................................................................................... 69 4.2 NESTED DATA CUBES OPGEBOUWD ........................................................................................................ 69 4.3 NESTED DATA CUBES: EEN EERSTE VERKENNING VIA DOWN UNDER ....................................................... 71 4.4 KLASSIEKE DATASTRUCTUREN IN NDC .................................................................................................. 72 4.5 NDC ALGEBRA...................................................................................................................................... 73 4.5.1 De bagify operator ......................................................................................................................... 73 4.5.2 De extend operator ......................................................................................................................... 74 4.5.3 De nest operator............................................................................................................................. 75 4.5.4 De unnest operator......................................................................................................................... 77 4.5.5 De duplicate operator..................................................................................................................... 77 4.5.6 De select operator .......................................................................................................................... 78 4.5.7 De rename operator........................................................................................................................ 79 4.5.8 De aggregate operator.................................................................................................................... 79 4.6 MODELLERING VAN RELATIONELE OPERATOREN IN HET NDC MODEL...................................................... 80 4.7 NDC ALGEBRA TOEPASBAAR OP ELKE DIEPTE IN EEN NDC ..................................................................... 84 4.8 EEN INFORMELE MAPPING VAN RELATIONEEL OP DIMENSIONAAL EN VICE VERSA...................................... 84 4.9 DOWN UNDER IN PSM: EEN VERGELIJKING MET HET NDC MODEL .......................................................... 86 4.10 OPSLAG VAN AGGREGATIES IN EEN DATA WAREHOUSE .......................................................................... 93 4.11 MULTIDIMENSIONALE BENADERING VAN AGGREGATIES IN PSM GEMODELLEERD .................................. 93 4.12 EEN AANZET TOT DE BESCHRIJVING VAN DE SEMANTIEK VAN CONSTRAINTS IN HET DIMENSIONALE MODEL ................................................................................................................................................................... 97 4.13 EEN INTERMEZZO OVER VIEW MAINTENANCE ...................................................................................... 100 5 CONCLUSIES EN VERDER ONDERZOEK ........................................................................................ 102 5.1 SAMENVATTING................................................................................................................................... 102 5.2 ALGEMENE CONCLUSIES ...................................................................................................................... 103 5.3 VERDER ONDERZOEK ........................................................................................................................... 104 5.4 TERUGBLIK ......................................................................................................................................... 105 BIBLIOGRAFIE ........................................................................................................................................ 106 BRONVERMELDING FIGUREN EN TABELLEN................................................................................. 108 INDEX ........................................................................................................................................................ 109 FIGURENINDEX....................................................................................................................................... 111 TABELLENINDEX.................................................................................................................................... 111
  • 5. 5 Voorwoord Voor u ligt mijn afstudeerscriptie “Ontwerp van data warehouses: opslag van data en integratie van constraints”, de kroon op mijn studie Bedrijfsgerichte Informatica. Deze scriptie heeft mij veel tijd en moeite gekost, evenals mijn studie. Moeizame periodes wisselden zich tijdens mijn studietijd af met momenten van goede motivatie. Sommige vakken vond ik zeer interessant (vooral die uit de specialisatierichting en de leerzame GiP-reeks) en gingen me dan ook redelijk goed af, maar andere bezorgden me hoofdbrekens. Met name P4, W4 en W6 vielen me erg zwaar en hebben me de nodige moeite gekost te halen. Na 8 jaar middelbare school en 6½ jaar universiteit vind ik het mooi geweest. Ik wil iedereen bedanken die mij gedurende mijn gehele studietijd en scriptie heeft geholpen, op welke wijze dan ook. Mensen die ik in dit verband bij name wil noemen zijn: mijn ouders en mijn broer Mark, mijn goede vrienden Ernest Neijenhuis en Jaap Penders met wie ik zeer veel heb samengewerkt in het verleden, mijn goede vriend en studiegenoot Dennis Noy voor een perfecte samenwerking gedurende de gehele studie aan de KUN. We vulden elkaar perfect aan. Verder mijn afstudeerbegeleider Patrick van Bommel voor de goede begeleiding en de (bijna) wekelijkse nuttige bijeenkomsten. Verder heb ik gedurende mijn studie prettig samengewerkt met mijn goede vriend Sander van Woerkom en Richard Arts. Zij hebben mij geholpen bij vakken die me moeilijk vielen. Zonder hen was ik hier nooit gekomen! Bedankt allemaal! Ferry Kemperman 22 december 2000 Een tweetal opmerkingen vooraf: Dit werk is in de wij-vorm geschreven. Ik heb hier bewust voor gekozen. De definitie van Val wordt in de literatuur beschreven met een ruimtelijk haakje. Door printerproblemen is in dit werk het een gewoon haakje ( [ en ] ) geworden. Informatie over de auteur: Ferry Remon Kemperman werd op 16 januari 1974 geboren in Huissen. Na de HAVO (1986 -1991) aan het Nederrijn College in Arnhem vervolgde hij op dezelfde school met het VWO (1991-1994). In september 1994 begon hij met de opleiding Informatica aan de Katholieke Universiteit Nijmegen. In de periode december 2000 rondde hij in de specialisatierichting Bedrijfsgerichte Informatica deze studie af met het voor u liggende werk. Het afstudeerpraatje werd gehouden op 12 januari 2001 om 14.00 uur in colloquiumkamer A2041.
  • 6. 6 They say it's always the same, two steps forward one step back Whatever he arranges, we must do the best we can Your pain is mine, my blood is yours, can you hear me, I'm calling you You have the power over me, I'm rendered helpless, you've got me on my knees You have the power over me, nothing is certain, I wait for recovery Power Over Me, Mr.Mister 1 Contextbepaling In dit eerste hoofdstuk zal een kader worden geschept voor de probleemstelling die wordt behandeld in deze scriptie. Als eerste zal worden ingegaan op de vraag wat een data warehouse nu precies inhoudt en wat je ermee kan doen. Vervolgens zal een introductie worden gegeven over hoe een data warehouse technisch gezien eruit ziet en wat voor specifieke problemen er kunnen optreden bij het opzetten van zo’n data warehouse. Als laatste zal dit hoofdstuk worden afgesloten met een uiteenzetting naar de specifieke probleemstelling van deze scriptie, namelijk de opslag van data in data warehouses voor OLAP-toepassingen en de integratie van constraints. Hier zullen ook de verschillende problemen aan bod komen. 1.1 Wat is een data warehouse en wat kun je er mee doen? De term data warehouse komt al geruime tijd voor in wetenschappelijke en technische vakbladen, maar ook in magazines en tijdschriften van specifieke maatschappelijke en commerciële sectoren. Een voorbeeld van zo’n sector is het bankwezen. Hieronder zien we een artikel dat door NCR banken uit Noorwegen op het WWW is gezet als persbericht [WWW03]. In dit persbericht wordt een mooie toepassing geschetst van een data warehouse, in het Nederlands ook wel gegevenspakhuis genoemd. De toekomst volgens NCR en Sparebanken NOR Amsterdam, 7 augustus 1998 - Volgens NCR Corporation en Sparebanken NOR (Noorwegen) wordt bankieren gemakkelijker, sneller en leuker voor de consument, leidt het tot minder kosten voor de banken en tot minder papierwerk voor iedereen. De twee bedrijven hebben tezamen het bankfiliaal van morgen bedacht, ontworpen en ingevoerd. Zodra een klant een filiaal van Sparebanken NOR binnenloopt, voert hij zijn bankcard in. Met een speciaal genummerd kaartje wordt hij geïdentificeerd door het gegevenspakhuis, dat een bericht terugstuurt met de klantgegevens. Een videoscherm boven de baliemedewerker toont op de klant gerichte advertenties en de baliemedewerker zelf heeft alle relevante gegevens onmiddellijk bij de hand, zoals welke folders naar deze klant zijn gestuurd en welke diensten verder kunnen worden aangeboden. Klanten bekrachtigen hun opdrachten elektronisch, zodat geen papier nodig is. Dit concept maakt ook de omvangrijke procedureboeken en de dagelijkse papieren administratie van het bankkantoor overbodig. Iedere week worden vijf filialen van Sparebanken NOR herbouwd en uitgerust, en worden de medewerkers omgeschoold. Inmiddels zijn meer dan 140 nieuwe filialen omgevormd. Volgens plan zullen medio 1999 alle 350 kantoren in het netwerk van Sparebanken NOR en zijn partners volgens dit concept zijn aangepast. In dit artikel wordt de indruk gewekt dat de data warehouse een soort grote database is met een grote mate van flexibiliteit m.b.t. tot het vinden van informatie en verbanden in die informatie. Dit laatste is onder meer te halen uit de zin “Een videoscherm boven de baliemedewerker toont op de klant gerichte
  • 7. 7 advertenties en de baliemedewerker zelf heeft alle relevante gegevens onmiddellijk bij de hand”. Nu er een gedachte is gecreëerd omtrent het begrip data warehouse kunnen we een definitie aangeven op een hoog abstractieniveau. “Een data warehouse is een concept dat is opgebouwd uit hard- en software elementen dat het mogelijk maakt om zeer grote hoeveelheden gegevens te analyseren om zodoende managers in staat te stellen om betere bedrijfsbeslissingen te nemen op strategisch en tactisch niveau” Een kanttekening die hier geplaatst dient te worden is het volgende. Een data warehouse is op vele abstractieniveaus te definiëren, van zeer abstracte naar technisch zeer gedetailleerde definities. Tevens is er een groot aantal definities in omloop, waarbij een ieder zijn eigen interpretatie aan dit begrip geeft. In dit document zullen we de bovenstaande definitie aanhouden wanneer we praten op het niveau van het gebruik van data warehouses (dus de meer algemene definitie) en de definitie die wordt gegeven in de volgende paragraaf in het geval er op technisch niveau over data warehouses wordt gesproken. Dan is er ook nog een derde interpretatie die in dit document voorkomt, namelijk de data warehouse beschouwende als een database. Deze interpretatie zal uitsluitend voorkomen bij het gebruik in figuren en bespreking van deze figuren. Wanneer we de definitie onder de loep nemen, vallen gelijk aan aantal zaken op. Een data warehouse is een concept en geen nieuwe technologie. Een data warehouse moet men dus beschouwen als een vernieuwd inzicht opgebouwd uit al reeds bekende zaken. Een van die zaken zijn de zogenaamde legacy-systemen, bestaande uit een informatiesysteem en een database die er zijn voor operationele doeleinden. Een intuïtieve definitie die men van een data warehouse zou kunnen geven is een grote verzameling gegevens (een soort super database) die geanalyseerd kan worden om bepaalde verbanden en trends te vinden om zo een betere bedrijfsvoering er op na te kunnen houden. Vragen die hierbij rijzen zijn natuurlijk: Hoe kom je aan zo’n grote verzameling gegevens? Welke gegevens komen er in die super database en op welke wijze? Welke eisen dienen er gesteld te worden aan die gegevens? Welke analyses moeten er met de gegevens gemaakt kunnen worden? Hoe pak je die analyses aan? Etcetera Een antwoord op enkele van deze vragen zal in de loop van deze scriptie worden gegeven. Een andere vraag die gesteld kan worden is de vraag naar de noodzaak van zo’n data warehouse. Zijn operationele systemen (ook wel OLTP of legacy-systeem genoemd) niet in staat de gevraagde analyses te plegen? Een ontkennend antwoord moet hier worden gegeven. Een dergelijke analyse vereist een aantal belangrijke aspecten van het systeem en de gegevens. Operationele systemen konden dit niet aan vanwege [Hobo97]: • Gebrek aan historische data • Inconsistentie en verandering van gegevens • Gegevens die nodig zijn voor een analyse zitten vaak in verschillende operationele systemen • Query uitvoeringen duren extreem lang (zeer complexe query’s, slechte retrievaltijd) De belangrijke verschillen tussen een operationeel systeem en een data warehouse kunnen hieruit direct worden afgeleid (gedeeltelijk afgeleid uit [Hobo97]). • Tijdsfactor In een data warehouse is het van groot belang dat de historie van gegevens wordt vastgehouden. Er wordt dus een historie opgeslagen van de gegevens. Er worden geen updates van de gegevens gemaakt en de gegevens zijn in principe read-only in een data warehouse. In een operationeel systeem is een historie niet aanwezig. De tijdsdimensie van gegevens is een zeer belangrijk aspect bij een data warehouse.
  • 8. 8 • Onderwerp georiënteerde kijk In een data warehouse gaat het erom de eindgebruiker als referentiepunt te zien in het presenteren van de gegevens. In een operationeel systeem zijn de gegevens vaak georganiseerd naar het perspectief van een applicatie. • Grote hoeveelheid gegevens Bij een data warehouse gaat het om beheer van zeer grote aantallen gegevens. Dit komt mede door het feit dat er historische gegevens dienen te worden opgeslagen (in principe wordt er in een data warehouse niets verwijderd vanuit historisch perspectief). In tegenstelling tot een operationeel systeem, waarbij vaak historische gegevens worden geüpdate, is het hier dus van essentieel belang deze juist te bewaren. • Samenvattingen en geaggregeerde gegevens In operationele databases is er vaak een zeer grote mate van detail aanwezig in de gegevens. Een data warehouse zal samenvattingen en aggregatie van gegevens moeten toepassen om tot goed gebruik te komen van de data warehouse. Dit is een noodzaak om informatie te kunnen extraheren die voor beslissingsondersteunde doeleinden worden gebruikt. • Integratie en associatie van gegevens uit verschillende bronnen De data warehouse “voedt” zichzelf via vaak al bestaande (operationele) systemen en verschillende applicaties. Deze verschillende bronnen gebruiken vaak verschillende manieren waarop hun gegevens worden opgeslagen en worden beheerd. Voor opname in de data warehouse dienen de gegevens consistent te zijn en moeten bepaalde zaken geconverteerd worden. Dit alles om een bruikbare data warehouse te verkrijgen. • Multidimensionaliteit van gegevens Gegevens die in een data warehouse worden opgeslagen kunnen vanuit meerdere dimensies worden opgeslagen. Dit om er voor te zorgen dat de gegevens vanuit elk gewenst perspectief bekeken en geraadpleegd kunnen worden. Een toepassing hiervan is de presentatie van gegevens in een kubus i.p.v. de traditionele 2-dimensionale tabellen. Nu we een beeld hebben gevormd van een data warehouse en zijn doelen kunnen we in de volgende paragraaf doorgaan met het conceptidee achter een data warehouse. We doen dit door aan de hand van een meer technisch perspectief naar een data warehouse te kijken. 1.2 De data warehouse architectuur Het begrip data warehouses passeert vaak de revue in de vakliteratuur over databases. In deze literatuur worden allerlei verschillende technische definities gebruikt voor een data warehouse. Om een goed kader te geven aan het begrip data warehouse in technische zin is het noodzakelijk in te zien dat we een data warehouse moeten beschouwen als een architectuur van deels al reeds bestaande systemen en technieken. Een data warehouse is eigenlijk een architectuur voor het genereren van informatie die kan ondersteunen bij bedrijfsbeslissingen op het tactisch en strategisch managementniveau. Nu zullen we een bespreking geven van de algemene architectuur van een data warehouse. Wanneer het technische kader rond een data warehouse is geschept, kunnen we ons toespitsen op de problematiek omtrent gegevensopslag in de volgende paragraaf. In onderstaande figuur (figuur 1) zien we een algemene structuur van een data warehouse. Het figuur is ontleend aan [SMKK98].
  • 9. 9 Figuur 1: De data warehouse architectuur We zullen de verschillende onderdelen van de architectuur afzonderlijk bespreken in de nu volgende paragrafen. Dit draagt bij aan het creëren van een goed inzicht in de architectuur van een data warehouse, hetgeen weer belangrijk is als fundament voor het inzicht in de opslag van data in een data warehouse. 1.2.1 De operationele systemen Onder operationele systemen worden die systemen verstaan die in een bedrijf als dagelijks gebruik dienen. Deze systemen zorgen voor de dagelijkse informatievoorziening van het bedrijf en bevatten gegevens van alledag. Een operationeel systeem is vaak een eenvoudige database met relatief weinig (complexe) informatie en een onderliggend informatiesysteem. We hebben reeds gezien wat de kenmerken van dergelijke systemen zijn (paragraaf 1.1). Een belangrijk kenmerk van operationele systemen is het ontbreken van een historie. De gegevens in een operationeel systeem zijn bedoeld voor dag tot dag beslissingen. [Hobo97] spreekt over gegevens voor het draaiende houden van de onderneming. Een belangrijk inzicht bij operationele systemen is dat ze van heel verschillende aard kunnen zijn. De systemen kunnen zeer uiteenlopend zijn qua gegevensopslag, soort database, soort informatie, manier van beheer, manier van retrieval van informatie (en daarmee samenhangend de responsietijden). Voorbeelden zijn een Relational Database Management Systemen (RDBMS) of andere, bijvoorbeeld, heterogene informatiesystemen. De bedoeling is nu om gegevens uit deze operationele systemen als bron te gebruiken voor de data warehouse data. Om deze gegevens in een data warehouse te kunnen opnemen is het noodzakelijk de gegevens te bewerken. Dit wordt gedaan door de zogenaamde extractietools als de wrapper en de monitor. Deze worden in de volgende paragraaf besproken. 1.2.2 De extractietools: Wrapper en Monitor De wrapper is een stuk software dat er voor zorgt dat de informatie afkomstig uit de operationele gegevenbronnen wordt geanalyseerd voor opname in de data warehouse. De gegevens dienen te worden geselecteerd, getransformeerd en te worden opgeschoond alvorens ze worden doorgegeven
  • 10. 10 aan de zogenaamde integrator. De integrator zal in de volgende paragraaf worden besproken. De wrapper gaat bijvoorbeeld kijken of de gegevensmodellen van de operationele gegevensbronnen aansluiten bij het gegevensmodel van de data warehouse. Wanneer dit niet het geval is, zal de wrapper een transformatie moeten maken van de presentatie van deze gegevens. Een voorbeeld van zo’n transformatie is de presentatie van flat files in de vorm van een relationeel gegevensmodel (wanneer de data warehouse gebruikt maakt van het relationele gegevensmodel). De monitor heeft hetzelfde doel als de wrapper, maar focust op een ander punt. De monitor, zoals de naam als suggereert, “monitort” op veranderingen in de operationele gegevensbronnen. Wanneer er zich een wijziging voordoet in de operationele systemen, zal er een update moeten plaatsvinden van de data warehouse. De monitor spaart veranderingen in de bronnen op en zal deze op gezette tijden doorgeven aan de integrator. Dit is uiterst belangrijk, daar de data warehouse up-to-date dient te blijven in vrijwel alle gevallen. De monitor bekijkt bijvoorbeeld veranderingen van bepaalde waarden en formaten van de operationele systemen. Wanneer de data warehouse continu online moet zijn, zal de monitor de veranderingen direct moeten doorgeven aan de integrator. Wanneer de data warehouse af en toe offline kan zijn (denk aan ’s nachts of in het w eekend) is het mogelijk om op gezette tijden de data warehouse te updaten (in deze offline tijd). Echter, in deze tijd, waar handel over de hele wereld en dus in verschillende tijdzones plaatsvindt, is het zeer wenselijk de data warehouse continu online te laten. Dit brengt met zich mee dat het maken van een update in de data warehouse niet zo gemakkelijk meer is. Een probleem dat optreedt is het geval dat er concurrent gebruikt wordt gemaakt van bepaalde updates en query-vragen. Dit probleem zal later nog aan de orde komen. 1.2.3 De Integrator De integrator is een tool dat de data, na aanlevering door de wrapper /monitor, opmaakt voor opslag in de data warehouse. Denk hierbij aan data die inconsistent is uit verschillende bronnen en data die conflicten kunnen opleveren. Het uiteindelijke doel is het creëren van een data warehouse dat direct kan inspelen op de vraag naar managementinformatie die nodig wordt geacht. De integrator is voornamelijk bedoeld om de data klaar te zetten voor tools die het vervolgens in de data warehouse laden. 1.2.4 De data warehouse gezien als database De feitelijke database die als data warehouse wordt beschouwd kan op meerdere manieren worden uitgelegd. In de data warehouse worden gegevens opgeslagen uit de externe bronnen. Dit kunnen gegevens zijn die een afbeelding zijn van de externe bron (lees een view) of de feitelijke data. Deze gegevens kunnen ook geaggregeerd zijn, d.w.z. dat ze zijn voorbewerkt door een eerdere aanvraag. Op deze wijze ontstaat redundantie in de database. De wijze waarop de data warehouse is opgebouwd hangt af van de gebruikte architectuur, relationeel of multidimensionaal. 1.2.5 De metadata De metadata is een speciaal soort data in de data warehouse. Metadata laat zich het best uitleggen als data over data. Hiermee wordt bedoeld data die wordt opgeslagen over de feitelijke data in de data warehouse. Denk aan gegevens die iets vertellen over wanneer bepaalde data in de warehouse is opgeslagen, wanneer er voor het laatst geüpdate is vanuit een bepaalde externe bron, etc. Ook gegevens die iets zeggen over de creatie van gegevens in een data warehouse en het gebruik van deze gegevens in een data warehouse vallen onder metadata. 1.2.6 De data mart Een data mart is een verkleind data warehouse. Een data mart richt zich op speciale afdelingen van een bedrijf en is dus ook bedoeld voor analyses t.b.v. 1 soort divisie. Aangezien de data mart niet binnen de scope van deze scriptie valt, zal ik hier volstaan met een verwijzing naar een recent artikel over data marts. Zie hiervoor het artikel van Rob Arntz voor de NSCCS 2000 [Arntz00].
  • 11. 11 1.2.7 De multidimensionale database De multidimensionale database bevat, naast de gewone data warehouse, gegevens die worden gepresenteerd in multidimensionale vorm. Dit zijn vaak geaggregeerde gegevens, die reeds zijn voorbewerkt door de OLAP-server (uit eerdere query’s) en voor een snelle retrievaltijd van een nieuwe query stand-by blijven. Wanneer nu een query wordt gelanceerd die de geaggregeerde gegevens direct kan gebruiken, zonder ze eerst te hoeven berekenen uit de gewone data, kan deze binnen een veel snellere retrievaltijd worden beantwoord. De data warehouse hoeft echter niet een aparte database voor dit soort query’s te hebben. Het is goed mogelijk dat de data warehouse zelf een multidimensionale gegevensopslag gebruikt. De multidimensionale database vormt een belangrijk onderdeel van deze scriptie. 1.2.8 De Molap/Rolap server De MOLAP-architectuur en ROLAP-architectuur zijn de twee verschillende architecturen die gebruikt worden voor het uitvoeren van de analyses door de OLAP tools. De MOLAP architectuur is een architectuur die zich baseert op het multidimensionale model. De geaggregeerde gegevens worden bij deze architectuur in een aparte database opgeslagen naast de data warehouse. Deze database slaat de gegevens multidimensionaal op. In dit geval is het niet nodig geaggregeerde gegevens op te slaan in de feitelijke data warehouse. De server heeft voornamelijk tot doel de gebruikersvragen om te zetten in complexe query’s (extended SQL ) die geschikt zijn om informatie te halen uit de data warehouse en deze vervolgens in de vorm van een multidimensionale presentatie aan te bieden aan de OLAP tools. De ROLAP architectuur is een architectuur waarbij de data warehouse wordt opgebouwd volgens het relationele model. Hierbij dienen de OLAP tools de relationele structuur van de data warehouse te benaderen. Multidimensionale aspecten van de gegevens dienen in een relationeel model te worden opgeslagen. Dit is zeer wel mogelijk. [Hobo97] spreekt over een mythe die ontkracht wordt door Sjoerd Hobo: “gegevens dienen multidimensionaal te worden opgeslagen indien men ze multidimensionaal wilt benaderen.” Dit is pertinent onwaar. 1.2.9 De front end tools of OLAP tools De front end tools zijn de gebruikersprogramma’s waarmee de eindgebruikers van de data warehouse , bijv. de manager die een analyse maakt, de data warehouse aanspreekt voor het uitvoeren van een analyse. De front end tool lanceert de query, bijvoorbeeld geformuleerd in de vorm van een extended SQL-query (hier komen we later op terug), en presenteert na acceptabele retrievaltijd het antwoord in een duidelijke en overzichtelijke tabel of tabellen. Zo’n front end tool kan zijn een spreadsheet, een data mining tool of andersoortige analyseprogramma’s zijn. [Hobo97] omschrijft OLAP tools als “gereedschappen die gebruikt worden om gegevens te analyseren, de resultaten te visualiseren en die mogelijkheden bieden informatie samen te stellen als resultaat van die analyse.” Deze definitie dekt de drie belangrijke functies van deze tools. Analyse, presentatie en samenstelling van informatie vormen de hoofdtaken van een OLAP tool. 1.3 Problematiek omtrent de opslag van data en integratie van constraints In deze scriptie zullen we verschillende kanten van de data warehouse belichten. Het uitgangspunt hierbij is de verschillende problemen die spelen bij de opslag en benadering van data in een data warehouse in kaart te brengen. We zullen hiervoor het gebruik van constraints in een data warehouse als rode draad nemen. Het gebruik van constraints in data warehouses is namelijk een ondergeschoven kindje in het huidige onderzoek naar data warehouses. We laten de importantie van een goede constraint set aan het licht komen. We benaderen het gebruik van constraints in een data warehouse op twee verschillende manieren: vanuit het concept van de data cube en het star join schema. Het dimensionale model, waarop data warehouses worden gemodelleerd, wordt krachtig geïntroduceerd en diep geanalyseerd. Aan de hand van een case zullen we de werking van de verschillende concepten in dit model demonstreren. Een link met het relationele model is onontbeerlijk: veel inzichten van dit model kunnen we doortrekken naar het dimensionale model.
  • 12. 12 We bekijken hiertoe de manier waarop constraints worden gedefinieerd in het relationele model. Dit doen we uitgebreid aan de hand van de modelleringstechniek PSM. Na introductie van een modelleringstechniek voor het dimensionale model, het zogenaamde Nested Data Cube model (NDC), proberen we de lijn van deze constraints door te trekken naar dit model. Ons uiteindelijke doel is het aanreiken van mogelijkheden en inzichten om constraints in het dimensionale model te beschrijven in de NDC algebra of soortgelijke algebra’s. Dit doen we ondermeer door de verschillende problemen uit de beide modellen te vergelijken (o.a. het modelleren van de belangrijke aggregatiemogelijkheden uit het dimensionale model in het relationele model). Het belang van een goede en formele beschrijving van constraints in een data warehouse is zeer groot. Dit wordt duidelijk gemaakt aan de hand van verschillende invalshoeken. We zullen ter verduidelijking de inhoud van deze scriptie even kort bespreken. Hoofdstuk 1 geeft de contextbepaling weer. We bespreken het concept data warehouse op verschillende manieren en geven de problemen weer van het huidige onderzoek naar data warehouses. Tevens bakenen we het probleemgebied van deze scriptie af. Hoofdstuk 2 introduceert het dimensionale model aan de hand van een casebeschrijving. Tevens kijken we naar PSM en de benadering van constraints in dit model. Hoofdstuk 3 diept het dimensionale model helemaal uit met een beschrijving van de data cube en de problematiek omtrent constraints in een data warehouse wordt hierin uitgemeten. Hoofdstuk 4 introduceert het NDC model en diens algebra en maakt een vergelijking tussen het dimensionale model en het relationele model. Verschillende problemen binnen data warehouses komen hier aanbod, zoals view maintenance, de uitdrukkingskracht van de NDC algebra, de modellering van relationele operatoren in de NDC algebra, de benadering van aggregaties en de modellering hiervan in het relationele model. Tenslotte geven we een handreiking naar de mogelijkheid om de constraints in het dimensionale model te beschrijven op een manier waarop dit binnen PSM is gedaan. De “taal” hiervoor zou de NDC algebra kunnen zijn. Als laatste in deze paragraaf een kleine technische sectie ter verduidelijking van de manier waarop data wordt opgeslagen in een data warehouse. 1.3.1 Iets over data opslag in data warehouses Het uiteindelijke doel van een data warehouse is het direct kunnen inspelen op de vraag naar managementinformatie die nodig wordt geacht. Hierdoor dient de data warehouse een zeer flexibele “houding”aan te nemen. Deze “houding”moet het mogelijk maken om bepaalde complexe en zeer uiteenlopende vragen (lees: zeer complexe query’s, gesteld via bijvoorbeeld een spreadsheet -achtige applicatie) zeer snel te kunnen verwerken. Het format van een data warehouse kan zeer uiteenlopen. Er zijn drie manieren om de warehouse data op te bouwen: top-down, bottom-up en een hybride manier, die de twee eerste combineert. Bij de top-down manier gaat het erom dat de bronnen direct worden aangesproken om de warehouse data te creëren. Dit gaat op basis van de bestaande data warehouse applicaties. Eenvoudige, vaak gebruikte en bekende query’s zijn reeds uitgevoerd en opgeslagen in de data warehouse. Al het voorwerk is dus reeds gedaan. Bij bottom-up worden de acties pas uitgevoerd, zodra er een vraag wordt gesteld aan de data warehouse. De gecombineerde, hybride versie maakt gebruikt van sommige reeds bewerkte data uit de data warehouse en sommige onbewerkte data rechtstreeks uit de bronnen. Een manier om de data warehouse met deze grote mate van flexibiliteit te laten werken kan gedaan worden door de data warehouse op te laten bouwen volgens het multidimensionale datamodel. Het idee hierachter is dat data op zo een manier wordt opgeslagen dat alle mogelijkheden van interpretatie van de data nog mogelijk zijn. De noodzaak van deze benadering is dat data warehouses niet kunnen worden ontworpen met traditionele methoden. In legacy systemen (operationele systemen) worden vaak eenvoudige query’s uitgevoerd. Bij data warehouses moeten zeer ingewikkelde query’s kunnen worden uitgevoerd. Dit vraagt om een zeer flexibele opslag van gegevens (zoals we al zeiden: alle mogelijke interpretaties moeten nog open liggen). Een voorbeeld hiervan is het gebruik van vele join-operaties op de opgeslagen gegevens (dit blijkt vaak voor te komen bij data warehouses).
  • 13. 13 Het multidimensionale datamodel maakt gebruik van zogenaamde feiten en dimensies. Feiten bevatten de eigenlijke data en dimensies geven een interpretatie van deze gegevens. Hierdoor ontstaan redundantie, maar dit is juist de bedoeling. Een voorbeeld van een multidimensionaal datamodel is de zogenaamde data cube.
  • 14. 14 2 Constraints in een data warehouse, een verkenning via PSM In dit tweede hoofdstuk zullen we beginnen met een korte introductie van het dimensionale model, waarbij we dit model demonstreren aan de hand van een case. Vervolgens verleggen we het accent naar de modelleringstechniek PSM. PSM zal worden geformaliseerd en als basis dienen voor de beschrijving van constraints in het dimensionale model. De semantiek van PSM die in deze exercitie wordt beschreven zal als eerste in een reeks van twee formalisaties (waarbij de NDC’s uit hoofdstuk 4 de tweede vormen) dienen als uitgangspositie voor een beschrijving van constraints in een data warehouse. 2.1 Korte introductie van het dimensionale model Ten grondslag aan een data warehouse ligt het dimensionale model. [Kim96] spreekt over het dimensionale model en [SMKK98] heeft het over het multidimensionale model. De heren Kimball en Samtani c.s. spreken naar mijn mening over hetzelfde model. Op exact dezelfde wijze wordt het model opgebouwd en met precies dezelfde vocabulaire. Het conceptuele idee wordt echter op een iets andere manier benaderd. Waar Kimball het heeft over het Star-join schema spreekt Samtani c.s. over de data cube. Beide benaderingen zullen worden gebruikt om zo een verschillende toenadering te maken naar het gebruik van constraints in dit model. Aangezien een bespreking van dit model later uitgebreid wordt beschreven, is een korte introductie hier noodzakelijk voor een goed begrip van de problematiek rond constraints. In dit model hebben we te maken met een feitentabel en dimensietabellen. De feitentabel bevat alle, veelal numerieke en optelbare gegevens (bijvoorbeeld totale verkopen, totaal aantal verkochte eenheden) over elke mogelijke combinatie van de dimensies. Deze tabel is dus vergeleken met de dimensietabellen zeer groot. De dimensietabellen hebben een dimensie als uitgangspunt. Een dimensie moet opgevat worden in dit verband als een variabel gegeven waarin informatie uit de feitentabel worden opgeslagen. Voorbeelden van zulke dimensies zijn tijd (denk aan jaren, kwartalen, maanden, weken, etc.) soort product (soort product, beschrijving, merk, etc.) en geografische ligging (Europa, Azië, Australië, USA, etc.). De dimensietabellen bevatten naast een dimensie-key (de unieke sleutel voor elk record in de dimensietabel) een reeks attributen die de dimensie verder beschrijven. Deze attributen zijn dan ook vaak van tekstuele aard. De attributen van de dimensietabel worden voornamelijk gebruikt om bij query-aanvragen (lees extended SQL, want daar hebben we het over bij data warehouses) te dienen als bron voor het kunnen gebruiken van constraints en “row headers”. Dit laatste geeft aan dat dit het hoofdattribuut wordt in het antwoord op de gestelde query-vraag van het systeem naar de eindgebruiker (de SQL gebruiker). Ter verduidelijking van dit model volgt in de volgende paragraaf een uitwerking van een voorbeeld. 2.1.1 Een case uitwerking In deze paragraaf zal een case worden beschreven die verder als voorbeeld zal dienen bij de verduidelijking van zo’n dimensionaal model. Als eerste zal er een korte introductie plaatsvinden waarin de case beschreven wordt. Vervolgens zullen de gegevens uit deze case worden geplaatst in het dimensionale model. Aan de hand van de invulling in dit model zal het model verder worden uitgediept. 2.1.1.1 Introductie van de case Een E-commerce bedrijf, genaamd Down Under, gevestigd in Sydney, Australië verkoopt CD’s aan de consument via het Internet. Het bedrijf biedt deze CD’s aan via een interactieve website waarop de consument zijn bestelling kan plaatsen. We spreken hier dus over een B2C (Business 2 Consumer) bedrijf en laten de B2B-tak (Business 2 Business) hier dus helemaal weg. Op deze website bevinden zich allerlei opties om het voor de consument makkelijk te maken om kiezen. Men kan zoeken in de online database op auteur, titel, jaar van verschijnen, genre etc. Van de in de database aanwezige en
  • 15. 15 dus leverbare CD’s is het mogelijk om een track listing op te vrage n. Wanneer een bestelling is geplaatst kan de wijze van betaling worden opgegeven. Dit kan op drie manieren. Allereerst kan online de creditcard gedebiteerd worden, ten tweede kan een factuur in de vorm van een acceptgiro worden meegestuurd met de bestelling (waarmee men achteraf kan betalen) en als laatste is er nog de mogelijkheid om de bestelling zelf af te halen en contant te betalen. Voor de distributie van de CD’s gebruikt men regionale centra om de vervoers- en transactiekosten zo laag mogelijk te houden. Het bedrijf zorgt zelf voor de levering van de goederen, zodat men vanuit deze regionale centra distribueert naar de consument. Deze centra houden er dus zelf een magazijn op na. De centra zijn gevestigd in Darwin voor verspreiding in Northern Territory, Perth voor verspreiding in West Australia, Brisbane voor verspreiding in Queensland en Sydney voor verspreiding in New South Wales, South Australia, Victoria en Tasmanië. Er zijn dus vier van deze regionale centra, waarbij het hoofdkantoor in Sydney een groot deel voor haar rekening neemt. Down Under levert dus alleen aan consumenten binnen Australië. Sinds kort heeft Down Under het plan opgevat om ook te gaan leveren in Nieuw Zeeland. De levering gebeurt vanuit het kantoor in Sydney, maar door de hoge transportkosten en lange levertijd is het bedrijf een distributiepunt gestart in Auckland, Nieuw Zeeland. Het loopt goed, dus het distributiepunt blijft bestaan. De levering gebeurt eens per maand met kleine vans vanuit de distributiepunten die de bestellingen gaan afleveren. Een voordeel van deze manier is dat wanneer een CD niet op voorraad is, men deze tijdig kan bestellen en als nog binnen het gestelde termijn kan leveren. Voor de case gaan we er even vanuit dat het bedrijf dus geen gebruik maakt van de bestaande postdiensten (in Australië is dit in de dunbevolkte delen toch een lastig vraagstuk, daar hier zeer zelden de posterijen de consument aandoen en dan nog per vliegtuig). Omdat het bedrijf zich inzicht wil verschaffen in de verschillende verkopen en een nauwkeurige analyse wil maken van de historische cijfers m.b.t. de invloed van seizoenen, levertijd, genreverkopen, etc. etc. is het noodzakelijk dat er een data warehouse wordt aangelegd om deze analyses mogelijk te maken. Met dit hulpmiddel (de data warehouse) en de daaraan gekoppelde analyses kan men de strategie voor de toekomst bepalen en zo ook beter inspelen op de commerciële problematiek. Beslissingen op tactisch en strategisch niveau kunnen beter worden onderbouwd. Een opmerking die op deze plaats gemaakt dient te worden is, dat vanwege de eenvoud van het voorbeeld slechts 1 feitentabel wordt gedefinieerd. In een data warehouse heeft men altijd te maken met zeer veel feitentabellen met allen, soms verschillende dimensies. 2.1.1.2 De case wordt in het dimensionale model gegoten Als eerste moeten we bepalen wat de belangrijke structuur vormt voor de data warehouse. Hiermee wordt bedoeld welke gegevens interessant zijn om opgenomen te worden in de data warehouse. Dit is een eerste stap in het bepalen van de dimensies. In onze case is het product, de CD, een aparte dimensie. Men wil precies weten welke CD wat waar doet. Ten tweede is er natuurlijk de bijna standaard aanwezige tijddimensie en als derde is er de geografische dimensie. Deze dimensies zijn bijna zo goed als standaard in een productiebedrijf en een handelsbedrijf. In ons geval moet de vraag worden gesteld of er nog een extra dimensie dient te worden toegevoegd. Gemakshalve doen we dat hier niet, om de eenvoud van het voorbeeld te behouden. Een dimensie die [Kim96] aanhaalt is ook een vaak voorkomende, namelijk de promotiedimensie. Hierbij gaat het erom of de verkoop van bepaalde producten afhangt van bepaalde promotionele activiteiten, zoals bonnen, aanbiedingen of reclamedrukwerk. Nu we de dimensies Tijd, Geografie en Product hebben afgeleid dient de opmerking te worden gemaakt dat in de feitentabel het betalingsverkeer wordt opgenomen. De wijze van betaling, creditcard, acceptgiro of cash, wordt aangegeven in de vorm van omzet per soort betaling in de feitentabel. Nu we de basisconstructie voor het dimensionale model hebben afgeleid, kunnen we dit in een eerste schema zetten. Zie hiervoor figuur 2. We zien de feitentabel in het midden van de figuur. Deze bevat de specifieke gegevens over de verkoop en afzet van de CD’s. Aangezien dit een in principe onuitputtelijke lijst is, geven we een aantal voorbeelden van zulke cijfers. Het aantal verkochte eenheden is een voorbeeld van zo’n cijfer. Als men nadenkt over de betekenis van dit veld zie je vanzelf dat het een combinatie is van de reeds gedefinieerde dimensies. Ook de wijze waarop de
  • 16. 16 betaling plaatsvindt kan men definiëren in de feitentabel. Denk hierbij aan het feit dat de betalingswijze nergens is opgenomen binnen de gedefinieerde dimensies! Figuur 2: Het dimensionale model voor Down Under, de Verkoop feitentabel De sleutels die genoemd staan in de feitentabel komen altijd voort uit de reeds gedefinieerde dimensies. Een unieke combinatie van Tijd, Plaats en Product leveren de records op voor de feitentabel. De echte analytische gegevens staan dus in de feitentabel, terwijl de beschrijvende gegevens in de dimensietabellen staan! Nu we het basisidee te pakken hebben, is de volgende stap in onze casebeschrijving de invulling van de dimensieattributen die de dimensies moeten beschrijven. Zoals we zullen zien spelen deze dimensieattributen een belangrijke rol in het gebruik van constraints. Hierover later meer in dit hoofdstuk en hoofdstuk 3. De dimensie Tijd heeft een verdeling in jaren, maanden, dagen etc. Dit zijn sowieso attributen die moeten worden opgenomen, maar ook vakanties, weekends, uitverkoopdagen dienen te worden opgenomen in de dimensie Tijd. In de productdimensie worden zaken opgenomen titel, artiest, genre, jaar van verschijnen, een attribuut dan aangeeft of het een single of cd betreft, platenmaatschappij etc. etc. Let erop dat dit niet altijd zaken zijn die hiërarchisch of causaal een relatie met elkaar onderhouden. We zullen later zien dat dit geen problemen oplevert met SQL-aanvragen. In de geografische dimensie worden zaken opgenomen als verkocht in Australië of Nieuw Zeeland, geleverd uit welke stad, verkocht in welke regio of stad (uit welke gedeelten van het land of welke steden worden de CD’s gekocht) etc. Wanneer we dit in een schema pl aatsen komen we uit bij figuur 3. De attributen die de dimensies bevat geven aan de SQL-vragensteller de mogelijkheid om binnen de dimensies afbakeningen te regelen. Dit gebeurt in de vorm van beperken van velden binnen deze dimensies. Binnen de dimensie “Tijd”kan bijvoorbeeld worden beperkt op een bepaald jaar of bepaalde maand. Om nu een concrete uitwerking van zo’n vraagstelling te geven, volgt nu een invulling van het dimensionale model van Down Under m.b.t. tot de verkooptabel. In de vorm van vier invullingen van de feitentabel en de drie dimensietabellen zal worden geprobeerd het principe van een aanvraag te verduidelijken.
  • 17. 17 Figuur 3: De dimensies met de dimensieattributen van de Down Under verkooptabel We zullen dit doen in de volgende paragraaf. 2.1.1.3 Case invulling van het geschetste model van Down Under Allereerst maken we een invulling van de drie dimensietabellen met daarin alle in figuur 3 genoemde dimensieattributen. We moeten wel realiseren dat dit een zeer klein fragment is van de werkelijke grootte van de tabel. In het echt zijn dit vele malen grotere tabellen. Voor de doeleinden die we hier echter willen demonstreren, is een tabel van deze grootte uitermate geschikt. Plaatssleutel Distributiecentrum State/Department Plaats Land 1 Darwin Northern Territory Katherine Aus 2 Darwin Northern Territory Darwin Aus 3 Perth Western Australia Perth Aus 4 Perth Western Australia Broome Aus 5 Perth Western Australia Hyden Aus 6 Auckland n/a Wellington NZ 7 Sydney New South Wales Tamworth Aus Tabel 1: Invulling van de geografische dimensietabel Productsleutel Artiest Titel Platenmy jaar Genre Single 1 Springsteen, Bruce Greatest Hits Columbia 1995 Rock nee 2 Springsteen, Bruce Nebraska Columbia 1982 Rock nee 3 Police, The Outlandos d'Amour A&M 1978 Pop nee 4 Lauper, Cyndi Hat Full Of Stars Epic 1993 Pop nee 5 Foreigner 4 Atlantic 1981 Rock nee Tabel 2: Invulling van de productdimensietabel
  • 18. 18 Tijdsleutel Maand Maandnr Weekend Schoolvak. Dagnummer Opruimingsdag Kwartaal Jaar 1 Jan 1 Nee Nee 18 nee 1 2000 2 Jan 1 Nee Nee 19 ja 1 2000 3 Mrt 3 Nee Nee 55 nee 1 2000 4 Mrt 3 Nee Nee 56 nee 1 2000 5 Mei 5 Nee Nee 131 nee 2 2000 6 Mei 5 Nee Nee 133 nee 2 2000 7 Dec 12 Nee Ja 350 nee 4 2000 Tabel 3: Invulling van de tijddimensietabel Tabel 1, 2 en 3 geven een fragment van de invulling van de dimensietabellen weer. Alle dimensierecords hebben een unieke sleutel in de vorm van, in dit geval, een nummer. Voor de dimensieattributen is een invulling gemaakt. In de volgende tabel 4 zien we een fragment van de invulling van de feitentabel Verkoop van Down Under. Zoals hier duidelijk zichtbaar is, vormt de samengestelde sleutel een combinatie van sleutels uit de dimensietabellen (visueel gezien kun je dit voorstellen als de data cube met zijn hokjes waarin elke waarde betrekking heeft op een combinatie van de dimensies!) Plaatssleutel Tijdsleutel Productsleutel Aantal verkocht Omzet # Creditcard # Acceptgiro # Cash # Terug 1 1 1 4 400 3 1 0 0 1 1 2 5 520 1 4 0 0 2 2 2 6 650 6 0 0 0 2 1 2 4 400 0 4 0 0 1 1 3 7 850 5 2 0 0 1 1 4 3 400 3 0 0 1 2 1 1 2 170 0 2 0 0 Tabel 4: Invulling van de feitentabel Verkoop Per record is in de feitentabel aangegeven welke cijfers zijn bepaald voor de verschillende producten, tijden en plaatsen. Voor een goed inzicht zullen we het eerste record even tekstueel uitschrijven. In het eerste record hebben we te maken met de unieke plaats-, tijd- en productsleutel 1. In een zin beschreven betekent dit dat dit record in de feitentabel iets zegt over het aantal verkochte albums van Bruce Springsteen met Greatest Hits op 18 januari 2000 in Katherine verspreidt via het distributiekantoor in Darwin. Van de vier personen die deze CD in huis hebben gehaald op die dag hebben er drie met creditcard online betaald en eentje via een acceptgiro. Nu zegt die zeer specifieke informatie natuurlijk erg weinig en lijkt deze informatie van weinig waarde. De kracht zit hem echter in het feit dat je selecties kunt maken in de attributen en joins kunt maken met de verschillende dimensietabellen. Omdat dit concept uitgebreid aan de orde komt bij de bespreking van de verschillende constraints in de volgende paragrafen wil ik het hier laten bij een SQL voorbeeld die de werking zal verduidelijken. SELECT p.artiest, sum(f.aantal_verkocht) FROM feitentabel f, product p, tijd t, geografie g WHERE f.productsleutel = p.productsleutel AND f.tijdsleutel = t.tijdsleutel AND f.plaatssleutel = g.plaatssleutel AND g.state/department = “Northern Territory” AND p.genre =”Rock” GROUP BY p.artiest ORDER BY p.artiest
  • 19. 19 Bovenstaand stukje SQL is een eenvoudig voorbeeld over een mogelijke query die gesteld kan worden aan ons systeem, beschreven in de case. Door middel van de joins tussen de dimensietabellen en de feitentabel (de sleutel matching) is het mogelijk om attributen uit de verschillende dimensies op te nemen in het antwoord. De matching van de attributen uit de dimensietabellen zorgt ervoor dat het antwoord wordt afgebakend op precies die informatie die je wilt hebben. Hier gaat het dus om artiesten uit het rockgenre en CD’s die verspreidt zijn in het Northern Territory. Wanneer deze query wordt losgelaten zal het volgende antwoord worden gegenereerd. Zie tabel 5. Artiest SUM(aantal_verkocht) Foreigner 0 Springsteen, Bruce 21 Tabel 5: Gegenereerd antwoord Tot zover de uitwerking van deze case. Het dimensionale model heeft hiermee een duidelijk voorbeeld gekregen in de vorm van een reële uitwerking. Nu is de basis gelegd voor een verdere analyse naar het gebruik van constraints toe in dit model. 2.2 Constraints in het dimensionale model, een benadering via het relationele model Nu dit model is geschetst is de basis gelegd voor een introductie van de constraints die een rol spelen in dit model. Als eerste kijken we naar de benadering die gemaakt wordt door [SMKK98]. Vanuit het perspectief van relationele databases wordt geprobeerd de lijn door te trekken naar het dimensionale model als basis voor een data warehouse. Bij het ontwerpen van relationele databases wordt in de conceptuele gegevensmodelleringsfase al rekening gehouden met het gebruik van constraints. Constraints worden gebruikt om bepaalde zaken te verplichten dan wel te verbieden bij het maken van bijvoorbeeld een voorbeeldpopulatie van het gegevensmodel (wat natuurlijk een afbeelding van de werkelijkheid is! Denk hierbij aan het Universe of Discourse). Dit komt reeds tot uiting in de conceptuele fase. Constraints die hierbij optreden zijn als volgt te categoriseren. • Key constraints • Referential integrity constraints • Not Null constraints • Relation-based check constraints • Attribute-based constraints • General assertions Voordat we verderop ingaan op de wijze waarop de tweedeling van constraints van [SMKK98] tot stand komt vanuit dit relationele perspectief, is het op zijn plaats hier een link te leggen naar de gegevensmodellering met behulp van PSM (Predicator Set Model, zie voor een uitgebreide beschrijving van PSM [Hof94]). In [Hof94] wordt namelijk een goede en uitgebreide beschrijving gegeven van de constraints zoals die hierboven door [SMKK98] zijn gecategoriseerd. We zullen nu een korte informele beschrijving geven van één van deze constraints. Een key constraint is in de wereld van PSM een zogenaamde uniqueness constraint. Deze constraint zorgt ervoor dat een populatie in een gedeelte van het feittype (een tabel in het relationele model) maar 1 keer mag voorkomen. Dit gedeelte kan slaan op slechts 1 veld, maar ook op meerdere velden. Het gedeelte van het feittype dat hieraan moet voldoen wordt de sleutel genoemd, vandaar ook de term key constraint. Ook kan een uniqueness constraint over meerdere feittypes gaan en zelfs over nog meer gecompliceerde structuren. Dit zullen we hier buiten beschouwing laten. In PSM wordt gebruikt gemaakt van een relationele algebra om de semantiek van verschillende constraints te kunnen beschrijven. Sommige constraints, waaronder ook de uniqueness constraint, hebben ook een grafische notatie in PSM-schema’s. We zullen nu aan de hand van de formele definities van de verschillende soorten constraints een basis creëren voor de constraints die later in het dimensionale mode kunnen worden beschreven. We zullen voortborduren op het reeds aangehaalde PSM. In de volgende subparagraaf wordt als eerste een
  • 20. 20 introductie gegeven van PSM en vervolgens zullen, verderop, de verschillende constraints worden besproken. Deze uitstap naar PSM vormt een belangrijke basis voor de latere formalisering van constraints in het dimensionale model. We kiezen PSM als uitgangspunt voor zo’n formalisering. 2.2.1 Introductie van PSM Aangezien er vele informatiemodelleringmethoden zijn (Bijv. ER-diagrammen), is het weinig zinvol hier een algemeen betoog te houden over deze verschillende methoden. Voor het doel, het construeren van constraints in het dimensionale model, beperken we ons hier tot NIAM en PSM. NIAM is een informatiemodelleringstechniek die gebruikt wordt als basis voor de constructen van PSM. Je kunt NIAM als een soort voorloper beschouwen. In [Hof94] wordt op basis van een introductie van NIAM verder gebouwd aan de constructies die mogelijk zijn in PSM. De manier waarop we de constructies en constraints in PSM introduceren en bespreken zal gaan aan de hand van een aantal figuren uit [Hof93] en [Hof94]. [Hof93] is het proefschrift waarop het collegedictaat [Hof94] is gebaseerd. Het eerste figuur (figuur 4) staat echter alleen in [Hof93], met daarbij een interessante sectie over constraints, waar later nog kort gebruik van wordt gemaakt. Aan de hand van dit figuur maken we een analyse van de voorkomende constructen. We bekijken figuur 4. Figuur 4: PSM schema inzake Amerikaanse presidenten In dit figuur zien we de verschillende (niet alle) constructen in de modelleringtechniek PSM. De belangrijkste en opvallende grafische notaties zijn de bollen, blokjes en de relaties hiertussen. We zullen eerst een korte informele bespreking geven van de verschillende onderdelen uit het figuur. De bollen stellen de objecttypes voor, die weer onderverdeeld kunnen worden in labeltypes en entiteittypes. Labeltypes worden in dit schema aangegeven met de haakjes ( ). De rest van de bollen zijn entiteittypes. Tussen de bollen, de entiteiten, geven de blokjes relaties aan tussen deze entiteiten. Zo’n relatie (1,2 of meer blokjes) wordt een feittype genoemd. De namen bij de blokjes worden
  • 21. 21 predicatoren genoemd. De pijltjes in het schema hebben betrekking op constraints. Hier gaan we later op in. We zullen nu een consistente en formele notatie invoeren voor zo’n PSM schema als figuur 4. Figuur 4 wordt, zonder de constraints te beschrijven, een informatiestructuur genoemd. Een informatiestructuur bestaat uit een vijftiental onderdelen. De verzameling van deze onderdelen vormen samen een informatiestructuur, aangeduid met het symbool I. De vijftiental onderdelen worden hieronder beschreven. 1. Een eindige verzameling van predicatoren, genoteerd met P 2. Een niet lege, eindige verzameling van objecttypes, genoteerd met O 3. Een verzameling labeltypes, genoteerd met L, waarbij geldt L⊆O 4. Een verzameling entiteiten (of entiteittypes), genoteerd met   , waarbij geldt   ⊆O 5. Een partitie F van de verzameling van predicatoren P. F is een verzameling van feittypes. Een predicator speelt een rol in een feittype. De functie Fact: P ¡ F geeft bij elke predicator het feittype waarin deze voorkomt. De definitie van deze functie is Fact(p) = f ¢ p £ f. Er geldt tevens F ⊆O 6. Een verzameling G van powertypes. Er geldt G⊆O 7. Een verzameling S van sequentietypes. Er geldt S⊆O 8. Een verzameling C van schematypes. Er geldt C⊆O 9. Een functie die een predicator verbindt aan zijn basis uit de verzameling objecttypes. De definitie is Base: P ¡ O 10. Een functie die het elementtype van een powertype of sequentietype oplevert. De definitie is Elt: G ¤ S ¡ O 11. Een relatie die de elementen van een schematype verbindt met het schematype. De definitie is ¥ ⊆ C ¦ O 12. Een binaire relatie Spec op objecttypes, die specialisatie vastlegt 13. Een binaire relatie Gen op objecttypes, die generalisatie vastlegt 14. Een algebra D die opgebouwd wordt uit de verzameling D van concrete domeinen (bijv. strings, int, natno, long int, etc) en de verzameling F van operatoren (bijv. +, -, *, etc). Definitie D = <D,F> 15. Een functie Dom: L ¡ D. Deze functie verbindt alle labeltypes aan een concreet domein uit D. De instanties van labeltypes (denk bijv. aan een naam) komen uit een dezer domeinen. Deze 15 onderdelen vormen samen dus I. De notatie voor zo’n informatiestructuur ziet er als volgt uit: I = <P, O, L,   , F, G, S, C, Base, Elt, ¥¨§ Spec, Gen, D, Dom> Een informatiestructuur I moet voldoen aan een reeks voorwaarden die in [Hof94] uitgebreid wordt besproken. Het is niet erg zinvol om deze hier te beschrijven. Vandaar een verwijzing op deze plek naar [Hof94], de voorwaarden PSM1 t/m PSM11 over de regels m.b.t. de constructie van PSM- schema’s, de type-gerelateerdheid van objecten zijn vastgelegd in de regels T1 t/m T8. Deze zijn te vinden op blz.46 t/m 52 van [Hof94]. Een derde soort voorwaarden, voor ons de interessantste, gaat over de toegestane populaties in de informatiestructuren. Toegestane populaties leggen de semantiek van een data model vast, in dit geval een PSM schema. Hieruit is direct de link te leggen met constraints, die immers bepaalde populaties toestaan dan wel uitsluiten. Voor we echter verder gaan met populaties in PSM schema’s, schrijven we eerst het genoemde voorbeeld uit in de zojuist geïntroduceerde notatie. Hiertoe zullen we de verzamelingen definiëren. P = {headed-by, being-president-of, having-as-vice-president, being-vice-president-of, inaugurated-in, being-inauguration-year-of, resulting-from, resulting-in, being-spouse-of, having-spouse-as, p1, p2, p3, won-by, winning, having-as, of, being-member-of, having-as-member, born-in, being-birthstate-of, serving, being-served-by, dying-at, being-age-at-death-of}
  • 22. 22 O = {Administration, Adm-nr, Person, Person-name, Nr-of-votes, Nr, Election, Elec-Id, Nr-of- children, Politician, President, Year, Year-nr, Age, Nr-of-years, State, State-name, Party, Party-name, Hobby, Hobby-name, Marriage, Admin-pres, {having-as-vice-president, being-vice-president-of}, Election-results, {won-by, winning}, {inaugurated-in, being-inauguration-year-of}, Family-size, Birthyear, {having-as, of}, {being-member-of, having-as-member}, Birthstate, {serving, being-served- by}, {dying-at, being-age-at-death-of}} L = {Adm-nr, Person-name, Nr, Elec-Id, Year-nr, Hobby-name, Party-name, State-name}   = {Administration, Person, Nr-of-votes, Election, Year, Age, Nr-of-years, State, Party, Hobby, President, Politician, Nr-of-children} F = {Admin-pres, {having-as-vice-president, being-vice-president-of}, {won-by, winning}, {inaugurated-in, being-inauguration-year-of}, {having-as, of}, {being-member-of, having-as- member}, Birthstate, {serving, being-served-by}, {dying-at, being-age-at-death-of}, Election-results, Family-size, Marriage, Birthyear} G = ¡ S = ¡ C = ¡ Verder geven de gedefinieerde functies en relaties de volgende (gedeeltelijke) invulling: President Spec Politician Politician Spec Person Fact(headed-by) = Admin-pres Fact(won-by) = {won-by, winning} etcetera Base(being-served-by) = Nr-of-years Base(of) = Hobby etcetera Dom(Hobby-name) = string Dom(Year-nr) = integer etcetera De overige functies en relaties zijn hier niet gedefinieerd, omdat sommige constructies (zoals powertypes) ontbreken in het voorbeeld PSM schema. Een eerste opmerking die hier dient te worden gemaakt m.b.t figuur 4 betreft het feit dat feittypes op twee manieren kunnen worden weergegeven. Ten eerste is een naamgeving aan het construct feittype mogelijk, zoals we zien bij Admin-pres. Een andere mogelijkheid is het feittype aan te duiden als een verzameling van zijn rollen (of predicatoren). Het feittype {having-as, of} is zo’n voorbeeld. Een tweede opmerking betreft het construct Marriage uit figuur 4. Het gaat hier om een zogenaamd geobjectificeerd feittype. Dit is een feittype dat door middel van objectificatie (grafisch gezien als een bol over het feittype) wordt getransformeerd tot een entiteit die zelf weer rollen kan spelen in feittypes. Hoe zo’n geobjectificeerd feittype dient te worden behandeld, zal worden besproken bij de beschrijving van populaties in PSM.
  • 23. 23 2.2.2 Populaties in PSM In een PSM schema, met constraints nog buiten beschouwing latend, kunnen populaties worden gedefinieerd. Een populatie moet men zien als een invulling van een informatiestructuur I aan de hand van de gedefinieerde objecten (objecttypen). Zo’n invulling is een eindige verzameling van instanties die aan de objecttypes uit O worden toegewezen. Uiteraard moet de invulling voldoen aan de regels van de informatiestructuur I. Deze zullen we definiëren in een volgende subparagraaf. Als eerste moeten we definiëren wat nu precies een populatie is. [Hof94] definieert een expressie (predikaat) IsPop(I,Pop). Dit predikaat geeft de waarde TRUE als een populatie Pop op I kan worden toegepast. Anders gezegd: I heeft een geldige populatie in Pop. Wanneer Pop een populatie is van I, dan is Pop een afbeelding van alle objecttypes uit O op  ¢¡¤£¥ (¦ ). Deze laatste verzameling bestaat uit alle eindige deelverzamelingen van de universe of instances. De universe of instances ¦ bevat alle mogelijke instanties die in een informatiestructuur kunnen optreden. Deze universe of instances wordt in de volgende subparagraaf inductief gedefinieerd. Belangrijk is te zien dat ¦ een zeer algemene verzameling is die voor ALLE (geldige) informatiestructuren een basis vormt voor een geldige populatie. Anders gezegd: Een populatie voor een informatiestructuur I is een invulling van objecttypes in eindige verzamelingen van deelverzamelingen van de universe of instances. 2.2.2.1 Universe of instances gedefinieerd Voordat we ¦ kunnen definiëren kijken we eerst naar de instanties van labeltypes en entiteiten. Labeltypes worden geïnstancieerd door hun concrete domein die gedefinieerd is d.m.v. de functie Dom, die aan ieder labeltype een concreet domein toevoegt. We hebben in het voorbeeld gezien dat dit bijvoorbeeld het labeltype Year-nr verbindt aan het concrete domein integer. De instanties van entiteiten komen uit een speciaal domein § , dat bestaat uit ongestructureerde waarden. De universe of instances ¦ wordt door de volgende regels vastgelegd. ¦ is een kleinste verzameling die voldoet aan: 1. ¨ D ⊆ ¦ 2. § ⊆ ¦ 3. X1,….,Xn © ¦ P1,….,Pn © P’ {P1 : X1,….,Pn : Xn} © ¦ , met P’ de verzameling van alle mogelijke predicatoren die kunnen voortkomen in een informatiestructuur 4. X1,….,Xn © ¦ X1,….,Xn} © ¦ 5. X1,….,Xn © ¦ X1,….,Xn © ¦ 6. Y1,…,Yn ⊆ ¦ O1,….,On © O’ {O1 : Y1,…., On :Yn } © ¦ met O’ de verzameling van alle mogelijke objecttypes die kunnen voortkomen in een informatiestructuur Wanneer we kijken naar deze zes regels vallen een aantal zaken op met betrekking tot de constructie van populaties. De universe of instances bestaat uit twee gedefinieerde domeinen (regel 1 en 2) en vier geconstrueerde verzamelingen (regels 4 t/m 6). Bij regel drie wordt een verzameling gedefinieerd die dient ter invulling van een feittype. De predicatoren uit een feittype krijgen een element uit de universe of instances toegewezen. De toegewezen verzameling is dan zelf weer een element van de universe of instances. Dit dient om een zinvolle invulling te geven aan feittypes. Regel 4 en 5 zorgen ervoor dat respectievelijk het powertype en sequentietype gepopuleerd kunnen worden. Regel 4 construeert een verzameling van elementen uit de universe of instances en regel 5 geeft een lijst (sequentie, verzameling met volgordeafhankelijkheid) van elementen uit de universe of instances. Tenslotte geeft regel 6 aan hoe schematypes gepopuleerd worden. Schematypes bevatten elementen uit de verzameling van objecttypes (een schematype kan dus ook een schematype bevatten!). De verzameling van objecttypes die in een schematype voorkomen kunnen door middel van een
  • 24. 24 toewijzing van de objecten aan hun populaties (de Y’s in regel 6) in een verzameling weer een element van de universe of instances opleveren. Met deze regels is de opbouw van mogelijke instanties van PSM-schema’s vastgelegd. 2.2.2.2 Populaties gedefinieerd In [Hof94] volgt een veertiental regels met betrekking tot deze instanties. Deze populatieregels leggen beperkingen op aan de mogelijke populaties met betrekking tot de semantiek van de PSM constructies. We zullen deze regels hier opschrijven met daaronder een korte beschrijving van de werking van de regel. Dit is van belang bij het introduceren van de constraints in PSM. [P1] x  y ¡ x,y ¢ L £ Pop(x) ¤ Pop(y) = ¥ Deze regel geeft aan dat wanneer twee objecttypes x en y niet type-gerelateerd zijn en geen van beiden labeltypes zijn, er geen gemeenschappelijke instanties in hun populatie kunnen zitten. De term type- gerelateerdheid (symbool x¦ y, x is type-gerelateerd met y) geeft aan dat instanties van een objecttype ook kunnen voorkomen in hun type-gerelateerde objecttypes. Denk hierbij bijvoorbeeld aan als x Gen y geldt, er dan altijd geldt dat elke mogelijke instantie uit de populatie van y ook een instantie is van x. [P2] x§ L £ Pop(x) ⊆ Dom(x) Deze elementaire regel was in principe al afleidbaar bij de constructie van de universe of instances. De populatie van een labeltype komt uit zijn concrete domein. [P3] Root(x) £ Pop(x) ⊆ ¨ , met Root(x) = x§© ¡ gen(x) ¡ spec(x) De definitie Root geeft aan dat het gaat om zogenaamde root entity types, hetgeen entiteittypes zijn die niet gegeneraliseerd zijn of een subtype zijn. P3 geeft dus aan dat wanneer x een root entity type is, dan moet de populatie van x uit het abstracte domein ¨ komen. [P4] x§ F ¡ y§ Pop(x) £ y : x ¡ p x [y(p) § Pop(Base(p))] Deze regel zorgt ervoor dat de populatie van een feittype, tupels, wordt opgebouwd uit een toewijzing van elementen uit de universe of instances aan de predicatoren voorkomende in dat feittype. Een tweede eis is dat de toegewezen elementen aan de predicatoren uit het feittype elementen zijn die ook voorkomen in de basis van deze predicatoren. [P5] x§ G ¡ y§ Pop(x) £ y § (Pop(Elt(x))){¥ } De populaties van powertypes worden opgebouwd uit deelverzamelingen van de populaties uit hun elementtypes. Dit wordt in P5 precies weergegeven. De powerset van de populatie van het elementtype (van de powertype in kwestie) met het element lege verzameling daaruit weggelaten. [P6] x§ G £ Pop(§ x) = {{§ p x : u, § e x : v} u § Pop(x) ¡ v § u} In deze regel wordt de populatie van het impliciete feittype § x ,dat de relatie beschrijft tussen een elementtype en zijn powertype, gedefinieerd. De twee predicatoren van dit impliciete feittype, met hun toewijzing uit respectievelijk de populatie van x en u (hetgeen weer een element is uit de populatie van het elementtype van x). Dit tupel wordt genoteerd met { § p x : u, § e x : v}, met de eerste predicator die als basis het powertype heeft, en de tweede predicator die als basis het elementtype heeft. Het impliciete feittype, dat bij ieder powertype kan worden gedefinieerd, wordt meestal niet grafisch
  • 25. 25 weergegeven, tenzij er speciale eisen worden gesteld aan de invulling van dit feittype, zoals constraints. Hierover later meer. [P7] x  S ¡ y  Pop(x) ¢ y   Pop(Elt(x))+ Wanneer de populatie van een sequentietype aan de orde komt, is het noodzaak dat er een volgorde afhankelijkheid wordt vastgelegd. P7 geeft aan dat y als instantie van een sequentietype een lijst is van elementen afkomstig uit het elementtype van het sequentietype. [P8] Pop(I) = { n  ¤£ {0} ¥§¦ s¨ S ¦ u¨ Pop(s) [|u| © n] } Wanneer een sequentietype voorkomt in een PSM-schema worden er automatisch 2 feittypes gedefinieerd. De eerste is, net als bij het powertype, het impliciete feittype die een brug slaat tussen het elementtype en het sequentietype. Deze wordt genoteerd met   x = {   s x ,   e x }. Het tweede impliciete feittype dat bij sequentietypes wordt gemaakt, is degene die de elementen in de sequentie indexeert. Dit is van belang, omdat hier de volgorde er wel toe doet. Dit gebeurt op de volgende wijze. Figuur 5: Impliciete feittypes voor een sequentietype
  • 26. 26 We kijken naar figuur 5. We zien het sequentietype playlist. Een playlist is een lijst met songs met volgordeafhankelijkheid. Gemakshalve hebben we hier de identificatie voor playlist weggelaten. Het labeltype Index zorgt voor de indexering van de elementen uit de playlist. Dit gebeurt via het impliciete feittype @playlist. Dit feittype bestaat uit 2 predicatoren, n.l. @s playlist en @i playlist. De tweede heeft als basis het labeltype Index. Hierbij geldt dat Dom(Index) =   . Op deze wijze wordt een index bijgehouden van de elementen in de elementen van het sequentietype. De volgende 2 regels zijn van toepassing op deze twee impliciete feittypes. [P9] x¡ S ¢ Pop(¡ x) = { { ¡ s x: u , ¡ e x: v } £ u ¡ Pop(x) ¤¦¥ i§ Pop(I) [ui = v] } Deze regel geeft aan hoe de populatie van het eerste impliciete feittype wordt opgebouwd. Men ziet dat de tweede predicator (met als basis het elementtype van x) een toewijzing v krijgt (uit de populatie van dit elementtype dus) die moet voldoen aan het bestaan van een geïndexeerd element. [P10] x¡ S ¢ Pop(¨ x) = { { ¨ s x: u , ¨ i x: v } £ u ¡ Pop(¡ x) ¤ u(¡ s x)v = u(¡ e x) } De populatie van het impliciete feittype dat voor de indexering zorgt is wat ingewikkelder. Het eerste lid van een tupel uit de populatie van ¨ x , de predicator die als basis het geobjectificeerde feittype ¡ x heeft, wordt bij de toewijzing bij zo’n e lement uit Pop(¡ x) een verplichting opgelegd die staat beschreven in het tweede deel van P10. De index v die wordt toegevoegd door I, moet overeenkomen met het geïndexeerde element toegevoegd aan de predicator ¡ e x. [P11] x¡ C ¤ y¡ Pop(x) ¢ IsPop(Ix, y) Deze regel zegt dat de populatie van een schematype wordt bepaald door de populaties van de onderliggende informatiestructuur. Anders gezegd: de populatie van de onderdelen uit een schematype zijn de basis van de populatie van het schematype. Ix is de denotatie van de informatiestructuur in een schematype en voldoet aan alle eisen van een gewone informatiestructuur. [P12] x © y ¢ Pop(¡ x,y) = { {¡x,y: u, ¡ x,y: v} £ u ¡ Pop(x) ¤ v ¡ u(y) } Ook schematypes hebben impliciete feittypes tussen de objecten in het schematype en het schematype zelf. Zo’n impliciet feittype wordt aangeduid met ¡ x,y , waarbij x het schematype is en y het object in de decompositie. De predicatoren in dit impliciete feittype worden aangeduid met een klein c’tje in de bovenhoek voor de predicator met de basis het schematype en een klein d’tje voor de predicator met als basis het gedecomposeerde objecttype. De populatie van dit feittype bestaat uit tupels met als eerste element een toewijzing uit de elementen van het schematype. Het tweede lid van de tupel is een element dat voorkomt in de populatie van y, maar tevens “zitting heeft”in het geselecteerde ele ment uit de populatie van het schematype (u). [P13] x Spec y ¢ Pop(x) ⊆ Pop(y) Deze regel spreekt voor zich. Immers de populatie van een specialisatie is een deelverzameling van zijn bovenliggende pater familias. Denk bijvoorbeeld aan een object Zoogdieren met subtypes Mensen en Apen. Een mens is een zoogdier, maar een zoogdier is niet altijd een mens. Een simpele regel laat de waarheid van P13 zien. [P14] gen(x) ¢ Pop(x) = Pop(y) £ x Gen y} Wanneer x een generalisatie is van een stelletje objecten, dan is de populatie van x een vereniging van de populaties van zijn onderliggende objecten.
  • 27. 27 Met de in deze paragraaf vastgelegde regels met betrekking tot populaties, is het mogelijk om nu in te gaan op de verschillende constraints binnen PSM. 2.2.3 Constraints in PSM Alvorens we in gaan op de wijze waarop in PSM met constraints wordt omgegaan, is het eerst noodzakelijk een categorisatie te maken van de constraints zoals deze in PSM voorkomen. In [Hof94] wordt als eerste gesproken over een tweedeling in constraints, namelijk als eerste constraints die grafisch worden aangeduid in PSM-schema’s. Voorbeelden daarvan zijn we al tegengekomen, zoals de pijltjes boven feittypes en de bollen aan de objecttypes. De tweede soort constraints zijn degene die beschreven worden aan de hand van een relationele algebra. Naast deze tweedeling spreekt men ook over het verschil tussen statische en dynamische constraints. Een statische constraint is een constraint die populaties uitsluit die niet geldig zijn. Niet geldig zijn is het niet overeenkomen met een toestand in het Universe of Discourse. Het Universe of Discourse is het model van een gedeelte van de werkelijkheid dat gemodelleerd dient te worden. Dynamische constraints verbieden bepaalde transities/verschuivingen tussen populaties. Statische constraints zijn de constraints waar wij voorlopig op zullen focussen. PSM gebruikt voor de beschrijving van de semantiek van statische constraints een relationele algebra. Een relationele algebra is geïntroduceerd in het relationele gegevensmodel met als doel het maken van een retrieval mogelijkheid. Dit hoofddoel zal later ook nog aan bod komen, maar als eerste gaan we kijken naar de beschrijving van constraints met behulp van deze relationele algebra. Als eerste definiëren we een PSM schema   als een combinatie van een informatiestructuur I en een verzameling van constraints R. Een populatie van een PSM schema wordt gedefinieerd als een populatie van zijn informatiestructuur en de geldigheid van de gedefinieerde constraints in deze structuur. Formeel: IsPop(  ,Pop) = IsPop(I,Pop) ¡£¢ r¤ R [Pop ¥ r] De “voor alle”expressie geeft aan dat de populatie alle constraints in het schema waar moet maken. Nu we weten wat een PSM schema precies inhoudt, rijst de vraag hoe we de verzameling constraints R kunnen beschrijven en definiëren. We zullen hiertoe de relationele algebra introduceren. 2.2.3.1 Relationele algebra Een relationele algebra voor PSM gebruikt als bouwstenen zogenaamde relationele expressies. Relationele expressies worden als volgt geconstrueerd. Ze zijn of een feittype of een relationele operatie toegepast op één of meer relationele expressies. Relationele operaties zullen we hier niet uitgebreid bespreken. Voor een uitgebreide beschrijving van relationele operaties verwijzen we naar [Weide]. In [Weide] wordt het relationele gegevensmodel vanaf scratch opgebouwd. Voor een goede opbouw van de theorie die hierna volgt, is het noodzakelijk dat we hier de relationele operatoren kort noemen. In [Weide] worden de volgende 4 voor ons interessante relationele operaties genoemd. 1. De projectie operatie, genoteerd met ¦ . De projectie operatie wordt gebruikt om een beperking mogelijk te maken in de kolommen (attributen, predicatoren) van een tabel in het relationele gegevensmodel. 2. De selectie operatie, genoteerd met § . De selectie operatie maakt het mogelijk beperkingen uit te voeren in de tupels van een tabel. Alleen de gewenste tupels worden zo geselecteerd. 3. De join operatie, genoteerd met ¨ . Deze operatie maakt het mogelijk twee tabellen te koppelen tot een nieuwe tabel, waarbij de attributen uit de afzonderlijke tabellen worden gekoppeld met gemengde tupels in het resultaat van een join operatie.
  • 28. 28 4. De hernoem operatie, genoteerd met   . Deze operator hernoemt een attribuut in een relationele expressie. Deze vier operaties spelen een grote rol in de opbouw en werking van de relationele algebra van PSM. Uiteraard bestaan naast deze wat meer geavanceerde operaties, de standaardoperaties zoals vereniging en verschil. Deze komen, waar nodig, aan bod. We zullen nu verder gaan met de opbouw van relationele expressies. Een relationele expressie is eigenlijk een beschrijving van een afgeleid feittype. Zo’n afgeleid feittype (afgeleid, omdat er dus via relationele operatoren kan worden gerekend met feittypes) heeft twee kenmerken, namelijk een type en een populatie. Dit geheel in overstemming met PSM-schema’s. Twee operaties op relationele expressies geven de mogelijkheid om deze twee kenmerken te genereren. Het zijn de operaties Schema voor de generatie van het type en Val voor de generatie van de bijbehorende populatie. Deze zijn als volgt gedefinieerd. 2.2.3.1.1 Schema gedefinieerd Als relationele expressie een enkel feittype f is dan: Schema (f) = f (= de verzameling van predicatoren uit f) Anders is Schema gedefinieerd naar de opbouw van de relationele expressies. Schema is altijd te schrijven als een verzameling van predicatoren. Dit gaat als volgt. Laat r en s relationele expressies zijn. Dan geldt: Schema (r ¡ s) = Schema (r) ¢ Schema (s) Laat r een relationele expressie zijn, q1,…q n (allen verschillend) en p1,…pn (uit Schema (r)) predicatoren, dan is de projectie £ q1:p1,…,qn:pn (r) een relationele expressie met de volgende definitie: Schema (£ q1:p1,…,qn:pn (r)) = {q1,…q n} Wanneer we kijken naar de selectie operatie, dan kunnen voor wat betreft de schemadefinitie kort zijn. Een relationele expressie r, waarbij een selectie operatie op wordt toegepast heeft geen directe invloed op het resultaat van het type van het afgeleide feittype. We noemen F een willekeurige selectie. Dan geldt voor de selectie ¤ F(r) (ook een relationele expressie): Schema (¤ F(r)) = Schema (r) 2.2.3.1.2 Val gedefinieerd De operatie Val geeft bij elke relationele expressie een populatie op basis van een informatiestructuur en een voorbeeldpopulatie. We zullen Val ook definiëren aan de hand van de opbouw van relationele expressies via relationele operaties. Als eerste hebben we de basisdefinitie van de populatie van een feittype f. Dit is eigenlijk triviaal, maar dient als basis voor de opbouw van de operatie Val. Val [ f ] (Pop) = Pop(f) Voor de definitie van Val is het interessant om als eerste te kijken naar de standaardoperaties vereniging en verschil. Wanneer we 2 relationele expressies r en s bekijken, met bijvoorbeeld Schema
  • 29. 29 (r) = Schema (s), dan zijn de vereniging r   s en het verschil r ¡ s gedefinieerd als relationele expressies met de volgende populaties. Val [ r   s ] (Pop) = Val [ r ] (Pop)   Val [ s ] (Pop) Val [ r ¡ s ] (Pop) = Val [ r ] (Pop) ¡ Val [ s ] (Pop) Wanneer we kijken naar twee relationele expressies r en s, kunnen we de join tussen deze twee als volgt populeren. Dit gebeurt middels de volgende definitie van Val. Val [ r ¢ s ] (Pop) = { t £ t[Schema (r)] ¤ Val [ r ] (Pop) ¥ t[Schema (s)] ¤ Val [ s ] (Pop) } In deze definitie zien we dat alle tupels die gevormd worden uit het cartesisch product van de populaties van de relationele expressies r en s worden verwerkt in de populatie van hun join. Ook de andere operaties, projectie en selectie, hebben een dergelijke definitie. Hieronder komen ze voorbij. Voor de definitie van Val met betrekking tot de projectie operatie, gaan we uit van dezelfde voorwaarden als bij de definitie van de projectie bij Schema. Val [¦ q1:p1,…,qn:pn (r) ] (Pop) = { t £¨§ s© Val [ r ] (Pop) 1 i n [t (qi) = s (pi)] } Deze ingewikkelde definitie verdient een nadere verklaring. Deze definitie geeft aan dat wanneer een tupel (met een geprojecteerde predicator) voorkomt in de populatie van de projectie, deze ook moet voorkomen in de populatie van de relationele expressie, zoals die voor de projectie bestaat. Merk op dat de projectie operatie tevens kan dienen voor het hernoemen van predicatoren. Voor we een Val definitie voor de selectie operatie kunnen opstellen, is het noodzakelijk eerst een definitie te geven van de mogelijke selectieformules. Hiertoe geven we eerst de definitie van de verzameling , de selectieformules. is de kleinste verzameling die voldoet aan: (met P’ alle mogelijke predicatoren uit een informatiestructuur en D de verzameling van concrete domeinen) 1. p, q ¤ P’ p = q ¤ 2. p ¤ P’, c ¤  D p = c ¤ 3. f, g ¤ f ¥ g ¤ 4. f ¤ f ¤ Voor de definitie van Val met betrekking tot de selectie operatie is verder nodig te weten wanneer een tupel uit de populatie van de relationele expressie met een selectie operatie voldoet aan een selectieformule uit . We schrijven het volgende, met tupel t voldoet aan de selectieformule f uit t f, met t een partiële functie van P’naar en f uit , dan en slechts dan als t(p) = t(q) en § k©¨! [t(p) = k] en § k©¨! [t(q) = k], met f van de vorm p = q t(p) = c en § k©¨! [t(p) = k], met f van de vorm p = c t x en t y, met f van de vorm x ¥ y t # x, met f van de vorm x
  • 30. 30 Nu we de betekenis van “t   f”hebben vastgelegd, kunnen we de definitie van Val voor de selectie operatie vastleggen. Wanneer r een relationele expressie is, f een selectieformule, dan is de selectie ¡ f (r) een ook een relationele expressie met de volgende populatie. Val [ ¡ f (r) ] (Pop) = { t ¢ Val [ r ] (Pop) £ t   f } Nu het voorwerk van deze definitie is gedaan, is de uitleg van deze Val niet meer moeilijk. Alle tupels uit de populatie van relationele expressie r worden overgenomen, indien ze voldoen aan de selectieformule f. Nu voor de definities voor Schema en Val zijn opgebouwd aan de hand van de opbouw van de relationele expressies, is het fundament gelegd voor een verdere uitbreiding van de relationele algebra voor PSM-schema’s. In de volgende subparagraaf introduceren we nog meer relationele operaties, waarmee de relationele algebra wordt uitgebreid. Hierbij worden voor iedere operatie de definities van Schema en Val bijgewerkt. 2.2.3.1.3 Meer relationele operaties In deze paragraaf breiden we het aantal relationele operaties op relationele expressies uit. Als eerste introduceren we de extensie operatie ¤ . Deze operatie breidt een relationele expressie r uit met een nieuwe predicator a. Deze predicator telt het aantal tupels met een gelijke waarde voor een verzameling van predicatoren uit Schema (r). Deze verzameling wordt gedefinieerd als ¥ . We definiëren: Schema (¤ (r, ¥ , a)) = Schema (r) ¦ {a} Val [ ¤ (r, ¥ , a) ] (Pop) = { t £ t[Schema (r)] ¢ Val [ r ] (Pop) § t(a) = |{s ¢ Val [ r ] (Pop) £ t(¥ ) = s(¥ ) } | } Deze definities zijn verder duidelijk. Als tweede introduceren we de “unnest ”operatie. Deze operatie wordt gebruikt om geneste feittypes te “unnesten”. Dit “unnesten”is feitelijk het elimineren van een extra laag in een hiërarchische geneste structuur. We zullen dit nu formaliseren. Laat g een relationele expressie zijn, p een predicator uit Schema (g), f een feittype zodat geldt Base (p) is type-gerelateerd met f.. We definiëren vervolgens S = Schema (g) {p}. We kunnen dan ¨ p f (g) als relationele expressie definiëren. We zullen nu het bijbehorende figuur uit [Hof94] ter verduidelijking opnemen. Zie figuur 6. Het feittype f wordt als het ware geëlimineerd en diens predicatoren komen bij het feittype g te zitten. De bijbehorende definitie voor Schema en Val zijn als volgt. Schema (¨ p f (g)) = f ¦ S Val [ ¨ p f (g) ] (Pop) = { t ¦ s[S] £ t ¢ Val [ f ] (Pop) § s ¢ Val [ g ] (Pop) § s(p) = t } De definitie van Schema spreekt voor zich, daar de verzameling S de predicatoren uit het feittype f er bij krijgt. De definitie van Val relateert hier duidelijk aan. De populatie uit het feittype f wordt gekoppeld aan die uit g, met dien verstande dat de populatie toegewezen aan predicator p vervangen wordt door de reeks uit f.
  • 31. 31 Figuur 6: Werking van de unnest operatie In een speciaal geval van unnesten kan er bij de definitie van de unnest operatie een probleem optreden. Dit is het geval wanneer de doorsnede van de verzameling S en Schema (f) niet leeg is. Dit betekent dat er 1 of meer gemeenschappelijke predicatoren zijn tussen g en f. Het probleem dat dan optreed is, dat de waardenverzameling van Val [   p f (g) ] (Pop) dan kan bestaan uit relaties in plaats van functies. In dit geval is deze Val niet gedefinieerd. Om dit te ondervangen is een sterke versie van de unnest operatie nodig. Deze introduceren we als “strong unnest ”. Deze operatie werkt als volgt. W e nemen een relationele expressie g, een predicator p uit Schema (g), en f een feittype zodat Base (p) type-gerelateerd is met f. Nu is S = Schema (g) {p} en T = f ¡ S. T geeft dus de verzameling van predicatoren die de feittypes f en g gemeenschappelijk hebben, met daaruit weggelaten p. De strong unnest operatie ¢ p f (g), werkend op g, is een relationele expressie met de volgende definities. Schema (¢ p f (g)) = f £ S Val [ ¢ p f (g) ] (Pop) = { t £ s[S] ¤ t ¥ Val [ f ] (Pop) ¦ s ¥ Val [ g ] (Pop) ¦ s(p) = t ¦ s[T] = s(p)[T] } De strong unnest operatie gedraagt zich op dezelfde wijze als de gewone unnestoperatie, in het geval de verzameling T leeg is. [Hof94] bespreekt nog enkele boolean operaties, waarvan we de volgenden even aanstippen. Wanneer b een boolean expressie is, schrijven we het volgende wanneer een populatie voldoet aan deze boolean expressie. Pop § b Een voorbeeld hiervan is de test IsEmpty (r), waarbij de relationele expressie getest wordt op het feit of deze een lege populatie heeft. Dit wordt genoteerd als: Pop § IsEmpty (r) ¨ Val [ r ] (Pop) = ©
  • 32. 32 Een belangrijke boolean expressie is degene die functionele afhankelijkheid vastlegt binnen een relationele expressie. Wanneer we 2 deelverzamelingen uit Schema (l), met l een relationele expressie en de deelverzamelingen   , ¡ ⊆ Schema (l) nemen, dan noteren we de volgende boolean expressie.   l ¢ ¡ Deze boolean expressie is waar in een populatie, wanneer een populatie voldoet aan de volgende eigenschap. De populatie moet voor elke instantie uit de predicatorenverzameling   rechtstreeks dat gedeelte afleiden uit het ¡ -gedeelte van deze betreffende instantie. Formeel opgeschreven ziet dit er als volgt uit. Pop £¤  l ¥ ¡ ¦ § x,y¨ Val [ l ] (Pop) [x[  ] = y[  ] © x[¡ ] = y[¡ ]] De boolean expressie   l ¢ ¡ is waar in populatie Pop dan en slechts dan als voor alle instanties uit Val [ l ] (Pop) geldt dat wanneer de instanties voor een bepaalde predicatorenverzameling hetzelfde zijn, dan dit ook voor een andere, willekeurige predicatorenverzameling uit het relationele schema waar moet zijn. Vergelijkingsoperaties tussen relationele expressies bestaan, maar ze zijn alleen nuttig in het geval van verschillende relationele schema’s van relationele expressies. We zullen drie vergelijkingsoperaties kort introduceren. r en s zijn hierin relationele expressies met verschillende relationele schema’s. De subset operatie: Pop £ r ⊆ s ¦ § t¨ Val [ r ] (Pop) u¨ Val [ s ] (Pop) § p¨ Schema (r) [t(p) = u( (p))] , waarbij geldt dat : Schema (r) Schema (s) , met p Schema (r) [p ~ (p)] De gelijkheidsoperatie: Pop r = s r ⊆ s s ⊆!# r , met de subset operatie gedefinieerd zoals hierboven. De exclusie operatie: Pop r $% s t Val [ r ] (Pop) u Val [ s ] (Pop) p Schema (r) [t(p) = u( (p))] Als laatste categorie operaties, voeren we hier nog een tweetal speciale operaties aan. De eerste is de zogenaamde range operatie, genoteerd met ' p (r). Deze operatie genereert de waardenverzameling behorende bij 1 predicator (p) uit een bepaalde relationele expressie r. Deze waardenverzameling kan een populatie zijn, maar kan ook een objectenverzameling zijn uit bijvoorbeeld entiteiten. Hiervoor kan deze operatie geen algebraïsche operatie worden genoemd. De definiëring voor Schema en Val zien er als volgt uit voor deze operatie. Schema ( ' p (r) ) = {p} Val [ ' p (r) ] (Pop) = { t(p) ( t ) Val [ r ] (Pop) } De omgekeerde versie van de range operatie, is de lift operatie. Deze operatie kan als invoer een objecttype hebben of een relationele expressie. De definities van Val en Schema zien er als volgt uit.
  • 33. 33 Schema (   p (r) ) = {p} Val [   p (r) ] (Pop) = { t ¡ t(p) ¢ Val [ r ] (Pop) } Een klein nuanceverschil in de definitie met de range operatie, maar de populatieverzameling van de lift operatie is totaal verschillend. Bij de range operator worden alleen de elementen uit de universe of instances m.b.t. de geselecteerde predicator gegenereerd, terwijl de lift operatie tot gevolg heeft dat de volledige tupels (dus predicator met toewijzing uit de universe of instances) worden gegenereerd. De predicator hoeft dus niet per se een onderdeel te zijn van een relationele expressie. Bij een objecttype als invoer van de lift operatie worden de elementen van dit objecttype toegevoegd aan de predicator die door de lift operatie wordt gebruikt. Het is natuurlijk wel noodzakelijk dat dit objecttype de basis is van zo’n predicator. Hierbij eindigt de beschrijving van de relationele algebra voor PSM. Vanuit deze relationele algebra zullen we een beschrijving gaan geven van de verschillende soorten constraints in PSM. 2.2.3.2 Constraints onder de loep We zullen als eerste een categorisatie maken van de voorkomende constraints in PSM. Na deze categorisatie zal een bespreking plaatsvinden van de total role constraint en de uniqueness constraints samengaand met een voorbeeld, bestaande uit een PSM schema en een voorbeeldpopulatie. Deze constraints vormen de basis van alle constraints. Ook het doel van deze constraints wordt uitgelegd. Vervolgens zal de formalisering van de constraints plaatsvinden. Deze formalisering wordt, zoals reeds gezegd, opgeschreven in de besproken theorie m.b.t. PSM en diens relationele algebra. De formalisering van de overige constraints zal in vogelvlucht gaan, daar de basis wordt gelegd bij de twee genoemde soorten constraints. We hebben in PSM de volgende (soorten) constraints (gebaseerd op [Hof94]). Gezien de naamgeving van de constraints in het Engels is, zullen we deze niet trachten te vertalen naar een krom Nederlands construct. • Total role constraint • Uniqueness constraint applied to one facttype • Uniqueness constraint applied to more facttypes • Uniqueness constraint applied to objectification • Occurrence frequency constraint • Set constraints • Enumeration constraint • Power exclusion constraint • Cover constraint • Set cardinality constraint • Membership constraint • Specialisation constraints • Subtype constraints (subtype defining rules) • Schema type constraints De belangrijkste constraints, dat wil zeggen vaak voorkomend, hebben een grafische notatie binnen PSM. Onder deze vallen o.a. de total tole constraint, de verschillende uniqueness constraints (met verreweg de moeilijkste semantiek), occurence frequency constraints en set constraints. We zullen beginnen met deze grafische constraints. 2.2.3.2.1 Total role constraint