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.

  • ๐Ÿ” Beginnen wir mit unรคren Operatoren: SELECT, PROJECT und RENAME filtern Zeilen, wรคhlen Spalten aus und benennen Attribute einer einzelnen Relation um.
  • ๐Ÿ“š Mengenlehre anwenden: UNION, INTERSECTION, DIFFERENCE und CARTESIAN PRODUCT kombinieren unionskompatible Relationen zu neuen Ergebnissen.
  • ๐Ÿ”— SchlieรŸe dich bewusst an: Theta-, Equi- und Natural-Joins verarbeiten innere รœbereinstimmungen, wรคhrend Left-, Right- und Full-Outer-Joins nicht รผbereinstimmende Tupel mit Nullwerten beibehalten.
  • ๐Ÿ“ Uhrenkompatibilitรคt: Vor jeder Mengen- oder Vereinigungsoperation muss unbedingt geprรผft werden, ob Stelligkeit, Attributnamen und Domรคnen รผbereinstimmen.
  • ๐Ÿค– KI zur รœbersetzung verwenden: KI-Assistenten wandeln algebraische Ausdrรผcke in SQL um, erklรคren die Operatorprioritรคt und kennzeichnen fehlende Join-Bedingungen in verstรคndlichem Englisch.

Relationale Algebra im DBMS

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 Google Aktives
2 Amazon Aktives
3 Apple Inaktiv
4 Alibaba Aktives

Projektion auf Kundennamen und Status:

ฯ€ CustomerName, Status (Customers)
Kundenname Status
Google 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

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.

Linke รคuรŸere Verbindung

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.

Rechte รคuรŸere Verknรผpfung

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.

FAQs

Relationale Algebra ist eine prozedurale mathematische Sprache zur Definition von Operationen auf Relationen. SQL ist eine deklarative Abfragesprache, die von Datenbank-Engines intern in algebraische Ausfรผhrungsplรคne รผbersetzt wird.

Zwei Relationen sind vereinigungskompatibel, wenn sie die gleiche Anzahl an Attributen besitzen und jedes zugehรถrige Attribut denselben Definitionsbereich hat. Vereinigung, Schnittmenge und Differenz erfordern alle Vereinigungskompatibilitรคt.

Das kartesische Produkt multipliziert jede Zeile von A mit jeder Zeile von B und erzeugt so riesige Zwischenrelationen mit wenig Aussagekraft. Normalerweise folgt darauf ein SELECT-Prรคdikat, um einen sinnvollen Join zu ermรถglichen.

Nein. Reine relationale Algebra behandelt Relationen als Mengen, daher werden Duplikate nach jeder Operation automatisch entfernt. SQL verhรคlt sich anders โ€“ es arbeitet mit Multimengen und entfernt Duplikate nur bei Verwendung von DISTINCT.

Der DIVISION-Operator beantwortet โ€žfรผr alleโ€œ-Anfragen โ€“ beispielsweise die Suche nach Kunden, die jedes Produkt in einem Katalog bestellt haben. Er gibt die Tupel einer Relation zurรผck, die jedem Tupel einer anderen Relation entsprechen.

Verwenden Sie einen Outer Join, wenn nicht รผbereinstimmende Zeilen noch aussagekrรคftig sind โ€“ beispielsweise um alle Kunden zusammen mit optionalen Bestelldaten aufzulisten. Inner Joins verwerfen diese nicht รผbereinstimmenden Zeilen; Outer Joins behalten sie mit NULL-Werten als Fรผllwerte bei.

KI-Assistenten รผbersetzen algebraische Ausdrรผcke in SQL und zurรผck, erklรคren die Operatorprioritรคt Schritt fรผr Schritt und kennzeichnen fehlende Join-Prรคdikate, die eine Abfrage andernfalls in ein langsames kartesisches Produkt verwandeln wรผrden.

Ja. KI-Tools wandeln einfachsprachliche Fragen wie โ€žKunden aus Indien, die jedes Produkt gekauft habenโ€œ in Algebrabรคume mit SELECT-, PROJECT- und DIVISION-Operatoren um und konvertieren diese dann in ausfรผhrbares SQL.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: