Anforderungen an die Algebra
Optimierbarkeit: Bestehend aus wenigen Operationen mit Optimierungsregeln
Effizienz: Jede Operation ist effizient ausführbar
Mengenorientiertheit: Jede Operation soll auf Mengen von Daten gleichzeitig
arbeiten, nicht nur auf einzelnen Elementen
Projektion
π_attributmenge(relation)
Lässt alle Spalten weg, außer die, die zur Attributmenge gehören
Formal: π𝑋(𝑟) = {𝑡(𝑋) ∣ 𝑡 ∈ 𝑟} für 𝑟(𝑅) und 𝑋 ⊆ 𝑅 Attributmenge in 𝑅
Bei mehreren verschachtelten Projektionen reicht die zuletzt ausgeführte Projektion
Selektion
Selektion: σbedingung(relation)
Filtert Zeilen nach angegebener Bedingung
Formal:σ𝐹(𝑟)={𝑡∣𝑡∈𝑟∧𝐹(𝑡)}
Selektionsbedingung: Attribut Θ Konstante mit Θ ∈ {=, ≠, ≤, <, ≥, >}
Selektionsbedingungen können beliebig angeordnet werden und Reihenfolge hat
Auswirkungen auf Performanz
Logische Verknüpfungen nicht unterstützt, da diese durch obige Operatoren
dargestellt werden können und sonst nur zu mehr Komplexität bei der Optimierung führen
Verbund
Verbund: Relation1 ⋈ Relation2 (natural join)
Verbund verknüpft Tabellen über gleichnamigen Spalten bei gleichen Attributwerten
Tupel, die keinen Partner finden (dangling tuples), werden eliminiert
In SQL: outer join, der dangling tuples übernimmt
Wenn 𝑅1 ∩ 𝑅2 = ∅, dann entartet der Join zum kartesischen Produkt
Verbund ist kommutativ und assoziativ, aber Reihenfolge ist wichtig für Performanz
Universalrelation
Für Relationen 𝑅1, ... , 𝑅𝑛 ist 𝑅 = 𝑅1 ⋈ ⋯ ⋈ 𝑅𝑛 die Universalrelation
Mengenoperationen und Umbenennung
Erfordern, dass Schemata der Argumente identisch sind
Umbenennung: βneu←alt(relation) ändert Attributnamen von alt in neu
Vereinigung: relation1 ∪ relation2, Durchschnitt: relation1 ∩ relation2
Differenz: relation1 – relation2
Umbenennung ermöglicht häufig erst Mengenoperationen
Schnitt kann durch Natural Join (und Umbenennung) simuliert werden
Minimale Relationenalgebra: Ω = π, σ, ⋈, β,∪, −
Unabhängigkeit und Vollständigkeit
Relationale Vollständigkeit einer anderen Menge von Operationen = Menge ist mindestens genauso ausdrucksmächtig wie Ω
Streng relationale Vollständigkeit einer anderen Menge von Operationen = Zu jedem Operator aus Ω gibt es einen Operator in der anderen Menge
Ω ist unabhängig: Kein Operator kann weggelassen werden ohne Vollständigkeit zu verlieren
Zuletzt geändertvor einem Jahr