| |
16
gesendet. Das Fehlen der Integration von räumlichen Indizes in der Datenbankmaschine führt zu
Integritätsproblemen und falschen Treffern bei der Darstellung. Unser Hochniveauindexierungsrahmen
hat eine räumliche Indizierung in einer Datenbank ermöglicht und nutzt außerdem Vorteile der
spezifischen Suchmethoden, die in GIS entwickelt wurden für die folgenden nutzerdefinierten Typen:
CEART TYPE envelop As (xmin int, ymin int, xmax int, ymax int);
CREAT TYPS shape AS (gtype varchar(20), mbr envelop. Numpart sint,
numpoint sint, geometry BLOB(1M))
NOT INSTANTIABLE;
CREAT TYPE point UNDER shape;
CREAT TYPE line UNDER shape;
CREAT TYPE polygon UNDER shape;
Beispiel bei denen Formen als Unterstützungstypen für verschiedene Untertypen dienen, sowie Linien
und Polygone. Zwei Tabellen werden in der Datenbank definiert, eine speichert die Informationen über
Schulen und die andere beinhaltet Informationen über die Haushalte des Einzugsgebietes.
CREAT TABLE schools AS (name varchr(20), district varchar(20),
address varchar(20), area ahape
PRIMARY KEY (name, district));
CREAT TABLE households AS (address varchar(20), annualincome int,
location shape);
Die folgende Anfrage versucht, das durchschnittliche Einkommen der Haushalte, das als eine
attendance von den spezifischen Schulen zu berechnen.
SELECT avg(h.annualincome) FROM houses h, schools s
WHERE s.name = Armstrong Elementary AND s.district = Highland Park AND
Within(h.location, s.area);
Um der effizienten Ausführung dieser Frage zu folgen, benötigen wir eine Indexerweiterung. Diese
erhalten wir, indem wir die nutzerdefinierte Schlüssseltransformation und Suchmethode für geogra-
phische Formen einschließen und indem wir einen Index in die Tabelle Haushalt einsetzen. Außerdem
müssen wir die Prädikate für within spezifizieren und die dazugehörigen Suchmethode nutzen. Das
folgende Statement bestimmt die Indexauswertung über den Typ geographische Formen. Es nutzt
einen mehrstufigen Gitterindex für die geographische Form.
CREAT INDEX EXTENSION gridshape (levels varchar(20) FOR BIT DATA)
WITH INDEX KEYS for (sh shape) GENERATED BY gridkeys (
Levels, sh..mbr..xmin, sh..mbr..ymin,
sh..mbr..xmax, sh..mbr..ymax)
WITH SEARCH METHODS FOR INDEX KEYS (level,int , gx int, gy int, xmin int,
Ymin int, xmax int, ymax int)
WHERE search_within USING (area shape)
RANGE THROUGH gridrange(
Levels, area..mbr..xmin, area..mbr..ymin,
|  |
|
| |
|
|