| |
6
zusätzlichen Verbindungen mit der temporären Ergebnisstabelle gibt. Die Reduzierung der Zahl der
Verbindungen bewirkt eine höhere Effektivität des Optimierers, da der Suchraum reduziert wurde. Es
konnte eine mehr als 10-fache Verbesserung der Darstellung für bestimmte suchintensive Anfragen
nach der Inegration, die den ausgedehnten Indexrahmen benutzt, festgestellt werden.
2.5 Oracle8i Spatial Data Cartdridge
Die Oracle8i räumliche cartdridge erlaubt dem Nutzer den räumlichen Index und die Anfragen an die
räumlichen Daten zu speichern. Die räumlichen Daten sind als ein Objekttyp SDO-GEOMETRY
modelliert. Ein räumlicher Index kann auf einer SDO- Geometrie Spalte aufgebaut werden. Der
räumliche Index besteht aus einer Sammlung von Verteilungen, die zu jedem räumlichen Objekt
dazugehören, diese Sammlung wird in der Oracle-Tabelle gespeichert. Der räumliche Index ist eine
Instanz eines räumlichen Indextypes, der die Routinen für das Kreieren, Pflegen und Befragen des
räumlichen Index definiert. Der räumliche Indextyp unterstützt einen Operator, der als Overlaps
bezeichnet wird. Dieser legt fest, welche Geometrien von 2 gegebenen Ebenen einander überlappen.
Beispiel 2. eine räumliche Anfrage ist von folgender Form:
SELECT r.gid, p.gid FROM roads r, parks p WHERE overlaps (r,p);
Der ausgedehnte Indizierungsrahmen hat die Nutzung des Magnetbandes (cassett) von Oracle
wesentlich verbessert. Vor Oracle8i musste der Benutzer explizit das PPISQL [Dit 01]* Paket aufrufen,
um einen Index zu kreieren oder den räumlichen Index zu pflegen, welcher
er DML-(Data
Manipulation Language) Operation zur grundlegenden räumlichen Tabelle folgt. Mit diesem Rahmen
wird der räumliche Index impliziet gepflegt, so als wäre er ein eingebauter Index. Auch mit dem aus-
gedehnten Indizierungsrahmen wird die Logik der Nutzung des Index um die anfragen zu bearbeiten,
in die Indexroutinen eingeschlossen und der Endnutzer wird nicht mit den Details der
Indeximplementierung belastet. Vor Oracle8i musste die räumliche Anfrage wie folgt formuliert
werden:
SELECT DISTINCT r.gid, p.gid FROM roads_sdoindex r, parks_sdoindex p
WHERE (r.grpcode = p.grpcode) AND (r.sdo_code BETWEEN p.sdo_code
AND p.sdo_maxcode OR p.sdo_code BETWEEN r.sdo_code AND r.sdo_maxcode)
Der Nachteil dieser Methode ist, das der Anfragealgorithmus, der
eschützt (geregelt) sein kann,
muss dem Nutzer erklärt werden, die innere Logik muss also ein extra SQL Statement ausgedrückt
werden. Vom Nutzer wird erwartet, dass er die Details der Speicherstruktur für den Index kennt. In
Ergänzung zur erheblichen Vereinfachung der Anfragen, erlaubt der Oracle8i Rahmen eine
Veränderung der zugrundeliegenden räumlichen Indizierungsmethoden, ohne vom Endnutzer zu
fordern, dass er seine Anfragen ändert. Die Darstellung von räumlichen Daten welche den aus-
gedehnten Indizierungsrahmen nutzen war genauso gut wie die Darstellung der vorherigen
Implementierung.
|  |
|
| |
|
|