Relationale Algebra in DBMS mit Beispielen
โก Intelligente Zusammenfassung
Die relationale Algebra in Datenbankmanagementsystemen (DBMS) ist eine prozedurale Abfragesprache, die Relationen als Eingabe nimmt und neue Relationen als Ausgabe erzeugt. Sie gruppiert Operatoren in unรคre, Mengen- und binรคre Kategorien und bildet damit die theoretische Grundlage, die SQL-Engines in ausfรผhrbare Abfrageplรคne รผbersetzen.

Was ist relationale Algebra?
Relationale Algebra SQL ist eine prozedurale Abfragesprache, die Instanzen von Relationen als Eingabe akzeptiert und neue Instanzen von Relationen als Ausgabe zurรผckgibt. Sie wendet einen festen Satz von Operatoren rekursiv auf eine oder mehrere Relationen an, wobei das Ergebnis jedes Operators selbst eine Relation ist, die in die nรคchste Operation eingespeist werden kann. SQL-Engines nutzen diese Algebra zur Planung und Ausfรผhrung von Abfragen.
Grundlegende relationale Algebra Operations
Die Operatoren der relationalen Algebra lassen sich in drei Gruppen einteilen.
Unรคr relational Operations
- AUSWรHLEN (ฯ)
- PROJEKT (ฯ)
- UMBENENNEN (ฯ)
OperaKonzepte aus der Mengenlehre
- UNION (โช)
- SCHNITTSTELLE (โฉ)
- DIFFERENZ (โ)
- KARTESISCHES PRODUKT (ร)
Binรคr relational Operations
- JOIN
- DIVISION
In den folgenden Abschnitten werden die einzelnen Operatoren anhand von Beispielen erlรคutert.
AUSWรHLEN (ฯ)
Das SELECT Die Operation wรคhlt eine Teilmenge von Tupeln aus, die ein gegebenes Prรคdikat erfรผllen. Das Sigma-Symbol ฯ bezeichnet es:
ฯp(r)
woher ฯ ist der Betreiber, p ist die aussagenlogische Bedingung, und r Die Tabelle ist eine Relation. SELECT erhรคlt das Schema und verwirft Zeilen, die die Bedingung nicht erfรผllen.
Beispiel 1
ฯ topic = "Database" (Tutorials)
Wรคhlt Tupel aus aus Tutorials wobei das Thema โDatenbankโ entspricht.
Beispiel 2
ฯ topic = "Database" AND author = "guru99" (Tutorials)
Wรคhlt Tupel aus aus Tutorials wobei das Thema โDatenbankโ lautet und der Autor guru99 ist.
Beispiel 3
ฯ sales > 50000 (Customers)
Wรคhlt Tupel aus aus Kunden deren Umsatzwert รผber 50,000 liegt.
Projektion (ฯ)
Das Projektion Der Operator entfernt alle Attribute aus der Eingaberelation auรer den aufgefรผhrten und erzeugt so eine vertikale Teilmenge. Die Projektion eliminiert auรerdem doppelte Zeilen, die durch das Entfernen von Zeilen entstehen.ping Attribute. Das Pi-Symbol ฯ bezeichnet es.
Ejemplo: Betrachten Sie die folgende Tabelle.
| Kundennummer | Kundenname | Status |
|---|---|---|
| 1 | Aktives | |
| 2 | Amazon | Aktives |
| 3 | Apple | Inaktiv |
| 4 | Alibaba | Aktives |
Projektion auf Kundennamen und Status:
ฯ CustomerName, Status (Customers)
| Kundenname | Status |
|---|---|
| Aktives | |
| Amazon | Aktives |
| Apple | Inaktiv |
| Alibaba | Aktives |
Umbenennen (ฯ)
Das umbenennen Ein Operator ist eine unรคre Operation, die einem Attribut (oder einer gesamten Relation) einen neuen Namen gibt. Zum Beispiel: ฯ(a/b) R Attribut umbenennen b Beziehung R zu aDie Funktion โUmbenennenโ ist besonders nรผtzlich, wenn Sie eine Selbstverknรผpfung durchfรผhren oder zwei Relationen verknรผpfen mรผssen, die gemeinsame Attributnamen haben.
Union Operation (โช)
Das UNION Operator, bezeichnet durch โชGibt jedes Tupel zurรผck, das entweder in Relation A oder in Relation B vorkommt, wobei Duplikate automatisch entfernt werden.
Result โ A โช B
Damit eine Vereinigung gรผltig ist:
- A und B mรผssen die gleiche Anzahl an Attributen (gleiche Stelligkeit) haben.
- Die entsprechenden Attributdomรคnen mรผssen kompatibel sein.
- Doppelte Datensรคtze werden automatisch entfernt.
Beispiel. Betrachten Sie diese beiden Tabellen:
| Tabelle A | Tabelle B | |||
|---|---|---|---|---|
| Spalte 1 | Spalte 2 | Spalte 1 | Spalte 2 | |
| 1 | 1 | 1 | 1 | |
| 1 | 2 | 1 | 3 | |
A โช B gibt:
| Spalte 1 | Spalte 2 |
|---|---|
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
Mengendifferenz (โ)
Das Minuszeichen bedeutet Satzdifferenz. Das Ergebnis von A โ B ist eine Relation, die alle Tupel enthรคlt, die in A, aber nicht in B enthalten sind.
- A und B mรผssen verbรผndungskompatibel sein.
- Attributnamen und Domรคnen mรผssen รผbereinstimmen.
Beispiel: A โ B
| Spalte 1 | Spalte 2 |
|---|---|
| 1 | 2 |
Schnittpunkt (โฉ)
Das รberschneidung Operator, bezeichnet durch โฉ, definiert eine Relation, die jedes Tupel enthรคlt, das sowohl in A als auch in B vorkommt. A und B mรผssen vereinigungskompatibel sein.
Visuelle Definition einer Kreuzung.
Beispiel: A โฉ B
| Spalte 1 | Spalte 2 |
|---|---|
| 1 | 1 |
Kartesisches Produkt (ร) in DBMS
Das kartesisches Produkt Die Funktion kombiniert jedes Tupel einer Relation mit jedem Tupel einer anderen und fรผhrt deren Spalten zusammen. Alleinstehend ist das Ergebnis selten nรผtzlich, aber in Verbindung mit einem SELECT-Prรคdikat bildet sie die Grundlage fรผr JOIN. Sie wird auch Kreuzprodukt oder Kreuzverknรผpfung genannt.
Beispiel: ฯ Spalte 2 = '1' (A ร B)
Der Ausdruck gibt jede Zeile zurรผck A ร B deren column 2 Wert ist 1.
| Spalte 1 | Spalte 2 |
|---|---|
| 1 | 1 |
| 1 | 1 |
Registrieren Operations
A join ist ein kartesisches Produkt, gefolgt von einem Auswahlprรคdikat. Joins werden durch das Symbol gekennzeichnet. โ Symbol und ermรถglicht es Ihnen, verwandte Tupel aus verschiedenen Relationen auf sinnvolle Weise zu kombinieren.
Join-Typen:
- Innere Verbindungen: Theta join, Equi join, Natural join.
- รuรere Verbindungen: Links-, Rechts- und Full Outer Joins.
Innerer Beitritt
In einem innere VerbindungEs werden nur Tupel berรผcksichtigt, die die รbereinstimmungskriterien erfรผllen; die รผbrigen werden verworfen.
Theta Join
Die allgemeine Form von JOIN ist die Theta macht mit, bezeichnet mit ฮธ. Der Theta-Join kann beliebige Vergleichsbedingungen in seinen Auswahlkriterien verwenden.
A โฮธ B
Beispielsweise:
A โ A.column 2 > B.column 2 (B)
| Spalte 1 | Spalte 2 |
|---|---|
| 1 | 2 |
Gleich beitreten
Wenn ein Theta-Join nur Gleichheitsbedingungen verwendet, wird er zu einem Equi join.
A โ A.column 2 = B.column 2 (B)
| Spalte 1 | Spalte 2 |
|---|---|
| 1 | 1 |
Equi-Join ist einer der am hรคufigsten verwendeten Join-Stile, und der RDBMS Der Abfrageoptimierer investiert typischerweise erhebliche Anstrengungen in dessen Effizienz.
Natรผrliche Verbindung (โ)
A Natรผrliche Verbindung Die Relationen benรถtigen ein gemeinsames Attribut (eine gemeinsame Spalte). Dieses gemeinsame Attribut muss denselben Namen und dieselbe Domรคne haben. Das Ergebnis enthรคlt eine Kopie der รผbereinstimmenden Spalte.
Betrachten Sie diese beiden Tabellen.
| Tabelle C. | |
|---|---|
| Num | Quadratisch |
| 2 | 4 |
| 3 | 9 |
| Tabelle D. | |
|---|---|
| Num | Wรผrfel |
| 2 | 8 |
| 3 | 27 |
C โ D produziert:
| Num | Quadratisch | Wรผrfel |
|---|---|---|
| 2 | 4 | 8 |
| 3 | 9 | 27 |
รuรere Verbindung
An รคuรere Verbindung speichert Tupel, die die รbereinstimmungskriterien erfรผllen. , Tupel, die dies nicht tun, fรผllen fehlende Spalten mit NULL auf.
Linker รคuรerer Join (A โ B)
Der linke รคuรere Join behรคlt alle Tupel der linken Relation bei. Wenn eine Zeile in A keine entsprechende Zeile in B hat, werden die von B beigesteuerten Attribute mit NULL aufgefรผllt.
Betrachten Sie die folgenden Tabellen:
| Tabelle A | |
|---|---|
| Num | Quadratisch |
| 2 | 4 |
| 3 | 9 |
| 4 | 16 |
| Tabelle B | |
|---|---|
| Num | Wรผrfel |
| 2 | 8 |
| 3 | 18 |
| 5 | 75 |
A โ B gibt:
| Num | Quadratisch | Wรผrfel |
|---|---|---|
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | NULL |
Right Outer Join (A โ B)
Der rechte รคuรere Join sorgt dafรผr, dass jedes Tupel in der richtigen Relation verbleibt. Wenn eine Zeile in B keine entsprechende Zeile in A hat, werden die von A beigesteuerten Spalten mit NULL aufgefรผllt.
A โ B gibt:
| Num | Wรผrfel | Quadratisch |
|---|---|---|
| 2 | 8 | 4 |
| 3 | 18 | 9 |
| 5 | 75 | NULL |
Vollstรคndiger รคuรerer Join (A โ B)
Der vollstรคndige รคuรere Join behรคlt alle Tupel beider Relationen bei, unabhรคngig davon, ob die Join-Bedingung erfรผllt war. Fehlende Werte auf beiden Seiten werden zu NULL.
A โ B gibt:
| Num | Quadratisch | Wรผrfel |
|---|---|---|
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | NULL |
| 5 | NULL | 75 |
Operator Referenzรผbersicht
Anhand dieser Referenztabelle kรถnnen Sie sich auf einen Blick merken, was jeder Operator bewirkt.
| Operation (Symbol) | Zweck |
|---|---|
| AUSWรHLEN (ฯ) | Wรคhlt eine Teilmenge von Tupeln aus, die ein gegebenes Prรคdikat erfรผllen. |
| PROJEKT (ฯ) | Es werden nur die aufgefรผhrten Attribute beibehalten und doppelte Zeilen entfernt. |
| UNION (โช) | Gibt alle Tupel zurรผck, die entweder in A oder in B vorkommen, ohne Duplikate. |
| SET DIFFERENZ (โ) | Gibt Tupel aus A zurรผck, die nicht in B enthalten sind. |
| SCHNITTSTELLE (โฉ) | Gibt Tupel zurรผck, die sowohl in A als auch in B vorkommen. |
| KARTESISCHES PRODUKT (ร) | Kombiniert jedes Tupel von A mit jedem Tupel von B. |
| INNER JOIN | Es werden nur Tupel beibehalten, die der Join-Bedingung entsprechen. |
| THETA JOIN (ฮธ) | Join in allgemeiner Form mit beliebigem Vergleichsprรคdikat. |
| EQUI JOIN | Theta-Join, der nur Gleichheitsvergleiche verwendet. |
| NATรRLICHE VERBINDUNG (โ) | Verknรผpft Beziehungen รผber Attribute, die denselben Namen und dieselbe Domรคne haben. |
| LEFT OUTER JOIN (โ) | Behรคlt alle Tupel der linken Relation bei und fรผllt die rechte mit NULL auf. |
| RIGHT OUTER JOIN (โ) | Behรคlt alle Tupel der rechten Relation bei und fรผllt die linke mit NULL auf. |
| VOLLSTรNDIGER รUSSERER VERBINDUNGSSCHLUSS (โ) | Behรคlt jedes Tupel aus beiden Relationen bei und fรผllt fehlende Werte mit NULL auf. |



