Sie sind auf Seite 1von 8

Grundlagen des relationalen Modells Telefonbuch

Name Straße Telefon#


Seien D1, D2, ..., Dn Domänen (Wertebereiche)
Mickey Mouse Main Street 4711
Relation: R ⊆ D1 x ... x Dn Mini Mouse Broadway 94725
Bsp.: Telefonbuch ⊆ string x string x integer Donald Duck Broadway 95672
... ... ...

Tupel: t ∈ R •Ausprägung: der aktuelle Zustand der Datenbasis


Bsp.: t = („Mickey Mouse“, „Main Street“, 4711)
•Schlüssel: minimale Menge von Attributen, deren Werte ein
Schema: legt die Struktur der gespeicherten Daten fest Tupel eindeutig identifizieren
Bsp.: •Primärschlüssel: wird unterstrichen
Telefonbuch: {[Name: string, Adresse: string, Telefon#:integer]} •Einer der Schlüsselkandidaten wird als Primärschlüssel
ausgewählt
•Hat eine besondere Bedeutung bei der Referenzierung von
© A. Kemper / A. Eickler 1
Tupeln © A. Kemper / A. Eickler 2

Uni-Schema voraussetzen Relationale Darstellung von


MatrNr Vorgänger
Nach-
folger VorlNr Entitytypen
mc mc
Name Studenten hören Vorlesungen SWS Studenten: {[MatrNr:integer, Name: string, Semester: integer]}
mc mc
mc mc
Semester mc Titel Vorlesungen: {[VorlNr:integer, Titel: string, SWS: integer]}

Professoren: {[PersNr:integer, Name: string, Rang: string,


Note prüfen lesen Raum: integer]}

Assistenten: {[PersNr:integer, Name: string, Fachgebiet: string]}


PersNr
mc 1 Rang
Name Assistenten arbeitenFür Professoren
mc 1 Raum

Fachgebiet
PersNr
© A. Kemper / A. Eickler Name 3 © A. Kemper / A. Eickler 4

1
Relationale Darstellung von Beziehungen unseres Beispiel-
Beziehungen Schemas
A1k
A11 E1 1 hören : {[MatrNr: integer, VorlNr: integer]}
...
A R1 lesen : {[PersNr: integer, VorlNr: integer]}
...

R
A
R arbeitenFür : {[AssistentenPersNr: integer, ProfPersNr: integer]}
kR
A21
E2 En An1 voraussetzen : {[Vorgänger: integer, Nachfolger: integer]}
A2 k
...
2 A nk
... ... n prüfen : {[MatrNr: integer, VorlNr: integer, PersNr: integer,
Note: decimal]}
R:{[1
A11,...., A1k , A21,..., A2k,..., An1 ,..., Ankn , A1R ,..., AkRR ]}
4243 1
14243 14243 14243
2

Schlüsselvon E1 Schlüsselvon E 2 Schlüsselvon E n Attributevon R


© A. Kemper / A. Eickler 5 © A. Kemper / A. Eickler 6

Ausprägung der Beziehung hören


Schlüssel der Relationen hören Vorlesungen
Studenten
MatrNr VorlNr VorlNr ...
hören : {[MatrNr: integer, VorlNr: integer]} MatrNr ...
26120 5001 5001 ...
26120 ... 27550 5001
lesen : {[PersNr: integer, VorlNr: integer]} 27550 ... 27550 4052 4052 ...
... ... 28106 5041 ... ...
arbeitenFür : {[AssistentenPersNr: integer, ProfPersNr: integer]} 28106 5052
28106 5216
28106 5259
voraussetzen : {[Vorgänger: integer, Nachfolger: integer]}
29120 5001
29120 5041
prüfen : {[MatrNr: integer, VorlNr: integer, PersNr: integer, 29120 5049
Note: decimal]} MatrNr 29555 5022 VorlNr
25403 5022
mc 29555 5001
Studenten
mc
Vorlesungen
hören
© A. Kemper / A. Eickler 7 © A. Kemper / A. Eickler 8

2
Verfeinerung des relationalen Verfeinerung des relationalen
Schemas Schemas
c:mc-Beziehung
Initial-Entwurf
Professoren
lesen Vorlesungen Vorlesungen : {[VorlNr, Titel, SWS]}
c mc Professoren : {[PersNr, Name, Rang, Raum]}
lesen: {[VorlNr, PersNr]}

Verfeinerung durch Zusammenfassung


Vorlesungen : {[VorlNr, Titel, SWS, gelesenVon]}
c:mc-Beziehung Professoren : {[PersNr, Name, Rang, Raum]}
Initial-Entwurf
Vorlesungen : {[VorlNr, Titel, SWS]}
Professoren : {[PersNr, Name, Rang, Raum]}
1 Regel
lesen: {[VorlNr, PersNr]} Relationen mit gleichem Schlüssel kann man zusammenfassen
aber nur diese und keine anderen!

© A. Kemper / A. Eickler 9 © A. Kemper / A. Eickler 10

Ausprägung von Professoren und Vorsicht: So geht es NICHT


Vorlesung Vorlesungen Vorlesungen
VorlNr Titel SWS Gelesen VorlNr Titel SWS
Professoren Von Professoren 5001 Grundzüge 4
PersNr Name Rang Raum 5001 Grundzüge 4 2137 PersNr Name Rang Raum liest 5041 Ethik 4
2125 Sokrates C4 226 5041 Ethik 4 2125 2125 Sokrates C4 226 5041 5043 Erkenntnistheorie 3
2126 Russel C4 232 5043 Erkenntnistheorie 3 2126 2125 Sokrates C4 226 5049 5049 Mäeutik 2
2127 Kopernikus C3 310 5049 Mäeutik 2 2125 2125 Sokrates C4 226 4052 4052 Logik 4
2133 Popper C3 52 4052 Logik 4 2125 ... ... ... ... ... 5052 Wissenschaftstheorie 3
2134 Augustinus C3 309 5052 Wissenschaftstheorie 3 2126 2134 Augustinus C3 309 5022 5216 Bioethik 2
2136 Curie C4 36 5216 Bioethik 2 2126 2136 Curie C4 36 ?? 5259 Der Wiener Kreis 2
2137 Kant C4 7 5259 Der Wiener Kreis 2 2133 5022 Glaube und Wissen 2
5022 Glaube und Wissen 2 2134 4630 Die 3 Kritiken 4
4630 Die 3 Kritiken 4 2137

lesen Vorlesungen lesen Vorlesungen


Professoren mc Professoren mc
1 1
© A. Kemper / A. Eickler 11 © A. Kemper / A. Eickler 12

3
Vorsicht: So geht es NICHT: Relationale Modellierung der
FolgenÎAnomalien Vorlesungen Generalisierung
VorlNr Titel SWS
Professoren 5001 Grundzüge 4 Fachgebiet
5041 Ethik 4
PersNr Name Rang Raum liest
5043 Erkenntnistheorie 3
2125 Sokrates C4 226 5041
5049 Mäeutik 2 Assistenten
2125 Sokrates C4 226 5049
4052 Logik 4
2125 Sokrates C4 226 4052 5052 Wissenschaftstheorie 3 is_a Angestellte
... ... ... ... ... 5216 Bioethik 2
2134 Augustinus C3 309 5022 5259 Der Wiener Kreis 2 Professoren
2136 Curie C4 36 ?? PersNr Name
5022 Glaube und Wissen 2
4630 Die 3 Kritiken 4 Raum Rang
Update-Anomalie: Was passiert wenn Sokrates umzieht
Lösch-Anomalie: Was passiert wenn „Glaube und Wissen“ Angestellte: {[PersNr, Name]}
wegfällt Professoren: {[PersNr, Rang, Raum]}
Einfügeanomalie: Curie ist neu und liest noch keine
Vorlesungen © A. Kemper / A. Eickler 13
Assistenten: {[PersNr, Fachgebiet]}
© A. Kemper / A. Eickler 14

Relationale Modellierung
schwacher Entitytypen Man beachte, dass in diesem Fall der (global eindeutige)
Schlüssel der Relation Prüfung nämlich MatrNr und PrüfTeil als
mc Note Fremdschlüssel in die Relationen umfassen und abhalten
Studenten 1 ablegen Prüfungen
PrüfTeil übernommen werden muß.

mc mc
MatrNr
umfassen abhalten
VorlNr m m PersNr

Vorlesungen Professoren

Prüfungen: {[MatrNr: integer, PrüfTeil: string, Note: integer]}


umfassen: {[MatrNr: integer, PrüfTeil: string, VorlNr: integer]}
abhalten: {[MatrNr: integer,© A.PrüfTeil: string, PersNr: integer]}15
Kemper / A. Eickler © A. Kemper / A. Eickler 16

4
Die relationale Uni-DB
Professoren Studenten Vorlesungen
Die relationale Algebra
MatrNr Name Semester
PersNr Name Rang Raum VorlNr Titel SWS gelesen
24002 Xenokrates 18 von
2125 Sokrates C4 226
2126 Russel C4 232 25403 Jonas 12 5001 Grundzüge 4 2137 Behandelt Josef Bürgler mit eigenem Skript
2127 Kopernikus C3 310 26120 Fichte 10 5041 Ethik 4 2125

2133 Popper C3 52 26830 Aristoxenos 8 5043 Erkenntnistheorie 3 2126

2134 Augustinus C3 309 27550 Schopenhauer 6 5049 Mäeutik 2 2125

2136 Curie C4 36 28106 Carnap 3 4052 Logik 4 2125

2137 Kant C4 7 29120 Theophrastos 2 5052 Wissenschaftstheorie 3 2126


29555 Feuerbach 2 5216 Bioethik 2 2126
voraussetzen 5259 Der Wiener Kreis 2 2133
hören
Vorgänger Nachfolger
MatrNr VorlNr 5022 Glaube und Wissen 2 2134
5001 5041
26120 5001 4630 Die 3 Kritiken 4 2137
5001 5043
27550 5001
5001 5049
5041 5216
27550 4052 Assistenten
28106 5041 PerslNr Name Fachgebiet Boss
5043 5052
28106 5052 3002 Platon Ideenlehre 2125
5041 5052
28106 5216 3003 Aristoteles Syllogistik 2125
5052 5259
28106 5259 3004 Wittgenstein Sprachtheorie 2126
prüfen 29120 5001 3005 Rhetikus Planetenbewegung 2127
MatrNr VorlNr PersNr Note 29120 5041 3006 Newton Keplersche Gesetze 2127
28106 5001 2126 1 29120 5049 3007 Spinoza Gott und Natur 2126
25403 5041 2125 2 29555 5022
27550 4630 2137 2 25403 5022
© A. Kemper / A. Eickler 17 © A. Kemper / A. Eickler 18

Die relationalen Algebra- Die relationalen Algebra-


Operatoren Operatoren
σSemester > 10 (Studenten) Kartesisches Produkt Professoren x hören
Selektion σSemester > 10 (Studenten)
Vorlesungen hören
MatrNr Name Semester PersNr Name Rang Raum MatrNr VorlNr
24002 Xenokrates 18 2125 Sokrates C4 226 26120 5001
25403 Jonas 12 ... ... ... ... ... ...
2125 Sokrates C4 226 29555 5001
... ... ... ... ... ...
ΠRang(Professoren)
2137 Kant C4 7 29555 5001
Projektion
ΠRang(Professoren)
• Problem: riesige Zwischenergebnisse
Rang •Beispiel: (Professoren x hören)
C4
C3 •"bessere" Operation: Join (siehe unten)
© A. Kemper / A. Eickler 19 © A. Kemper / A. Eickler 20

5
Die relationalen Algebra-
Operatoren Formale Definition der Algebra
Umbenennung Basisausdrücke
Relation der Datenbank oder
Umbenennung von Relationen konstante Relationen
Beispiel: Ermittlung indirekter Vorgänger 2. Stufe der Vorlesung
5216
Operationen
ΠV1. Vorgänger(σV2. Nachfolger=5216 ∧ V1.Nachfolger = V2.Vorgänger Selektion: σp (E1)
( ρV1 (voraussetzen) x ρV2 (voraussetzen))) Projektion: ΠS (E1)
Kartesisches Produkt: E1 x E2
Umbennung von Attributen
ρVoraussetzung ← Vorgänger (voraussetzen) Umbenennung: ρV (E1), ρA ← B (E1)
Vereinigung: E1 ∪ E2
Differenz: E1 - E2
© A. Kemper / A. Eickler 21 © A. Kemper / A. Eickler 22

Der natürliche Verbund (Join) Drei-Wege-Join


Gegeben seien:
•R(A1,..., Am, B1,..., Bk)
•S(B1,..., Bk, C1,..., Cn) (Studenten A hören) A Vorlesungen

(Studenten A hören) A Vorlesungen


R A S = ΠA1,..., Am, R.B1,..., R.Bk, C1,..., Cn(σR.B1=S. B1 ∧...∧ R.Bk = S.Bk(RxS))
MatrNr Name Semester VorlNr Titel SWS gelesenVon

26120 Fichte 10 5001 Grundzüge 4 2137


RAS 27550 Jonas 12 5022 Glaube und Wissen 2 2134
R−S R∩S S−R
28106 Carnap 3 4052 Wissenschftstheorie 3 2126
A1 A2 ... Am B1 B2 ... Bk C1 C2 ... Cn
... ... ... ... ... ... ...

© A. Kemper / A. Eickler 23 © A. Kemper / A. Eickler 24

6
Allgemeiner Join (Theta-Join) Andere Join-Arten
• natürlicher Join
Gegeben seien folgende Relationen(-Schemata)
R(A1, ..., An) und L R
S(B1, ..., Bm) Resultat
A B C C D E
A A B C D E
R A θ S= σθ (RxS) a1 b1 c1 c1 d1 e1 =
a1 b1 c1 d1 e1
a2 b2 c2 c3 d2 e2
R Aθ S

R Aθ S
• linker äußerer Join
R S
A1 A2 ... An B1 B2 ... Bm L R Resultat
A B C C D E A B C D E
a1 b1 c1 C c1 d1 e1 = a1 b1 c1 d1 e1
a2 b2 c2 c3 d2 e2 a2 b2 c2 - -

© A. Kemper / A. Eickler 25 © A. Kemper / A. Eickler 26

Andere Join-Arten
• äußerer Join
• rechter äußerer Join
Resultat
L R
A B C D E
L R Resultat A B C C D E
B a1 b1 c1 d1 e1
A B C C D E A B C D E a1 b1 c1 c1 d1 e1 =
a2 b2 c2 - -
a1 b1 c1 D c1 d1 e1 = a1 b1 c1 d1 e1 a2 b2 c2 c3 d2 e2
- - c2 d2 e2
a2 b2 c2 c3 d2 e2 - - c3 d2 e2
• Semi-Join von L mit R

L R
Resultat
A B C C D E
E A B C
a1 b1 c1 c1 d1 e1 =
a1 b1 c1
a2 b2 c2 c3 d2 e2
© A. Kemper / A. Eickler 27 © A. Kemper / A. Eickler 28

7
Die relationale Division
schenken wir uns
Andere Join-Arten (Forts.)
• Semi-Join von R mit L

L R
Resultat
A B C C D E
F C D E
a1 b1 c1 c1 d1 e1 =
c1 d1 e1
a2 b2 c2 c3 d2 e2

© A. Kemper / A. Eickler 29 © A. Kemper / A. Eickler 30

Mengendurchschnitt Mini-Uebung:
Als Beispielanwendung für den Mengendurchschnitt Als algebraischer Ausdruck – insbesondere in Baumdarstellung
(Operatorsymbol ∩) betrachten wir folgende Anfrage:
Finde die PersNr aller C4-Professoren, die mindestens Wer (Name gesucht) liest Vorlesung mit Titel X?
eine Vorlesung halten.
ΠPersNr(ρPersNr←gelesenVon(Vorlesungen)) ∩
ΠPersNr(σRang=C4(Professoren))
Mengendurchschnitt nur auf zwei Argumentrelationen mit
gleichem Schema anwendbar
Deshalb ist die Umbenennung des Attribute gelesenVon in
PersNr in der Relation Vorlesungen notwendig
Der Mengendurchschnitt zweier Relationen R ∩ S kann durch
die Mengendifferenz wie folgt ausgedrückt werden:
R ∩ S = R − (R − S)
© A. Kemper / A. Eickler 31 © A. Kemper / A. Eickler 32