1) Selektion σ – filtert Tupel
Grundidee: σ bildet eine Teilmenge der Tupel, indem die Bedingung für jedes Tupel einzeln geprüft wird.
σ Erscheinungsjahr >= 2018 (BUCH)
Deutung: Alle Buch-Tupel bleiben strukturell gleich; weitergegeben werden nur Bücher ab dem Erscheinungsjahr 2018.
2) Projektion π – reduziert Attribute
Grundidee: π wählt Attribute aus und entfernt andere.
π Titel, Erscheinungsjahr (BUCH)
Deutung: Nur Titel und Erscheinungsjahr bleiben sichtbar. Gleiche Ergebnistupel erscheinen in der Relationenalgebra nur einmal. Projektion kann Join-Attribute wie BuchID entfernen und sollte daher nicht zu früh eingesetzt werden.
Ausgabe oder Zwischenformung: Meist legt π am Ende die Ausgabe fest. Eine bewusste Zwischenprojektion kann aber auch den Datenraum formen: Sie hält benötigte Attribute fest und entfernt nicht benötigte, gleichnamige Attribute, bevor ein späterer Natural Join zu viel gleichsetzt. Gefährlich wird sie, wenn Join- oder Bedingungsattribute verschwinden.
π BuchID, Titel (BUCH)
Logische Bedingungen innerhalb der Selektion
Im grundlegenden Niveau entstehen anspruchsvolle Terme nicht nur durch zusätzliche Relationen.
Auch eine einzelne Selektion kann komplex werden, wenn mehrere Bedingungen logisch kombiniert werden.
Die Operatoren bleiben dann σ und π; die Schwierigkeit liegt in der Bedingung innerhalb von σ.
Konjunktion:
π BuchID, Titel (
σ Erscheinungsjahr >= 2018 AND Preis < 20 (BUCH)
)
Disjunktion:
π BuchID, Titel (
σ Erscheinungsjahr >= 2021 OR Preis >= 20 (BUCH)
)
Negation:
π ExemplarID, BuchID, Status (
σ NOT Status = 'ausgeliehen' (EXEMPLAR)
)
NOT ist nicht automatisch Differenz: NOT innerhalb von σ verneint eine lokale Bedingung, zum Beispiel einen Statuswert in EXEMPLAR. Das ist etwas anderes als eine Frage nach Objekten, zu denen es keinen passenden Eintrag in einer anderen Relation gibt. Solche Ohne-, Kein- oder Nie-Fragen werden im erhöhten Niveau häufig mit Differenz modelliert.
Beispiel lokale Negation:
π ExemplarID, BuchID, Status (
σ NOT Status = 'ausgeliehen' (EXEMPLAR)
)
Beispiel Differenz:
π BuchID, Titel (BUCH)
\
π BuchID, Titel (
BUCH ⨝ (σ Status = 'ausgeliehen' (EXEMPLAR))
)
Das erste Beispiel filtert Exemplare nach einem Attributwert. Das zweite Beispiel vergleicht zwei Buchmengen und entfernt eine ganze Teilmenge.
Klammerung:
π NutzerID, Vorname, Nachname (
σ Rolle = 'Schueler' AND (KlasseOderFachbereich = 'Q1' OR KlasseOderFachbereich = 'Q2') (NUTZER)
)
Hinweis: Die symbolischen Schreibweisen ∧, ∨ und ¬ sind gleichwertig zu AND, OR und NOT. Das Werkzeug akzeptiert beide Schreibweisen.
Damit bleibt die Anfrage im grundlegenden Operatorraum: Die Relation wird mit σ gefiltert und mit π auf die Ausgabeattribute reduziert. AND, OR und NOT sind hier keine zusätzlichen Relationenalgebra-Operatoren auf Ergebnisrelationen, sondern strukturieren nur die Bedingung innerhalb von σ.
OR in σ ist nicht dasselbe wie ∪: Eine Oder-Bedingung innerhalb von σ beschreibt eine Bedingung auf Tupel derselben Relation oder desselben bereits aufgebauten Datenraums. Die Vereinigung ∪ arbeitet dagegen mit zwei vollständig gebildeten Ergebnisrelationen. Auch wenn beide Schreibweisen bei einfachen Fällen zu ähnlichen Ergebnissen führen können, gehören sie didaktisch nicht zur gleichen Stufe: OR innerhalb von σ bleibt Teil der Selektionsbedingung; ∪ ist eine Mengenoperation des erhöhten Niveaus.
Beispiel GK:
π BuchID, Titel (
σ Erscheinungsjahr >= 2021 OR Preis >= 20 (BUCH)
)
Beispiel LK:
π BuchID, Titel (σ Erscheinungsjahr >= 2021 (BUCH))
∪
π BuchID, Titel (σ Preis >= 20 (BUCH))
Im grundlegenden Niveau wird die Oder-Frage daher als Selektionsbedingung formuliert. Die mengenalgebraische Modellierung mit ∪ wird erst in der Vertiefung behandelt.
3) Join ⨝ – kombiniert Relationen
Grundidee: Join baut aus zwei Relationen einen gemeinsamen Datenraum. In der Schulbibliothek verbinden Joins allgemeine Buchdaten mit Verlagen, Kategorien, Exemplaren oder Ausleihvorgängen.
BUCH ⨝ VERLAG
BUCH ⨝ EXEMPLAR
Natural Join: BUCH ⨝ VERLAG verbindet über VerlagID, wenn VerlagID in beiden Relationen dieselbe fachliche Rolle trägt. BUCH ⨝ EXEMPLAR verbindet Buchdaten mit konkreten Exemplaren über BuchID.
Equi Join: Die Bedingung kann ausdrücklich formuliert werden, wenn die gemeinsame Rolle sichtbar gemacht werden soll.
BUCH ⨝ VERLAG BUCH.VerlagID = VERLAG.VerlagID
Equi Join ist nicht jede Bedingung
Ein Equi Join nutzt eine Gleichheitsbedingung, um zwei Relationen fachlich passend zu verbinden.
Diese Bedingung ist eine Verknüpfungsbedingung. Filterbedingungen in einer Selektion wählen dagegen aus einem bereits aufgebauten Datenraum Tupel aus.
Beispiel:
BUCH ⨝ VERLAG BUCH.VerlagID = VERLAG.VerlagID
Bedeutung: BUCH und VERLAG werden über die gemeinsame Verlagsrolle verbunden.
Beispiel mit Filter:
π Titel, Name (
σ Ort = 'Hamburg' AND Erscheinungsjahr >= 2018 (
BUCH ⨝ VERLAG BUCH.VerlagID = VERLAG.VerlagID
)
)
BUCH.VerlagID = VERLAG.VerlagID verbindet BUCH und VERLAG.
Ort = 'Hamburg' filtert Verlage im gemeinsamen Datenraum.
Erscheinungsjahr >= 2018 filtert Bücher im gemeinsamen Datenraum.
π Titel, Name legt die Ausgabe fest.
Theoretische Lesart: R ⨝ S A = B entspricht σ A = B (R × S). Der Join ist dadurch als Abkürzung für Kombination plus Auswahl passender Tupel lesbar.
4) Kartesisches Produkt × – kombiniert alle Tupel
Das kartesische Produkt R × S kombiniert jedes Tupel aus R mit jedem Tupel aus S.
Die Ergebnisgröße ist |R| · |S|. In Anfragen ist es deshalb meist nur ein Zwischenschritt:
Erst eine anschließende Selektion macht aus allen Kombinationen die fachlich passenden Tupel.
BUCH × VERLAG
Dieser Ausdruck erzeugt zunächst alle Kombinationen aus Büchern und Verlagen, auch solche, die fachlich nicht
zusammengehören. Erst eine Bedingung oder ein Join grenzt auf passende Tupel ein.
BUCH ⨝ VERLAG
Dieser Join ist sinnvoll, weil VerlagID in beiden Relationen dieselbe fachliche Rolle besitzt:
den Verlag, dem ein Buch zugeordnet ist.
Mengenoperationen und Umbenennung werden hier zunächst nur eingeordnet; ihre systematische Nutzung folgt in den nachfolgenden Vertiefungen.
5) Mengenoperationen ∪, ∩, \
Grundidee: ∪, ∩ und \ kombinieren oder vergleichen ganze Ergebnisrelationen mit gleicher bzw. kompatibler Attributstruktur.
σ Erscheinungsjahr >= 2021 (BUCH)
∪
σ Preis >= 20 (BUCH)
Deutung: Vereinigung, Schnittmenge und Differenz setzen vereinbare Relationen voraus, also kompatible Attributstrukturen. Differenz ist gerichtet: R \ S ist im Allgemeinen nicht dasselbe wie S \ R. Die Vertiefung wird im Abschnitt zu Mengenoperationen behandelt.
6) Umbenennung ρ
Grundidee: ρ verändert Schemata und Namen, nicht die Tupel. Auf dieser Seite wird die abiturverbindliche Schreibweise ρ alt→neu (R) verwendet.
ρ Name→Verlagsname (VERLAG)
Deutung: Die Umbenennung ist hilfreich, wenn ein Attribut im Ergebnis eine fachlich eindeutigere Rolle erhalten soll.