Relationale Algebra Flashcards
Relationale Algebra Bedeutung
-formale Sprache für Formulierung Anfragen über relationales Schema
-intern im DBMS verwendet
-beschreibt Rechenweg für Ergebnisse von DB-Abfragen
Projektion
-wählt bestimmte Spalten einer Relation(Tabelle) und gibt diese als neue Relation aus
-doppelte Tupel entfernt (standardgemäß nicht in SQL->DISTINCT nutzen)
Selektion
-bestimmte Zeilen aus Relation auswählen und als neue Relation ausgeben
Selektionsbedingungen P:
-Operanden: Konstanten oder Name eines Attributs
-Vergleichsoperatoren: = , ≠ , < , ≤ , > , ≥
-Boolesche Operatoren: ∧,∨, ¬
SQL: SELECT mit WHERE
weitere Basisoperation
-Kartesisches Produkt: R x S
-Vereinigung: R ∪ S
-Differenz: R − S
- Umbenennen von Relationen und Attributen: 𝜌𝑆(𝑅) -> R in S umbenannt
Durchschnitt und Division
Durchschnitt: R ∩ S= R − (R − S)
Division:
𝑅 ÷ S≔ 𝜋𝐴−𝐵 𝑅 − 𝜋𝐴−𝐵( 𝜋𝐴−𝐵 𝑅 × 𝑆 − 𝑅)
Inner Join
-verknüpft Zeilen aus 2 Tabellen, wenn die Werte in beiden Tabellen übereinstimmen
-entspricht Theta-Join
Outer-Join
-verknüpft Zeilen auch wenn Werte nur in einer Tabelle vorkommen
Left Outer-Join:
-alle Tupel der linken R mit ausgegeben
-keine passenden Join-Partner für diese Tupel aus S: NULL
Right Outer-Join: wie bei Left-Outer-Join nur anders herum
Full Outer-Join:
-Alle Zeilen aus beiden Relationen ausgegeben, NULL wenn kein Partnerwert
-nicht in allen DBS verfügbar
Bsp.:
SELECT *
FROM Studenten RIGHT JOIN Studiengaenge
ON Studenten.SgNr = Studiengaenge.SgNr
Cross-Join/ Kartesisches Produkt
-“Multiplikation”- jedes Tupel von 1. Relation mit jedem Tupel der 2. Relation kombiniert
-nachträgliche Selektion erforderlich , um sinnvolle Kombinationen heraus zu filtern
Natural Join
-verknüpft 2 Relationen basierend auf gleichnamigen Attributen
-keine Attributangabe nötig
-keine gemeinsamen Attribute: kartesisches Produkt
Theta-Join
-Auswahl passender Tupel aus dem kartesischen Produkt R×S basierend auf einer Bedingung θ (z.B.=,<,≤,>,≥)
-Equi-Join: Theta-Join bei dem Bedingung nur =
Verlustfreiheit Joins
-Join zwischen R und S verlustfrei, wenn alle Datensätze aus R und S in Ergebnisrelation vorhanden
-Projektion kann aus Join-Ergebnis wieder R und S erzeugen
-inner joins in der Regel nicht verlustfrei
Semi-Join
-alle Tupel aus R die Join-Partner aus S haben
-Tupel aus L unverändert, wenn Join-Bedingung erfüllt