Katrin Seyr
Institut fur Informationssysteme Technische Universitt Wien a
Katrin Seyr
Seite 1
1. Uberblick
Uberblick
1 2 3
Datenabfragesprachen
Relationale Algebra Relationenkalkul
Katrin Seyr
Seite 2
2. Begriserklrungen a
Begriserklrungen a
Denition (Relation)
Seien D1 , D2 , . . . , Dn Domnen (Wertebereiche) a Eine Relation (=Tabelle) uber den n Domnen ist deniert als eine Teilmenge a des kartesischen Produktes der n Domnen: a R D 1 Dn
Beispiel
R string string integer
Katrin Seyr
Seite 3
2. Begriserklrungen a
Begriserklrungen a
Denition (Tupel)
Ein Tupel (=Zeile) ist ein Element der Relation tR
Beispiel
t = (Mickey Mouse, Main Street, 4711) Ziel: Kombination des mathematischen Formalismus mit der Datenmodellierung Weg: durch Vergabe von Namen an Relationen und an die Komponenten der Tupel. erhalten das Schema der Daten.
Katrin Seyr
Seite 4
2. Begriserklrungen a
Begriserklrungen a
Beispiel
Das Telefonbuch ist ein Beispiel fur eine Relation. Ein Tupel daraus besteht aus den Komponenten Name, Strae und Telefonnummer. Telefonbuch: {[Name: string, Adresse: string, Telefonnr:integer]}
Telefonbuch Name Mickey Mouse Minnie Mouse Donald Duck ... Strae Main Street Broadway Highway ... Telefonnr 4711 94725 95672 ...
Katrin Seyr
Seite 5
2. Begriserklrungen a
2.1. Schlssel u
Schlussel
Denition (Schlussel)
Ein Schlussel ist eine minimale Menge von Attributen, deren Werte ein Tupel eindeutig identizieren. Im Allgemeinen hat eine Relation mehrere mgliche Schlussel. Einer dieser o Schlusselkandidaten wird im Relationenmodell als Primrschlussel mittels a Unterstreichen gekennzeichnet.
Beispiele
Telefonbuch: {[Name: string, Adresse: string, Telefonnr:integer]} Telefonbuch: {[Name: string, Adresse: string, Telefonnr:integer]}
Katrin Seyr
Seite 6
VorlNr
.......
Raum
Uberfuhrung des Konzeptuellen Schemas in ein Logisches Schema (in der VL: Relationales Modell)
Studenten hren o MatrNr 26120 24002 24002 ... VorlNr 5001 5001 4052 ... Vorlesungen VorlNr 5001 5041 5049 4052 5216 ... Titel Grundzuge Ethik Meutik a Logik Bioethik ...
Seite 7
A1 A2 .....
Ak
Katrin Seyr
Seite 8
Nachfolger
VorlNr
SWS
Katrin Seyr
Seite 9
Relationale Darstellung der vier Entitytypen aus dem Unischema Studenten: {[MatrNr: integer, Name: string, Semester: integer]} Vorlesungen: {[VorlNr: integer, Titel: string, SWS: integer]} Professoren: {[PersNr: integer, Name: string, Rang: string, Raum: integer]} Assistenten: {[PersNr: integer, Name: string, Fachgebiet: string]}
Katrin Seyr
Seite 10
A1k1
E1
AR1
R ARkR
A21
An1
A2k2
E2
Ank2
En
Katrin Seyr
Seite 11
Relationale Darstellung der funf Beziehungstypen aus dem Unischema horen: {[MatrNr: integer, VorlNr: integer]} (N:M) lesen: {[PersNr: integer, VorlNr: integer]} (1:N) arbeitenFur: {[AssiPersNr: integer, ProfPersNr: integer]} (N:1) voraussetzen: {[Vorgnger: integer, Nachfolger: integer]} (N:M) a prufen: {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]} (N:M:1)
Katrin Seyr
Seite 12
N hren Studenten
M Vorlesungen
Studenten MatrNr 24002 25403 26120 26830 28106 29555 ... Name Xenokrates Jonas Fichte Aristoxenos Carnap Feuerbach ...
hren o MatrNr 26120 24002 24002 ... VorlNr 5001 5001 4052 ...
Vorlesungen VorlNr 5001 5041 5049 4052 5216 ... Titel Grundzuge Ethik Meutik a Logik Bioethik ...
Katrin Seyr
Seite 13
Schlussel einer Relation, die aus einer N:M Beziehung entstanden ist, beinhaltet alle Fremdschlusselattribute der an der Beziehung beteiligten Entities.
Beispiele
horen: {[MatrNr: integer, VorlNr: integer]} (N:M) voraussetzen: {[Vorgnger: integer, Nachfolger: integer]} (N:M) a
Katrin Seyr
Seite 14
1 lesen Professoren
N Vorlesungen
Professoren PersNrNr 2125 2126 2127 2133 2134 2136 2137 Name Sokrates Russel Kopernikus Popper Augustinus Curie Kant
lesen PersNr 2137 2125 2125 2125 2126 ... VorlNr 5001 5041 5049 4052 5216 ...
Vorlesungen VorlNr 5001 5041 5049 4052 5216 ... Titel Grundzuge Ethik Meutik a Logik Bioethik ...
Katrin Seyr
Seite 15
Schlussel einer Relation, die aus einer 1:N Beziehung entstanden ist, beinhaltet jene Fremdschlusselattribute, die von der N Seite der an der Beziehung beteiligten Entity stammen.
Beispiele
lesen: {[PersNr: integer, VorlNr: integer]} (1:N) arbeitenFur: {[AssiPersNr: integer, ProfPersNr: integer]} (N:1) prufen: {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]} (N:M:1)
Katrin Seyr
Seite 16
Wir hatten: Professoren: {[PersNr: integer, Name: string, Rang: string, Raum: integer]} Vorlesungen: {[VorlNr: integer, Titel: string, SWS: integer]} lesen: {[VorlNr: integer, PersNr: integer]} Verfeinerung durch Zusammenfassung von Relationen: Professoren: {[PersNr: integer, Name: string, Rang: string, Raum: integer]} Vorlesungen: {[VorlNr: integer, Titel: string, SWS: integer, lesen.PersNr]} Nur Relationen mit gleichem Schlussel zusammengefassen!
Katrin Seyr
Seite 17
1 lesen Professoren
N Vorlesungen
Professoren PersNr 2125 2126 2127 2133 2134 2136 2137 Name Sokrates Russel Kopernikus Popper Augustinus Curie Kant Rang C4 C4 C3 C3 C3 C4 C4 Raum 226 232 310 52 309 36 7 VorlNr 5001 5041 5049 4052 5216 ...
Vorlesungen Titel Grundzuge Ethik Meutik a Logik Bioethik ... SWS 4 4 2 4 2 ... PersNr 2137 2125 2125 2125 2126 ...
Katrin Seyr
Seite 18
3.7. Anomalien
Anomalien
Professoren PersNr 2125 2125 2125 2126 ... 2136 2137 Name Sokrates Sokrates Sokrates Russel ... Curie Kant Rang C4 C4 C4 C4 ... C4 C4 Raum 226 226 226 232 ... 36 7 liest 5041 5049 4052 5216 ... ??? 5001 VorlNr 5001 5041 5049 4052 5216 ... Vorlesungen Titel Grundzuge Ethik Meutik a Logik Bioethik ... SWS 4 4 2 4 2 ...
Problem Schlussel: Relation Professoren braucht einen neuen Schlussel Update-Anomalie: Sokrates zieht um Einfuge-Anomalie: Curie ist neu und hlt noch keine Vorlesung. Was ist der a Schlussel? Lsch-Anomalie: Vorlesung Ethik fllt weg o a
Katrin Seyr Seite 19
1 Raum
Studenten: {[MatrNr, Name, Semester]} sitzen: {[Studenten.MatrNr, Raum.RaumNr]} Raum: {[RaumNr, m2, Lage]} Studenten: {[MatrNr, Name, Semester, Raum.RaumNr]} Hier nicht zusammenfassen um Speicherplatz zu sparen und Nullwerte zu vermeiden.
Katrin Seyr Seite 20
1 Raum (0,1)
Professoren: {[PersNr, Name, Rang]} Raum: {[RaumNr, m2, Lage]} sitzen: {[Professoren.PersNr, Raum.RaumNr]} {[Professoren.PersNr, Raum.RaumNr]} Professoren: {[PersNr, Name, Rang, Raum.RaumNr]} Raum: {[RaumNr, m2, Lage]} Professoren: {[PersNr, Name, Rang]} Raum: {[RaumNr, m2, Lage, Professoren.PersNr]} Achtung: Nullwertvermeidung
Katrin Seyr Seite 21
oder
Angestellte
PersNr
Fach
Assistenten
Professoren
Raum
Angestellte: {[PersNr, Name]} Professoren: {[Angestellte.PersNr, Rang, Raum]} Assistenten: {[Angestellte.PersNr, Fachgebiet]}
Katrin Seyr
Seite 22
1 ablegen
N Prfungen
PrfTeil
Studenten N N
PersNr
umfassen VorlNr
abhalten Name
SWS
Rang
Titel
Vorlesungen
Professoren
Raum
Prufungen: {[Student.MatrNr, PrufTeil, Note]} umfassen: {[Prufungen.MatrNr, Prufungen.PrufTeil, VorlNr]} abhalten: {[Prufungen.MatrNr, Prufungen.PrufTeil, PersNr]}
Katrin Seyr
Seite 23
Relationale Universittsdatenbank a
Studenten MatrNr 24002 25403 26120 26830 27550 28106 29120 29555 Name Xenokrates Jonas Fichte Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach Sem 18 12 10 8 6 3 2 2 PersNr 2125 2126 2127 2133 2134 2136 2137
Professoren Name Sokrates Russel Kopernikus Popper Augustinus Curie Kant Rang C4 C4 C3 C3 C3 C4 C4 Raum 226 232 310 52 309 36 7
Katrin Seyr
Seite 24
Relationale Universittsdatenbank a
Vorlesungen VorlNr 5001 5041 5043 5049 4052 5052 5216 5259 5022 4630 Titel Grundzuge Ethik Erkenntnistheorie Meutik a Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen Die drei Kritiken SWS 4 4 3 2 4 3 2 2 2 4 PersNr 2137 2125 2126 2125 2125 2126 2126 2133 2134 2137 voraussetzen VorgNr 5001 5001 5001 5041 5043 5041 5052 NachfNr 5041 5043 5049 5216 5052 5052 5259
Katrin Seyr
Seite 25
Relationale Universittsdatenbank a
hren o MatrNr 26120 27550 27550 28106 28106 28106 28106 29120 29120 29120 29555 25403 VorlNr 5001 5001 4052 5041 5001 4052 4630 5001 5041 5049 5022 5022 MatrNr 28106 25403 27550 prfen u VorlNr 5001 5041 4630 PersNr 2126 2125 2137 Note 1 2 2 PersNr 3002 3003 3004 3005 3006 3007 Name Platon Aristoteles Wittgenstein Rhetikus Newton Spinoza Assistenten Fachgebiet Ideenlehre Syllogistik Sprachtheorie Planetenbewegung Kepler Gesetze Gott und Natur Boss 2125 2125 2126 2127 2127 2126
Katrin Seyr
Seite 26
4. Datenabfragesprachen
Datenabfragesprachen
Gesucht: Sprache, die Information aus dem Datenbanksystem extrahiert (Data Query Language). die relationale Algebra der Relationenkalkul Bilden theoretische Grundlage fur SQL Sind gleich ausdrucksstark: d.h. alles, was in relationaler Algebra ausgedruckt werden kann, kann auch im Relationenkalkul ausgedruckt werden und umgekehrt.
Katrin Seyr
Seite 27
4. Datenabfragesprachen
CODD 1970: A relational model for large shared data banks. Communications of the ACM, 13(6): 377-387 CODD 1972: Relational Completeness of Data Base Sublanguages. In: Rustin, R., Hrsg.: Database Systems, 33-64 Prentice Hall, Englewood Clis, NY, USA Prozedurale Abfragesprache: Ausdruck beinhaltet implizit Abarbeitungsplan zur Ausfuhrung der Abfrage Mengenorientierte Sprache: Operationen arbeiten auf Mengen von Tupeln relational abgeschlossen: das Ergebnis einer Abfrage ist wieder eine Relation
Katrin Seyr
Seite 28
4. Datenabfragesprachen
: Join (Verbund) , bzw. : linker, rechter bzw. voller uerer Join a bzw. : linker bzw. rechter Semi-Join
: Durchschnitt : Division
Katrin Seyr Seite 29
4. Datenabfragesprachen
Beispiel
Selektiere alle Studierenden, die mehr als 10 Semester inskribiert sind.
Semester >10 (Studenten) MatrNr 24002 25403 Name Xenokrates Jonas Semester 18 12
Katrin Seyr
Seite 30
4. Datenabfragesprachen
Beispiel
Welche Rangbezeichnungen fur Professoren gibt es?
Rang (Professoren) Rang C3 C4
Katrin Seyr
Seite 31
4. Datenabfragesprachen
Die Vereinigung R S
Die Vereinigung ist deniert auf zwei Relationen R, S mit gleichem Schema und gibt alle Zeilen, die in R oder in S vorkommen, aus.
Beispiel
Wie heien die Professoren und die Assistenten?
Name (Professoren) Name (Assistenten) Name Sokrates Russel ... Kant Platon Aristoteles ... Spinoza
Katrin Seyr
Seite 32
4. Datenabfragesprachen
Die Mengendierenz R S
Die Mengendierenz ist deniert auf zwei Relationen R, S mit gleichem Schema und gibt alle Zeilen, die in R aber nicht in S vorkommen, aus.
Beispiel
Wie lautet die Matrikelnummer der Studierenden, die noch keine Prufung absolviert haben.
MatrNr (Studenten) MatrNr (pr u fen) MatrNr 24002 26120 26830 29120 29555
Katrin Seyr
Seite 33
4. Datenabfragesprachen
Beispiel
Studenten h ren o MatrNr 24002 24002 ... 24002 25403 ... 29555 29555
Katrin Seyr
4. Datenabfragesprachen
Beispiel
Bei der Verknupfung der Relationen Studenten und horen wurde ohne Umbenennung das Attribut MatrNr zweimal vorkommen. Wir benennen es neu mit hrt o hrtMatrNr (h ren) o o
Katrin Seyr
Seite 35
4. Datenabfragesprachen
Beispiel
Welches sind die Vorlesungsnummern der Vorlesungen, die indirekte Vorgnger a 2. Stufe der VO 5216 sind (= Vorgnger der Vorgnger von 5216) a a V1 .VorgNr V1 .NachfNr =V2 .VorgNr V2 .NachfNr =5216 V1 (voraussetzen) V 2 (voraussetzen)
Katrin Seyr
Seite 36
4. Datenabfragesprachen
Katrin Seyr
Seite 37
4. Datenabfragesprachen
Der naturliche Verbund verknupft zwei Relationen R, S. Er bildet zuerst das kartesische Produkt der Relationen, und wenn es in R und S gleichnamige Spalten gibt, selektiert er jene Tupel, die auf den gleichnamigen Spalten denselben Wert annehmen und projiziert zum Schluss die doppelt vorkommenden Spalten weg:
Denition
Seien R, S mit folgenden Schamata gegeben: R(A1 , . . . , Am , B1 , . . . Bk ) und S(B1 , . . . Bk , C1 , . . . Cn ). Der naturliche Verbund ist deniert als R
S = A ,...A
1
S
S R Bk ... C1 ... C2 ... ... ... Cn ... ... ...
R S
Katrin Seyr
Seite 38
4. Datenabfragesprachen
Vorlesungen VorlNr 5001 5041 ... Titel Grundzuge Ethik ... SWS 4 4 ... PersNr 2137 2125 ...
Katrin Seyr
Seite 39
4. Datenabfragesprachen
Katrin Seyr
Seite 40
4. Datenabfragesprachen
Denition
Seien R(A1 , . . . , An ) und S(B1 , . . . , Bm ) gegeben, ein Prdikat uber den a Attributen A1 , . . . , An , B1 , . . . , Bm Der allgemeine Verbund ist deniert als R
S = (R S)
Beispiele ()
= Sem > 10 SWS = 4 PersNr = 2134 = Student.MatrNr = h ren.MatrNr h ren.VorlNr = Vorlesungen.VorlNr o o = Vorlesungen.VorlNr = voraussetzen.VorgNr
Katrin Seyr
Seite 41
4. Datenabfragesprachen
C c1 c3
D d1 d2
E e1 e2
S
C c1 D d1 E e1
A a1
B b1
S
C c1 c2 c3 D d1 NULL d2 E e1 NULL e2
C c1 c3
D d1 d2
a1 a2 NULL
Katrin Seyr
Seite 42
4. Datenabfragesprachen
S
D d1 NULL E e1 NULL
C c1 c3
D d1 d2
a1 a2
S
C c1 c3 D d1 d2 E e1 e2
C c1 c3
D d1 d2
a1 NULL
Katrin Seyr
Seite 43
4. Datenabfragesprachen
C c1 c3
D d1 d2
E e1 e2
A a1
B b1
C c1
L A a1 a2 B b1 b2 C c1 c2
C c1 c3
D d1 d2
E e1 e2
LR
C c1
D d1
E e1
Katrin Seyr
Seite 44
4. Datenabfragesprachen
Der Mengendurchschnitt R S
Der Mengendurchschnitt ist deniert auf zwei Relationen R, S mit gleichem Schema und gibt alle Zeilen, die in beiden Relationen vorkommen, aus. Der Mengendurchschnitt kann mittels der Mengendierenz wie folgt ausgedruckt werden: R S = R (R S)
Beispiel
Gesucht sind die Personalnummern jener C4 Professoren, die eine Vorlesung halten.
PersNr (Vorlesungen) PersNr Rang =C 4 (Professoren) PersNr 2137 2125 2126 2137
Katrin Seyr
Seite 45
4. Datenabfragesprachen
Denition
Seien R, S Relationen, mit S R. t R S wenn es fur jedes Tupel s S ein Tupel r R gibt, mit: r .S = s r .(R S) = t Die Division kann wie folgt ausgedruckt werden: R S = RS (R) RS ((RS (R) S) R)
Katrin Seyr Seite 46
4. Datenabfragesprachen
MatrNr 28106
Katrin Seyr
Seite 47
4. Datenabfragesprachen
Der Relationenkalkul
Deklarative Abfragesprache: speziziert, welche Daten gefordert sind, nicht, wie sie erhalten werden. Mengenorientierte Sprache: Operationen arbeiten auf Mengen von Tupeln. relational abgeschlossen: das Ergebnis einer Abfrage ist wieder eine Relation. Die Anfragen im Relationenkalkul sind von der Form: {t|P(t)} wobei P(t) eine Formel ist. Es gibt zwei unterschiedliche, aber gleichmchtige Ausprgungen: a a der relationale Tupelkalkul der relationale Domnenkalkul a
Katrin Seyr
Seite 48
4. Datenabfragesprachen
Denition (Syntax)
Die Anfragen des relationalen Tupelkalkuls sind von der Form: {t|P(t)} mit t Tupelvariable und P(t) eine Formel. Formeln werden aus Atomen zusammengebaut (siehe Denition).
Denition (Semantik)
Ein Tupel t ist im Ergebnis, wenn es die Formel P(t) erfullt. t ist eine freie Variable der Formel P(t), ist also nicht durch einen Quantor (, ) gebunden.
Katrin Seyr
Seite 49
4. Datenabfragesprachen
4. Datenabfragesprachen
Katrin Seyr
Seite 51
4. Datenabfragesprachen
Beispiel
{n|(n Professoren)} gibt alle jene Tupel aus, die nicht in der Tabelle Professoren vorkommen. Davon knnen wir uns unendlich viele vorstellen. o
Denition
Ein Ausdruck des Tupelkalkuls heit sicher, wenn das Ergebnis des Ausdrucks eine Teilmenge der Domne ist, wobei die Domne einer Formel alle in der a a Formel vorkommenden Konstanten und alle Attributwerte von Relationen, die in der Formel referenziert werden, enthlt. a
Katrin Seyr
Seite 52
4. Datenabfragesprachen
Denition (Semantik)
Eine Domne v1 , v2 , . . . , vn ist im Ergebnis, wenn es die Formel P(v1 , v2 , . . . , vn ) a erfullt. v1 , v2 , . . . , vn sind freie Variablen der Formel P(v1 , v2 , . . . , vn ), sind also nicht durch einen Quantor (, ) gebunden.
Katrin Seyr
Seite 53
4. Datenabfragesprachen
Wir suchen Paare von Professoren und die ihnen zugeordneten Assistenten: {[n, a]|p, r , o([p, n, r , o] Professoren m, f ([a, m, f , p] Assistenten))}
Wir suchen Name und MatrNr von Studenten mit mindestens einer Prufung von Curie: {[m, n] | s([m, n, s] Studenten v , p, g ([m, v , p, g ] pr u fen a, r , b([p, a, r , b] Professoren a = Curie )))}
Katrin Seyr
Seite 54
4. Datenabfragesprachen
Katrin Seyr
Seite 55
4. Datenabfragesprachen
Beispiel
{[p, n, r , o]|([p, n, r , o] Professoren)} gibt wieder alle jene Tupel aus, die nicht in der Tabelle Professoren vorkommen. Davon konnen wir uns wieder unendlich viele vorstellen. Die Denition der Sicherheit im Domnenkalkul ist komplizierter als im Fall des a Tupelkalkuls, da die Variablen im Domnenkalkul an Wertebereiche gebunden a sind, die i.A. nicht endlich sind (z.B. MatrNr: int).
Katrin Seyr
Seite 56
4. Datenabfragesprachen
Die drei Sprachen relationale Algebra, relationaler Tupelkalkul, eingeschrnkt auf sichere Ausdrucke und a relationaler Domnenkalkul, eingeschrnkt auf sichere Ausdrucke a a sind gleich mchtig a Wichtig: SQL ist ebenfalls gleich mchtig (mit bestimmten Einschrnkungen) a a
Katrin Seyr
Seite 57