Katrin Seyr
Institut fu r Informationssysteme Technische Universit at Wien
Katrin Seyr
Seite 1
1. Uberblick
Uberblick
1 2 3
Datenabfragesprachen
Relationale Algebra Relationenkalku l
Katrin Seyr
Seite 2
2. Begriserkl arungen
Begriserkl arungen
Denition (Relation)
Seien D1 , D2 , . . . , Dn Dom anen (Wertebereiche) Eine Relation (=Tabelle) u anen ist deniert als eine Teilmenge ber den n Dom des kartesischen Produktes der n Dom anen: R D 1 Dn
Beispiel
R string string integer
Katrin Seyr
Seite 3
2. Begriserkl arungen
Begriserkl arungen
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. Begriserkl arungen
Begriserkl arungen
Beispiel
Das Telefonbuch ist ein Beispiel fu r 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. Begriserkl arungen
Schlu ssel
Beispiele
Telefonbuch: {[Name: string, Adresse: string, Telefonnr:integer]} Telefonbuch: {[Name: string, Adresse: string, Telefonnr:integer]}
Katrin Seyr
Seite 6
VorlNr
.......
Raum
Uberf u hrung des Konzeptuellen Schemas in ein Logisches Schema (in der VL: Relationales Modell)
Studenten h oren MatrNr 26120 24002 24002 ... VorlNr 5001 5001 4052 ... Vorlesungen VorlNr 5001 5041 5049 4052 5216 ... Titel Grundzu ge Ethik M aeutik 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 fu nf Beziehungstypen aus dem Unischema h oren: {[MatrNr: integer, VorlNr: integer]} (N:M) lesen: {[PersNr: integer, VorlNr: integer]} (1:N) arbeitenFu r: {[AssiPersNr: integer, ProfPersNr: integer]} (N:1) voraussetzen: {[Vorg anger: integer, Nachfolger: integer]} (N:M) pru fen: {[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 ...
h oren MatrNr 26120 24002 24002 ... VorlNr 5001 5001 4052 ...
Vorlesungen VorlNr 5001 5041 5049 4052 5216 ... Titel Grundzu ge Ethik M aeutik Logik Bioethik ...
Katrin Seyr
Seite 13
Schlu ssel einer Relation, die aus einer N:M Beziehung entstanden ist, beinhaltet alle Fremdschlu sselattribute der an der Beziehung beteiligten Entities.
Beispiele
h oren: {[MatrNr: integer, VorlNr: integer]} (N:M) voraussetzen: {[Vorg anger: integer, Nachfolger: integer]} (N:M)
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 Grundzu ge Ethik M aeutik Logik Bioethik ...
Katrin Seyr
Seite 15
Schlu ssel einer Relation, die aus einer 1:N Beziehung entstanden ist, beinhaltet jene Fremdschlu sselattribute, die von der N Seite der an der Beziehung beteiligten Entity stammen.
Beispiele
lesen: {[PersNr: integer, VorlNr: integer]} (1:N) arbeitenFu r: {[AssiPersNr: integer, ProfPersNr: integer]} (N:1) pru fen: {[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 Schlu ssel 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 Grundzu ge Ethik M aeutik 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 Grundzu ge Ethik M aeutik Logik Bioethik ... SWS 4 4 2 4 2 ...
Problem Schlu ssel: Relation Professoren braucht einen neuen Schlu ssel Update-Anomalie: Sokrates zieht um Einfu alt noch keine Vorlesung. Was ist der ge-Anomalie: Curie ist neu und h Schlu ssel? L osch-Anomalie: Vorlesung Ethik f allt weg
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
Pru fungen: {[Student.MatrNr, Pru fTeil, Note]} umfassen: {[Pru fungen.MatrNr, Pru fungen.Pru fTeil, VorlNr]} abhalten: {[Pru fungen.MatrNr, Pru fungen.Pru fTeil, PersNr]}
Katrin Seyr
Seite 23
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
Katrin Seyr
Seite 25
Katrin Seyr
Seite 26
4. Datenabfragesprachen
Datenabfragesprachen
Gesucht: Sprache, die Information aus dem Datenbanksystem extrahiert (Data Query Language). die relationale Algebra der Relationenkalku l Bilden theoretische Grundlage fu r SQL Sind gleich ausdrucksstark: d.h. alles, was in relationaler Algebra ausgedru ckt werden kann, kann auch im Relationenkalku l ausgedru ckt 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 Ausfu hrung 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 auerer Join bzw. : linker bzw. rechter Semi-Join
: Durchschnitt : Division
Katrin Seyr Seite 29
4. Datenabfragesprachen
Die Selektion F (R )
Auswahl von Zeilen der Relation/Tabelle R mittels der Formel F F verwendet Vergleichsoperatoren (=, =, , , >, <) und logische Operatoren (, , )
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
Die Projektion Ai (R )
Auswahl einer Menge von Spalten Ai einer Tabelle E
Beispiel
Welche Rangbezeichnungen fu r 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 Pru fung absolviert haben.
MatrNr (Studenten) MatrNr (pr u fen) MatrNr 24002 26120 26830 29120 29555
Katrin Seyr
Seite 33
4. Datenabfragesprachen
Beispiel
Studenten ho ren MatrNr 24002 24002 ... 24002 25403 ... 29555 29555
Katrin Seyr
4. Datenabfragesprachen
Die Umbenennung (R )
Die Umbenennung von Attributen AB (R ): AB (R ) benennt das Attribut B der Relation R neu mit A Die Umbenennung von Attributen ist notwendig, um bei Verknu pfung von Relationen die Eindeutigkeit der Attributnamen sicherzustellen.
Beispiel
Bei der Verknu pfung der Relationen Studenten und ho ren wu rde ohne Umbenennung das Attribut MatrNr zweimal vorkommen. Wir benennen es neu mit h ort ho ren) rt MatrNr (ho
Katrin Seyr
Seite 35
4. Datenabfragesprachen
Die Umbenennung (R )
Die Umbenennung von Relationen V (R ) Die Relation R bekommt den neuen Namen V Die Umbenennung von Relationen ist notwendig, um bei Verknu pfung einer Relation mit sich selbst die Eindeutigkeit der Relationennamen sicherzustellen.
Beispiel
Welches sind die Vorlesungsnummern der Vorlesungen, die indirekte Vorg anger 2. Stufe der VO 5216 sind (= Vorg anger der Vorg anger von 5216) 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 natu rliche Verbund verknu pft 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 natu rliche 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 Grundzu ge 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 Pr adikat u ber den Attributen A1 , . . . , An , B1 , . . . , Bm Der allgemeine Verbund ist deniert als R
S = (R S )
Beispiele ()
= Sem > 10 SWS = 4 PersNr = 2134 = Student .MatrNr = ho ren.MatrNr ho ren.VorlNr = Vorlesungen.VorlNr = 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 ausgedru ckt 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 fu r jedes Tupel s S ein Tupel r R gibt, mit: r .S = s r .(R S ) = t Die Division kann wie folgt ausgedru ckt 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 Relationenkalku l
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 Relationenkalku l sind von der Form: {t |P (t )} wobei P (t ) eine Formel ist. Es gibt zwei unterschiedliche, aber gleichm achtige Auspr agungen: der relationale Tupelkalku l der relationale Dom anenkalku l
Katrin Seyr
Seite 48
4. Datenabfragesprachen
Denition (Syntax)
Die Anfragen des relationalen Tupelkalku ls 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 ) erfu llt. 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 k onnen wir uns unendlich viele vorstellen.
Denition
Ein Ausdruck des Tupelkalku ls heit sicher, wenn das Ergebnis des Ausdrucks eine Teilmenge der Dom ane ist, wobei die Dom ane einer Formel alle in der Formel vorkommenden Konstanten und alle Attributwerte von Relationen, die in der Formel referenziert werden, enth alt.
Katrin Seyr
Seite 52
4. Datenabfragesprachen
Denition (Semantik)
Eine Dom ane v1 , v2 , . . . , vn ist im Ergebnis, wenn es die Formel P (v1 , v2 , . . . , vn ) erfu llt. 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 Pru fung 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 ko nnen wir uns wieder unendlich viele vorstellen. Die Denition der Sicherheit im Dom anenkalku l ist komplizierter als im Fall des Tupelkalku anenkalku ls, da die Variablen im Dom l an Wertebereiche gebunden sind, die i.A. nicht endlich sind (z.B. MatrNr: int).
Katrin Seyr
Seite 56
4. Datenabfragesprachen
Die drei Sprachen relationale Algebra, relationaler Tupelkalku ankt auf sichere Ausdru l, eingeschr cke und relationaler Dom anenkalku ankt auf sichere Ausdru l, eingeschr cke sind gleich m achtig Wichtig: SQL ist ebenfalls gleich m achtig (mit bestimmten Einschr ankungen)
Katrin Seyr
Seite 57