Relationale Algebra (RA)

relationale-Algebra
relationale-Algebra


Die relationale Algebra ist eine Abfragesprache für relationale Datenbanken. Sie besteht aus Relationen, Operatoren und Integritaetsbedingungen, die zu Integritaetsarten gehören. Ein oder zwei Relationen werden durch die Operatoren wieder auf eine Relation abgebildet.

Zu den Operationen der relationalen Algebra gehören:

  1. Selektion
  2. Projektion
  3. Umbenennung
  4. Kartesisches Produkt (Kreuzprodukt)
  5. Verschiedene Join - Operatoren
  6. Union (Vereinigung)
  7. Durchschnitt
  8. Differenz
  9. Division

Diese Operatoren genügen den Rechengesetzen der relationalen Algebra und sind ineinander verschachtelbar, so dass Ausdrücke beliebiger Komplexität formulierbar sind. Grundoperationen sind Selektion, Projektion, Umbenennung, Kartesisches Produkt, Differenz und Union. Die verschiedenen Join-Operatoren, der Durchschnitt und die Division sind aus den Grundoperationen durch Formeln der Mengenalgebra ableitbar. Da die relationale Algebra auf dem Verständnis basiert, dass Relationen 'Mengen' von Tupeln sind, ist impliziert, dass doppelte Tupel wie in der Mengenalgebra unterdrückt werden (Duplikatelimination).

Die Selektion und die Projektion sowie die Umbenennung sind unäre Operatoren, da nur eine Relation als Eingangsmenge verarbeitetet wird. Alle andere Operatoren sind binär, da immer zwei Relationen als Eingangsmengen durch die Operation zu einer neuen Relation verarbeitet werden. Alle Operatoren liefern als Ergebnis wiederum eine Relation, die entweder Ergebnismenge ist oder als Eingangsmenge für weitere Operatoren verwendet wird.

Abkürzungen

  • σ - Selektion
  • ∏ - Projektion
  • UB - Umbenennung
  • × - kartesisches Produkt
  • ∪ - Union
  • ∩ - Durchschnitt
  • − - Differenz
  • ÷ - Division
  • * - Natural Join   (natürlicher Join)
  • TJ - Theta-/Inner-Join
  • EQ - Equi-Join
  • ⋈ - Full Outer Join
  • ⋉ - Left Outer Join
  • ⋊ - Right Outer Join

Beispiele für verschachtelte Operatoren in Inline-Notation

  1. σTyp = 'Material' AND Bestand > 0(Teile)
  2. TNr, Bezeichnung ( *( σTyp = 'Material' AND Bestand > 0(Teile) , Lieferung ) )
  3. TNr, Bezeichnung ( *(*Typ = 'Material' AND Bestand > 0(Teile), Lieferung), σOrt='Dortmund'(Lieferant) ) )

Die erste Abfrage selektiert alle Teile aus der Teile-Relation aus, die vom Typ = 'Material' sind und einen Bestand größer als 0 haben.
Die zweite Abfrage gibt aufgrund des zusätzlichen Natural Joins mit der Lieferung-Relation nur die Materialien mit einem echten Bestand aus, die irgendwann mal geliefert wurden. Alle selbsterstellten Materialien fallen aus dieser Anfrage heraus. Die abschließende Projektion schränkt die Ergebnismenge auf die beiden Attribute TNr und Bezeichnung ein.
Die dritte Anfrage schränkt die vorherige Abfrage nochmal ein: Es werden alle Teile gesucht, die von Lieferanten aus Dortmund geliefert werden, vom Typ Material sind und einen Bestand größer als 0 haben. Von diesen Teilen werden die Attribute TNr und Bezeichnung ausgegeben.

Bei umfangreicheren Abfragen wird die hier verwendete Inline-Notation schnell unübersichtlich. Besser ist dann die Darstellung als Operatorbaum. Die Applikation SELECT2OBaum wandelt SELECT-Abfragen in Operatorbäume um und ist Bestandteil des E-Learning-Datenbank-Portals edb.

Gehören zwei Relationen zur relationalen Algebra, dann sind auch alle Relationen, die sich aus den oben genannten Operationen bilden lassen, wieder Elemente der relationalen Algebra. Dazu werden die Operatoren aufeinander angewandt und mit den logischen Operatoren AND, OR und NOT verknüpft. Die relationale Algebra ist abgeschlossen gegenüber ihren Operationen, d.h., nur die so erzeugten Ausdrücke gehören zur relationalen Algebra.

siehe auch: Relation, Integritätsart, Integritätsbedingung, Datenmodell,Relationales-Datenmodell, dreiwertige-Logik Logischer-Operator Zusammenhang-relationale-Algebra-SQL-SELECT?

Quellen:

  • Elmasri, Ramez/Navathe, Shamkant B.: "Grundlagen von Datenbanksystemen" , Pearson Studium, München, 2002, ISBN 3-8273-7021-3
  • Faeskorn-Woyke, Heide/Bertelsmeier, Birgit/Riemer, Petra/Bauer, Elena: "Datenbanksysteme - Theorie und Praxis mit SQL2003, Oracle und MySQL", Pearson Education, München, 2007, ISBN 978-3-8273-7266-6
  • Kemper, Alfons/Eickler, André: "Datenbanksysteme", Oldenbourg, München, 2009, 978-3-486-59018-0
  • Saake, Gunter/Sattler, Kai-Uwe/Heuer, Andreas: "Datenbanken - Konzepte und Sprachen", mitp-Verlag, Redline GmbH, Heidelberg, 2007, ISBN 3-8266-1664-2
  • Vossen, Gottfried: "Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme", Oldenbourg, München, 2008, ISBN 978-3-486-27574-2

Kategorie: Relationale Algebra, R