Spatial Location Code Een oplossing voor het efficiënter opslaan en opzoeken van ruimtelijke objecten in grote databases NGT GEODESIA 1996-6 gis/lis, data structures, theory gis/lis, gegevensstructuren, theorie KEYWORDS TREFWOORDEN Dit artikel beschrijft de Spatial Location Code (SLC) die gebruikt kan worden voor het indexeren en clusteren van geografische objecten in een database. Deze code combineert de sterke aspecten van enkele bekende ruimtelijke zoekmethoden (Quadtree, Field-tree en Morton-waarde) tot één enkele SLC-waarde per object. De unieke eigenschap van de SLC is dat zowel de locatie als de grootte van objecten (mogelijk met een omvang, dus niet alleen puntobjecten) worden benaderd door deze enkele waarde. De zo verkregen SLC-waarden kunnen vervolgens worden gebruikt in combinatie met een traditionele zoekmethode, zoals de B-tree, beschik baar in iedere database. Hierdoor wordt de responsetijd bij ruimtelijke zoekopdrachten voor omvangrijke gegevensverzamelingen vele malen verminderd. De voorbeelden in dit artikel zijn beschreven in een tweedimensionale ruimte, maar de SLC-methode is algemeen en kan ook worden toegepast in hogere dimensies. De SLC is ontworpen om het efficiënt opslaan en opzoeken van ruimtelijke gegevens in een standaard (relationele) DBMS (DataBase Management Sys teem) mogelijk te maken. De ont werpeisen voor de SLC worden hier onder kort samengevat: geschikt voor tenminste tweedimen sionale gegevens; snel gegevens binnen een opgegeven rechthoek kunnen vinden door middel van het toepassen van ruim telijke clustering en indexering; slechts één waarde per object in plaats van een verzameling waarden per object, omdat dit lastig is bij ge bruik van een DBMS; zo transparant mogelijk voor wat betreft het datamodel en de vra- gen; geen DBMS kernei-veranderingen vereisen, dat wil zeggen gebruik maken gegevenstypen en zoekmethoden. /an standaard dr. ir. P. van Oosterom*), Kadaster, Concernstraf Vastgoedinformatie en Landinrichting te Apeldoorn en ir. T. Vijlbrief, TNO Technische Menskunde te Soesterberg. 1 Dit werk is gedeeltelijk uitgevoerd in de periode dat de auteur in dienst was bij het TNO Fysisch en Elektronisch Laboratorium in Den Haag. Daar de oplossing implementeerbaar moet zijn binnen elke DBMS-omgeving, is de SLC-uitbreiding gebaseerd op een bestaand gegevenstype (bijvoorbeeld integerd) in combina tie met een bestaande zoekmethode, zoals de B-tree [4], Een globale schets van de ontworpen oplossing is dan: Voeg een SLC-attribuut toe aan elke tabel in de database waarin een ruimtelijk gegevenstype voorkomt (point, line, polygon of box). De SLC is een ééndimensionale waarde en elk object krijgt precies één waarde. Deze waarde benadert zowel de positie als de grootte van objec ten. Het is mogelijk dat twee verschillende objecten door dezelfde SLC-waarde worden benaderd, maar dan heb ben deze objecten ongeveer dezelfde grootte en dezelfde positie. Modificeer de structuur tot een B-tree gelijkende tabel op het SLC-attribuut. Dit zorgt ervoor dat de objecten min of meer worden opgeslagen in de volgorde bepaald door de B-tree. Deze primaire index is verantwoor delijk voor de ruimtelijke clustering. Definieer twee functies: a. Compute_SLC: berekent de SLC-waarde van een tweedimen sionale rechthoek. Eerst wordt van een object de kleinst omhul lende rechthoek bepaald en ver volgens de SLC van deze recht hoek. Er is dus maar één Com- pute_SLC functie nodig; b. Overlap_SLC: bepaalt de SLC- intervallen die de gegeven tweedimensionale zoekrechthoek overlappen. Tenslotte kunnen we regels en pro cedures binnen de DBMS defini ëren om de SLC transparant te ma ken voor de gebruiker: a. vul het SLC-attribuut ingeval 243

Digitale Tijdschriftenarchief Stichting De Hollandse Cirkel en Geo Informatie Nederland

(NGT) Geodesia | 1996 | | pagina 5