Abfragen komplexer Datenbanken


In einer komplexen Datenbank, die mehrere miteinander verknüpfte Relationen enthält, besteht natürlich der Wunsch Abfragen über die Grenzen einer Relation hinaus zu erstellen. Dies wird durch einen so genannten Verbund oder JOIN realisiert. In der Datenbanktheorie unterscheidet man eine ganze Reihe verschiedener JOINs. Wir wollen uns hier nur exemplarisch mit dem Gleichverbund oder EQUI-JOIN beschäftigen.

Beim Gleichverbund werden zwei oder mehrere Relationen über gleichen Attributwerten miteinander verbunden. Ein Beispiel: Nehmen wir an, wir interessieren uns dafür welcher Leser unserer Bibliothek welches Buch schon einmal ausgeliehen hatte.

SELECT leser.name, buch.titel -> Achten Sie auf die Kombination Relation.Attribut
FROM leser, ausleihe, buch -> Hier erfolgt die Angabe der miteinander zu verknüpfenden Relationen
WHERE leser.LID = ausleihe.LNR AND ausleihe.InvNr = buch.InvID -> Dies ist die erwähnte Gleichbedingung

Wie man erkennen kann, braucht man für das Verknüpfen von n Relationen n-1 Join-Bedingungen.

Aufgaben

  1. Testen Sie die obige Abfrage mit der DB Bibliothek!
  2. Erstellen Sie anschließend noch folgende Abfragen:
    1. Welcher Leser hatte schon einmal das Buch 'Der Ofen ist aus' ausgeliehen?
    2. Welche Bücher hatte die Leserin 'Schuster' schon einmal ausgeliehen?
    3. Geben Sie an welche Bücher im März des Jahres 2001 zurückgegeben wurden!
    4. Geben Sie an, wie viele Bücher der Leser 'Wolf' im Februar des Jahres 2001 ausgeliehen hatte!
  3. Denken Sie sich weitere Abfragen über die Grenzen einer Relation hinaus aus! Sie können dafür auch die DB Projektierungsbüro verwenden!

zuletzt geändert am:
Eine Seite von Mirko Hans