Relationale Algebra
Die relationale Algebra ist eine theoretische, prozedurale Anfragesprache für die Manipulation von Relationen. Sie bildet das formale und mathematische Fundament für relationale Datenbanksysteme (DBMS) und deren Abfragesprachen (wie SQL).
Zwei theoretische Kerneigenschaften (Theorie-Fundament)
Die relationale Algebra zeichnet sich durch zwei fundamentale Eigenschaften aus, die für den Betrieb eines DBMS zwingend erforderlich sind:
- Vollständigkeit (Relatonal vollständig): Eine Anfragesprache heißt relational vollständig, wenn ihre Ausdrucksstärke mindestens der der relationalen Algebra entspricht (wichtiger Gradmesser für SQL).
- Abgeschlossenheit: Alle Operatoren operieren auf Relationen und liefern als Ergebnis stets wieder eine neue Relation. Dadurch lassen sich relationale Ausdrücke beliebig tief ineinander verschachteln (die theoretische Grundlage für SQL-Subqueries).
Kriterien für Anfragesprachen
- Ad-Hoc-Formulierung: Benutzer soll eine Anfrage direkt formulieren können, ohne ein vollständiges Programm schreiben zu müssen.
- Deskriptivität / Deklarativität: Der Benutzer formuliert „Was will ich haben?“ und nicht „Wie komme ich an das, was ich haben will?“ (wird in SQL vollendet).
- Mengenorientiertheit: Operationen wirken auf Mengen von Daten, nicht navigierend auf einzelnen Elementen („tuple-at-a-time“).
- Adäquatheit: Alle Konstrukte des zugrundeliegenden Datenmodells werden unterstützt.
- Orthogonalität: Sprachkonstrukte sind in ähnlichen Situationen auch ähnlich anwendbar.
- Optimierbarkeit & Effizienz: Die Sprache besteht aus wenigen Operationen, für die es Optimierungsregeln gibt. Jede Operation ist effizient ausführbar mit einer Komplexität von
, wobei die Anzahl der Tupel ist. - Sicherheit: Syntaktisch korrekte Anfragen dürfen niemals in eine Endlosschleife geraten oder ein unendliches Ergebnis liefern.
- Eingeschränktheit: Die Anfragesprache ist keine komplette Programmiersprache (folgt aus Sicherheit, Optimierbarkeit und Effizienz).
Systemische Klassifikation der Operatoren
1. Die 5+1 Basisoperatoren (Minimale Relationenalgebra)
Bilden eine minimale, vollständige und unabhängige Basis. Kein Operator kann weggelassen werden, ohne die Vollständigkeit zu verlieren.
- Vereinigung (
): . Sammelt Tupel zweier schemaverträglicher Relationen auf. Automatische Duplikatentfernung. - Differenz (
): . Eliminiert alle Tupel aus , die auch in vorkommen. Nicht-kommutativ. - Kartesisches Produkt (
): Kombiniert jedes Tupel aus mit jedem Tupel aus . Ergebnisschema enthält Tupel und die Summe der Attribute. - Projektion (
): Vertikale Reduktion der Tabelle ( ). Eliminiert Duplikate. - Selektion (
): Horizontale Filterung ( ) basierend auf einer Bedingung . - Umbenennung (
): Reine Operation am Schema ( ). Verändert keine Tupel, macht Relationen schemaverträglich.
2. Abgeleitete Operatoren (Redundante Komfortfunktionen)
Dienen in der Praxis als nützliche Abkürzungen und lassen sich auf die Basisoperatoren zurückführen.
- Schnittmenge (
): . Rückführung: . - Theta-Join (
): Verallgemeinerung des Joins mit freier Verknüpfungsbedingung. Rückführung: . - Natürlicher Join (
): Bildet Paare, die in allen namensgleichen Attributen übereinstimmen und verschmilzt diese. - Division (
): Findet alle -Tupel aus , die in Kombination mit jedem -Tupel aus in erscheinen (für komplexe „Alle“-Abfragen).
3. Erweiterte Operatoren (Praxis- & SQL-Erweiterungen)
- Aggregation & Gruppierung (
): Partitioniert Relationen in Gruppen mit identischen Werten, um zustandslose Aggregatfunktionen ( SUM,AVG,MIN,MAX,COUNT) lokal zu berechnen. - Sortierung (
): Sortiert nach einer Attributliste. WICHTIGER OBSIDIAN-MERKSATZ: Das Ergebnis ist eine Liste, keine Menge. Muss zwingend der letzte Operator eines relationalen Ausdrucks sein! - Duplikateliminierung (
): Wandelt eine Multimenge explizit in eine reine Menge um (wichtig für den Übergang von SQL-Bags zu RA-Mengen). - Semi-Join (
): Join, bei dem im Endeffekt nur die Attribute der linken Relation erhalten bleiben. - Outer Joins (
): Übernahme von Datensätzen, die keinen Verknüpfungspartner finden, aufgefüllt mit Nullwerten ( NULL-Padding). - Outer Union (
): Vereinigung von nicht schemaverträglichen Relationen. Das Ergebnisschema ist die mathematische Vereinigung aller Attribute (fehlende Werte werden mit NULLaufgefüllt).
Algebraische Optimierung (Transformationsregeln)
Ausdrücke werden als Baum dargestellt und vom Query Optimizer vor der Ausführung mathematisch umgeschrieben:
- Kommutativität & Assoziativität des Joins erlauben das freie Umstellen von Tabellenketten.
- Idempotenz der Projektion:
- Selektions-Pushing:
(Verschieben von Selektionen vor Projektionen zur Reduktion der Datenmenge). - Distribution: