of 57
Das relationale Modell
Das relationale ModellVO Datenmodellierung
Katrin SeyrInstitut fur Informationssysteme Technische Universitt Wien a
Katrin Seyr
Seite 1
Das relationale Modell
1. Uberblick
Uberblick
1 2 3
Uberblick Begriserklrungen a Umsetzung des konzeptuellen in logisches (relationales) Schema Entitytypen, Beziehungstypen Funktionalitt, Generalisierung, schwache Entities a
4
Datenabfragesprachen Relationale Algebra Relationenkalkul
5
Ausdruckskraft von Abfragesprachen
Katrin Seyr
Seite 2
Das relationale Modell
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
BeispielR string string integer
Katrin Seyr
Seite 3
Das relationale Modell
2. Begriserklrungen a
Begriserklrungen aDenition (Tupel)Ein Tupel (=Zeile) ist ein Element der Relation tR
Beispielt = (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
Das relationale Modell
2. Begriserklrungen a
Begriserklrungen aBeispielDas 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
Das relationale Modell
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.
BeispieleTelefonbuch: {[Name: string, Adresse: string, Telefonnr:integer]} Telefonbuch: {[Name: string, Adresse: string, Telefonnr:integer]}
Katrin Seyr
Seite 6
Das relationale Modell
3. Umsetzung konzeptuelles in logisches Schema
Umsetzung konzeptuelles in logisches SchemaMatrNr Studenten N hren ....... Rang M N lesen Professoren 1 PersNr Vorlesungen Name
VorlNr
.......
Raum
3
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
MatrNr 24002 25403 26120 26830 28106 29555 ...Katrin Seyr
Name Xenokrates Jonas Fichte Aristoxenos Carnap Feuerbach ...
Das relationale Modell
3. Umsetzung konzeptuelles in logisches Schema
3.1. Relationale Darstellung von Entitytypen
Relationale Darstellung von Entitytypen
E
A1 A2 .....
Ak
E : {[A1 : typ1, A2 : typ2, . . . , Ak : typk]}
Katrin Seyr
Seite 8
Das relationale Modell
3. Umsetzung konzeptuelles in logisches Schema
3.1. Relationale Darstellung von Entitytypen
Relationale Darstellung von EntitytypenBeispiel (Unischema)N MatrNr Name Semester voraussetzen M
Vorgnger N hren Studenten Vorlesungen M
Nachfolger
VorlNr
SWS
Titel N N prfen PersNr Fachgebiet 1 Name 1 PersNr M lesen
Name Assistenten N arbeitenFr Raum 1 Professoren Rang
Katrin Seyr
Seite 9
Das relationale Modell
3. Umsetzung konzeptuelles in logisches Schema
3.1. Relationale Darstellung von Entitytypen
Relationale Darstellung von Entitytypen
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
Das relationale Modell
3. Umsetzung konzeptuelles in logisches Schema
3.2. Relationale Darstellung von Beziehungstypen
Relationale Darstellung von BeziehungstypenA11
A1k1
E1
AR1
R ARkR
A21
An1
A2k2
E2
Ank2
En
R : {[A11 , . . . , A1k1 , A21 , . . . , A2k2 , . . . , An1 , . . . , Ankn , AR1 , . . . , ARkR ]}Schlussel von E 1 Schlussel von E 2 Schlussel von En Attribute von R
Katrin Seyr
Seite 11
Das relationale Modell
3. Umsetzung konzeptuelles in logisches Schema
3.2. Relationale Darstellung von Beziehungstypen
Relationale Darstellung von Beziehungstypen
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
Das relationale Modell
3. Umsetzung konzeptuelles in logisches Schema
3.3. N:M Beziehung (hren) o
N:M Beziehung (horen) MatrNr Name Semester VorlNr SWS Titel
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
Das relationale Modell
3. Umsetzung konzeptuelles in logisches Schema
3.4. Schlssel von N:M Beziehungen u
Schlussel von N:M Beziehungen
Schlussel einer Relation, die aus einer N:M Beziehung entstanden ist, beinhaltet alle Fremdschlusselattribute der an der Beziehung beteiligten Entities.
Beispielehoren: {[MatrNr: integer, VorlNr: integer]} (N:M) voraussetzen: {[Vorgnger: integer, Nachfolger: integer]} (N:M) a
Katrin Seyr
Seite 14
Das relationale Modell
3. Umsetzung konzeptuelles in logisches Schema
3.5. 1:N Beziehung (lesen)
1:N Beziehung (lesen)PersNr Name Rang Raum VorlNr SWS Titel
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
Das relationale Modell
3. Umsetzung konzeptuelles in logisches Schema
3.6. Schlssel von 1:N Beziehungen u
Schlussel von 1:N Beziehungen
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.
Beispielelesen: {[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
Das relationale Modell
3. Umsetzung konzeptuelles in logisches Schema
3.6. Schlssel von 1:N Beziehungen u
Schlussel von 1:N Beziehungen
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
Das relationale Modell
3. Umsetzung konzeptuelles in logisches Schema
3.6. Schlssel von 1:N Beziehungen u
Schlussel von 1:N Beziehungen PersNr Name Rang Raum VorlNr SWS Titel
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
Das relationale Modell
3. Umsetzung konzeptuelles in logisches Schema
3.7. Anomalien
AnomalienProfessoren 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 aKatrin Seyr Seite 19
Das relationale Modell
3. Umsetzung konzeptuelles in logisches Schema
3.8. Nullwerte und deren Vermeidung
Nullwerte und deren VermeidungBeispielStudierende, die als StudienassistentInnen arbeiten, bekommen einen Arbeitsraum. Es gibt 25.000 Studierende und 200 StudienassistentInnen.MatrNr Name Semester RaumNr m2 Lage
N sitzen Studenten (0,1)
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
Das relationale Modell
3. Umsetzung konzeptuelles in logisches Schema
3.9. 1:1 Beziehung (sitzen)
1:1 Beziehung (sitzen)PersNr Name Rang RaumNr m2 Lage
1 sitzen Professoren (1,1)
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: NullwertvermeidungKatrin Seyr Seite 21
oder
Das relationale Modell
3. Umsetzung konzeptuelles in logisches Schema
3.10. Relationale Darstellung der Generalierung
Relationale Darstellung der Generalierung
Angestellte
PersNr
Name is-a Rang
Fach
Assistenten
Professoren
Raum
Angestellte: {[PersNr, Name]} Professoren: {[Angestellte.PersNr, Rang, Raum]} Assistenten: {[Angestellte.PersNr, Fachgebiet]}
Katrin Seyr
Seite 22
Das relationale Modell
3. Umsetzung konzeptuelles in logisches Schema
3.11. Relationale Darstellung schwacher Entities
Relationale Darstellung schwacher EntitiesMatrNr Name Semester Note
1 ablegen
N Prfungen
PrfTeil
Studenten N N
PersNr
umfassen VorlNr
abhalten Name
SWS
M
M
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
Das relationale Modell
3. Umsetzung konzeptuelles in logisches Schema
3.12. Relationale Universittsdatenbank a
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
Das relationale Modell
3. Umsetzung konzeptuelles in logisches Schema
3.12. Relationale Universittsdatenbank a
Relationale Universittsdatenbank aVorlesungen 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
Das relationale Modell
3. Umsetzung konzeptuelles in logisches Schema
3.12. Relationale Universittsdatenbank a
Relationale Universittsdatenbank ahren 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
Das relationale Modell
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
Das relationale Modell
4. Datenabfragesprachen
4.1. Die relationale Algebra
Die relationale Algebra
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
Das relationale Modell
4. Datenabfragesprachen
4.2. Die Operatoren der relationalen Algebra
Die Operatoren der relationalen AlgebraBasisoperatoren: Selektion : Projektion : Vereinigung : Mengendierenz : kartesisches Produkt (Kreuzprodukt) : Umbenennung
: Join (Verbund) , bzw. : linker, rechter bzw. voller uerer Join a bzw. : linker bzw. rechter Semi-Join: Durchschnitt : DivisionKatrin Seyr Seite 29
Das relationale Modell
4. Datenabfragesprachen
4.2. Die Operatoren der relationalen Algebra
Die Selektion F (R)Auswahl von Zeilen der Relation/Tabelle R mittels der Formel F F verwendet Vergleichsoperatoren (=, =, , , >, 10 (Studenten) MatrNr 24002 25403 Name Xenokrates Jonas Semester 18 12
Katrin Seyr
Seite 30
Das relationale Modell
4. Datenabfragesprachen
4.2. Die Operatoren der relationalen Algebra
Die Projektion Ai (R)Auswahl einer Menge von Spalten Ai einer Tabelle E
BeispielWelche Rangbezeichnungen fur Professoren gibt es? Rang (Professoren) Rang C3 C4
Achtung: Duplikate werden eliminiert
Katrin Seyr
Seite 31
Das relationale Modell
4. Datenabfragesprachen
4.2. Die Operatoren der relationalen Algebra
Die Vereinigung R SDie Vereinigung ist deniert auf zwei Relationen R, S mit gleichem Schema und gibt alle Zeilen, die in R oder in S vorkommen, aus.
BeispielWie heien die Professoren und die Assistenten?Name (Professoren) Name (Assistenten) Name Sokrates Russel ... Kant Platon Aristoteles ... Spinoza
Katrin Seyr
Seite 32
Das relationale Modell
4. Datenabfragesprachen
4.2. Die Operatoren der relationalen Algebra
Die Mengendierenz R SDie Mengendierenz ist deniert auf zwei Relationen R, S mit gleichem Schema und gibt alle Zeilen, die in R aber nicht in S vorkommen, aus.
BeispielWie 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
Das relationale Modell
4. Datenabfragesprachen
4.2. Die Operatoren der relationalen Algebra
Das Kartesische Produkt R SDas Kartesische Produkt verknupft jede Zeile von R mit jeder Zeile von S. Das Schema von R S ist die Vereinigung der Attribute von R und S. Problematisch ist die Ergebnisgre, da |R S| = |R| |S|. Eine bessere o Operation ist der Join.
BeispielStudenten h ren o MatrNr 24002 24002 ... 24002 25403 ... 29555 29555Katrin Seyr
Name Xenokrates Xenokrates ... Xenokrates Jonas ... Feuerbach Feuerbach
Sem 18 18 ... 18 12 ... 2 2
horen.MatrNr 26120 27550 ... 25403 26120 ... 29555 25403
VorlNr 5001 5001 ... 5022 5001 ... 5022 5022Seite 34
Das relationale Modell
4. Datenabfragesprachen
4.2. Die Operatoren der relationalen Algebra
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 Verknupfung von Relationen die Eindeutigkeit der Attributnamen sicherzustellen.
BeispielBei 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
Das relationale Modell
4. Datenabfragesprachen
4.2. Die Operatoren der relationalen Algebra
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 Verknupfung einer Relation mit sich selbst die Eindeutigkeit der Relationennamen sicherzustellen.
BeispielWelches 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
Das relationale Modell
4. Datenabfragesprachen
4.2. Die Operatoren der relationalen Algebra
Denition relationale AlgebraDie Basisausdrucke der relationalen Algebra sind: Relationen der Datenbank oder konstante Relationen
Denition (relationale Algebra)Seien R und S Ausdrucke der relationalen Algebra, so sind: F (R) und Ai (R) R S R S R S AB (R) und V (R) ebenfalls gultige Ausdrucke der relationalen Algebra.
Katrin Seyr
Seite 37
Das relationale Modell
4. Datenabfragesprachen
4.2. Die Operatoren der relationalen Algebra
Der naturliche Verbund (Join) R
S
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:
DenitionSeien 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 ,...A1
m ,R.B1 ,...R.Bk ,C1 ,...Cn
R.B1 =S.B1 R.Bk =S.Bk (R S)
R R S A1 ... A2 ... ... ... Am ... B1 ... B2 ...
SS R Bk ... C1 ... C2 ... ... ... Cn ... ... ...
R S
Katrin Seyr
Seite 38
Das relationale Modell
4. Datenabfragesprachen
4.2. Die Operatoren der relationalen Algebra
Bsp: Der naturliche Join Welche Studierende besuchen welche Vorlesungen?Studenten MatrNr 24002 25403 ... Name Xenokrates Jonas ... Sem 18 12 ... hren o MatrNr 26120 27550 ... VorlNr 5001 5001 ...
Vorlesungen VorlNr 5001 5041 ... Titel Grundzuge Ethik ... SWS 4 4 ... PersNr 2137 2125 ...
Katrin Seyr
Seite 39
Das relationale Modell
4. Datenabfragesprachen
4.2. Die Operatoren der relationalen Algebra
Bsp: Der naturliche Join Studenten h ren Vorlesung o MatrNr 26120 27550 27550 28106 28106 28106 28106 29120 29120 29120 29555 25403 Name Fichte Schopenhauer Schopenhauer Carnap Carnap Carnap Carnap Theophrastos Theophrastos Theophrastos Feuerbach Jonas Sem 10 6 6 3 3 3 3 2 2 2 2 12 VorlNr 5001 5001 4052 5041 5001 4052 4630 5001 5041 5049 5022 5022 Titel Grundzuge Grundzuge Logik Ethik Grundzuge Logik Die drei Kritiken Grundzuge Ethik Meutik a Glaube und Wissen Glaube und Wissen SWS 4 4 4 4 4 4 4 4 4 2 2 2 PersNr 2137 2137 2125 2125 2137 2125 2137 2137 2125 2125 2134 2134
Katrin Seyr
Seite 40
Das relationale Modell
4. Datenabfragesprachen
4.2. Die Operatoren der relationalen Algebra
Der allgemeine Verbund (Join)Der allgemeine Verbund verknupft zwei Relationen R, S, auch wenn sie keine gleichnamigen Attribute haben, aufgrund einer logischen Bedingung.
DenitionSeien 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
Das relationale Modell
4. Datenabfragesprachen
4.2. Die Operatoren der relationalen Algebra
Andere Join Artennaturlicher Join (Wh): nur jene Tupel bleiben im Ergebnis, die einen Join-Partner gefunden haben.L A a1 a2 B b1 b2 C c1 c2 R R
C c1 c3
D d1 d2
E e1 e2
SC c1 D d1 E e1
=
A a1
B b1
voller uerer Join: alle Tupel bleiben erhalten aL A a1 a2 B b1 b2 C c1 c2 R R E e1 e2 A B b1 b2 NULL
SC c1 c2 c3 D d1 NULL d2 E e1 NULL e2
C c1 c3
D d1 d2
=
a1 a2 NULL
Katrin Seyr
Seite 42
Das relationale Modell
4. Datenabfragesprachen
4.2. Die Operatoren der relationalen Algebra
Andere Join Artenlinker uerer Join: Tupel der linken Relation bleiben erhalten aL A a1 a2 B b1 b2 C c1 c2 R R E e1 e2 A B b1 b2 C c1 c2
SD d1 NULL E e1 NULL
C c1 c3
D d1 d2
=
a1 a2
rechter uerer Join: Tupel der rechten Relation bleiben erhalten aL A a1 a2 B b1 b2 C c1 c2 R R E e1 e2 A B b1 NULL
SC c1 c3 D d1 d2 E e1 e2
C c1 c3
D d1 d2
=
a1 NULL
Katrin Seyr
Seite 43
Das relationale Modell
4. Datenabfragesprachen
4.2. Die Operatoren der relationalen Algebra
Andere Join ArtenSemi-Join von L mit R (bzw. R mit L): alle Tupel der Relation L (bzw. R), die einen Join eingehen knnen, werden ausgewhlt. o aL A a1 a2 B b1 b2 C c1 c2 R LR
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
R
C c1 c3
D d1 d2
E e1 e2
LR
=
C c1
D d1
E e1
Katrin Seyr
Seite 44
Das relationale Modell
4. Datenabfragesprachen
4.2. Die Operatoren der relationalen Algebra
Der Mengendurchschnitt R SDer 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)
BeispielGesucht 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
Das relationale Modell
4. Datenabfragesprachen
4.2. Die Operatoren der relationalen Algebra
Die relationale Division R SDie relationale Division ist deniert auf zwei Relationen R und S, wobei das Schema von S eine Teilmenge des Schemas von R sein muss. Das Ergebnisschema besteht aus den Attributen von R ohne die Attribute von S und das Ergebnis beinhaltet jene Tupel aus R, die eingeschrnkt auf die Dierenz a der Attribute fur alle Tupel aus S den selben Wert haben, die Division wird also bei Anfragen eingesetzt, bei denen eine Allquantizierung vorkommt.
DenitionSeien 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
Das relationale Modell
4. Datenabfragesprachen
4.2. Die Operatoren der relationalen Algebra
Bsp: die DivisionFinde die Matrikelnummer jener Studierenden, die alle 4-stundigen Vorlesungen gehrt haben. ohren 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 VorlNr SWS=4 (Vorlesungen) VorlNr 5001 R S
5041 4052 4630
=
MatrNr 28106
Katrin Seyr
Seite 47
Das relationale Modell
4. Datenabfragesprachen
4.3. Der Relationenkalkl u
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
Das relationale Modell
4. Datenabfragesprachen
4.3. Der Relationenkalkl u
Der relationale Tupelkalkul
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
Das relationale Modell
4. Datenabfragesprachen
4.3. Der Relationenkalkl u
Der relationale Tupelkalkul BeispieleWir suchen C4-Professoren: {p|p Professoren p.Rang = C 4 } Wir suchen Paare von Professoren und die ihnen zugeordneten Assistenten: {[p.Name, a.PersNr ]|p Professoren a Assistenten p.PersNr = a.Boss} Wir suchen Studenten mit mindestens einer Vorlesung von Curie: {s|s Studenten h h ren(s.MatrNr = h.MatrNr o v Vorlesungen(h.VorlNr = v .VorlNr p Professoren(p.PersNr = v .gelesenVon p.Name = Curie )))} Wir suchen Studenten mit allen vierstundigen Vorlesungen: {s|s Studenten v Vorlesungen(v .SWS = 4 h h ren(h.VorlNr = v .VorlNr h.MatrNr = s.MatrNr ))} oKatrin Seyr Seite 50
Das relationale Modell
4. Datenabfragesprachen
4.3. Der Relationenkalkl u
Der relationale Tupelkalkul Denition (Syntax: Atome und Formeln)Atome: t R wobei t Tupelvariable und R ein Relationenname s.At.B wobei s und t Tupelvariablen, A und B Attributnamen und ein Vergleichsperator (=, =, , ) s.Ac wobei c Konstante Formeln: Atome sind Formeln P Formel, so sind auch P und (P) Formeln P1 , P2 Formeln, so sind auch P1 P2 , P1 P2 und P1 P2 Formeln P(t) Formel mit einer freien Variable t, so sind auch t R(P(t)) und t R(P(t)) Formeln
Katrin Seyr
Seite 51
Das relationale Modell
4. Datenabfragesprachen
4.3. Der Relationenkalkl u
Sichere Ausdrucke im Tupelkalkul Anfragen konnen unter Umstnden eine unendliche Ergebnismenge spezizieren: a
Beispiel{n|(n Professoren)} gibt alle jene Tupel aus, die nicht in der Tabelle Professoren vorkommen. Davon knnen wir uns unendlich viele vorstellen. o
DenitionEin 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
Das relationale Modell
4. Datenabfragesprachen
4.3. Der Relationenkalkl u
Der relationale Domnenkalkul a Denition (Syntax)Die Anfragen des relationalen Domnenkalkuls sind von der Form: a {[v1 , v2 , . . . , vn ]|P(v1 , v2 , . . . , vn )} mit v1 , v2 , . . . , vn Domnenvariablen, die einen Attributwert reprsentieren, und a a P(v1 , v2 , . . . , vn ) eine Formel. Formeln werden aus Atomen zusammengebaut (siehe unten).
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
Das relationale Modell
4. Datenabfragesprachen
4.3. Der Relationenkalkl u
Der relationale Domnenkalkul a BeispieleWir suchen C4-Professoren: {[p, n]|o, r ([p, n, r , o] Professoren r = C 4 )}
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
Das relationale Modell
4. Datenabfragesprachen
4.3. Der Relationenkalkl u
Der relationale Domnenkalkul a Denition (Syntax: Atome und Formeln)Atome: v1 , . . . , vn R wobei v1 , v2 , . . . , vn Domnenvariablen und R ein n-stelliger a Relationenname xy wobei x, y Domnenvariablen, ein Vergleichsperator a (=, =, , ) xc wobei c Konstante Formeln: Atome sind Formeln P Formel, so sind auch P und (P) Formeln P1 , P2 Formeln, so sind auch P1 P2 , P1 P2 und P1 P2 Formeln P(v ) Formel mit freien Variablen v , so sind auch v (P(v )) und v (P(v )) Formeln
Katrin Seyr
Seite 55
Das relationale Modell
4. Datenabfragesprachen
4.3. Der Relationenkalkl u
Sichere Ausdrucke im Tupelkalkul
Anfragen knnen unter Umstnden eine unendliche Ergebnismenge spezizieren: o a
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
Das relationale Modell
4. Datenabfragesprachen
4.4. Ausdruckskraft der Abfragesprachen
Ausdruckskraft der Abfragesprachen
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