Transaksjonstid

I temporale databaser er transaksjonstid da noe har blitt lastet inn i en database. Tiden da en transaksjon er gjeldende kan kalles transaksjonstids-perioden. Det er en teknisk tidslinje kontrollert av et integrasjonslag (for eksempel et datavarehus).[1]

Perioden er et intervall basert på «lastetidspunkter» (kalt load datetime i datahvelv[1]), også kalt «inskripsjons-tidsstempel» (inscription timestamps).[1] Andre navn på intervallet er «inspeksjons-tidslinje» (assertion timeline[2]), «tilstands-tidslinje» (state timeline[2]) eller «teknisk tidslinje» (technical timeline[2]). SQL:2011 har støtte for transaksjonstid gjennom såkalte «systemversjonerte tabeller» (system-versioned tables).[3][4][5][6]

Av mange ulike årsaker er transaksjonstid (når dataene kom fra kildesystem) nesten alltid forskjellig fra gyldigtid (når hendelsen inntraff i den virkelige verden). For at et datavarehus utvetydig skal kunne rapportere hva som faktisk har skjedd i fortiden må det være i stand til å kombinere disse to tidslinjene.[1] I bitemporale datamodeller kan gydigtid og transaksjonstid representeres i et todimensjonalt kartesisk koordinatsystem. Når dataene leveres fra integrasjonslaget og skal presenteres i et presentasjonslag (ofte en dimensjonsmodell eller bred tabell) ønskes ofte dataene på én tidslinje.

I en databasetabell er transaksjonstiden ofte representert som et intervall som gjør det mulig for systemet å "fjerne" rader ved å bruke de to tabellkolonnene start_tt og end_tt. Tidsintervallet er lukket i nedre skranke (notert med [ ), og åpent ved øvre skranke (notert med )).[7] Når den avsluttende transaksjonstiden er ukjent kan den betraktes som until_changed. Akademiske forskere og noen databasehåndteringssystemer (RDBMS-er) har representert until_changed med et veldig stort tidsintervall eller nøkkelordet forever. Denne konvensjonen er en teknisk omgåelse, og ikke teknisk presis.

Begrepet transaction time ble foreslått av Richard T. Snodgrass og hans doktorgradsstudent Ilsoo Ahn (1986).[8]

I SQL:2011-standarden kom det en klausul i tabelldefinisjoner for å definere system-versioned tables (altså transaksjonstid-tabeller).

Referanser

[rediger | rediger kilde]
  1. ^ a b c d «A gentle introduction to bitemporal data challenges - Roelant Vos». 
  2. ^ a b c «A not-so-gentle follow-up on bitemporal data challenges - Roelant Vos». 
  3. ^ rwestMSFT (16. oktober 2023). «Temporal Tables - SQL Server». learn.microsoft.com (engelsk). Besøkt 18. juni 2024. 
  4. ^ «System-Versioned Tables». MariaDB KnowledgeBase. Besøkt 18. juni 2024. 
  5. ^ «SAP Help Portal». help.sap.com. Besøkt 18. juni 2024. 
  6. ^ «System-period temporal tables». www.ibm.com (engelsk). Besøkt 18. juni 2024. 
  7. ^ Kedar, S. V. (2013). Database management systems. Pune, India: Technical Publications.
  8. ^ Snodgrass; Ilsoo Ahn (1986). «Temporal Databases» (PDF). Computer. 19 (9): 35. doi:10.1109/MC.1986.1663327.