Ankarmodellering

Figur som visar konceptet med ankarmodellering

Ankarmodellering är en smidig databasmodelleringsteknik lämpad för information som förändras över tid både i struktur och innehåll . Den tillhandahåller en grafisk notation som används för konceptuell modellering som liknar den för entitetsrelationsmodellering, med tillägg för att arbeta med tidsdata . Modelleringstekniken involverar fyra modelleringskonstruktioner: ankare, attribut, slips och knut, som var och en fångar olika aspekter av domänen som modelleras. De resulterande modellerna kan översättas till fysiska databasdesigner med hjälp av formaliserade regler. När en sådan översättning är gjord kommer tabellerna i relationsdatabasen för det mesta att vara i den sjätte normalformen .

Till skillnad från stjärnschemat ( dimensionell modellering ) och den klassiska relationsmodellen (3NF) är datavalv och ankarmodellering väl lämpade för att fånga förändringar som sker när ett källsystem ändras eller läggs till, men anses vara avancerade tekniker som kräver erfarna dataarkitekter . Både datavalv och ankarmodeller är enhetsbaserade modeller, men ankarmodeller har ett mer normaliserat tillvägagångssätt. [ citat behövs ]

Filosofi

Ankarmodellering skapades för att dra fördel av fördelarna med en hög grad av normalisering samtidigt som man undviker dess nackdelar som högre normala former har med avseende på mänsklig läsbarhet. Fördelar som att oförstörande kunna utveckla modellen, undvika nollvärden och hålla informationen fri från övertalighet uppnås. Prestandaproblem på grund av extra kopplingar undviks till stor del tack vare en funktion i moderna databasmotorer [ när ? ] kallas join elimination eller table elimination. För att hantera förändringar i informationsinnehållet emulerar ankarmodellering aspekter av en tidsdatabas i det resulterande relationsdatabasschemat .

Historia

2004 i Sverige kom de tidigaste installationerna med ankarmodellering när ett datalager för ett försäkringsbolag byggdes med tekniken.

Under 2007 användes tekniken i ett fåtal datalager och ett system för onlinetransaktionsbehandling (OLTP), och den presenterades internationellt av Lars Rönnbäck vid 2007 års Transforming Data with Intelligence (TDWI)-konferens i Amsterdam . Detta väckte tillräckligt intresse för att tekniken skulle motivera en mer formell beskrivning. Sedan dess bedrivs forskning kring ankarmodellering i ett samarbete mellan skaparna Olle Regardt och Lars Rönnbäck och ett team vid Institutionen för data- och systemvetenskap, Stockholms universitet .

Det första dokumentet, där ankarmodellering formaliseras, presenterades 2008 vid den 28:e internationella konferensen om konceptuell modellering och vann priset för bästa papper.

En kommersiell webbplats tillhandahåller material om ankarmodellering som är gratis att använda under en Creative Commons- licens. Ett onlinemodelleringsverktyg är också tillgängligt, som är gratis att använda och är öppen källkod .

Grundläggande föreställningar

Ankarmodellering har fyra grundläggande modelleringskoncept: ankare, attribut, slipsar och knutar. Ankare används för att modellera entiteter och händelser, attribut används för att modellera egenskaper för ankare, band modellerar relationerna mellan ankare och knutar används för att modellera delade egenskaper, såsom tillstånd. Attribut och band kan historiska när förändringar i informationen de modellerar behöver behållas.

En exempelmodell som visar de olika grafiska symbolerna för alla koncept kan ses nedan. Symbolerna liknar de som används i entitet-relationsmodellering , med ett par förlängningar. En dubbel kontur på ett attribut eller slips indikerar att en historik över ändringar hålls. Knutsymbolen (en fyrkant med konturer med rundade kanter) är också tillgänglig, men knutar kan inte historiska. Ankarsymbolen är en hel fyrkant.

Anchor Modeling Example

Temporala aspekter

Ankarmodellering hanterar två typer av informationsutveckling, som är strukturella förändringar och innehållsförändringar. Förändringar i informationsstrukturen representeras genom tillägg. Den höga graden av normalisering gör det möjligt att oförstörande lägga till de nödvändiga modelleringskoncept som behövs för att fånga en förändring, på ett sådant sätt att varje tidigare schema alltid förblir som en delmängd av det aktuella schemat. Eftersom det befintliga schemat inte berörs, ger detta fördelen av att kunna utveckla databasen på ett mycket iterativt sätt och utan att orsaka stillestånd.

Förändringar i informationens innehåll görs genom att emulera liknande egenskaper hos en tidsdatabas i en relationsdatabas . Vid ankarmodellering kan informationsbitar knytas till tidpunkter eller till tidsintervall (både öppna och stängda). Tidpunkterna när händelser inträffar modelleras med hjälp av attribut, t.ex. personers födelsedatum eller tidpunkten för ett köp. Tidsintervallen under vilka ett värde är giltigt fångas genom historiseringen av attribut och band, t.ex. förändringar av hårfärg på en person eller den tidsperiod under vilken en person var gift. I en relationsdatabas uppnås detta genom att lägga till en enda kolumn , med en datatyp som är tillräckligt granulerad för att fånga hastigheten på ändringarna, till tabellen som motsvarar det historiska attributet eller kopplingen. Detta lägger till en liten komplexitet eftersom mer än en rad i tabellen måste undersökas för att veta om ett intervall är stängt eller inte.

Punkter eller tidsintervall som inte är direkt relaterade till domänen som modelleras, såsom tidpunkterna information som matas in i databasen, hanteras genom användning av metadata i ankarmodellering, snarare än någon av de ovan nämnda konstruktionerna. Om information om sådana ändringar i databasen behöver behållas kan bitemporal ankarmodellering användas, där förutom uppdateringar även raderingssatser blir oförstörande.

Relationell representation

Vid ankarmodellering sker en en-till-en-mappning mellan symbolerna som används i den konceptuella modellen och tabeller i relationsdatabasen. Varje ankare, attribut, slips och knut har en motsvarande tabell i databasen med en entydigt definierad struktur. En konceptuell modell kan därmed översättas till ett relationsdatabasschema med enkla automatiserade regler och vice versa. Detta skiljer sig från många andra modelleringstekniker där det finns komplexa och ibland subjektiva översättningssteg mellan de konceptuella, logiska och fysiska nivåerna.

Ankartabeller innehåller en enda kolumn där identiteter lagras. En identitet antas vara den enda egenskapen hos en entitet som alltid är närvarande och oföränderlig. Eftersom identiteter sällan är tillgängliga från domänen som modelleras genereras de istället tekniskt, t.ex. från en inkrementerande nummersekvens.


Ett exempel på ett ankare för identiteten på syskonbarnen till Kalle Anka är en uppsättning 1-tuplar: {⟨#42⟩, ⟨#43⟩, ⟨#44⟩}

Knutar kan ses som en kombination av ett ankare och ett enda attribut. Knuttabeller innehåller två kolumner, en för en identitet och en för ett värde. På grund av att man lagrar identiteter och värderingar tillsammans kan knutar inte historiska. Deras användbarhet kommer från att kunna minska lagringskraven och förbättra prestandan, eftersom tabeller som refererar till knutar kan lagra ett kort värde snarare än en lång sträng.


Ett exempel på en knut för kön är en uppsättning av 2-tuplar: {⟨#1, 'Male'⟩, ⟨#2, 'Female'⟩}

Statiska attributtabeller innehåller två kolumner, en för identiteten för den enhet som värdet tillhör och en för det faktiska egenskapsvärdet. Historiska attributtabeller har en extra kolumn för att lagra startpunkten för ett tidsintervall. I en knuten attributtabell är värdekolumnen en identitet som refererar till en knuttabell.


Ett exempel på ett statiskt attribut för deras namn är en uppsättning av 2-tuplar: {⟨#42, 'Huey'⟩, ⟨#43, 'Dewey'⟩, ⟨#44, 'Louie'⟩}


Ett exempel på ett knutet statiskt attribut för deras kön är en uppsättning av 2-tuplar: {⟨#42, #1⟩, ⟨#43, #1⟩, ⟨#44, #1⟩}


Ett exempel på ett historiskt attribut för de (föränderliga) färgerna på deras outfits är en uppsättning av 3-tuplar: { ⟨#44, 'Orange', 1938-04-15⟩, ⟨#44, 'Green', 1939-04 -28⟩, ⟨#44, 'Blå', 1940-12-13⟩}

Statiska kopplingstabeller relaterar två eller flera ankare till varandra och innehåller två eller flera kolumner för att lagra identiteterna. Historiska tabeller har en extra kolumn för att lagra startpunkten för ett tidsintervall. Knuten slipstabell har en extra kolumn för varje refererad knut.


Ett exempel på en statisk slips för syskonrelationen är en uppsättning av 2-tuplar: {⟨#42, #43⟩, ⟨#42, #44⟩, ⟨#43, #42⟩, ⟨#43, #44⟩ , ⟨#44, #42⟩, ⟨#44, #43⟩}

De resulterande tabellerna kommer alla att vara i sjätte normalform utom för kopplingar där inte alla kolumner är en del av primärnyckeln.

Jämfört med andra tillvägagångssätt

På 2000-talet har flera datalagermodelleringsmönster introducerats med målet att uppnå agila datalager, inklusive ensemblemodelleringsformer som ankarmodellering, datavalvmodellering, focal point-modellering och andra.

Jämförelse av datavalv

Under 2013 presenterade Lars Rönnbäck på datamodelleringskonferensen BI Podium i Nederländerna en jämförelse av ankarmodellering och datavalvsmodellering. Följande tabell är baserad på denna jämförelse (2013 copyleft anchormodeling.com):

Jämförd funktion Datavalv Fördel* Ankarmodellering
Familj Ensemblemodellering - Ensemblemodellering
Paradigm
Datadriven revisionsbarhet prioriteras
-
Datadrivna behov prioriteras
Arkitektur Hybrid (flera underhållsobjekt) - Replikerade (enkla underhållsobjekt)
Gruppering Så mycket som möjligt - Så lite som möjligt
Primär tidslinje Inspelningstid - Ändra tid
Ändringsdetektering Åtkomst till flera rader/kolumner AM En rad/kol åtkomst
Stränghet
Löst formaliserad ingen namnkonvention
-
Strikt formaliserat Har namnkonvention
Schema evolution Destruktiv AM Icke-förstörande
Temporalisering
Alltid för hand, slutdejting valfritt (rekommenderas inte)
AM
Samtidigt-tidsmässigt av design, ingen slutdejting
Åtdragning Uppdateringar kan bli nödvändiga AM Sätt endast in
Verktygsstöd
Många verktyg Mestadels kommersiella
DV
Få verktyg Endast öppen källkod
Att anpassa sig till förändring Fortfarande krångligt AM Nästan utan ansträngning
Modellbyte
Rå SQL med tryckta diagram av någon smak
AM
Standardiserat XML-format och grafisk notation
Oföränderlighet
Surrogatidentitet och naturlig nyckel
AM Endast surrogatidentitet
Naturligt att surrogat
En-till-en, statisk Fysiskt realiserad (nav)
AM
Många-till-en, historikerbar Logisk vy över data
Frågeoptimering
Något viktigt Senaste databaser
DV
Mycket viktigt Senaste versionsdatabaser
Skrivbarhet Med viss ansträngning AM
Formaliserad, automatiserad för allt
Visningar och triggers
Nämnda, handgjorda och från fall till fall
AM
Formaliserad, automatiserad för allt
Antaganden
Byggd för att hålla Behöver antaganden
AM
Bult att ändra Inga antaganden
Marknadsandel Små <1 000 installationer (2013) DV Mycket små <100 installationer (2013)
  • Fördel enl

ankare modellering killar konferens

www.anchormodeling.com copyleft 2013

externa länkar