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.
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