1 Bitemporalitet Proof of concept Versionshistorik Version Dato Hvem Hvad er ændret 0.9 3. sept 2014 Heidi Vanparys (GST) Flemming Nissen (GST) Første udkast. Kommentarer fra KL indarbejdet undervejs. 0.10 9. sept 2014 Heidi Vanparys (GST) Erik Helweg-Larsen (KL) Indarbejdet kommentarer og rettelser fra DOS-området i GST. Tilføjet afsnit Distribuerede objekter med bitemporale egenskaber og Performance og bitemporale egenskaber. 1.0 15. sept 2014 Flemming Nissen (GST) Heidi Vanparys (GST) Niels Kjær (GST) Viderebehandling af kommentarer og revideret afsluttende afsnit. 1.1 17. sept. 2014 Flemming Nissen (GST) Opstramning af showcase beskrivelse. 1.2 19. sept. 2014 Thorben Brigsted Hansen (GST) Opdatering af showcase beskrivelse.
23
Embed
Bitemporalitet - digitaliserarkitekturguiden.digitaliser.dk/sites/default/files/ctools/bitemporal... · NOTE 3: Tilstand som defineret her er ikke det samme som status, som angiver,
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Første udkast. Kommentarer fra KL indarbejdet undervejs.
0.10 9. sept 2014 Heidi Vanparys (GST) Erik Helweg-Larsen (KL)
Indarbejdet kommentarer og rettelser fra DOS-området i GST. Tilføjet afsnit Distribuerede objekter med bitemporale egenskaber og Performance og bitemporale egenskaber.
Denne rapport beskriver en række problemstillinger omkring historik og bitemporalitet, som er
relevante i forhold til at distribuere data med høj aktualitet og med en datahistorik der giver
sporbarhed i de foretagne registreringer.
Sporbarhed er den egenskab et offentligt forvaltningsgrundlag skal kunne understøtte. Sporbarhed
indebærer at kunne fremfinde og dokumentere det datamæssige forvaltningsgrundlag som har
været brugt if. med en konkret sagsbehandling.
Der tages udgangspunkt i teorien for implementering af historik i relationsdatabaser ved definitionen
af begreber og valg af termer.
Dokumentet anvender en konstrueret matrikulær udstykning som showcase til at forklare
egenskaber og konsekvenser ved modellering af bitemporale egenskaber.
Arbejdet har resulteret i en videnopbygning omkring brugen af historik, den nødvendige
tidsmærkning og en mere stringent måde at definere registreringstid og virkningstid på. Dette er
vigtigt hvis data skal kunne sammenstilles på tværs af datasæt og dermed danne grundlag for en
bedre og mere effektiv brug af de offentlige grunddata.
Der udsondres en række anbefalinger til grunddataprogrammets Modelregler 1.1, som kan bruges
til at kvalificere bitemporalitet som begreb, implementering af historik som funktionalitet og de
brugsscenarier, hvori historik forekommer.
Konklusionen på analysen viser at GST, KL og grunddataprogrammet indikerer et løsningsrum for
historik, som er nødvendig og tilstrækkelig.
2. Indledning
Dette dokument er opbygget som følgende;
Definition af begreber
Benyttelse af bitemporalitet med et konstrueret eksempel
Eksempler på (database) implementeringer
Anbefalinger
Som senere beskrevet er 2 sæt af tidsstempler nok til datamæssigt at kunne spore en given
datamæssig situation. Men den fornødne funktionalitet og hyppighed der er brug for af historik,
medfører at historikfunktionalitet kan implementeres på forskellige niveauer. Her er driftsafviklingen
styrende for den fysiske implementering af historikanvendelsen.
Men bitemporalitet er kun en tidsmæssig attributtering af et objekt. Det er ofte nødvendigt at have
andre egenskaber til at holde oplysninger om status og aktør, men indholdet vil sædvanligvis være
stærkt forretningsområdeafhængige.
De to ovenstående nævnte egenskaber er ikke behandlet i dette proof of concept.
Som det fremgår af rapporten er bitemporalitet kun enkel side af den historiske anvendelse, der kan
gøres af data. Fremtidens forskere vil utvivlsomt få glæde af den digitale udvikling.
4
3. Begreber i bitemporalitets- og forvaltningsdomænet
Nedenstående begrebsliste omfatter begreber relateret til bitemporalitet (også betegnet
dobbelthistorik) og forvaltningsobjekter.
1. begivenhed
noget der sker eller finder sted, især noget vigtigt eller bemærkelsesværdigt
[DDO]
2. bitemporal
vedrørende både registreringstid og virkningstid
NOTE: tider såsom fx observationstid kan også være relevante, men ”bi” i bitemporal
refererer til registreringstid og virkningstid [Glossary]
3. egenskab
side af et forvaltningsobjekts udseende, væsen eller måde at virke eller fungere på
NOTE: Definitionen er tilpasset fra [DDO].
4. forvaltningsobjekt
forvaltningens repræsentation af det konkrete - fysisk eller konceptuelt - eksisterende objekt,
som der udøves myndighed på og som der derfor opsamles data om
[Modelregler]
5. registreringstid
synonymer: transaction time [Glossary], record time [Fowler]
tiden, hvor et forvaltningsobjekts egenskaber var kendt i et bestemt system
NOTE 1: Når et forvaltningsobjekts egenskaber flyttes til et andet system, så får man to
registreringstider [Jensen1].
NOTE 2: Der kan være tale om såvel et forvaltnings- som et distributionssystem.
6. tilstand
mængden af egenskaber som karakteriserer et forvaltningsobjekt i en afgrænset del af
tiden
NOTE 1: Når man betragter bitemporale forvaltningsobjekter, skal tiden afgrænses både
mht. registreringstid og mht. virkningstid.
NOTE 2: Et forvaltningsobjekt ændrer tilstand pga. begivenheder som berører dette objekt.
NOTE 3: Tilstand som defineret her er ikke det samme som status, som angiver, hvor et
forvaltningsobjekt er i sin livscyklus [Modelregler].
NOTE 4: tilstand er et ”reserveret ord” i KL og har en anden betydning i den sammenhæng
7. version
bestemt tilstand af et forvaltningsobjekt
8. virkningstid
synonymer: juridisk tid, valid time [Glossary], actual time [Fowler]
tiden, hvor et forvaltningsobjekts egenskaber svarer til forholdet i den modellerede
virkelighed
NOTE: Definitionen er tilpasset fra [Glossary].
Registreringstid og virkningstid er to forskellige dimensioner af tid, som kan bruges uafhængigt af
hinanden, eller i kombination.
5
Ved at inkludere virkningstid i en model, kan man svare på de følgende spørgsmål1:
● Hvilken tilstand er gældende (lige nu)?
● Hvilken tilstand var gældende på et givet tidspunkt i fortiden?
● Hvilken tilstand vil være gældende på et givet tidspunkt i fremtiden?
Ved at inkludere registreringstid i en model, kan man svare på de følgende spørgsmål:
● Hvad ved man om et forvaltningsobjekt (lige nu)?
● Hvad vidste/troede man om et forvaltningsobjekt på et givet tidspunkt i fortiden?
Ved at inkludere både virkningstid og registreringstid i en model, kan man svare på spørgsmål som:
● Hvilken tilstand er gældende (lige nu) (som kendt nu)?
● Hvilken tilstand var gældende på et givet tidspunkt i fortiden (som kendt nu)?
● Hvilken tilstand vil være gældende på et givet tidspunkt i fremtiden (som kendt nu)?
● På et givet tidspunkt i fortiden, hvilken tilstand troede man ville være gældende lige nu?
● På et givet tidspunkt i fortiden, hvilken tilstand troede man var gældende på et andet
tidspunkt i fortiden?
● På et givet tidspunkt i fortiden, hvilken tilstand troede man ville være gældende på et
tidspunkt i fremtiden?
4. Matriklen
Fast ejendom er en del af grunddataprogrammet, se Figur 1. Jordstykke er et af begreberne
defineret i dette felt, se Figur 2. Et jordstykke er et opmålt areal på jordoverfladen, som er afgrænset
af matrikelskel. Et jordstykke har bl.a. et jordstykke-ID, som er en entydig forretningsnøgle, og en
matrikelbetegnelse. En matrikelbetegnelse består af matrikelnummer (tal plus litra) og ejerlav
(landsejerlavsnummer) [Ejendom Målarkitektur].
1 Tekst i parentes kan udelades: når der ikke er givet en specifik tid, så betragtes det som ”nu”.
6
Figur 1: Den offentlige sektors grunddata [Grunddata].
Figur 2: Begrebsoverblik over fast ejendom [Ejendom Målarkitektur].
7
En proces som kan berøre et jordstykke er fx en udstykning af dette jordstykke, som er en matriku-
lær forandring, som er en del af hovedprocessen Ejendomsdannelse [Ejendom Målarkitektur].
For at illustrere brugen af virkningstid og registreringstid bruges det følgende eksempel2, illustreret i
Figur 3:
1. En sag, som omfatter en udstykning med jordstykkeajourføringer, godkendes og registreres
d. 18. februar 2014 kl 13:41:05 med virkning fra d. 13. februar 2014.
2. Kort efter sagen er godkendt, konstateres en fejl, der medfører, at de ændringer, der blev
gennemført i første omgang, må annulleres (aldrig har haft virkning) og en tilrettet sag med
ændrede jordstykkeajourføringer godkendes og registreres d. 6. marts 2014 kl. 10:07:12
med virkning fra d. 1. marts 2014.
Figur 3: Illustration af eksemplet.
2 Det valgte eksempel er et tænkt eksempel, der ikke nødvendigvis illustrerer en forretningsmæssig relevant
use case. Eksemplet skal udelukkende illustrere brugen af virkningstid og registreringstid.
8
I denne proces er det vigtigt, at
● vise, at vi i dag ved, at de sagsdata vedr. jordstykkeajourføringer, som ved en fejl blev
godkendt i starten, aldrig har været gældende.
● gemme oplysninger omkring processen beskrevet ovenfor, som dokumentation for det, der
skete.
4.1 Informationsmodeller & fysiske datamodeller
Bitemporalitet kan diskuteres på forskellige niveauer, se Figur 4. Det konceptuelle niveau er
beskrevet i afsnit 0, Som det fremgår af rapporten er bitemporalitet kun enkel side af den historiske
anvendelse, der kan gøres af data. Fremtidens forskere vil utvivlsomt få glæde af den digitale
udvikling.
9
Begreber i bitemporalitets- og forvaltningsdomænet ovenfor, og det antages, at
forretningsobjekterne og deres relationer er kendt.
Figur 4: De forskellige niveauer hvorpå man kan diskutere bitemporalitet (tilpasset fra [Arkitekturreolen]).
Der er forskellige muligheder for at modellere virkningstid og registreringstid i en
informationsmodel3, og for hver informationsmodel eksisterer der forskellige muligheder for en fysisk
datamodel. I dette dokument antages der, at data gemmes i en relationsdatabase.
Figur 5: Fra konceptuel model til informationsmodeller til fysiske datamodeller.
4.2 Informationsmodel 1: Bitemporale objekter
Denne model er tilstandsbaseret4 og bruges, når man er mest interesseret i, hvilken tilstand et
objekt har på et bestemt tidspunkt. I denne model får et objekt både et virkningstidsinterval og et
registreringstidsinterval. Da de fleste databaser ikke har en indbygget datatype, som repræsenterer
et interval, skal intervaller implementeres vha. af to tidspunkter. Dette resulterer i to sæt tidspunkter:
3 Også kaldt logisk datamodel.
4 Engelsk: state-based, se også [MTRD].
10
● registreringFra og registreringTil, hvor registreringTil er ukendt for aktuel viden
● virkningFra og virkningTil, hvor virkningTil kan være ukendt for nugældende data og data
gældende i fremtiden
Figur 6: Informationsmodel for en bitemporal objekt. Et alternativ kunne være, at have en datatype Tidsinterval, og have to attributter, registreringstidsinterval og virkningstidsinterval, som har denne datatype som type.
Denne model kan implementeres på forskellige måder i en database, som beskrevet i de næste
afsnit. Bemærk, at der kan være endnu flere måder end beskrevet her.
Konventionerne i eksemplet:
● fra-datoen er inklusiv og til-datoen er eksklusiv (se [Snodgrass] og [DB2] omkring
argumenter for og imod inklusiv vs. eksklusiv), dvs. at intervallet er lukket-åbent. Dette er
også måden tidsperioder er defineret i SQL:2011 standarden [SQL2011].
● virkningTil for en nugældende række er NULL (og ikke fx 9999-12-31) (se [Snodgrass]
omkring argumenter for og imod NULL vs. en dato langt i fremtiden)
● registreringTil for en række som repræsenterer aktuel viden er NULL, se ovenfor
● granulariteten for registreringstid er 1 sekund
● granulariteten for virkningstid er 1 dag
4.2.1 Fysisk datamodel 1a: Bitemporal tabel
I denne model er der én bitemporal tabel per objekttype.
Modifikationer
[Snodgrass]5 beskriver hvordan man modificerer bitemporale tabeller. Den grundlæggende regel er,
at kun to slags ændringer er tilladt i en bitemporal tabel:
● registrering: oprettelse af en ny række med en registreringFra som er tidspunktet for
oprettelsen og en registreringTil som er NULL
● afregistrering = logisk sletning: opdatering af en eksisterende række hvor registreringTil
ændres fra NULL til tidspunktet af opdateringen
Rapportteamet har ikke undersøgt konsekvenser af fejlagtige registreringstidsstempler og rapporten
tager derfor ikke stilling til den problematik.
5 Snodgrass betragtes som én af de førende kapaciteter på området og citeres ofte. Udgangspunktet for
SQL:2011 standarden er arbejde af blandt andre ham, Jensen og Nicola, der også refereres her. I en hjemlig kontekst har Snodgrass’ bog fx været benyttet af Kombit i forbindelse med et proof-of-concept omkring CPR.
11
I nedestående tabeller beskrives forløbet for matrikeleksemplet.
Tabel 6: Resultat af forespørgslen "Hvornår blev der registreret oplysninger omkring den tilstand af jordstykket med matrikelnummer 123 som var gældende d. 20. februar 2014?"
Alle følgende betingelser skal nemlig være opfyldt:
● VIRKNINGFRA <= 2014-02-20 (som var gældende d. 20. februar 2014)
● 2014-02-20 < VIRKNINGTIL eller VIRKNINGTIL er NULL
● matrikelnummeret er 123
Så svaret er, at der blev registreret oplysninger, d. 1. januar 1970 kl. 00:00:00, d. 18. februar kl.
13:41:05 og d. 6. marts kl. 10:07:12.
17
Figur 10: Illustration af forespørgslen "Hvornår blev der registreret oplysninger omkring den tilstand af jordstykket med matrikelnummer 123 som var gældende d. 20. februar 2014?"
Med de oplysninger som ligger i Tabel 3, kan man rekonstruere de ændringer objekter har
gennemgået. Man kan fx beregne forskellen mellem geometrien af jordstykket med matrikelnummer
123 før og efter udstykningen som kendt lige nu på basis af resultatet af forespørgslen “Giv
tilstandene af jordstykket med matrikelnummer 123 lige før udstykningen og lige nu (som kendt lige
SQL databaser kan i nogle tilfælde have udvidede tidsmæssige faciliteter. Dermed undgår man de
tidsmæssige udtryk, der kan give en dårlig performance. Men hvis man ønsker at anvende
traditionelle databaser, bør man anvende et databasedesign, hvor man arbejder med relation til
intervaltabeller. En objektegenskab får relation til et interval, som er identificeret og indekseret.
Forespørgsel består af forespørgsel på tid i intervaltabellen joinet med egenskabstabellen.
7. Anbefalinger
Det foreslås at skærpe kravene til definition af egenskaber og deres attributter for bitemporalitet;
● Det skal afklares, hvorvidt registreringstid (til/fra) er forvaltningssystemets registreringstid
eller distributionssystemets registreringstid. Relateret til hvilke spørgsmål man vil kunne stille
Datafordeleren.
10 Det vil også være muligt at BBR og FOT ønsker at registrere den samme bygning under forskellige identer.
I så fald bør de henvise til hinanden. 11
Brug relationen fra de generelle egenskaber ’erstattet af’ med reference det blivende objekt.
22
● Det skal afklares, om der er behov for et ekstra sæt tidsstempler for at håndtere de
forskellige registreringstider.
● Virkningstid (fra) skal være lukket (inklusiv) og virkningstid (til) skal være åbent (eksklusiv)
● Virkningstider, hvor der ikke er tænkt et tidsmæssigt ”hul”, men som støder op til hinanden,
skal være forskellige, men således at den fortidige er åbent og den fremtidige er lukket.
● Det skal afklares, om SQL:2011 standarden definerer NULL som værdi for nu og i fremtiden
eller om en dato langt ude i fremtiden benyttes, som fx 31-12-9999.
● Modelreglerne bør afspejle den praktiske anvendelse og modellering af bitemporalitet.
Der tegner sig et billede af forskellige behov for modellering og implementering af en historikmodel
for nogle parter i Grunddataprogrammet.
Det synes klart at nogle forvaltninger, jævnligt har brug for fx at efterregulere offentlige udbetalinger,
som er blevet udbetalt på et foreløbigt grundlag. Det er typisk kommunale myndigheder som må
forvalte på ikke-kendte eller ikke-opdaterede oplysninger.
Andre forvaltninger har kun sjældnere brug for at søge data med tiden som parameter. Der sker fx,
når en afgørelse drages i tvivl eller påvises at være fejlagtig i forbindelse med tvister.
Funktionalitet, der understøtter historikanvendelsen, bør afpasses til det konkrete behov for den
enkelte forvaltning. Det er vel også rimeligt at antage, at det er på objektniveau, der tildeles
bitemporalitet, men på sådan en måde at hver eneste attributændring giver anledning til en ny
historik.
Det påstås i ovenstående forbindelse, at en traversering gennem et datasæt (tabel), hvor objekter
inkl. historik er lagret, tager længere tid sammenlignet med tilgang til objekter via en historiktabel,
hvis det er tiden, der er den afgørende performance faktor.
At kunne spore forløbet omkring forvaltningsafgørelser, synes at være en rimelig anvendelse af
historik, således at bitemporale data skal understøttes af passende funktionalitet og passende
modeller, i forhold til brugen af historiksøgninger.
8. Referencer
Reference Titel Link [Arkitekturreolen] OIO arkitekturreolen Link [DB2] NICOLA, M. Best practices for Temporal Data Management with
DB2. 2012. Link
[DDO] Den Danske Ordbog Link [Grunddata] Grunddata | Digitaliseringsstyrelsen Link [Ejendom Målarkitektur] Ejendomsdataprogrammet - Målarkitektur Link [Fowler] Temporal Patterns Link [Glossary] JENSEN, Christian S., et al. The consensus glossary of temporal
database concepts—February 1998 version. Springer Berlin Heidelberg, 1998.
Link
[Jensen1] JENSEN, C. S.; SNODGRASS, R. T. Semantics of Time-Varying Information. Chapter 2 in: JENSEN, Christian S. Temporal database management. 2000. PhD Thesis. Department of
Computer Science, Aalborg University, Denmark. [Jensen2] JENSEN, C. S.; SOO, M. D.; SNODGRASS, R. T. Unifying
Temporal Data Models. Chapter 6 in: JENSEN, Christian S. Temporal database management. 2000. PhD Thesis. Department of Computer Science, Aalborg University, Denmark.
Link
[Modelregler] Digitaliseringsstyrelsen. Modelregler for grunddata, Version: 1.0.0. Link [MTRD] JOHNSON, T.; WEIS, R. Managing Time in Relational Databases.
2010. Link
[Snodgrass] SNODGRASS, Richard T.; MELTON, Jim. Developing time-oriented database applications in SQL. San Francisco: Morgan Kaufmann Publishers, 2000.
Link
[SQL2011] KULKARNI, Krishna; MICHELS, Jan-Eike. Temporal features in SQL: 2011. SIGMOD Record, 2012, 41.3: 35.