I temporale databaser er **gyldigtid**, for eksempel **lastetidspunktet** (*load datetime*), tidsperioden hvor et fakta er gyldig i den modellerte virkeligheten. 

I en databasetabell er gyldigtid ofte representert med to ekstra tabellkolonner, slik som `gyldig_fra` og `gyldig_til`. Tidsintervallet er lukket `[` i nedre skranke og åpent `)` i øvre skranke.

Historie
--------

Det engelske begrepet *valid time* ble foreslått av Richard T. Snodgrass og hans doktorgradsstudent (1986).

I SQL:2011-standarden ble det tatt med klausuler i tabelldefinisjoner for å definere "application-time period tables" (altså gyldigtid-tabeller).

Eksempel
--------

| Dato | Hva skjedde i den virkelige verden | Endring i databasen | Hva databasen viser |
| --- | --- | --- | --- |
| 1975-04-03 | Kari er født | Ingenting | Det fins ingen person som heter Kari Nordmann |
| 1975-04-04 | Faren til Kari rapporterer offisielt at Kari er født | Sett inn: Person (Kari Nordmann, Isfjorden) | Kari Nordmann bor i Isfjorden |
| 1994-08-26 | Etter endt utdanning flytter Kari til Saltnes, men glemmer å registrere sin nye adresse | Ingenting | Kari Nordmann bor i Isfjorden |
| 1994-12-26 | Ingenting | Ingenting | Kari Nordmann bor i Isfjorden |
| 1994-12-27 | Kari registrerer sin nye adresse | Oppdater: Person (Kari Nordmann, Saltnes) | Kari Nordmann bor i Saltnes |
| 2001-04-01 | Kari dør | Slett: Person (Kari Nordmann) | Det er ingen person som heter Kari Nordmann |

Gyldigtid er tiden som et fakta er sant i den virkelige verden. I eksemplet ovenfor får persontabellen to ekstra felter, `gyldig_fra` og `gyldig_til`, som spesifiserer når en persons adresse var gyldig i den virkelige verden. I 1975-04-04 registrerte Kari sin far stolt datterens fødsel. Det vil da settes inn en ny oppføring i databasen som sier at Kari bor i Isfjorden fra 1975-04-03. Legg merke til at selv om dataene ble satt inn den 4. så sier databasen at informasjonen er gyldig siden den 3. Man vet ennå ikke når eller om Kari noen gang vil flytte til et annet sted, så i databasen vil `gyldig_til` være fylt med uendelig (∞), eller en svært sen dato (som for eksempel 2300-01-01). Dette resulterer følgende oppføring i databasen:

|  |
| --- |
| Person(Kari Nordmann, Isfjorden, 1975-04-03, ∞) |

1994-12-27 rapporterer Kari sin nye adresse i Saltnes hvor hun har bodd siden 1994-08-26. I databasen endrer ikke adressen til den nåværende oppføringen, men det legges i stedet til en ny rad:

|  |
| --- |
| Person (Kari Nordmann, Saltnes, 1994-08-26, ∞) |

Den opprinnelige raden Person (Kari Nordmann, Isfjoden, 1975-04-03, ∞) blir deretter endret (altså ikke slettet). Siden det nå er kjent at Kari sluttet å bo i Saltnes 1994-08-26 kan `gyldig_til` fylles ut. Databasen inneholder dermed to rader for Kari Nordmann:

|  |
| --- |
| Person(Kari Nordmann, Isfjorden, 1975-04-03, 1994-08-26) |

|  |
| --- |
| Person(Kari Nordmann, Saltnes, 1994-08-26, ∞) |

Når Kari dør oppdateres databasen igjen. I den nåværende raden vil `gyldig_til` endres til siste dato Kari bodde i Saltnes. Ingen ny rad trenger legges til. Databasen ser da slik ut:

|  |
| --- |
| Person(Kari Nordmann, Isfjorden, 1975-04-03, 1994-08-26) |

|  |
| --- |
| Person(Kari Nordmann, Saltnes, 1994-08-26, 2001-04-01) |

Se også
-------

* Transaksjonstid
* Beslutningstid
* Endringstreg dimensjon

Referanser
----------

1. ↑  «Transactional Links - AutomateDV». *automate-dv.readthedocs.io*. Besøkt 10. februar 2024.
2. ↑  Richard T. Snodgrass and Ilsoo Ahn, "Temporal Databases," IEEE Computer 19(9), September, 1986, pp. 35-42.

| * v
* d
* r
Databasemodeller |
| --- |
| Vanlige modeller | 
* Flat
* Hierarkisk
* Dimensjonell
* Nettverk
* Relasjon
* Entitetrelasjon
	+ Forbedret
* Graf
* Objektorientert
* Entitet-attributt-verdi

 |
| Andre modeller | 
* Korrelasjon
* Multidimensjonal
* Tabell
* Semantisk
* Stjernemodell
* XML-database

 |
| Implementasjoner | 
* Flatfil
* Kolonneorientert
* Dokumentorientert
* Objektrelasjonell
* Deduktiv
* Temporal
	+ Gyldigtid
	+ Transaksjonstid
	+ Beslutningstid
* XML-datalager
* Nøkkelverdi
* Triplett

 |