Databases Reference
In-Depth Information
4.10
Was soll das?
Das relationale Modell und die Relationenalgebra sind abstrakt und - zumindest
wenn man sich das erste Mal damit beschäftigt - nicht einfach zu verstehen. Es
stellt sich schnell die Frage, welchen praktischen Nutzen die Relationenalgebra
hat.
So wie die Turing-Maschine das Referenzmodell für universelle Programmier-
sprachen ist, so ist die Relationenalgebra eine Referenz für Abfragesprachen.
Wir wissen sehr genau, welche Ausdrücke sich mit der Algebra formulieren
lassen. Wenn wir eine Abfragesprache haben, die zur Relationenalgebra äqui-
valent ist, dann kennen wir auch ihre Möglichkeiten und Grenzen.
Die fünf primitiven Operationen können effizient implementiert werden.
Selbst wenn die Operationen kombiniert werden, gewährleisten die Algorith-
men, dass die Laufzeiten nicht ins Uferlose wachsen. Die Relationenalgebra ist
den universellen Programmiersprachen zwar hinsichtlich ihrer Ausdrucksfä-
higkeit unterlegen, doch haben diese Sprachen auch den Nachteil, dass wir bei
Programmen, die in diesen Sprachen entwickelt wurden, mit exponentiellen
Laufzeiten rechnen müssen. Bei Sprachen, deren Referenz die Relationenalge-
bra ist, kann es so etwas nicht geben.
Jedes RDBMS enthält eine Komponente, die als Optimierer bezeichnet wird
(siehe auch Kapitel 20.6). Sie ist dafür verantwortlich, dass SQL-Anweisungen
effizient ausgeführt werden. Etwas bösartig kann man behaupten, dass der
Optimierer dieses Ziel erreicht, indem er Ausdrücke der Relationenalgebra ge-
schickt umformt.
Die Relationenalgebra hat also durchaus eine praxisrelevante Bedeutung. Spra-
chen, die zur Relationenalgebra äquivalent sind, werden auch relational vollstän-
dig genannt. Die Abfragen, die sich mit relational vollständigen Sprachen formu-
lieren lassen, können also anders als in Sprachen wie C oder Java keine exponen-
tiellen Laufzeiten haben. Nur in seltenen Fällen reichen die Mittel der Algebra
nicht aus, um eine Abfrage zu formulieren, die für praktische Belange von Interes-
se ist. Die Relationenalgebra stellt somit einen Kompromiss zwischen effizienten
Laufzeiten und hinreichender Ausdrucksfähigkeit dar.
Diese positive Bilanz muss allerdings noch um zwei Bemerkungen ergänzt wer-
den.
Laufzeiten von SQL-Abfragen können die Geduld des Anwenders auf eine
harte Probe stellen: Wenn die Abfrage sehr komplex ist und der Datenbestand
sehr groß wird, bedarf es keiner exponentiellen Komplexität, um ein RDBMS
tagelang mit einer einzigen Abfrage zu beschäftigen. Relational vollständige
Sprachen sind keine Garantie für kurze Laufzeiten. Nur - mit universellen Spra-
chen sähe es noch schlimmer aus.
 
Search WWH ::




Custom Search