next up previous
Next: Datalog Up: Datenbanken Previous: Relationale Algebra

Relationale Algebra und Anfragesprachen

Die oben dargestellte reltionale Algebra als Anfragesprache ist operational. Das heißt, man kann an den Formeln ablesen, wie die Anfrage zu berechnen ist. In der Theorie relationaler Datenbanken gibt es mindestens drei weitere, formale Anfragesprachen, die von Bedeutung sind,

Auf die ersten beiden gehen wir hier nicht näher ein. Datalog wird im nächsten Abschnitt noch näher erläutert. Wichtig zu wissen ist folgendes:

Die typischste Sql-Anfrage ist wohl:

       SELECT  <Attribut_Liste>
       FROM    <Relationen_Liste>
       WHERE   <Pr"adikats_Liste>

Diese übersetzt sich verbal wie folgt in relationale Algebra:

  1. Selektiere die Attribute mittels der Prädikate aus dem WHERE Teil
  2. über dem kartesischen Produkt der Relationen aus dem FROM Teil
  3. und projeziere das Ergebnis auf die Attribute aus dem SELECT Teil.

Hier haben wir die Möglichkeit der Optimierung völlig außen vor gelassen! Wenn die FROM Anweisung nur eine Tabelle enthält, ist das kartesische Produkt überflüssig. Andernfalls sollte es immer auch einen WHERE Teil geben, damit das kartesische Produkt möglichts durch einen Join ersetzt werden kann. Die Ausdrucksmächtigkeit von Sql beruht nun zum einen auf der Möglichkeit der Schachtelung von weiteren SELECT Anweisungen innerhalb des WHERE Teils und zum anderen auf der Möglichkeit, die Egebnisse mehrerer SELECT Anweisungen mittels der Mengenoperationen wie z.B. Vereinigung zu verknüpfen.


next up previous
Next: Datalog Up: Datenbanken Previous: Relationale Algebra

Peter Brockhausen
Thu Mar 5 13:41:14 MET 1998