
Thema Trends Methode biedt ontwerpers veel voordelen Anchor Modeling Bas van den Berg en Jorg Jansen Anchor Modeling is een modelleertechniek waarin het informatiemodel wordt genormaliseerd in de zesde normaalvorm. De methode biedt voordelen en de datakwaliteit is zeer hoog omdat gegevens nooit worden weggegooid. De auteurs zijn enthousiast over de mogelijkheden. De sleutel voor een toekomstvast en flexibel datawarehouse is In de database ziet het er uit als in afbeelding 2 wanneer we een goed doordacht informatiemodel. De beslissingen die geno- alleen de anchor Medewerker en het attribuut Sexe laten zien. men worden bij het maken van het informatiemodel zijn bepa- Wanneer vaak dezelfde string herhaald wordt in een attribuut, lend voor het slagen van het datawarehouseproject. De praktijk dan kan er voor gekozen worden om een knot aan te leggen, ver- wijst echter uit dat het meestal niet mogelijk is om bij de start gelijkbaar met een lookup-tabel. De knot bevat een lijstje met van een project een volledig dekkend informatiemodel te maken, opzoekwaardes, en de attribuuttabel bevat een foreign key-ver- en dat het model gedurende de levensduur van het dataware- wijzing naar de knot-tabel. Dezelfde knot kan door meerdere house regelmatig aangepast en uitgebreid zal moeten worden. attributen gebruikt worden. Een knotted attribuut ziet er uit als in Dit is ook precies de reden dat ‘agile datawarehousing’-metho- afbeelding 3. Ook een knotted attribuut kan eenvoudig ‘gehisto- dieken in opkomst zijn – het informatiemodel moet gemakkelijk riseerd’ worden door een ValidDate toe te voegen. Bijvoorbeeld en snel uitbreidbaar zijn. De bekendste hiervan is Data Vault de burgerlijke staat van een medewerker, zie afbeelding 4. (DV) van Dan Linstedt, maar in dit artikel willen we aandacht besteden aan een andere recente en zeer veelbelovende metho- Ties. diek: Anchor Modeling, (AM) Ref. [1]. We zullen kort bespreken Stel dat we willen vastleggen bij welke afdeling een medewer- wat AM precies is en vervolgens ingaan op de voor- en nadelen. ker werkt. Dit wordt gedaan door middel van een tie. Een tie bevat alleen de verwijzingen naar de anchors. Wat is Anchor Modeling? Bij het aanmaken van een tie moet ook een naam worden Eind juni kwam Lars Rönnbäck naar Nederland om te vertellen gegeven aan de rol tussen Medewerker en Afdeling (werktBij) over Anchor Modeling (AM): een modelleertechniek waarin het en vice versa (bestaatUit). Laten we als voorbeeld een medewer- informatiemodel wordt genormaliseerd in de zesde normaalvorm. ker nemen met de naam Albert Schrijfgraag. Albert werkt voor Simpel gezegd betekent de zesde normaalvorm dat elke tabel Personeelszaken (PZ), maar werkt ook één dag per week voor maar hooguit één domeingebonden attribuut kan bevatten. Een de afdeling Finance. Er zullen twee records aanwezig zijn in de medewerker met een voornaam, achternaam, geslacht, burgerlij- tie voor beide relaties. We willen ook weten hoe lang Albert al ke staat en een unieke code (business key) wordt gemodelleerd voor een afdeling werkt. Dit wordt gerealiseerd door de tie te als zes tabellen. ‘historiseren’ en een ValidDate toe te voegen. Albert werkt al sinds januari 2008 voor PZ en sinds januari 2009 tevens voor De eerste tabel, de anchor, geeft een surrogaatsleutel aan de Finance. Per januari 2010 stopt Albert met het werken voor medewerker, de zogenaamde identity. De overige vijf tabellen Finance. Om dit te kunnen modelleren maakt AM geen gebruik verwijzen elk één-op-één naar de anchor en bevatten de afzon- van een einddatum, maar van een ‘actief’-vlag die als knot wordt derlijke attributen, eventueel nog aangevuld met een ValidDate toegevoegd aan de tie. Afdeling 100 is PZ en afdeling 200 is die aangeeft vanaf wanneer het attribuut geldig is geworden. Finance. Het interval van PZ is open en het interval van Finance Business keys uit het domein worden tevens als attribuut gemo- is gesloten op januari 2010. De data in de tie zien er dan uit als delleerd en dus niet in de anchor zelf (zie afbeelding 1). in afbeelding 5. 16 Database Magazine – Nummer 8 – december 2011 Metadata. Elke anchor-, attribuut-, tie- en knot-tabel krijgt standaard een Afdeling metadatakolom, die automatisch wordt gegenereerd door de Naam modelleertool. In deze kolom staat een verwijzing naar een meta- bestaatUit datatabel waarin gegevens kunnen worden opgeslagen over de batch, zoals het tijdstip van de batch, de uitvoerder en het bron- isActief systeem. BurgerlijkeStaat Actief Tijdlijnen. werktBij Een van de sterke punten van AM is dat het heel gestructureerd BurgerlijkeStaat Voornaam omgaat met verschillende tijdlijnen, en naadloos aansluit bij het Medewerker ‘bitemporal data’-concept, Ref. [2, 3]. Bij Bitemporal data gaat men uit van twee tijdlijnen, namelijk Valid Time en Transaction Sexe Achternaam Time. De Valid Time is de effectieve tijd waarop een attribuut of Sexe relatie geldig wordt, bijvoorbeeld de datum waarop een mede- Code werker is getrouwd. De Transaction Time is een systeemtijd die aangeeft wanneer een attribuut of een relatie is ingevoerd of gewijzigd in het systeem (of is geladen in het datawarehouse), Afbeelding 1: Business keys worden tevens als attribuut gemodelleerd. bijvoorbeeld de datum waarop de trouwdatum van de medewer- ker is ingevoerd. (Vaak wordt een ‘slowly changing’-dimensie ME_ID ME_ID ME_SEX_Medewerker_Sexe ten onrechte gebaseerd op de Transaction Time, terwijl eindge- 1 1 MAN bruikers meer geïnteresseerd zijn in de Valid Time; denk aan 2 2 MAN een query waarbij het aantal medewerkers moet worden afgezet 3 3 VROUW tegen de burgerlijke staat). Afbeelding 2: Anchor Medewerker en het attribuut Sexe. In een AM-model wordt de Valid Time aangeduid als changing time, deze correspondeert met de ValidDate die in elke attribuut ME_ID ME_ID SEX_ID SEX_ID SEX_Sexe en tie kan worden opgenomen. De Transaction Time wordt aan- 1 1 1 1 MAN geduid als recording time, deze correspondeert met de invoer- 2 2 1 2 VROUW datum of met de laaddatum van de ETL-job die in het metadata- record is opgeslagen. Een groot voordeel is dat per attribuut en 3 3 2 per tie een changing time kan worden opgegeven, dit in tegen- Afbeelding 3: Knotted attribuut. stelling tot minder genormaliseerde modellen waarin voor een reeks attributen een changing time moet worden opgegeven, @Date, het gevraagde tijdstip. Deze ziet er net zo uit als de waardoor het niet duidelijk is welk attribuut is veranderd. latest view, behalve dat de subselect op ValidDate een extra Naast changing time en recording time onderscheidt AM nog conditie bevat, zie afbeelding 7; een derde type tijdlijn, namelijk happening time. Dit is het tijdstip 3. De interval view geeft een tabelformaat met alle veranderingen van een eenmalige gebeurtenis, zoals de geboortedatum van een van de attributen gedurende een bepaalde periode. In tegen- medewerker of de orderdatum. stelling tot de latest view en de point-in-time view kan deze view meerdere records per medewerker bevatten, met ver- Viewlaag. schillende op elkaar aansluitende tijdsintervallen. Er worden standaard voor iedere anchor drie typen views gege- nereerd, die op een eenduidige manier rekening houden met het De voor- en nadelen van Anchor Modeling tijdsaspect: AM is een methode en een online modelleertool, Ref. [1]. De 1. De latest view van een anchor geeft een tabelformaat terug met methode formaliseert best practices die voor een deel al lang de laatste versies van alle attributen van die anchor. Voor onze bekend zijn, maar die in de praktijk nogal willekeurig worden Medewerker-anchor ziet de latest view er uit (er vanuit gaan- toegepast, afhankelijk van de ontwikkelaar. De tool dwingt de de dat alleen achternaam en burgerlijke staat gehistoriseerd gebruiker om consistent de methode te volgen. Een metadata- zijn) als in afbeelding 6; verwijzing wordt bijvoorbeeld automatisch gegenereerd en het 2. De point-in-time view geeft hetzelfde tabelformaat terug, maar is bovendien niet mogelijk om naamgeving te gebruiken die dan met de versies van de attributen op een gegeven tijdstip. afwijkt van de conventie. Hiervoor kan een geparametriseerde view ofwel een table- Doordat in de zesde normaalvorm wordt gemodelleerd wordt de valued function gebruikt worden, met als enige parameter ontwerper gedwongen om grondig na te denken over alle enti- Database Magazine – Nummer 8 – december 2011 17 Thema Trends ME_ID BST_ID ValidDate BST_ID BST_BurgerlijkeStaat 1 100 1-1-1900 100 Alleenstaand 2 100 1-1-1900 200 Gehuwd 2 200 1-10-2010 Afbeelding 4: ValidDate. ME_ID_werktBij AF_ID_bestaatUit ACT_ID_isActief ME_werktBij_AF_bestaatUit_ACT_isActief_ValidFrom 1 100 1 1-1-2008 1 200 1 1-1-2009 1 200 0 1-1-2010 Afbeelding 5: Data in de tie. teiten en de relaties daartussen. In een minder genormaliseerd een ETL-ontwikkelaar zal veel meer tabellen moeten vullen en model wordt dit minder afgedwongen en wordt het verleidelijker vergelijken. Dit probleem wordt echter aanzienlijk gereduceerd om stukken van het datamodel van het bronsysteem over te door de gebruiksvriendelijke visuele modelleertool die een nemen, met mogelijk als consequentie dat er business rules over mooie grafische weergave van het AM-model geeft, welke door het hoofd gezien worden (of juist onnodige velden worden over- domein specialisten gelezen en gevalideerd kan worden. De genomen). Laten we beginnen met het in onze ogen grootste naamgevingsconventie zorgt er voor dat gerelateerde tabellen voordeel: datakwaliteit, gevolgd door een mogelijk nadeel: alfabetisch onder elkaar komen te staan, zodat een ontwikkelaar gebruiksvriendelijkheid en performance van het datamodel. niet lang hoeft te zoeken naar de juiste tabel. De viewlaag op het AM-model zorgt er voor dat er niet telkens gejoind hoeft te Datakwaliteit. worden met alle attribuuttabellen van een anchor (zie ook de Kan het domein compleet en correct worden gerepresenteerd? Zijn alinea ‘Viewlaag’). meetwaarden herleidbaar tot brongegevens? Om de gebruiksvriendelijkheid voor analisten te verbeteren, kan AM hanteert een zogenaamde ‘zero-update’-strategie. Dit bete- een datamartlaag met Kimball-stermodellen gebaseerd worden kent dat alles wordt gerealiseerd met insert statements.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages5 Page
-
File Size-