Relationale Algebra

Aus FLBK-Wiki
Version vom 17. April 2026, 11:38 Uhr von Flbkwikiadmin (Diskussion | Beiträge) (Einführung)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Einführung

Die relationale Algebra (auch Relationenalgebra genannt) bildet die theoretische Grundlage für Abfragesprachen in relationalen Datenbanken. In der Theorie der Datenbanken versteht man unter einer relationalen 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 eine Menge von Relationen anwenden lassen. Damit lassen sich beispielsweise Relationen verknüpfen, filtern oder umbenennen. Die Ergebnisse dieser Operationen sind immer wieder neue Relationen.

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

Mengenoperationen

Relationen bezeichnen Mengen im mathematischen Sinne. Eine Menge enthält sogenannte Tupel (Datensätze). Zwischen den Tupeln einer Menge bzw. Relation ist keine Ordnung (wie z. B. eine Reihenfolge) definiert. Auf Tabellen in der Praxis sind hingegen stets Ordnungen definiert, da es dort eine physische Reihenfolge der Datensätze gibt.

Zudem kann ein Tupel in einer mathematischen Menge nicht mehrfach vorkommen – es gibt keine Duplikate. In einer reinen Datenbanktabelle wären Duplikate (ohne Primärschlüssel) hingegen technisch möglich. Auf diesen relationalen Mengen können unter gewissen Voraussetzungen die folgenden mathematischen Operationen ausgeführt werden.

Vereinigungsverträglichkeit (Typkompatibilität)

Um Mengenoperationen auf Relationen durchführen zu können, müssen diese miteinander kompatibel sein. Die Typkompatibilität (auch Vereinigungsverträglichkeit genannt) zweier Relationen ist gegeben, wenn:

  1. sie den gleichen Grad haben (die Anzahl der Attribute/Spalten ist identisch).
  2. der Wertebereich (Datentyp) der korrespondierenden Attribute identisch ist.

Vereinigung (Union)

Vereinigungsmenge

Ist die Vereinigungsverträglichkeit gegeben, können zwei Mengen vereinigt werden. Bei der Vereinigung von zwei Relationen [math]\displaystyle{ R \cup S }[/math] werden alle Tupel der Relation R mit allen Tupeln der Relation S zu einer einzigen neuen Relation vereint. Duplikate, die in beiden Relationen vorkommen, werden bei der Vereinigung gelöscht.

Beispiel:

  • Relation R enthält die Mitarbeiter {Müller, Meier}.
  • Relation S enthält die Mitarbeiter {Meier, Schulze}.
  • Die Vereinigung [math]\displaystyle{ R \cup S }[/math] ergibt {Müller, Meier, Schulze}.

Schnittmenge (Intersection)

Schnittmenge

Ist die Vereinigungsverträglichkeit gegeben, können zwei Mengen geschnitten werden. Die Schnittmenge [math]\displaystyle{ R \cap S }[/math] beschreibt die Menge der Tupel, die sich exakt in beiden zu schneidenden Mengen wiederfinden.

Beispiel:

  • Die Schnittmenge aus R {Müller, Meier} und S {Meier, Schulze} ist [math]\displaystyle{ R \cap S }[/math] = {Meier}.

Differenz (Difference)

Differenzmenge

Die Differenz zweier Mengen kann gebildet werden, falls Vereinigungsverträglichkeit herrscht. Es wird eine Untermenge gebildet, die nur Elemente der einen Menge enthält, abzüglich der Elemente, die auch in der zweiten Menge vorkommen.

Beispiel:

  • Die Differenz [math]\displaystyle{ R \setminus S }[/math] (gesprochen: R ohne S) aus {Müller, Meier} und {Meier, Schulze} ergibt {Müller}.

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:

  • Die symmetrische Differenz aus R {Müller, Meier} und S {Meier, Schulze} ergibt {Müller, Schulze}.

Spezifische Relationenoperationen

Kartesisches Produkt (Cross Product)

Ohne Voraussetzung bezüglich der Vereinigungsverträglichkeit lässt sich das Kartesische Produkt ([math]\displaystyle{ R \times S }[/math]) zweier Mengen bilden. Das Resultat ist die Menge aller möglichen Kombinationen der Tupel aus R und S. Das heißt: Jedes Tupel der einen Relation wird mit jedem Tupel der anderen Relation kombiniert.

Wenn alle Attribute verschieden sind, umfasst die Resultatsrelation die Summe der Attribute (Spalten) der Ausgangstabellen. Die Anzahl der Tupel (Zeilen) in der Resultatstabelle ist das Ergebnis der Multiplikation der Zeilenanzahlen der Ausgangstabellen (z. B. 3 Zeilen in R und 4 Zeilen in S ergeben 12 Zeilen im Kartesischen Produkt).

Projektion

Die Projektion ([math]\displaystyle{ \pi }[/math]) kann ohne Voraussetzungen durchgeführt werden. Sie extrahiert einzelne Attribute (Spalten) aus der ursprünglichen Attributmenge und ist somit als eine Art Filterung auf Spaltenebene zu verstehen. Die Projektion blendet also Spalten aus. Entstehen durch das Ausblenden von Spalten identische Zeilen, werden diese Duplikate in der Ergebnisrelation eliminiert.

Beispiel: Aus einer Mitarbeitertabelle mit {Personalnummer, Name, Abteilung} wird durch Projektion nur die Spalte {Abteilung} extrahiert. Das Ergebnis ist eine Liste aller Abteilungen ohne Duplikate.

Selektion (Selection)

Die Selektion ([math]\displaystyle{ \sigma }[/math]) kann ebenfalls ohne Voraussetzungen zur Kompatibilität mit anderen Tabellen durchgeführt werden, da sie nur auf einer Relation operiert. Sie extrahiert einzelne Tupel (Datensätze), die eine bestimmte Bedingung erfüllen, aus der ursprünglichen Relation. Sie ist somit als eine Art Filterung auf Zeilenebene zu verstehen (das heißt, die Selektion blendet Zeilen aus, die das Kriterium nicht erfüllen).

Beispiel: Aus einer Mitarbeitertabelle werden durch Selektion nur die Tupel extrahiert, bei denen das Attribut Gehalt > 3000 ist.