Bitemporal modellering

Fra Wikipedia, den frie encyklopedi

Bitemporal modellering er et spesifikt tilfelle av informasjonmodellerings-teknikk for temporale databaser som håndterer historiske data ved å ha to forskjellige tidslinjer.[1] Dette gjør det mulig å se tilbake på informasjonen tilbake i tid og sammenligne "det som den faktisk var" med "slik det ble registrert" for et gitt tidspunkt. For at dette skal kunne gjøres kan ikke informasjon tas bort selv om den er feil. I finansregnskap er det ofte ønskelig å kunne gjenskape en gammel rapport både slik den så ut på tiden den opprinnelig ble laget, og slik den burde sett ut gitt senere korreksjoner i dataene.

Implementeringer av bitemporal modellering kan gjøres ved hjelp av relasjonsdatabaser eller grafdatabaser. Som sådan anses bitemporal modellering å være forskjellig fra dimensjonsmodellering og komplementær til databasenormalisering. SQL:2011-standarden angir språkstruktur for å jobbe med bitemporale data. Per 2011 var imidlertid var mange av løsningene fortsatt leverandørspesifikke.

Filosofi[rediger | rediger kilde]

Bitemporal modellering bruker bitemporale strukturerer som de grunnleggende komponentene. Dette resulterer i databaser som har en konsistent type temporalitet for alle data. Ett eksempel kan være å ha med hendelsens dato-tidsstempel og lastingens datostempel.

Fordeler med bitemporal modellering[rediger | rediger kilde]

Ved å fokusere på kompletthet og nøyaktighet i dataene legger bitemporal modellering til rette for revisjonssporing av data. Alle data blir uforanderlige. Dermed blir det mulig å få svar på spørsmål om:

  1. De mest nøyaktige dataene på nåværende tidspunkt
  2. Dataene som de var kjent på et hvilket som helst tidspunkt
  3. Når og hvorfor dataene ble endret

Eksempler på implementasjoner[rediger | rediger kilde]

Noen eksempler på kjente implementasjoner av bitemporal modellering er:

  • MarkLogic introduserte støtte for bitemporale data i versjon 8.0. Tidsstempler for gyldigtid og systemtid lagres i JSON- eller XML-dokumenter.[2]
  • XTDB[3] (tidligere Crux) er en åpen kildekodet database som indekserer dokumenter ved hjelp av en entitet–attributt–verdi-modell (type plasseffektiv datamodell), og muliggjør bitemporale spørringer i SQL eller Datalog for ulike tidspunkt (point-in-time).
  • TerminusDB er en åpen kildekodet, dokumentorientert grafdatabase som bruker deltaenkoding og gir bitemporal funksjonalitet.[4]

Se også[rediger | rediger kilde]

Referanser[rediger | rediger kilde]

  1. ^ «Temporal Patterns». martinfowler.com. Besøkt 4. april 2017. 
  2. ^ Bridgwater, Adrian. «Data Is Good, 'Bidirectionalized Bitemporal' Data Is Better». 
  3. ^ «XTDB». 
  4. ^ «terminusdb/terminusdb.pdf at dev · terminusdb/terminusdb». Besøkt 12. september 2021.