line
oid
shape
quality
tmin
tmax
1023
(0,0),(4,0),(6,2)
1
12jan
20feb
1023
(0,0),(4,0)
1
20feb
l4apr
1268
(4,0), (6,2)
1
20feb
MAX_T
1023
(0,0),(4,0)
2
I4apr
MAX_T
de lock-tabel. Dit is alleen mogelijk in het geval dat er geen
andere werkbestanden het opgevraagde gebied overlappen
voor wat betreft de thema's die ter mutatie zijn geselec
teerd. De database wordt van de ene (topologisch gezien)
consistente toestand naar de andere gebracht gedurende
een check-in (mutatie). Het is belangrijk dat alle verande
ringen binnen eenzelfde check-in dezelfde tijdsmarkerin-
gen krijgen toebedeeld in tmin/tmax. Deze architectuur
heeft ook het voordeel dat een annuleer operatie (rollback)
op hoog niveau eenvoudig mogelijk is.
Wat moet worden geblokkeerd wanneer een gebruiker een
rechthoekig werkgebied specificeert? Natuurlijk alle rele
vante gegevens die geheel binnen de rechthoek vallen. Ob
jecten die de grenzen van het werkgebied overschrijden,
kunnen ook worden geblokkeerd, maar dit zou dan een
groot deel van de database kunnen
beïnvloeden. Andere gebruikers zullen
voor een verrassing komen te staan bij
de check-out van een nieuw niet-over-
lappend gebied (rechthoek). Dit kan
zelfs onmogelijk blijken door langge
rekte objecten die reeds geblokkeerd
zijn. Daarom is het concept van ge
deeltelijke blokkering geïntroduceerd:
de coördinaten van het lijnsegment
dat de grens van het werkgebied over
schrijdt, mag wel worden geselecteerd
maar niet worden veranderd. Samen
met het feit dat rechthoekige werkge
bieden elkaar nooit mogen overlap
pen, impliceert dit dat de verande
ringen van de edges en faces, die de
grenzen van twee werkgebieden over
schrijden, in de database moeten wor
den samengevoegd. Daarom behoeven
deze objecten niet te worden geblok
keerd, maar moeten worden inge-
checked met extra voorzichtigheid.
Het is mogelijk dat twee check-ins
Fig. 4.
De „line" 1023
wordt in twee
delen gesplitst.
Fig. 5.
Een lastige
check-in van twee
werkgebieden.
hetzelfde object willen veranderen
(fig. 5). Als men niet oplet en beide
check-ins vervangen het object, dan
wordt alleen de tweede versie opge
slagen en gaat de eerste verloren. Om
deze reden moeten de volgende stap
pen in acht worden genomen voor elk
veranderd object dat de grens van het
desbetreffende werkgebied passeert:
haal het betreffende object opnieuw
uit de database op en leg een „write
lock"op dit object;
als er andere veranderingen hebben
plaatsgevonden, vermeng deze dan
met de veranderingen in versie van
het object in het huidige werkge
bied;
voer de nieuwe samengevoegde ver
sie van het betreffende object op in
de database en hef de write lock op.
De oplossing om eventuele deadlocks
te voorkomen, is om alle check-ins
in volgorde te verwerken (check-in
wachtrij).
Fouten uit het verleden als gevolg van
het verzamelen of invoeren van ge
gevens is een lastig probleem. Zouden
we deze fouten moeten corrigeren
door de historie te veranderen (tmin/
tmax)? Vanwege eventuele consisten
tieproblemen is besloten dit niet te
doen. Een alternatief is om foutobjec-
ten te markeren door er een additio
neel attribuut aan toe te kennen: error-
3
yJ
Ey
266
1997-6
GEODESIA
NIEUW
splitsing
Blokkeren van een werkgebied
Fouten en verbeteringen
Splits X en
Vervang V door W
rechthoekig werkgebied 1 (out)
rechthoekig werkgebied 2 (out)
X
NIEUW
rechthoekig werkgebied 1 (in)
rechthoekig werkgebied 2 (in)