3. Das Relationale Datenmodell Das Relationale Datenmodell geht zurück auf Codd (1970): E. F. Codd: A Relational Model of Data for Large hared Data Banks. Comm. of the ACM 13(6): 377-387(1970) DBM wie z. B. Oracle, QL erver, ybase, Informix, DB/2 basieren auf dem relationalen Modell Relationales Modell Datentypen: Menge, Multimenge, Operationen: Vereinigung, Differenz, eite 33 von 57
3.1 Basiskomponenten des Datenmodells Wertebereich ( domain ): Integer, tring[20], Datum, Relation R ist definiert auf einem Relationenschema R R. R R entspricht einer Menge von Attributen {A 1,,A k } zu jedem Attribut A j gibt es einen Wertebereich D j = dom(a j ) eine Instanz I R einer Relation R ist eine Teilmenge des kartesischen Produkts der Wertebereiche: I R D 1 D 2 D k, k 1 prechweisen Der Begriff Relation wird oft für die Instanz einer Relation verwendet. Ist klar, um welche Relation es sich handelt, wird der Index bei der Instanz und beim chema einfach weggelassen. Beispiel: Wertebereiche: D 1 = { abc,, }, D 2 = { 01, } Kartesisches Produkt: D 1 D 2 = {( a, 0), ( a, 1),( b, 0),( b, 1),( c, 0),( c, 1) } mögliche Instanzen: I 1 = {( a, 0), ( b, 0),( c, 0),( c, 1) } und I 2 = eite 34 von 57
Notation: Tupel: Element einer Relationeninstanz. Für eine Relation mit k Attributen bezeichnet k den Grad der Relation. Beschränkung auf endliche Instanzen einer Relation. Darstellung der Relationen durch Tabellen: R 1 A B a 0 b 0 c 0 c 1 A und B sind hier paltennamen (Attributsnamen) Reihenfolge der Attribute Reihenfolge der Zeilen (Tupel) ist bisher von Bedeutung Wunsch: Reihenfolge der palten (Attribute) soll nicht von Bedeutung sein. D = 1 j k dom(a j ) Eine Relationeninstanz I ist eine endliche Menge von totalen Abbildungen I = {t 1,,t n mit t j : R --> D; t j (A m ) dom(a m ), 1 m k} eite 35 von 57
Beispiel: tädte Name Einwohner Land München 1.211.617 Bayern Bremen 535.058 Bremen Relationenschema der Relation tädte: {Name, Einwohner, Land} mit dom(name) = tring[40], dom(einwohner) = INTEGER und dom(land) = tring[40] Ausprägungen: t 1 und t 2 t 1 (Name) = München, t 1 (Einwohner) = 1211617 und t 1 (Land) = Bayern t 2 (Name) = Bremen, t 2 (Einwohner) = 535058 und t 2 (Land) = Bremen Das Relationale Datenmodell ei R ein Relationenschema und X R dann bezeichnet t[x] das Tupel t eingeschränkt auf X. Notation: Datenbankschema: Menge der Relationenschemata Datenbank: Menge der aktuellen Instanzen der Relationen Die bisherige Definition einer Relation läßt Instanzen zu, die real nicht exisitieren können. Es ist hier sinnvoll, die Instanzen durch geeignete semantische Bedingungen einzuschränken. eite 36 von 57
chlüssel analog zum chlüsselbegriff des ER Modells gegeben: Relation R mit chema R X R wird als chlüssel bezeichnet, wenn folgende Bedingungen erfüllt sind: Eindeutigkeit: für alle (real möglichen) Relationeninstanzen I der Relation R gilt: Für zwei beliebige Tupel t 1 und t 2 aus I gilt: Minimalität: es gibt kein Y X ( Y X), so daß die Eindeutigkeit erfüllt ist. Beachte: t 1 [ X] = t 2 [ X] t 1 = t 2 chlüsseleigenschaft bezieht sich nicht auf die aktuell abgespeicherten Instanz einer Relation, sondern ist eine semantische Eigenschaft des Relationenschema Mehrere Teilmengen eines Relationenschemas können chlüssel sein. Dann wird einer von diesen als Primärschlüssel ausgezeichnet. Die Attribute des Primärschlüssels werden im chema oft durch Unterstreichen hervorgehoben. Relation tädte mit chema {Name, Einwohner, Land} eite 37 von 57
3.2 Abbildung eines ER chema in ein relationales chema Datenstruktur der ER-Datenmodellierung Entitätstypen Beziehungstypen Datenstruktur des relationalen Modells Relationen (bzw. Relationenschema) Fragestellung Wie kann ein ER Datenmodell in ein relationales Model umgesetzt werden? Diese Frage wird nun in zwei chritten beantwortet: Einfache Umsetzung von Entitätstypen und Beziehungstypen Konsolidierung des Relationenschema eite 38 von 57
Umsetzung eines Entitätstyps Das Relationale Datenmodell Der Entitätsyp wird als eigenständige Relation umgesetzt, wobei jede Eigenschaft des Entitätstyps durch ein Attribut in der Relation dargestellt wird. Die Namen der Attribute können entsprechend den Namen der Eigenschaften des Entitätstyps gewählt werden. Der chlüssel des Entitätstyps wird als Primärschlüssel des Relationenschema vereinbart. Beispiel (siehe ER Diagramm aus Kapitel ): Entität Zug: {ZugNr: Integer, Typ: tring} Entität Bahnhof {Id: Integer, tadt: tring, Name: tring} eite 39 von 57
Umsetzung eines Beziehungstyps Das Relationale Datenmodell Der Beziehungstyp wird als eigenständige Relation umgesetzt, wobei die Primärschlüssel der beteiligten Entitäten vollständig im Relationenschema aufgenommen werden und jede Eigenschaft des Beziehungstyps durch ein Attribut in der Relation dargestellt wird. Die aus einem Primärschlüssel gewonnen Attribute werden als Fremdschlüssel bezeichnet. Die Namen der Attribute eines Fremdschlüssel müssen z. T. umbenannt werden, damit eine Eindeutigkeit der Namen gewährleistet wird. Beispiel (m:n Beziehungstyp) Umsetzung des m:n Beziehungstyps hält und die an dem Beziehungstyp beteiligten Entitätstypen Zug und Bahnhof. Der chlüssel von hält entspricht dabei der Menge von Fremdschlüsseln. Zug Id Typ 2475 IR 95786 RB hält Zug tation Gleis 2475 1 4 2475 2 10 95786 1 2 Bahnhof Id tadt Name 1 Marburg Lahn 2 Darmstadt Hbf 3 Wetter Hess- Nass eite 40 von 57
Beispiel (Umsetzung eines 1:n Beziehungstyps) Betrachten wir hierzu ein Beispiel aus der Universitätswelt, wo ein Professor Vorlesungen abhält. Wenn der Primärschlüssel von Professor die PersNr und die von Vorlesung die VorNr ist, würden die Beziehung liest als zweistellige Relation umgesetzt werden. Professor 1 n liest Vorlesung Man beachte aber, daß {PersNr, VorNr} kein chlüssel von liest ist, da die Eigenschaft der Minimalität verletzt ist. {VorNr} erfüllt aber die Eigenschaft eines chlüssels. Mit der Fremdschlüsseleigenschaft bezeichnet man nun folgende Nebenbedingung: ei F der Fremdschlüssel in R, der sich auf eine Relation bezieht, so muß stets I R [ F] I [ F] erfüllt sein. eite 41 von 57
Konsolidierung des chemas Das Relationale Datenmodell Mögliche Vereinfachungen des chemas durch Verschmelzen von Relationen, die aus einer zweistelligen Beziehungstyp der Kardinalität 1:1 oder 1:n hervorgegangen sind. eien R und, die Relationen der beteiligten Entitätstypen eines 1:n Beziehungstyps, und T die Relation des Beziehungstyps. Dann können wir alternativ folgendes chema verwenden: tatt der Relation und T wird eine neue Relation U eingführt, wobei R U = R R T Die Instanzen von U sollen nun die gleiche Information wie zuvor die Instanzen von und T enthalten. Hierzu verknüpfen wir die Tupel aus und T bzgl. ihrer Fremdschlüssel. Für die Tupel s I, die kein t I T mit s[f] = t[f] besitzen, wird ein Tupel u erzeugt, so daß ur [ ] = s. Die anderen Werte von u werden mit einem speziellen Wert (NULL) aufgefüllt. Die Relation R bleibt unverändert bestehen. Was sind die Vor- und Nachteile einer solchen Konsolidierung? eite 42 von 57
Umsetzung von I-A Beziehungstypen I-A Beziehungstypen werden nicht durch eine eigene Relation repräsentiert. Die Beziehung wird dadurch bereits ausgedrückt, wenn der chlüssel des allgemeinen Typs auch als chlüssel der spezializierten Typen benutzt wird. Beispiel: Angestellter I-A ANGNR Name Fachgebiet Professor Mitarbeiter Thema Daraus ergeben sich drei Relationen mit dem chema {ANGNR, Name}, {ANGNR, Fachgebiet} und {ANGNR, Thema}. Als Alternative bietet sich auch an, den I-A Beziehungstyp und die beteiligten Entitätstypen durch eine Relation mit chema {ANGNR, Name, Fachgebiet, Thema} zu präsentieren und bei den Instanzen die fehlende Information durch NULL-Werte aufzufüllen. Was ist bei diesem Ansatz problematisch? eite 43 von 57
Algebra: 3.3 Die relationale Algebra gegeben eine Menge N ( Anker der Algebra ) Menge von Operationen { σ 1,, σ n } der Form σ j :N k N Das Relationale Datenmodell Relationale Algebra Anker ist die Menge aller Relationen insgesamt gibt es 6 Grundoperationen eite 44 von 57
3.3.1 Grundoperationen der relationalen Algebra besteht aus 5 (+1) Grundoperationen gegeben zwei Relationen R(A 1,,A r ) und (B 1,,B s ) mit Grad r und Grad s zur Erleichterung der Definition sei hier angenommen, daß die Attribute der Relationen geordnet sind. Dann gilt: I R = {(a 1,,a r ) a i dom(a i ), 1 i r} und I = { (b 1,,b s ) b i dom(b i ), 1 i s} Vereinigung: R R und besitzen gleiches Relationenschema (bis auf Umbenennungen identisch) Differenz: R R und besitzen gleiches Relationenschema (bis auf Umbenennungen identisch) Kartesisches Produkt: R Relationenschema der Resultatsrelation ergibt sich aus der Vereinigung der chemata der beteiligten Relationen. Projektion: π i1,, i ( R) m neues Relationenschema = selektierte palten des alten Relationschema eite 45 von 57
ei { i 1,, i m } { 1,, r} mit paarweise verschiedenen i j. Dann ist: tatt Indizes können auch Attributsnamen verwendet werden (X = {A 1,A 2 }): elektion: π i1,, i m ( R) = ( c 1,, c m ) ( a 1,, a r ) R : c j = a ij für j = 1 m π X ( R) = π A1, A ( R) = π 2 12, ( R) σ F ( R) neues Relationenschema = altes Relationenschema Die zu berechnende Instanz besteht aus allen Tupeln der Relation R, die der Formel F genügen. Formel F setzt sich zusammen aus a) Operanden: Konstanten oder Name eines Attributs b) Vergleichsoperatoren: =,, <,, >, c) Boole sche Operatoren:,, eite 46 von 57
Umbennen von Relationen und Attributen ( + 1- Operation ) ρ ( R) : Relation R wird in Relation umbenannt ρ B A ( R) : Attribut A der Relation R wird umbenannt in B Umbennung unterscheidet sich von den anderen Operatoren dadurch, daß keine neue Instanz erzeugt wird, sondern nur das chema der Relation verändert wird. Operator ist notwendig, wenn eine Relation mehrfach in einer Anfrage vorkommt. eite 47 von 57
Beispiele R A B C a b c d a f c b d D E F b g a d a f R a b c d a f c b d b g a R a b c c b d π A C A, C ( R) A B C ( ) a d c c f d σ B = b R a b c c b d R ρ B D A B C D E F a b c b g a a b c d a f d a f b g a d a f d a f c b d b g a c b d d a f ( ) B E F b g a d a f eite 48 von 57
Beispiele für Anfragen Relationenschemata: tädte( Name, Einw, LName) Länder( LName, LEinw, Partei) Bestimme alle Großstädte und ihre Einwohnerzahlen π Name, Einw σ Einw 500.000 ( ( tädte) ) In welchem Lande liegt die tadt Passau? π LName ( σ Name = Passau ( tädte) ) Bestimme die Namen aller tädte, deren Einwohnerzahl die eines Landes übersteigt. π Name ( σ Einw > LEinw ( tädte Länder) ) Finde alle tädtenamen in CDU-regierten Ländern. π Name ( σ tädte.lname = Länder.LName ( tädte σ Partei = CDU ( Länder) )) Gib alle tädte, die es nur in Hessen gibt? π Name ( σ LName = Hessen ( tädte) ) π Name ( σ LName Hessen ( tädte) ) eite 49 von 57
3.3.2 Abgeleitete Operationen Das Relationale Datenmodell Durchschnitt: R R = R ( R ) Beispiel: R B C D b c a b c d b f b a d c B C D b c d b c e a d b R B C D b c d eite 50 von 57
Quotient (Division): Das Relationale Datenmodell R vereinfachende Annahme: r > s, und A r = B s, A r-1 = B s-1,, A r-s+1 = B 1 Relationenschema = {A 1,,A r-s } Resultatsinstanz des Quotienten: ( R ) := {( a 1,, a r s ) ( b 1,, b s ) I : ( a 1,, a r s, b 1,, b s ) I R } Ableitung des Quotienten durch die Basisoperationen (siehe Übung) Beispiel: R A B C D a b c d a b e f b c e f e d c d e d e f a b d e C D c d e f R A B a b e d eite 51 von 57
Theta-Join (Verbund): R iθj Auswahl bestimmter Tupel aus dem kartesischen Produkt R : R iθj := σ Ai θ B ( R ) j mit θ { =,, <,, >, } für θ = = wird der Join auch als Equijoin bezeichnet Beispiel: R A B C 1 2 3 4 5 6 7 8 9 D E 3 1 6 2 R B < D A B C D E 1 2 3 3 1 1 2 3 6 2 4 5 6 6 2 eite 52 von 57
Natürlicher Verbund (natural join): R Das Relationale Datenmodell wichtigste Operation neben der elektion vereinfachende Annahme: A 1 = B 1,, A k = B k und A j B i für alle j und i mit k< j r und k< i s Dann ist: ( R ) := π ik + 1, i k + 2,, i σ r + s R.A1 =.B 1 R.A k =.B ( R ) k Beispiel: R B C A b c a b c d b f b a d c B C D b c d b c e a d b R B C A D b c a d b c a e b c d d b c d e a d c b eite 53 von 57
Beispiele Datenbankschema: P-M-Zuteilung: pnr mnr Fähigke it 67 84 3 67 93 2 67 101 3 73 84 5 114 93 5 114 101 3 51 93 2 69 101 2 333 84 3 701 84 2 701 101 2 82 101 2 Abteilungsleiter: abtnr pnr B10 67 A63 333 A64 51 Abteilung: abtnr AName B10 pielzeug A63 Computer A64 uppen Personal: pnr PName Vorname abtnr Lohn 67 Meier Helmut B10 L4 73 Müller Margot B10 L5 114 Bayer Martin A63 L6 51 Daum Birgit A64 L7 69 törmer Willi A64 L6 333 Haar Hans A63 L6 701 Reiner Willi A64 L6 82 Just Michael A64 L6 Maschinen: mnr MName 84 Presse 93 Füllanlage 101 äge eite 54 von 57
Anfragen Gib alle Namen von Personen, die an einer Maschine ausgebildet sind. π PName ( Personal P-M-Zuteilung) Gib alle Namen der Personen, die an keiner Maschine genügend gut ausgebildet sind. π PName (( π pnr ( Personal) π pnr ( σ Fähigkeit < 5 ( P-M-Zuteilung) )) Personal) Gib die Namen der Personen aus Abteilung uppen, die an der Maschine mit mnr = 93 ausgebildet sind. π PName ((( σ AName = uppen ( Abteilung) ) Personal) σ mnr = 93 ( P-M-Zuteilung) ) Gib die Namen der Personen, die an der gleichen Maschine ausgebildet sind wie die Person mit pnr = 114. π PName ( Personal (( π mnr ( σ pnr = 114 ( P-M-Zuteilung) )) P-M-Zuteilung) ) eite 55 von 57
Weitere Join-Operatoren bisherige Join-Operatoren werden auch als innere Joins bezeichnet Datensätze ohne Join-Partner gehen verloren Das Relationale Datenmodell äußere Join-Operatoren (engl.: outer joins): Datensätze ohne Join-Partner werden (teilweise) berücksichtigt linker äußerer Join R : Tupel von R bleiben erhalten recher äußerer Join R : Tupel von bleiben erhalten vollständiger äußerer Join R : Tupel von und R bleiben erhalten emi-join ei R das chema der Relation R. Dann ist der emi-join von R und folgendermaßen definiert: R = Π R ( R ) enthält alle Tupel der Relation R, die an dem Join mit der Relation beteiligt sind. eite 56 von 57
Beispiele R A B C a 1 b 1 c 1 a 2 b 2 c 2 C D E c 1 d 1 e 1 c 3 d 2 e 2 linker äußerer Join R A B C D E a 1 b 1 c 1 d 1 e 1 a 2 b 2 c 2 NULL NULL emi-join R A B C a 1 b 1 c 1 eite 57 von 57