Hopp til innhold

Transaksjonstid

Fra Wikipedia, den frie encyklopedi

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.

Historie[rediger | rediger kilde]

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

Se også[rediger | rediger kilde]

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.