Relationen

Werbung
Relationen
Holger Jakobs – [email protected]
2004-09-07
Inhaltsverzeichnis
1 Relation
1.1 Begriff der Relation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Eigenschaften von Relationen, Schreibweisen . . . . . . . . . . . . . . . . .
1
1
2
2 Relationenalgebra
2.1 Selektion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Projektion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Verbund . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2
2
3
Relationalen Datenbanken nach Codd liegen die Prinzipien der Relationenalgebra zugrunde. Deshalb hier ein kurzer Überblick über Relationen und ihre Operationen.
1 Relation
1.1 Begriff der Relation
Eine Relation ist eine Menge von Tupeln, die aus Ausprägungen von einer festen Anzahl
von Attributen bestehen. In informatiküblicher Bezeichnung würde man von einer Tabelle
sprechen, die aus Zeilen (Datensätzen) besteht. Die Attribute sind die Spaltenbezeichnungen, die Ausprägungen die Werte in den Spalten.
Aus der Tatsache, dass es sich um eine Menge handelt, lassen sich zwei Eigenschaften
ableiten:
1. Die Tupel (Zeilen) sind nicht geordnet, bzw. eine eventuell vorhandene Ordnung hat
keinerlei Bedeutung und ist zufällig.
2. Alle Tupel sind eindeutig, d. h. es darf nicht vorkommen, dass zwei Tupel in einer
Tabelle in allen Attributwerten übereinstimmen.
1
1.2 Eigenschaften von Relationen, Schreibweisen
2 RELATIONENALGEBRA
1.2 Eigenschaften von Relationen, Schreibweisen
Der Inhalt von Relationen (Tabelleninhalt) kann sich im Laufe der R A B C D
Zeit ändern, das Format der Relation (Anzahl Spalten, Wertebereich der Attribute) ist dagegen zeitinvariant. Änderungen am Format erzeugen eine neue Relation, d. h. es handelt sich nach Änderung nicht mehr um dieselbe.
Eine Relation R (A, B, C, D) sieht als Tabelle wie nebenstehend aus. Eine Relation
könnte also wie folgt beschrieben sein: Student (MatrikelNr, Name, Fach, Semester).
MatrikelNr, Name, Fach, Semester sind Attribute der Relation Student. Eine Relation
hat einen eindeutigen Schlüssel – notfalls die Kombination aller Attribute. Der Schlüssel
ist ein Attribut oder eine Attributkombination, deren Wertekombination ein Tupel eindeutig identifiziert. In diesem Beispiel ist anzunehmen, dass MatrikelNr der Schlüssel ist.
Zur Kennzeichnung unterstreicht man alle zum Schlüssel gehörenden Attribute: Student
(MatrikelNr, Name, Fach, Semester).
2 Relationenalgebra
In der Relationenalgebra werden Operationen auf und mit Relationen durchgeführt. Die
Ergebnisse sind wieder Relationen. Es gibt drei grundlegende Operationen: Selektion, Projektion und Verbund.
2.1 Selektion
Bei der Selektion werden aus einer Relation bestimmte Tupel ausgewählt (selektiert). Die
Ergebnisrelation hat genauso viele Attribute wie die Ausgangsrelation. Die Anzahl der
Tupel kann geringer sein oder sogar 0.
Student [Fach=’Physik’] erzeugt eine Relation mit den Tupeln aller Studenten, die
Physik studieren.
2.2 Projektion
Bei der Projektion werden aus einer Relation bestimmte Attribute ausgewählt. Die Ergebnisrelation hat höchstens genauso viele Attribute wie die Ausgangsrelation. Die Anzahl
der Tupel bleibt gleich, sofern alle Schlüsselattribute übernommen werden. Werden nicht
alle Schlüsselattribute übernommen, kann es passieren, dass Tupel herausfallen, weil sie
ansonsten doppelt vorkämen.
Student [Name, Fach] erzeugt eine Relation mit den Attributen Name und Fach der
Studenten. Kommen Name/Fach-Kombinationen doppelt vor, sind weniger Tupel vorhanden als in der Ausgangsrelation.
2
2 RELATIONENALGEBRA
2.3 Verbund
2.3 Verbund
Im Relationenmodell werden Datenin Tabellen (Relationen) dargestellt. Diese Relationen
müssen bestimmten Bedingungen genügen, um Redundanz zu vermeiden und somit die
Konsistenz möglichst wenig zu gefährden. Dazu wird das, was man bei papierner Darstellung in eine Tabelle schreiben würde, im Rahmen der Normalisierung (siehe Unterlagen
zu diesem Thema) auf mehrere Relationen aufgespalten. Bei Abfragen müssen diese Relationen dann wieder miteinander verknüpft werden, was mit der Verbund-Operation (join)
geschieht.
Ein Verbund ist das kartesische Produkt (Kreuzprodukt) zweier Relationen, d. h. es wird
jedes Tupel (Zeile) einer Relation mit jedem Tupel aus einer anderen Relation verknüpft.
Die Anzahl der Tupel in der Ergebnisrelation ist gleich dem Produtk aus den Tupelanzahlen
der Ausgangsrelationen. Das sieht dann so aus:
einfacher Verbund (volles Kreuzprodukt):
RxS
R
A
1
2
B
2
2
S
C
1
4
7
D
2
5
8
E
3
6
9
A
1
1
1
2
2
2
B
2
2
2
2
2
2
C
1
4
7
1
4
7
D
2
5
8
2
5
8
E
3
6
9
3
6
9
Die Relationen R und S enthalten 2 bzw. 3 Tupel, die Ergebnisrelation des Verbundes R x
S also 2 · 3 = 6 Tupel.
Meist ist eine solche Art des Verbundes nicht sinnvoll, und die Datenmenge wächst immens an. In vielen Fällen werden nur die Tupel der Ergebnisrelation gesucht, bei denen
je ein Attribut aus den Ausgangsrelationen vom Wert her übereinstimmt. möchte man
beispielsweise eine Liste aller Artikel mit ihren zugehörigen Lieferanten haben, so müssen
Lieferantennummer beim Artikel und beim Lieferanten übereinstimmen. Alle anderen Tupelkombinationen werden nicht benötigt. So etwas nenn man einen natürlichen Verbund
(natural join).
natürlicher Verbund:
R A B C
1 1 0
1 0 1
1 1 2
S
C
0
2
0
D
1
2
1
E
2
1
1
F
3
4
1
R⊗S
A
1
1
1
B
1
1
1
C
0
0
2
D
1
1
2
E
2
1
1
F
3
1
4
Hier fällt sofort auf, dass nicht alle Tupel aus R überhaupt in die Ergebnisrelation eingehen.
Es werden nur die Tupel aus R und S übernommen, wo die Attributwerte des gleichnamigen
Attributs C übereinstimmen. Alle anderen fallen heraus. Der natürliche Verbund besagt
also: Nimm alle Tupel aus dem Kreuzprodukt, bei dem die Werte aller gleichnamigen
Attribute übereinstimmen. Die gleichnamigen Spalten gehen in die Ergebnisrelation auch
3
2.3 Verbund
2 RELATIONENALGEBRA
nur einmal ein, weil es keine zwei gleichnamigen Attribute geben kann (dies wird in der
Praxis nicht von allen Datenbanksystemen gemacht).
Eine weitere Variante des Verbundes ist der Theta-Verbund (θ-join). Hier ist nicht die
Gleichheit von Attributwerten, sondern eine andere Bedingung erforderlich, z. B. eine ≤oder 6=-Bedingung.
Theta-Verbund:
R
A
1
2
S
B
7
3
R [B6=C] S
A
1
1
2
2
B
7
7
3
3
C
1
3
7
1
D
7
4
3
7
C
7
1
3
D
3
7
4
R [B≤C] S
A
1
2
2
B
7
3
3
C
7
7
3
D
3
3
4
In der Praxis werden Selektion, Projektion und Verbund natürlich häufig miteinander kombiniert. Über sogenannte Unterabfragen sind sogar noch deutlich komplexere Abfragen
möglich. Siehe hierzu die Unterlagen zum Select-Statement von SQL.
$Id: relationen.tex,v 1.5 2004/09/07 05:31:13 hj Exp $
4
Herunterladen