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.
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]- Gyldigtid, når en hendelse i en database skjedde i den virkelige verden
- Beslutningstid, når en beslutning ble tatt om tolkning av historikk i en database
- Bruk av transaksjonstid
Referanser
[rediger | rediger kilde]- ^ a b c d «A gentle introduction to bitemporal data challenges - Roelant Vos».
- ^ a b c «A not-so-gentle follow-up on bitemporal data challenges - Roelant Vos».
- ^ rwestMSFT (16. oktober 2023). «Temporal Tables - SQL Server». learn.microsoft.com (på engelsk). Besøkt 18. juni 2024.
- ^ «System-Versioned Tables». MariaDB KnowledgeBase. Besøkt 18. juni 2024.
- ^ «SAP Help Portal». help.sap.com. Besøkt 18. juni 2024.
- ^ «System-period temporal tables». www.ibm.com (på engelsk). Besøkt 18. juni 2024.
- ^ Kedar, S. V. (2013). Database management systems. Pune, India: Technical Publications.
- ^ Snodgrass; Ilsoo Ahn (1986). «Temporal Databases» (PDF). Computer. 19 (9): 35. doi:10.1109/MC.1986.1663327.