Relationale Algebra

Einführung

Ihre Bedeutung hat die relationale Algebra als theoretische Grundlage für Abfragesprachen in relationalen Datenbanken. In der Theorie der Datenbanken versteht man unter einer relationale Algebra eine formale Sprache, mit der sich Abfragen über einem relationalen Schema formulieren lassen. Sie erlaubt es, Relationen miteinander zu verknüpfen und komplexere Informationen daraus herzuleiten.

Die relationale Algebra definiert Operationen, die sich auf einer Menge von Relationen anwenden lassen. Damit lassen sich beispielsweise Relationen verknüpfen, filtern oder umbenennen. Die Ergebnisse der Operationen sind wiederum Relationen.

Als Erfinder der relationalen Algebra gilt Edgar F. Codd. In den 1970er Jahren hat sie die Datenbankwelt revolutioniert. Die Datenbanksprache SEQUEL, ein Vorläufer des heutigen SQL, war eine der ersten Umsetzungen der Ideen des relationalen Modells, und damit der relationalen Algebra.

Operationen

Mengenoperationen

Relationen bezeichnen Mengen im mathematischen Sinne. Eine Menge enthält also Tupel. Zwischen den Tupeln einer Menge bzw. Relation ist keine Ordnung wie z.B. eine Reihenfolge definiert. Auf Tabellen sind hingegen stets Ordnungen definiert, da es immer eine Reihenfolge der Datensätze gibt. Zudem kann ein Tupel in einer Menge nicht mehrfach vorkommen. Es gibt keine Duplikate. In einer Tabelle hingegen schon. Auf diesen Mengen können unter gewissen Voraussetzungen Operationen ausgeführt werden.

Vereinigungsverträglichkeit

Um Mengenoperationen auf den Relationen durchführen zu können, müssen diese miteinander kompatibel sein. Die Typkompatibilität zweier Relationen ist gegeben, wenn

  • sie den gleichen Grad (Attributanzahl) haben

  • der Wertebereich der Attribute identisch ist.

Die Typkompatibilität wird auch Vereinigungsverträglichkeit genannt.

Vereinigung

Ist die Vereinigungsverträglichkeit gegeben, können zwei Mengen Vereinigt werden. Bei der Vereinigung von zwei Relationen R ∪ S werden alle Tupel der Relation R mit allen Tupeln der Relation S zu einer einzigen Relation vereint. Duplikate werden bei der Vereinigung gelöscht.

Beispiel

Schnittmenge

Ist die Vereinigungsverträglichkeit gegeben, können zwei Mengen geschnitten werden. Die Schnittmenge R S beschreibt die Menge, die sich in zwei zu schneidenden Mengen wiederfindet.

Beispiel

Differenz

Die Differenz zweier Mengen kann gebildet werden, falls Vereinigungsverträglichkeit herrscht. Es wird eine Untermenge gebildet, die nur Elemente einer der beiden Mengen enthält.

Beispiel

Symmetrische Differenz

Die symmetrische Differenz zweier Mengen kann gebildet werden, falls Vereinigungsverträglichkeit herrscht. Bei der symmetrischen Differenz handelt es sich um die Menge aller Tupel, die entweder in R oder in S aber nicht in beiden gleichzeitig enthalten sind.

Beispiel

Kartesisches Produkt

Ohne Voraussetzung lässt sich das Kartesische Produkt zweier Mengen bilden. Das Resultat des Kartesischen Produkts ist die Menge aller Kombinationen der Tupel aus R und S- D.h. Jedes Tupel einer Relation wird mit jedem Tupel der anderen Relation kombiniert. Wenn alle Merkmale (Attribute) verschieden sind, so umfasst die Resultatsrelation die Summe der Attribute der Ausgangstabellen. Die Anzahl der Tupel in der Resultatstabelle ist das Ergebnis der Multiplikation der Zeilenanzahlen der Ausgangstabellen.

Beispiel

Projektion

Die Projektion kann ohne Voraussetzungen durchgeführt werden. Sie extrahiert einzelne Attribute aus der ursprünglichen Attributmenge und ist somit als eine Art Selektion auf Spaltenebene zu verstehen, das heißt, die Projektion blendet Spalten aus. Duplikate in der Ergebnisrelation werden eliminiert.

Beispiel

Selection

Die Selection kann ohne Voraussetzungen durchgeführt werden. Sie extrahiert einzelne Tupel aus der ursprünglichen Relation und ist somit als eine Art Selektion auf Tupel zu verstehen, das heißt, die Projektion blendet Zeilen aus.