Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Historische Entwicklung relationaler DBMS Ted Codd: A Relational Model of Data for Large Shared Data Banks, Comm. ACM, Juni 1970, S. 377–387.

Ähnliche Präsentationen


Präsentation zum Thema: "Historische Entwicklung relationaler DBMS Ted Codd: A Relational Model of Data for Large Shared Data Banks, Comm. ACM, Juni 1970, S. 377–387."—  Präsentation transkript:

1 Historische Entwicklung relationaler DBMS Ted Codd: A Relational Model of Data for Large Shared Data Banks, Comm. ACM, Juni 1970, S. 377–387

2

3

4

5 Grundlagen des relationalen Modells Seien D 1, D 2,..., D n Domänen (~Wertebereiche) Relation: R D 1 x... x D n Bsp.: Telefonbuch string x 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]} Teilmenge des Kreuzprodukts Name X Adresse X Telefon#

6 Telefonbuch NameStraßeTelefon# Mickey MouseMain Street4711 Minnie MouseBroadway94725 Donald DuckBroadway 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

7 Studenten Assistenten MatrNr PersNr Semester Name Fachgebiet Note hören prüfen arbeitenFür Professoren Vorlesungen lesen voraussetzen SWS VorlNr Titel Raum Rang PersNr Nach- folger Vorgänger Name Uni-Schema 1 N 1 1 N N N M M MN

8 Relationale Darstellung von Entitytypen 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]}

9 Relationale Darstellung von Beziehungen A 11 E1E1 R... AR1AR1 EnEn E2E2 An1An1 A R:{[]}

10 Beziehungen unseres Beispiel-Schemas hören : {[MatrNr: integer, VorlNr: integer]} lesen : {[PersNr: integer, VorlNr: integer]} arbeitenFür : {[AssistentenPersNr: integer, ProfPersNr: integer]} voraussetzen : {[Vorgänger: integer, Nachfolger: integer]} prüfen : {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]} Studenten MatrNr Semester Name hören Vorlesungen SWS VorlNr Titel MN

11 Beziehungen unseres Beispiel-Schemas hören : {[MatrNr: integer, VorlNr: integer]} lesen : {[PersNr: integer, VorlNr: integer]} arbeitenFür : {[AssistentenPersNr: integer, ProfPersNr: integer]} voraussetzen : {[Vorgänger: integer, Nachfolger: integer]} prüfen : {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]}

12 Schlüssel der Relationen hören : {[MatrNr: integer, VorlNr: integer]} lesen : {[PersNr: integer, VorlNr: integer]} arbeitenFür : {[AssistentenPersNr: integer, ProfPersNr: integer]} voraussetzen : {[Vorgänger: integer, Nachfolger: integer]} prüfen : {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]}

13 Ausprägung der Beziehung hören Studenten MatrNr hören MatrNrVorlNr Vorlesungen VorlNr Studenten hören Vorlesungen M N MatrNr VorlNr

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

15 Verfeinerung des relationalen Schemas 1:N-Beziehung Initial-Entwurf Vorlesungen : {[VorlNr, Titel, SWS]} Professoren : {[PersNr, Name, Rang, Raum]} lesen: {[VorlNr, PersNr]} Verfeinerung durch Zusammenfassung Vorlesungen : {[VorlNr, Titel, SWS, gelesenVon]} Professoren : {[PersNr, Name, Rang, Raum]} Regel Relationen mit gleichem Schlüssel kann man zusammenfassen aber nur diese und keine anderen! Professoren Vorlesungen lesen 1 N

16 Ausprägung von Professoren und Vorlesung Professoren PersNrNameRangRaum 2125SokratesC RusselC KopernikusC PopperC AugustinusC CurieC KantC47 Vorlesungen VorlNrTitelSWSGelesen Von 5001Grundzüge Ethik Erkenntnistheorie Mäeutik Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen Die 3 Kritiken42137 Professoren Vorlesungen lesen 1 N

17 Vorsicht: So geht es NICHT Professoren PersNrNameRangRaumliest 2125SokratesC SokratesC SokratesC AugustinusC CurieC436?? Vorlesungen VorlNrTitelSWS 5001Grundzüge4 5041Ethik4 5043Erkenntnistheorie3 5049Mäeutik2 4052Logik4 5052Wissenschaftstheorie3 5216Bioethik2 5259Der Wiener Kreis2 5022Glaube und Wissen2 4630Die 3 Kritiken4 Professoren Vorlesungen lesen 1 N

18 Vorsicht: So geht es NICHT: Folgen Anomalien 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 Professoren PersNrNameRangRaumliest 2125SokratesC SokratesC SokratesC AugustinusC CurieC436?? Vorlesungen VorlNrTitelSWS 5001Grundzüge4 5041Ethik4 5043Erkenntnistheorie3 5049Mäeutik2 4052Logik4 5052Wissenschaftstheorie3 5216Bioethik2 5259Der Wiener Kreis2 5022Glaube und Wissen2 4630Die 3 Kritiken4

19 Vermeidung von Null-Werten

20

21

22

23

24 Relationale Modellierung der Generalisierung Fachgebiet Assistenten Professoren RaumRang is_a Angestellte PersNrName Angestellte: {[PersNr, Name]} Professoren: {[PersNr, Rang, Raum]} Assistenten: {[PersNr, Fachgebiet]}

25 Relationale Modellierung schwacher Entitytypen Studenten ablegen Prüfungen 1 N Note PrüfTeil MatrNr Vorlesungen umfassen VorlNr abhalten Professoren PersNr NN MM Prüfungen: {[MatrNr: integer, PrüfTeil: string, Note: integer]} umfassen: {[MatrNr: integer, PrüfTeil: string, VorlNr: integer]} abhalten: {[MatrNr: integer, PrüfTeil: string, PersNr: integer]}

26 Man beachte, dass in diesem Fall der (global eindeutige) Schlüssel der Relation Prüfung nämlich MatrNr und PrüfTeil als Fremdschlüssel in die Relationen umfassen und abhalten übernommen werden muß. Fremdschlüssel auf ein schwaches Entity

27 Die relationale Uni-DB Professoren PersNrNameRangRaum 2125SokratesC RusselC KopernikusC PopperC AugustinusC CurieC KantC47 Studenten MatrNrNameSemester 24002Xenokrates Jonas Fichte Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach2 Vorlesungen VorlNrTitelSWSgelesen von 5001Grundzüge Ethik Erkenntnistheorie Mäeutik Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen Die 3 Kritiken42137 voraussetzen VorgängerNachfolger hören MatrNrVorlNr Assistenten PerslNrNameFachgebietBoss 3002PlatonIdeenlehre AristotelesSyllogistik WittgensteinSprachtheorie RhetikusPlanetenbewegung NewtonKeplersche Gesetze SpinozaGott und Natur2126 prüfen MatrNrVorlNrPersNrNote

28 Professoren PersNrNameRangRaum 2125SokratesC RusselC KopernikusC PopperC AugustinusC CurieC KantC47 Studenten MatrNrNameSemester 24002Xenokrates Jonas Fichte Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach2 Vorlesungen VorlNrTitelSWSgelesen Von 5001Grundzüge Ethik Erkenntnistheorie Mäeutik Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen Die 3 Kritiken42137 voraussetzen VorgängerNachfolger hören MatrNrVorlNr Assistenten PerslNrNameFachgebietBoss 3002PlatonIdeenlehre AristotelesSyllogistik WittgensteinSprachtheorie RhetikusPlanetenbewegung NewtonKeplersche Gesetze SpinozaGott und Natur2126 prüfen MatrNrVorlNrPersNrNote

29 Die relationale Algebra Selektion Pojektion x Kreuzprodukt A Join (Verbund) Umbenennung Mengendifferenz Division Vereinigung Mengendurchschnitt N Semi-Join (linkes Argument wird gefiltert) Q Semi-Join (rechtes Argument wird gefiltert) C linker äußerer Join D rechter äußerer Join K (voller) äußerer Join

30 Die relationalen Algebra- Operatoren Semester > 10 (Studenten) MatrNrNameSemester 24002Xenokrates Jonas12 Semester > 10 (Studenten) Selektion Rang (Professoren) Rang C4 C3 Rang (Professoren) Projektion

31 Die relationalen Algebra- Operatoren Professorenhören PersNrNameRangRaumMatrNrVorlNr 2125SokratesC SokratesC KantC Kartesisches Produkt Professoren x hören Problem: riesige Zwischenergebnisse Beispiel: (Professoren x hören) "bessere" Operation: Join (siehe unten)

32 Die relationalen Algebra- Operatoren Umbenennung Umbenennung von Relationen Beispiel: Ermittlung indirekter Vorgänger 2. Stufe der Vorlesung 5216 V1. Vorgänger( V2. Nachfolger=5216 V1.Nachfolger = V2.Vorgänger ( V1 (voraussetzen) x V2 (voraussetzen))) Umbennung von Attributen Voraussetzung Vorgänger (voraussetzen)

33 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

34 Der natürliche Verbund (Join) Gegeben seien: R(A 1,..., A m, B 1,..., B k ) S(B 1,..., B k, C 1,..., C n ) R A S = A1,..., Am, R.B1,..., R.Bk, C1,..., Cn ( R.B1=S. B1... R.Bk = S.Bk (RxS)) R A S R S S R A1A1 A2A2...AmAm B1B1 B2B2 BkBk C1C1 C2C2 CnCn

35 Drei-Wege-Join (Studenten A hören) A Vorlesungen MatrNrNameSemesterVorlNrTitelSWSgelesenVon 26120Fichte105001Grundzüge Jonas125022Glaube und Wissen Carnap34052Wissenschftstheorie

36 Allgemeiner Join (Theta-Join) Gegeben seien folgende Relationen(-Schemata) R(A1,..., An) und S(B1,..., Bm) R A S RS A1A1 A2A2... AnAn B1B1 B2B2 BmBm R A S R A S = (R x S)

37 Andere Join-Arten natürlicher Join L ABC a1a1 b1b1 c1c1 a2a2 b2b2 c2c2 R CDE c1c1 d1d1 e1e1 c3c3 d2d2 e2e2 A = Resultat ABCDE a1a1 b1b1 c1c1 d1d1 e1e1 L ABC a1a1 b1b1 c1c1 a2a2 b2b2 c2c2 C = linker äußerer Join R CDE c1c1 d1d1 e1e1 c3c3 d2d2 e2e2 Resultat ABCDE a1a1 b1b1 c1c1 d1d1 e1e1 a2a2 b2b2 c2c2 --

38 L ABC a1a1 b1b1 c1c1 a2a2 b2b2 c2c2 D = rechter äußerer Join R CDE c1c1 d1d1 e1e1 c3c3 d2d2 e2e2 Resultat ABCDE a1a1 b1b1 c1c1 d1d1 e1e1 -- c3c3 d2d2 e2e2

39 Andere Join-Arten L ABC a1a1 b1b1 c1c1 a2a2 b2b2 c2c2 K = äußerer Join L ABC a1a1 b1b1 c1c1 a2a2 b2b2 c2c2 R CDE c1c1 d1d1 e1e1 c3c3 d2d2 e2e2 N = Semi-Join von L mit R R CDE c1c1 d1d1 e1e1 c3c3 d2d2 e2e2 Resultat ABCDE a1a1 b1b1 c1c1 d1d1 e1e1 a2a2 b2b2 c2c c3c3 d2d2 e2e2 ABC a1a1 b1b1 c1c1

40 Andere Join-Arten (Forts.) L ABC a1a1 b1b1 c1c1 a2a2 b2b2 c2c2 R CDE c1c1 d1d1 e1e1 c3c3 d2d2 e2e2 Resultat CDE c1c1 d1d1 e1e1 Q = Semi-Join von R mit L

41 Andere Join-Arten (Forts.) L ABC a1a1 b1b1 c1c1 a2a2 b2b2 c2c2 R CDE c1c1 d1d1 e1e1 c3c3 d2d2 e2e2 Resultat ABC a2a2 b2b2 c2c2 = Anti-Semi-Join von L mit R

42

43 Die relationale Division Bsp.: Finde MatrNr der Studenten, die alle vierstündigen Vorlesungen hören L := VorlNr ( SWS=4 (Vorlesungen)) hören VorlNr ( SWS=4 (Vorlesungen)) L

44 t R S, falls für jedes ts S ein tr R existiert, so dass gilt: tr.S = ts.S tr.(R-S) = t Die Division R S kann auch durch Differenz, Kreuzprodukt und Projektion ausgedrückt werden. R MV m1m1 v1v1 m1m1 v2v2 m1m1 v3v3 m2m2 v2v2 m2m2 v3v3 S V v1v1 v2v2 = R S = (R S) (R) (R S) (( (R S) (R) x S) R) R S M m1m1 Definition der Division

45 Mengendurchschnitt 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 weden: R S = R (R S) Als Beispielanwendung für den Mengendurchschnitt (Operatorsymbol ) betrachten wir folgende Anfrage: Finde die PersNr aller C4-Professoren, die mindestens eine Vorlesung halten. PersNr ( PersNr gelesenVon (Vorlesungen)) PersNr ( Rang=C4 (Professoren))

46 Gruppierung und Aggregation (geht über die klassische Algebra hinaus – mehr als syntaktischer Zucker)

47 Aggregation & Gruppierung

48 Der Relationenkalkül Eine Anfrage im Relationenkalkül hat die Form {t P(t)} mit P(t) Formel. Beispiele: C4-Professoren {p p Professoren p.Rang = 'C4'} Studenten mit mindestens einer Vorlesung von Curie {s s Studenten h hören(s.MatrNr=h.MatrNr v Vorlesungen(h.VorlNr=v.VorlNr p Professoren(p. PersNr=v.gelesenVon p.Name = 'Curie')))}

49 select s.* from Studenten s where exists ( select h.* from hören h where h.MatrNr = s.MatrNr and exists ( select * from Vorlesungen v where v.VorlNr = h.VorlNr and exists ( select * from Professoren p where p.Name =Curie' and p.PersNr= v.gelesenVon ))) Dieselbe Anfrage in SQL … … belegt die Verwandtschaft

50 Allquantor Wer hat alle vierstündigen Vorlesungen gehört {s s Studenten v Vorlesungen (v.SWS=4 h hören(h.VorlNr=v.VorlNr h.MatrNr= s.MatrNr))}

51 Definition des Tupelkalküls Atome s R, mit s Tupelvariable und R Relationenname s.A t.B, mit s und t Tupelvariablen, A und B Attributnamen und Vergleichsperator (,,,...) s. A c mit c Konstante Formeln Alle Atome sind Formeln Ist P Formel, so auch P und (P) Sind P 1 und P 2 Formeln, so auch P 1 P 2, P 1 P 2 und P 1 P 2 Ist P(t) Formel mit freier Variable t, so auch t R(P(t)) und t R(P(t))

52 Sicherheit Einschränkung auf Anfragen mit endlichem Ergebnis. Die folgende Beispielanfrage {n (n Professoren)} ist nicht sicher. Das Ergebnis ist unendlich. Bedingung: Ergebnis des Ausdrucks muss Teilmenge der Domäne der Formel sein. Die Domäne einer Formel enthält -alle in der Formel vorkommenden Konstanten -alle Attributwerte von Relationen, die in der Formel referenziert werden

53 Der Domänenkalkül Ein Ausdruck des Domänenkalküls hat die Form {[v 1, v 2,..., v n ] P (v 1,..., v n )} mit v 1,..., v n Domänenvariablen und P Formel. Beispiel: MatrNr und Namen der Prüflinge von Curie {[m, n] s ([m, n, s] Studenten v, p, g ([m, v, p,g] prüfen a,r, b([p, a, r, b] Professoren a = 'Curie')))}

54 Prolog ~ Domänenkalkül

55 Sicherheit des Domänenkalküls Sicherheit ist analog zum Tupelkakkül zum Beispiel ist {[p,n,r,o] ([p,n,r,o] Professoren) } nicht sicher. Ein Ausdruck {[x 1, x 2,..., x n ] P( x 1, x 2,..., x n )} ist sicher, falls folgende drei Bedingungen gelten:

56 1.Falls Tupel [c 1, c 2,..., c n ] mit Konstante c i im Ergebnis enthalten ist, so muss jedes c i (1 i n) in der Domäne von P enthalten sein. 2.Für jede existenz-quantifizierte Teilformel x(P 1 (x)) muss gelten, dass P 1 nur für Elemente aus der Domäne von P 1 erfüllbar sein kann - oder evtl. für gar keine. Mit anderen Worten, wenn für eine Konstante c das Prädikat P 1 (c) erfüllt ist, so muss c in der Domäne von P 1 enthalten sein. 3.Für jede universal-quantifizierte Teilformel x(P 1 (x)) muss gelten, dass sie dann und nur dann erfüllt ist, wenn P 1 (x) für alle Werte der Domäne von P 1 erfüllt ist- Mit anderen Worten, P 1 (d) muss für alle d, die nicht in der Domäne von P 1 enthalten sind, auf jeden Fall erfüllt sein.

57 Ausdruckskraft Die drei Sprachen 1.relationale Algebra, 2.relationaler Tupelkalkül, eingeschränkt auf sichere Ausdrücke und 3.relationaler Domänenkalkül, eingeschränkt auf sichere Ausdrücke sind gleich mächtig

58 Professoren PersNrNameRangRaumFakName 2125SokratesC4226Philosophie 2126RusselC4232Philosophie 2127KopernikusC3310Physik 2133PopperC352Philosophie 2134AugustinusC3309Theologie 2136CurieC436Physik 2137KantC47Philosophie Studenten MatrNrNameSemesterFakName 24002Xenokrates18Philosophie 25403Jonas12Theologie 26120Fichte10Philosophie 26830Aristoxenos8Philosophie 27550Schopenhauer6Philosophie 28106Carnap3Physik 29120Theophrastos2Physik 29555Feuerbach2Theologie Vorlesungen VorlNrTitelSWSgelesen Von 5001Grundzüge Ethik Erkenntnistheorie Mäeutik Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen Die 3 Kritiken42137 hören MatrNrVorlNr

59 Professoren PersNrNameRangRaumFakName 2125SokratesC4226Philosophie 2126RusselC4232Philosophie 2127KopernikusC3310Physik 2133PopperC352Philosophie 2134AugustinusC3309Theologie 2136CurieC436Physik 2137KantC47Philosophie Studenten MatrNrNameSemesterGeschlechtFakName 24002Xenokrates18MPhilosophie 25403Jonas12WTheologie 26120Fichte10WPhilosophie 26830Aristoxenos8MPhilosophie 27550Schopenhauer6MPhilosophie 28106Carnap3WPhysik 29120Theophrastos2MPhysik 29555Feuerbach2WTheologie


Herunterladen ppt "Historische Entwicklung relationaler DBMS Ted Codd: A Relational Model of Data for Large Shared Data Banks, Comm. ACM, Juni 1970, S. 377–387."

Ähnliche Präsentationen


Google-Anzeigen