41
Relationale Algebra

Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Relationale Algebra

Page 2: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Relationale Abfragesprachen/Relational Query Languages (QL)• Abfragesprachen: Daten aus einer Datenbank zu manipulieren und

abzufragen (retrieve information)

• Das relationalle Modell hat einfache und leistungsfähige Abfragesprachen (man kann viel optimieren)

• Abfragesprache ≠ Programmiersprache

• Abfragesprachen:• Nicht für komplexe Operationen

• Erlaubt einfacher und effizienter Zugriff zu großen Datensätze

Page 3: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Formale Relationale Abfragesprachen (Query Languages)• Zwei mathematische Abfragesprachen stellen die theoretische

Grundlage der „reelen“ Abfragesprachen (wie z.B. SQL) in relationalen Datenbanken:• Relationale Algebra:

• kann Ausführungspläne beschreiben (operational)

• Relationale Kalküle:• Der Benutzer kann beschreiben was er haben will und nicht wie es berechnet werden

soll (non-operational, deklarativ)

• Domänenkalkül, Tupelkalkül

Page 4: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Relationale Algebra

• Fünf Basisoperationen:• Projektion ( π ) : wählt bestimmte Spalten aus der Relation und gibt diese als neue

Relation aus („löscht“ die anderen Spalten)• Selektion ( 𝜎 ) : wählt bestimme Zeilen aus der Relation und gibt diese als neue

Relation aus („löscht“ die anderen Zeilen)• Kartesisches Produkt ( × ) : erlaubt die Verknüpfung zweier Relationen• Differenz ( - ) : gibt die Tupeln aus der ersten Relation, die sich nicht in der zweiten

Reltion befinden, aus• Vereinigung ( ∪ ) : gibt die Tupeln aus der ersten und zweiten Relation aus

• Zusätzliche Opratoren: Umbenennen, Durchschnitt, Division, Verbund

• Die Operationen können zusammengesetzt sein (jede Operation hat eine Relation als Ergebnis)

Page 5: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Projektion

• Definition. Sei L = (A1, …, An) eine Teilmenge von Attributen(Spalten) aus der Relation R. Die Projektion der Attribute L einer Relation R istdefiniert als die Relation R’(A1, …, An) mit:

R’ = πL(R) = { t’ | t ∈ R ˄ t’.A1 = t.A1 ˄ … ˄ t’.An = t.An}

• Oder, anders gesagt: • die Projektion aus einem Tupel t ∈ R ist definiert als das Tupel

πL(t) = (t(A1), …, t(An))

• Die Projektion der Relation R ist definiert als die Relation

πL(R) = {πL(t) | t ∈ R }

Page 6: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Projektion - Beispiel

Page 7: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Projektion in SQL

• Ist πName,Ort(Studenten) äquivalent mit

SELECT Name, Ort FROM Studenten ?

• NEIN! • Relationale Algebra funktioniert mit Mengen ⇒ keine Duplikate(identische

Tupeln)

• Das ist in SQL nicht standardmäßig so!

• Äquivalent:SELECT DISTINCT Name, Ort FROM Studenten

Page 8: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Selektion / Restriktion

• Definition. Die Selektion einer Relation R ist definiert als die Menge aller Tupel aus R, die der Selektionsbedingung P genügen:

𝜎P(R) = { t | t ∈ R ˄ P(t) }

• Die Bedingung P setzt sich zusammen aus:• Operanden: Konstanten oder Name eines Attributs

• Vergleichsoperatoren: =, ≠, <, ≤, >, ≥

• Boolsche Operatoren: ˅, ˄, ¬

Page 9: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Selektion - Beispiel

Page 10: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Selektion in SQL

𝜎Name = `Schmidt`(Studenten)

SELECT DISTINCT * FROM Studenten

WHERE Name = `Schmidt`

Page 11: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Aufpassen

• Nicht verwechseln:

SELECT DISTINCT Attr1, Attr2

FROM Relation

WHERE c

Projektion - πAttr1, Attr2(Relation)

Selektion - σc(Relation)

Page 12: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Zusammensetzung von Projektion und SelektionπName, Vorname, Ort(σName = `Schmidt`(Studenten))

SELECT DISTINCT Name, Vorname, Ort

FROM Studenten

WHERE Name = `Schmidt`

σName = `Schmidt`(πName, Vorname, Ort(Studenten))

• Welches ist das äquivalente SQL Query?• Kann man immer die Reihenfolge der Projektion und Selektion

wechseln?• Nein → die Selektion kann nach der Projektion ausgeführt werden, nur

dann wenn die Selektionsbedingung nur Attribute aus der Projektion enthält

Page 13: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Vereinigung, Durchschnitt, Differenz

• Vereinigung: R1 ∪ R2 = { t | t ∈ R1 ˅ t ∈ R2 }

• Durchschnitt: R1 ∩ R2 = { t | t ∈ R1 ˄ t ∈ R2 }

• Differenz: R1 − R2 = { t | t ∈ R1 ˄ t ∉ R2 }

• R1 und R2 müssen für alle diese Operationen gleiches Relationenschema besitzen

• Wertebereiche müssen kompatibel oder vereinigungsverträglich sein

• Bem. Es gilt R1 ∩ R2 = R1 − (R1 − R2)

Page 14: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Vereinigung, Durchschnitt, Differenz in SQL

R1 ∪ R2

SELECT DISTINCT *

FROM R1

UNION

SELECT DISTINCT *

FROM R2

R1 ∩ R2

SELECT DISTINCT *

FROM R1

INTERSECT

SELECT DISTINCT *

FROM R2

R1 − R2

SELECT DISTINCT *

FROM R1

EXCEPT

SELECT DISTINCT *

FROM R2

Page 15: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Kartesisches Produkt

• Das kartesische Produkt zweier Relationen R1(A1, …, An) und

R2(B1, …, Bm) ist definiert als Relation:

R1 × R2 = { t | t1∈ R1 ᴧ t2 ∈ R2

ᴧ t.A1 = t1.A1 ᴧ … ᴧ t.An = t1.An

ᴧ t.B1 = t2.B1 ᴧ … ᴧ t.Bm = t2.Bm}

SQL:

SELECT DISTINCT *

FROM R1, R2

Page 16: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Kartesisches Produkt - Beispiel

Page 17: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

θ-Join (Theta-Verbund)

• Auswahl bestimmter Tupel aus dem kartesischen Produkt R1 × R2

• Basis der Verknüpfung der Relationen: eine Bedingung cR1 ⋈c R2 = σc (R1 × R2)

Bsp. Studenten ⋈Studenten.MatrikelNr = Enrolled.MatrikelNr Enrolled

SQL:

SELECT DISTINCT *

FROM Studenten, Enrolled

WHERE Studenten.MatrikelNr

= Enrolled.MatrikelNr

SELECT DISTINCT *

FROM Studenten

INNER JOIN Enrolled ON

Studenten.MatrikelNr =

Enrolled.MatrikelNr

oder

Page 18: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Equi-Join

• Einen θ-Join der Form R1 ⋈R1.Ai = R2.BjR2 nennt man Equi-Join

• Notation für Equi-Join um zu unterscheiden: R1 ⋈E(R1.Ai = R2.Bj)R2

• Die Bedingung muss der Form einer Gleichwertigkeit zwischen Attribute der ersten und der zweiten Relation sein

• Das Ergebnis enthält nur einen der Attribute, da es redundant ist beide zu behalten (die Attribute sind gleich)

Page 19: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Equi-Join Beispiel

KursId Titel

Alg1 Algorithmen1

DB1 Datenbanken1

DB2 Datenbanken2

MatrNr KursId Note

1234 Alg1 7

1235 Alg1 8

1234 DB1 9

1234 DB2 7

1236 DB1 10

KursId Titel MatrNr Note

Alg1 Algorithmen1 1234 7

Alg1 Algorithmen1 1235 8

DB1 Datenbanken1 1234 9

DB2 Datenbanken2 1234 7

DB1 Datenbanken1 1236 10

Kurse Enrolled Kurse ⋈E(Kurse.KursId=Enrolled.KursId) Enrolled

Page 20: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Natürlicher Verbund• Verknüpft zwei Relationen indem alle gleichbenannten Attribute der beiden

Relationen betrachtet werden und nur einen der gleichen Attribute kommt in das Ergebnis vor (ohne Redundanzen)

• Qualifizierende Tupel müssen für diese gleichbenannten Attribute gleiche Werte aufweisen, um in das Ergebnis einzugehen

• Gibt es kein gemeinsames Attribut so ist das Ergebnis das kartesische Produkt

KursId Titel

Alg1 Algorithmen1

DB1 Datenbanken1

DB2 Datenbanken2

MatrNr KursId Note

1234 Alg1 7

1235 Alg1 8

1234 DB1 9

1234 DB2 7

1236 DB1 10

KursId Titel MatrNr Note

Alg1 Algorithmen1 1234 7

Alg1 Algorithmen1 1235 8

DB1 Datenbanken1 1234 9

DB2 Datenbanken2 1234 7

DB1 Datenbanken1 1236 10

Kurse Enrolled Kurse ⋈ Enrolled

Page 21: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Division

• Die Relation R1 enthält Attribute X und Y und R2 enthält den Attribut Y.

R1÷ R2 = { <X> | ∀ <Y> ∈ R2 : ∃ <X,Y> ∈ R1 }

• R1÷ R2 (oder R1/ R2) enthält alle X Tupeln so dass für jedes Y Tupel in R2, ein XY Tupel in R1 existiert

• X und Y können auch Mengen von Attributen sein

Page 22: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Division

• Nicht als primitiver Operator, aber nützlich

• Die Division wird dann eingesetzt, wenn die Frage „für alle“ enthält

• Beispielfragestellungen für eine Division:• Welche Personen haben eine Kundenkarte von allen Filialen?

• Welche Mitarbeiter arbeiten an allen Projekten?

• Welche Studenten hören alle Vorlesungen von Prof. X?

Page 23: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Division

• Darstellung des Quotienten durch die Basisoperatoren:• Idee: Berechne alle X Werte, die von irgendeinem Y Wert aus R2 disqualifiziert

wird

• X wird disqualifiziert wenn für einen Y der Tupel XY nicht in R1 enthalten ist:

πX( ( πX(R1) × R2) – R1 )

• Der Quotient R1÷ R2 enthält dann alle X Werte aus R1, die nicht disqualifiziertsind:

R1÷ R2 = πX(R1) – πX( ( πX(R1) × R2) – R1 )

Page 24: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Division - Beispiel

A B

4 3

4 1

4 7

8 3

8 1

8 7

A

4

8

B

3

1

7

R1 R2 R1 ÷ R2

Page 25: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Umbenennen von Relationen und Attributen

• Umbenennung unterscheidet sich von den anderen Operatorendadurch, dass keine Berechnung vorgenommen wird

• Operator ist aber notwendig, wenn eine Relation mehrfach in einerAnfrage vorkommt (z.B. Join)

• ρS(R) : Relation R wird in Relation S umbenannt

• ρB ← A (R) : Attribut A der Relation R wird umbenannt in B

• Das Relationenschema wird nicht geändert (nur eventuell Namen von Attributen)

Page 26: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Zuweisungsoperation

• Die Zuweisungsoperation ← ist eine Methode komplexe Abfragen zurepresentieren

• Eine Abfrage kann in einer temporären Variable gespeichert werden

Temp ← πX(R1×R2)

• Dann kann man diese Variable in weiteren Abfragen benutzen

Erg ← Temp − R3

Page 27: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Komplexe Abfragen

R1 ∪ (R2 ∩ πb (R3 × ρ𝑅5(ρ b←a(R4))))

R1 ∩

R2 πb

×

R3 ρ𝑅5

ρ b←a(R4)Ausführungsplan

Page 28: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

KursId Titel ECTS

Alg1 Algorithmen1 6

DB1 Datenbanken1 6

DB2 Datenbanken2 5

MatrNr KursId Note

1234 Alg1 7

1235 Alg1 8

1234 DB1 9

1234 DB2 7

1236 DB1 10

Kurse Enrolled

MatrNr Name Vorname

1234 Schmidt Hans

1235 Meisel Amelie

1236 Krause Julia

1237 Rasch Lara

1238 Schmidt Christian

Studenten

Page 29: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Geben Sie die Namen der Studenten aus, die für den Kurs `BD1` angemeldet sind• Lsg1.

πName((σ KursId=`BD1`(Enrolled)) ⋈ Studenten)

• Lsg2.

ρTemp1(σKursId=`BD1`(Enrolled))

ρTemp2(Temp1 ⋈ Studenten)

πName(Temp2)

• Lsg3.

πName(σKursId=`BD1`(Enrolled ⋈ Studenten))

Page 30: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Geben Sie die Namen der Studenten aus, die für einen Kurs mit 5 ECTS angemeldet sind• Lsg1.

πName((σ ECTS=5(Kurse)) ⋈ Enrolled ⋈ Studenten)

• Lsg2.

πName(πMatrNr(πKursId(σ ECTS=5(Kurse)) ⋈ Enrolled) ⋈ Studenten)

• Lsg2 ist effizienter. Ein Abfrageoptimierer würde, gegeben die ersteAbfrage, die zweite Abfrage finden.

Page 31: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Geben Sie die Namen der Studenten aus, die für einen Kurs mit 5 oder 6 ECTS angemeldet sind

• Wir können erstmal die Kurse mit 5 oder 6 ECTS ausgeben und dann die Studenten die in einem dieser Kurse angemeldet sind

ρTempKurse(σ ECTS=5 ˅ ECTS=6(Kurse))

πName(TempKurse ⋈ Enrolled ⋈ Studenten)

• Was passiert wenn wir „oder“ mit „und“ ersetzen

Page 32: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Geben Sie die Namen der Studenten aus, die für einen Kurs mit 5 ECTS und einen Kurs mit 6 ECTS angemeldet sind• Die vorige Idee funktionniert nicht mehr.

• Wir müssen die Studenten finden, die in einem 5 ECTS Kurs angemeldet sind und die die in einem 6 ECTS Kurs angemeldet sind und den Durchschnitt berechnen

ρTemp5(πMatrNr(σ ECTS=5 (Kurse) ⋈ Enrolled))

ρTemp6(πMatrNr(σ ECTS=6 (Kurse) ⋈ Enrolled))

πName((Temp5 ∩ Temp6) ⋈ Studenten)

Page 33: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Geben Sie die Namen der Studenten aus, die für alle Kurse angemeldet sind• „Für alle“ → wir benutzen Division

ρTempMatrNr(πMatrNr,KursId(Enrolled) / πKursId(Kurse))

πName( TempMatrNr ⋈ Studenten)

Page 34: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Erweiterte Relationale Algebra Operatoren

• Erweiterte Projektion

• Aggregat Funktionen

• Outer Join

• Datenbank Änderungen

Page 35: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Erweiterte Projektion

• Erweitert die Projektion, indem arithmetische Funktionen als Projektionbedingung benutzt werden können

πF1,…,Fn(R)

• F1, … , Fn sind arithmetische Funktionen, die Konstante oderAttribute der Relation R enthalten

Page 36: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Aggregat Funktionen

• Haben mehrere Werte als Input und ein Wert als Output:• avg: Mittelwert

• min: Minimum der Werte

• max: Maximum der Werte

• sum: Summe der Werte

• count: Anzahl der Werte

Page 37: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Aggregat Funktionen in Relationale Algebra

G1,G2,…,Gn

ϑF1(A1), F2(A2),…, Fn(An)

(R)

• G1,G2,…,Gn – eine Liste von Attributen worauf wir gruppieren wollen

• Fi – Aggregatfunktion

• Ai – Name eines Attributes

Page 38: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Aggregat Funktionen - Beispiel

Relation R:

ϑsum(C)(R) ⇒ 12

A B C

a 2 5

b 3 3

a 4 4

Page 39: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Outer Join• Erweiterung von Join-Operationen:

• Left Outer Join ⟕ - alle Tupel aus der linken Relation, die keinen Join-Partner in der rechten Relation haben, werden trotzdem ausgegeben

• Right Outer Join ⟖ - alle Tupel aus der rechten Relation, die keinen Join-Partner in der linken Relation haben, werden trotzdem ausgegeben

• Full Outer Join ⟗ - alle Tupel sowohl der linken als auch der rechten Reltion, die keinen Join-Partner haben, werden trotzdem ausgegeben

• Null-Werte werden benutzt:• Tupeln aus der Relation R, die keinen Join-Partner in der Relation S hatten

enthalten Null-Werte für die entsprechenden Spalten der Relation S

• Ein Null-Wert heißt unbekannt oder inexistent

• Alle Vergleiche mit einem Null-Wert werden in der Regel als FALSE bewertet

Page 40: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Outer Join - SQL

Page 41: Relationale Algebra - Babeș-Bolyai Universitydianat/BD/curs/V6.pdf · Relationale Algebra •Fünf Basisoperationen: •Projektion ( π) : wählt bestimmte Spalten aus der Relation

Datenbank Änderungen

• Der Inhalt der Datenbank kann durch folgenden Operationengeändert werden:• Löschen: R ← R − E

• Einfügen: R ← R ∪ E

• Aktualisierung/Updating: R ← πF1, …, Fn(R)