I temporale databaser er gyldigtid tidsperioden da en hendelse hendte eller noe var sant i den virkelige verden, eller mer formelt når et fakta var gyldig i den modellerte virkeligheten.
Perioden er et intervall basert på hendelsestidspunkteter (kalt event datetime i datahvelv). Andre navn er «applikasjonens tidsperiode» (application-time period) eller «tidslinjen fra den virkelige verden» (real-world timeline). SQL:2011 har støtte for gyldigtid gjennom såkalte applikasjon-tidsperiode-tabeller (application-time period tables). 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.
I integrasjonslag (for eksempel datavarehus) er gyldigtiden kontrollert av kildesystemet som leverer data til datavarehuset. Av mange årsaker er som regel er gyldigtidslinjen forskjellig fra transaksjonstidslinjen (når dataene kommer inn i datavarehuset), og det er viktig at datavarehuset er i stand til å utvetydig rapportere hva som faktisk har skjedd i fortiden ved å kombinere disse to tidslinjene. 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.
Historie Det engelske begrepet valid time ble foreslått av Richard T. Snodgrass og hans doktorgradsstudent (1986).Richard T. Snodgrass and Ilsoo Ahn, "Temporal Databases," IEEE Computer 19(9), September, 1986, pp. 35-42.
I SQL:2011-standarden ble det tatt med klausuler i tabelldefinisjoner for å definere "application-time period tables" (altså gyldigtid-tabeller).
Eksempel DatoHva skjedde i den virkelige verdenEndring i databasenHva databasen viserKari er fødtIngentingDet fins ingen person som heter Kari NordmannFaren til Kari rapporterer offisielt at Kari er fødtSett inn: Person (Kari Nordmann, Isfjorden)Kari Nordmann bor i IsfjordenEtter endt utdanning flytter Kari til Saltnes, men glemmer å registrere sin nye adresseIngentingKari Nordmann bor i IsfjordenIngentingIngentingKari Nordmann bor i IsfjordenKari registrerer sin nye adresseOppdater: Person (Kari Nordmann, Saltnes)Kari Nordmann bor i SaltnesKari dørSlett: 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, når data ble lastet inn i en database Beslutningstid, når en beslutning ble tatt om tolkning av historikk i en database Endringstreg dimensjon
Referanser
Kategori:Databasehåndteringssystem