Relationale Algebra ist ein formelle Sprache, oder besser gesagt eine Reihe von Transformationsregeln, die es ermöglichen, relationale Datenbank zu befragen und bildet die theoretische Grundlage für die relationale Sprache SQL, und wurde erstmals 1970 formuliert von Edgar F. Codd (siehe Literatur) und revolutioniert damit effektiv die Datenbankwelt.
N.B.: Es gibt eine Beziehung, aber es gibt auch Unterschiede zwischen relationale Algebra und Beziehungsalgebra.
Vorwort
Wie Infinitesimalrechnung oder der Mathematiker Algebra ist die relationale Algebra basierend auf atomaren Operationen (Betreiber) und auf Entitäten (Operanden).Nicht so wie Infinitesimalrechnung oder Arithmetik Algebra Die relationale Algebra liefert immer ein Endergebnis in endlich vielen Schritten.
In der relationalen Algebra sind die Entitäten die Beziehungen.Relationale Algebra basiert auf dem Mengenlehre: alle Beziehungen sind in der Tat Kollektionen, ebenso die Ergebnisse einer relationalen Operation.
Terminologie
Die erste Grundzutat einer Beziehung ist a Attribut oder charakteristisch; dies ist nichts anderes als eine beliebige (einzelne) Sammlung mit einem Namen (und damit einer Bedeutung) Typische Beispiele sind: Telefonnummer, Farbe, Alter, Nummer, ... Für jedes Attribut muss es sein Domain definiert, also die Liste oder Beschreibung aller möglichen Werte, die von diesem Attribut angenommen werden können.
Die zweite Grundzutat ist a Tupel; dies ist eine geordnete Anzahl von n Attributwerten.
EIN Beziehung ist eine Menge von Tupeln gleicher Länge und mit gleichen Attributen, mit anderen Worten, eine Relation ist a Tabelle, und dies ist nichts anderes als eine Teilmenge der kartesisches Produkt von n Attributen.
Die Zahl n, d. h. die Anzahl der Mengen in diesem kartesischen Produkt oder die Anzahl der Elemente in jedem Tupel, wird zu Auftrag die Beziehung genannt. Dies ist also die Anzahl der Spalten der Tabelle oder die Anzahl der Attribute in einem Tupel.Jede Zeile der Tabelle ist also ein n-Tupel der Relation. Ein solches n-Tupel heißt auch a Individuell erwähnt.
Da Elemente einer Collection nicht sortiert sind, haben auch die Zeilen der Tabelle keine vorgegebene Reihenfolge, außerdem können zwei Zeilen nicht gleich sein, da eine Collection nicht zwei identische Elemente enthalten kann. Nach der Projektion (siehe unten) kann dies jedoch erlaubt sein. (Dies ist eine der Kontroversen der relationalen Algebra.) Im Grunde erweitert man das Modell also um Multi-Set eine Sammlung verlassen.
Betrieb
Es gibt vier Arten von Operationen:
- Die üblichen elementaren Operationen mit Mengen – Verein oder Gewerkschaft, Überschneidung und Unterschied
- Operationen, die eine Beziehung einschränken – Projektion und Auswahl
- Operationen, die Tupel kombinieren – es kartesisches Produkt und die verschiedenen "join"s
- Operationen, die die Tupel in einer Relation nicht verändern, aber z.B. ein Attribut umbenennen
Grundoperationen
Die drei elementaren Operationen mit Mengen gelten auch in der relationalen Algebra:
Das Union der Relationen R und S besteht aus den n-Tupeln, die entweder zu R, S oder beiden gehören. Ein n-Tupel, das in beiden Relationen vorkommt, kommt in der Union nur einmal vor. Die Notation für die Vereinigung zwischen R und S ist R ∪ so.
Das Überschneidung der Relationen R und S besteht aus den n-Tupeln, die sowohl in R als auch in S vorkommen. Die Notation dafür ist R ∩ so.
Es Unterschied der Relationen R und S besteht aus den Tupeln von R, die in S nicht vorkommen. Dafür lautet die Notation Rso.
Damit diese drei Operationen gültig sind, müssen R und S dieselben Attribute in derselben Reihenfolge haben. Außerdem muss die Domäne jedes der Attribute gleich sein.
Beispiel
Hat man die folgenden beiden Relationen R und S, beide mit den Attributen A, B und C:
dann werden Vereinigung, Querschnitt und Differenz:
R S:| ein | B | C |
|---|
| 1 | ein | X | | 1 | ein | z | | 1 | B | ja | | 2 | C | X | | 3 | B | X | | 3 | d | X | | | | |
Projektion
Die Bearbeitung Projektion erzeugt aus einer Relation R eine neue Relation, die nur einige der Attribute von R besitzt. Eine Projektion wird geschrieben als
, bei welchem
(Teil von) der Attributnamen der Relation ist R.
Beispiel
 | ein | B | C |
|---|
| 1 | ein | X | | 1 | B | ja | | 2 | C | X |
|  | ein | B |
|---|
| 1 | ein | | 1 | B | | 2 | C |
|  | ein |
|---|
| 1 | | 2 |
|
Die Projektion
speichert nur die Spalten A und B von R in der neuen Relation. Mit der Projektion
nur Spalte A wird gespeichert. Beachten Sie, dass im letzteren Fall zwei identische 1-Tupel entstehen, von denen nur eines erhalten ist. Wenn relationale Algebra mit Multisets erstellt wird, bleiben beide Tupel erhalten.
Auswahl
Das Anwenden einer Auswahloperation auf eine Relation R erzeugt eine neue Relation, die nur einen Teil der Tupel von R enthält. Die verbleibenden Tupel sind diejenigen, die eine Bedingung C für die Attribute von R erfüllen. Eine Auswahl wird geschrieben als
, wobei C die Bedingung und R eine Relation ist.
Beispiel
 | ein | B | C |
|---|
| 1 | ein | X | | 1 | ein | z | | 1 | B | ja | | 2 | C | X | | 3 | B | X | | 3 | d | X |
|  | ein | B | C |
|---|
| 1 | ein | X | | 1 | ein | z | | 1 | B | ja |
|  | ein | B | C |
|---|
| 3 | B | X | | 3 | d | X |
|  | ein | B | C |
|---|
| 2 | C | X | | 3 | B | X | | 3 | d | X |
|
Die Auswahl
Entfernen Sie alle Tupel, die nicht den Wert 1 für Attribut A haben. Ebenso kann eine Bedingung für andere Attribute angegeben werden.
kartesisches Produkt
Es kartesisches Produkt (manchmal auch Kreuzprodukt benannt, nach den Engländern Kreuzprodukt) zweier Relationen R und S ist die Relation, die durch die Paarung aller Tupel von R mit allen Tupeln von S entsteht. Dies wird geschrieben als R x S. Wenn die Ordnung von R gleich n und die von S gleich m ist, ist die Ordnung von R x S gleich n m: Die ersten n Elemente jedes Tupels stammen von R, während die letzten m von S stammen.
Beispiel
:| ein | B | C |
|---|
| 1 | ein | X | | 1 | B | ja | | 2 | C | X |
| :| E | f |
|---|
| mm | 22 | | nn | 88 |
| RxS:| ein | B | C | E | f |
|---|
| 1 | ein | X | mm | 22 | | 1 | B | ja | mm | 22 | | 2 | C | X | mm | 22 | | 1 | ein | X | nn | 88 | | 1 | B | ja | nn | 88 | | 2 | C | X | nn | 88 | |
umbenennen
Manchmal möchte man einer Relation oder ihren Attributen einen neuen Namen geben. Um der Relation R den neuen Namen S zu geben, schreibt man
, wahr
sind die (neuen) Attributnamen der neuen Relation S.
Beispiel
:| ein | B | C |
|---|
| 1 | ein | X | | 1 | B | ja | | 2 | C | X |
| :| d | E | f |
|---|
| 1 | ein | X | | 1 | B | ja | | 2 | C | X |
|
Hier hat also sowohl die Relation den neuen Namen S erhalten, als auch die Attribute. Die Werte der Beziehung haben sich nicht geändert.
schließt sich an
Neben den oben genannten Operationen, die eigentlich direkt aus der Mengenlehre stammen, ist die wichtigste Operation der "Join", der im Wesentlichen a kartesisches Produkt besteht aus zwei Beziehungen, gefolgt von einer Auswahl Diese Auswahl erfordert normalerweise, dass zwei Attribute (eines von jedem ihrer Bestandteile) gleich sein müssen.
In einem natürliche Verbindung zwischen den Relationen R und S werden Tupel basierend auf gleichnamigen Attributen gepaart. Dies ist geschrieben als
. Tupel, die in einem oder mehreren übereinstimmenden Attributen nicht mit einem Tupel aus der anderen Relation übereinstimmen, sind nicht Teil der neuen Relation.
EIN Theta-Beitritt zwischen zwei Beziehungen R und S wirkt wie ein natürlicher Join, außer dass Tupel gepaart werden, wenn sie eine bestimmte Bedingung namens θ erfüllen. Dies wird als
.
EIN Außenverbindung ist ein Theta-Join, schließt aber auch alle Tupel ein, die sich nicht "paaren", entweder nur aus der linken Beziehung (left-outer-join), oder nur von rechts (right-outer-join", oder aus beiden ( full- outer-join) In jedem dieser Fälle werden die Elemente in einem Tupel, die nicht vorhanden sind, durch NULL-Werte ersetzt.
Beispiel
:| ein | B | C | d |
|---|
| 1 | 2 | 3 | 4 | | 4 | 5 | 6 | 7 | | 7 | 8 | 9 | 0 |
| :| ein | f | G |
|---|
| 1 | 2 | 3 | | 7 | 8 | 9 |
| :| ein | B | C | d | f | G |
|---|
| 1 | 2 | 3 | 4 | 2 | 3 | | 7 | 8 | 9 | 0 | 8 | 9 |
|
Der natürliche Join der Relationen R und S ist eine neue Relation, bei der die Tupel nach gleichnamigen Attributen abgeglichen werden. In diesem Beispiel werden Tupel gepaart, die denselben Wert für das A-Attribut haben.
| | RxS:| ein | B | C | d | E | f | G |
|---|
| 1 | 2 | 3 | 4 | 1 | 2 | 3 | | 4 | 5 | 6 | 7 | 1 | 2 | 3 | | 7 | 8 | 9 | 0 | 1 | 2 | 3 | | 1 | 2 | 3 | 4 | 7 | 8 | 9 | | 4 | 5 | 6 | 7 | 7 | 8 | 9 | | 7 | 8 | 9 | 0 | 7 | 8 | 9 | | :| ein | B | C | d | E | f | G |
|---|
| 1 | 2 | 3 | 4 | 1 | 2 | 3 | | 7 | 8 | 9 | 0 | 7 | 8 | 9 |
|
Ein Theta-Join zwischen zwei Relationen wird erstellt, indem zuerst das kartesische Produkt ausgeführt wird. Danach werden alle Tupel, die die Bedingung nicht erfüllen, entfernt. In diesem Beispiel ist die Bedingung, dass der Wert in den Attributen A und E gleich sein muss.
Literatur
- Codd, Edgar F.: «A Relational Model of Data for Large Shared Data Banks» in «Communications of the ACM» 13. Juni 1970, S. 377–387. (PDF-Version)