Historische Entwicklung relationaler DBMS Grundlagen des relationalen Modells
Historische Entwicklung relationaler DBMS
Grundlagen des relationalen Modells Seien D 1, D 2, . . . , Dn Domänen (~Wertebereiche) = Relation: R D 1 x. . . x Dn Bsp. : Telefonbuch string x integer = Tupel: t R Bsp. : t = („Mickey Mouse“, „Main Street“, 4711) = Schema: legt die Struktur der gespeicherten Daten fest Bsp. : Telefonbuch: {[Name: string, Adresse: string, Telefon#: integer]}
Telefonbuch Name Straße Mickey Mouse Main Street Minnie Mouse Broadway Donald Duck Broadway. . . Telefon# 4711 94725 95672. . . • Ausprägung: der aktuelle Zustand der Datenbasis • Schlüssel: minimale Menge von Attributen, deren Werte ein Tupel eindeutig identifizieren • Primärschlüssel: wird unterstrichen • Einer der Schlüsselkandidaten wird als Primärschlüssel ausgewählt • Hat eine besondere Bedeutung bei der Referenzierung von Tupeln
Uni-Schema in ER voraussetzen Nachfolger Vorgänger Matr. Nr Name Semester N Studenten N N hören M Fachgebiet 1 Assistenten N arbeiten. Für N SWS Titel lesen prüfen Pers. Nr Name Vorlesungen M Note M Vorl. Nr 1 1 Professoren Pers. Nr Name Rang Raum
Uni-Schema in UML
Uni-Schema in UML -- Schlüssel
Relationale Darstellung von Objekttypen Studenten : {[Matr. Nr: integer, Name: string, Semester: integer]} Vorlesungen : {[Vorl. Nr: integer, Titel: string, SWS: integer]} Professoren : {[Pers. Nr: integer, Name: string, Rang: string, Raum: integer]} Assistenten : {[Pers. Nr: integer, Name: string, Fachgebiet: string]}
Relationale Darstellung von Assoziationen E 1 A 12 … A 1 k 1 B 1 … Bn … R: {[ R ]} E 2 A 21 A 22 … A 2 k 2 C 1 … Cn …
Beziehungen unseres Beispiel-Schemas Studenten Matr. Nr Name Semester … Vorlesungen (1, *) hören (0, *) Vorl. Nr Titel many-to-many, N: M SWS … hören : {[Matr. Nr: integer, Vorl. Nr: integer]} lesen : {[Pers. Nr: integer, Vorl. Nr: integer]} arbeiten. Für: {[Assistenten. Pers. Nr: integer, Prof. Pers. Nr: integer]} voraussetzen: {[Vorgänger: integer, Nachfolger: integer]} prüfen: {[Matr. Nr: integer, Vorl. Nr: integer, Pers. Nr: integer,
Beziehungen unseres Beispiel-Schemas Vorlesungen Professoren (1, 1) lesen (0, *) Vorl. Nr Pers. Nr Titel Name one-to-many, 1: N SWS Rang … … hören : {[Matr. Nr: integer, Vorl. Nr: integer]} lesen : {[Pers. Nr: integer, Vorl. Nr: integer]} arbeiten. Für: {[Assistenten. Pers. Nr: integer, Prof. Pers. Nr: integer]} voraussetzen: {[Vorgänger: integer, Nachfolger: integer]} prüfen: {[Matr. Nr: integer, Vorl. Nr: integer, Pers. Nr: integer, Note: decimal]}
Schlüssel der Relationen hören : {[Matr. Nr: integer, Vorl. Nr: integer]} lesen : {[Pers. Nr: integer, Vorl. Nr: integer]} arbeiten. Für: {[Assistenten. Pers. Nr: integer, Prof. Pers. Nr: integer]} voraussetzen: {[Vorgänger: integer, Nachfolger: integer]} prüfen: {[Matr. Nr: integer, Vorl. Nr: integer, Pers. Nr: integer, Note: decimal]}
Ausprägung der Beziehung hören Studenten Matr. Nr. . . 26120. . . 27550. . Studenten N hören Matr. Nr Vorl. Nr 26120 5001 27550 4052 28106 5041 28106 5052 28106 5216 28106 5259 29120 5001 29120 5049 29555 5022 25403 5022 29555 5001 hören Vorlesungen Vorl. Nr. . . 5001. . . 4052. . M Vorlesungen
Verfeinerung des relationalen Schemas Professoren lesen 1 N 1: N-Beziehung = Initial-Entwurf = Vorlesungen : {[Vorl. Nr, Titel, SWS]} = Professoren : {[Pers. Nr, Name, Rang, Raum]} = lesen: {[Vorl. Nr, Pers. Nr]} Vorlesungen
Verfeinerung des relationalen Schemas 1: N-Beziehung = Initial-Entwurf Vorlesungen : {[Vorl. Nr, Titel, SWS]} Professoren : {[Pers. Nr, Name, Rang, Raum]} lesen: {[Vorl. Nr, Pers. Nr]} = Verfeinerung durch Zusammenfassung Vorlesungen : {[Vorl. Nr, Titel, SWS, gelesen. Von]} Professoren : {[Pers. Nr, Name, Rang, Raum]} Regel Relationen mit gleichem Schlüssel kann man zusammenfassen aber nur diese und keine anderen!
Ausprägung von Professoren und Vorlesung Vorl. Nr Pers. Nr 2125 2126 2127 2133 2134 2136 2137 Professoren Name Rang Raum Sokrates C 4 226 Russel C 4 232 Kopernikus C 3 310 Popper C 3 52 Augustinus C 3 309 Curie C 4 36 Kant C 4 7 Professoren 5001 Grundzüge 5041 Ethik 5043 Erkenntnistheorie 5049 Mäeutik 4052 Logik 5052 Wissenschaftstheorie 5216 Bioethik 5259 Der Wiener Kreis 5022 Glaube und Wissen 4630 Die 3 Kritiken lesen 1 Vorlesungen Titel SWS N 4 4 3 2 2 2 4 Gelesen Von 2137 2125 2126 2133 2134 2137 Vorlesungen
Vorsicht: So geht es NICHT Pers. Nr 2125. . . 2134 2136 Professoren Name Rang Raum Sokrates C 4 226. . Augustinus C 3 309 Curie C 4 36 Professoren liest 5041 5049 4052. . . 5022 ? ? lesen 1 Vorlesungen Vorl. Nr Titel SWS 5001 Grundzüge 4 5041 Ethik 4 5043 Erkenntnistheorie 3 5049 Mäeutik 2 4052 Logik 4 5052 Wissenschaftstheorie 3 5216 Bioethik 2 5259 Der Wiener Kreis 2 5022 Glaube und Wissen 2 4630 Die 3 Kritiken 4 N Vorlesungen
Vorsicht: So geht es NICHT: Folgen Anomalien Vorlesungen Pers. Nr 2125. . . 2134 2136 Professoren Name Rang Raum Sokrates C 4 226. . Augustinus C 3 309 Curie C 4 36 liest 5041 5049 4052. . . 5022 ? ? Vorl. Nr Titel SWS 5001 Grundzüge 4 5041 Ethik 4 5043 Erkenntnistheorie 3 5049 Mäeutik 2 4052 Logik 4 5052 Wissenschaftstheorie 3 5216 Bioethik 2 5259 Der Wiener Kreis 2 5022 Glaube und Wissen 2 4630 Die 3 Kritiken 4 = Update-Anomalie: Was passiert wenn Sokrates umzieht = Lösch-Anomalie: Was passiert wenn „Glaube und Wissen“ wegfällt = Einfügeanomalie: Curie ist neu und liest noch keine Vorlesungen
Die relationale Uni-DB Studenten Professoren Rang Raum Matr. Nr Name Semester Xenokrates 18 Vorl. Nr Titel SWS gelesen von 12 5001 Grundzüge 4 2137 Fichte 10 5041 Ethik 4 2125 Aristoxenos 8 5043 Erkenntnistheorie 3 2126 27550 Schopenhauer 6 5049 Mäeutik 2 2125 28106 Carnap 3 4052 Logik 4 2125 29120 Theophrastos 2 5052 Wissenschaftstheorie 3 2126 29555 Feuerbach 2 5216 Bioethik 2 2126 5259 Der Wiener Kreis 2 2133 Pers. Nr Name 2125 Sokrates C 4 226 24002 2126 Russel C 4 232 25403 Jonas 2127 Kopernikus C 3 310 26120 2133 Popper C 3 52 26830 2134 Augustinus C 3 309 2136 Curie C 4 36 2137 Kant C 4 7 voraussetzen Vorgänger Nachfolger 5001 5041 5001 5043 5001 5049 5041 5216 5043 5052 5041 5052 5259 hören prüfen Vorlesungen Matr. Nr Vorl. Nr 5022 Glaube und Wissen 2 2134 26120 5001 4630 Die 3 Kritiken 4 2137 27550 5001 27550 4052 28106 5041 Persl. Nr Name Fachgebiet Boss 28106 5052 3002 Platon Ideenlehre 2125 28106 5216 3003 Aristoteles Syllogistik 2125 28106 5259 3004 Wittgenstein Sprachtheorie 2126 29120 5001 3005 Rhetikus Planetenbewegung 2127 Assistenten Matr. Nr Vorl. Nr Pers. Nr Note 29120 5041 28106 5001 2126 1 3006 Newton Keplersche Gesetze 2127 29120 5049 3007 Spinoza Gott und Natur 2126 25403 5041 2125 2 29555 5022 27550 4630 2137 2 25403 5022
Professoren Vorlesungen Studenten Rang Raum Matr. Nr Name Semester Vorl. Nr Pers. Nr Name 2125 Sokrates C 4 226 24002 Xenokrates 18 2126 Russel C 4 232 25403 Jonas 12 2127 Kopernikus C 3 310 26120 Fichte 10 2133 C 3 52 26830 Aristoxenos 8 2134 Augustinus C 3 309 27550 Schopenhauer 6 2136 Curie C 4 36 28106 3 2137 Kant C 4 7 29120 Theophrastos 2 29555 2 Popper voraussetzen Carnap Feuerbach hören Vorgänger Nachfolger Titel SWS gelesen. V on 5001 Grundzüge 4 2137 5041 Ethik 4 2125 5043 Erkenntnistheorie 3 2126 5049 Mäeutik 2 2125 4052 Logik 4 2125 5052 Wissenschaftstheorie 3 2126 5216 Bioethik 2 2126 5259 Der Wiener Kreis 2 2133 5022 Glaube und Wissen 2 2134 4630 Die 3 Kritiken 4 2137 Matr. Nr Vorl. Nr 26120 5001 27550 4052 28106 5041 28106 5052 Persl. Nr Name Fachgebiet Boss 28106 5216 3002 Platon Ideenlehre 2125 28106 5259 3003 Aristoteles Syllogistik 2125 29120 5001 3004 Wittgenstein Sprachtheorie 2126 Matr. Nr Vorl. Nr Pers. Nr Note 29120 5041 3005 Rhetikus Planetenbewegung 2127 28106 5001 2126 1 29120 5049 3006 Newton Keplersche Gesetze 2127 25403 5041 2125 2 29555 5022 3007 Spinoza Gott und Natur 2126 27550 4630 2137 2 25403 5022 5001 5041 5001 5043 5001 5049 5041 5216 5043 5052 5041 5052 5259 prüfen Assistenten
Die relationale Algebra = Selektion = Pojektion = x Kreuzprodukt = A Join (Verbund) = Umbenennung = Mengendifferenz = Division = Vereinigung = Mengendurchschnitt = F Semi-Join (linker) = E Semi-Join (rechter) = C linker äußerer Join = D rechter äußerer Join
Die relationalen Algebra. Operatoren Semester > 10 (Studenten) Selektion Semester > 10 (Studenten) Matr. Nr Name Semester 24002 Xenokrates 18 25403 Jonas 12 Projektion Rang(Professoren) Rang C 4 C 3
Die relationalen Algebra. Operatoren Kartesisches Produkt Pers. Nr 2125. . . 2137 Professoren x hören Professoren Name Rang Sokrates C 4. . . Kant C 4 Raum 226. . . 7 • Problem: riesige Zwischenergebnisse • Beispiel: (Professoren x hören) • "bessere" Operation: Join (siehe unten) hören Matr. Nr Vorl. Nr 26120 5001. . . 29555 5001
Die relationalen Algebra. Operatoren Umbenennung = Umbenennung von Relationen = Beispiel: Ermittlung indirekter Vorgänger 2. Stufe der Vorlesung 5216 V 1. Vorgänger( V 2. Nachfolger=5216 V 1. Nachfolger = V 2. Vorgänger ( V 1 (voraussetzen) x V 2 (voraussetzen))) = Umbennung von Attributen Voraussetzung Vorgänger (voraussetzen)
Formale Definition der Algebra Basisausdrücke = Relation der Datenbank oder = konstante Relationen Operationen = Selektion: p (E 1) = Projektion: S (E 1) = Kartesisches Produkt: E 1 x E 2 = Umbenennung: V (E 1), A B (E 1) = Vereinigung: E 1 E 2 = Differenz: E 1 - E 2
Der natürliche Verbund (Join) Gegeben seien: • R(A 1, . . . , Am, B 1, . . . , Bk) • S(B 1, . . . , Bk, C 1, . . . , Cn) R A S = A 1, . . . , Am, R. B 1, . . . , R. Bk, C 1, . . . , Cn( R. B 1=S. B 1 A 1 R S A 2. . . Am B 1 RAS R S B 2. . . Bk . . . R. Bk = S. Bk(Rx. S)) C 1 S R C 2. . . Cn
Drei-Wege-Join (Studenten A hören) A Vorlesungen Matr. Nr Name Semester Vorl. Nr Titel SWS gelesen. Von 26120 Fichte 10 5001 Grundzüge 4 2137 27550 Jonas 12 5022 Glaube und Wissen 2 2134 28106 Carnap 3 4052 Wissenschftstheorie 3 2126 . .
Allgemeiner Join (Theta-Join) = Gegeben seien folgende Relationen(-Schemata) =R(A 1, . . . , An) und =S(B 1, . . . , Bm) R A S = (R x S) R A S R A 1 A 2 S. . . An B 1 B 2 . . . Bm
Andere Join-Arten • natürlicher Join A a 1 a 2 L B b 1 b 2 C c 1 c 2 A C c 1 c 3 R D d 1 d 2 E e 1 e 2 = A a 1 Resultat B C D b 1 c 1 d 1 A a 1 a 2 Resultat B C D b 1 c 1 d 1 b 2 c 2 E e 1 • linker äußerer Join A a 1 a 2 L B b 1 b 2 C c 1 c 2 C C c 1 c 3 R D d 1 d 2 E e 1 e 2 = E e 1 -
• rechter äußerer Join A a 1 a 2 L B b 1 b 2 C c 1 c 2 D C c 1 c 3 R D d 1 d 2 E e 1 e 2 = A a 1 - Resultat B C D b 1 c 1 d 1 c 3 d 2 E e 1 e 2
Andere Join-Arten • äußerer Join A a 1 a 2 L B b 1 b 2 C c 1 c 2 B C c 1 c 3 R D d 1 d 2 E e 1 e 2 = A a 1 a 2 - Resultat B C D b 1 c 1 d 1 b 2 c 3 d 2 • Semi-Join von L mit R A a 1 a 2 L B b 1 b 2 C c 1 c 2 E C c 1 c 3 R D d 1 d 2 E e 1 e 2 = Resultat A B C a 1 b 1 c 1 E e 1 - e 2
Andere Join-Arten (Forts. ) • Semi-Join von R mit L A a 1 a 2 L B b 1 b 2 C c 1 c 2 F C c 1 c 3 R D d 1 d 2 E e 1 e 2 = Resultat C D E c 1 d 1 e 1
Andere Join-Arten (Forts. ) • Anti-Semi-Join von L mit R A a 1 a 2 L B b 1 b 2 C c 1 c 3 R D d 1 d 2 E e 1 e 2 = Resultat A B C a 2 b 2 c 2
- Slides: 33