| |
12
3.5 Alternative Techniken
Verschiedene Verbesserung des Z-Orderingkonzept sind sehr gut bekant (sieh Abb. 3.3 [Böh 99]*).
Abbildung 3.3 Verschiedene Verbesserung des Z-Orderingkonzept
Einige Autoren schlagen die Nutzung von verschiedene kurven so wie z.B. die Graycodes, die Hilbert
Kurve oder andere Variationen. Viele Studien bevorzugen die Hilbert Kurve unter der Vorschläge,
wegen ihrer besseren Distanzbewahrungsfähigkeit [Böh 99]* schlägt eine große Auswahl von
Raumfüllenden kurven vor und macht eine vergleichende Darstellungsstudie, in dem er einer
relationale Implementierung nutzt. Auch diese Darstellungsbewertung enthält nicht eine wesentliche
Verbesserung der Darstellung der Hilbert Kurve oder andere Raumfüllende Kurven über Z-Ordering.
Daher nutzen wir die Peano/Morton Kurve, weil sie einfacher zu berechen ist.
4. Indexauswertung
Die Indexauswertung wird von Frageoptimierern durchgeführt, um jeden Index für eine effiziente
Fragedurchführung nutzen zu können. Traditionell müssen Frageoptimierer in der Lage sein, nur
einfache relationale Operatoren für die Indizierung auszunutzen, solange der dazugehörige Werte-
bereich einfach bestimmt werden kann. Für die Indexausnutzung mit nutzerdefinierten Prädikaten,
muss der Anfragekompiler in der Lage sein, diese relationalen Operatoren zu finden um sie nutzen zu
können. Die Bestimmung der verwendeten Funktionen muss folgendermaßen spezifiziert sein,
Entweder kann die Funktion als Prädikat genutzt werden und wenn es so ist, muss sie herausfinden,
welche Suchmethode benutzt werden kann, wenn bestimmte Operatoren Suchargumente sind. Für
Details zu der Syntax von Prädikaten siehe Abschnitt 4.1.
Beispiel 4.1 Beachten wir folgendes Beispiel:
CREAT TABLE customer (name varchar(20), id integer,
, xyloc location);
...
CREAT INDEX locationIndx on customer(xyloc);
SELECT * FROM customer WHERE within(xyloc, circle(
));
Für die Anfrage in Bsp. 4.1. wird angenommen, dass within als Prädikat definiert wurde, dass eine
dazugehörige Suchmethode hat, wenn der zweite Operant ein Suchargument ist. Der Anfragekompiler
kann aus zwei Gründen einen Indexscan auswählen, um von der Tabelle customer Aufzeichnungen
zu erhalten. Der erste ist, dass es einen Index auf einem xyloc Attribut gibt. Der zweite Grund ist,
a) Hilbert
b) Peano(Z-Order)
c) Gray-Codes
d) Z-Mirror
e) U-Index
|  |
|
| |
|
|