grundlagen des relationenmodells kapitel 4. Übersicht vom er-modell zum relationenmodell entities,...
TRANSCRIPT
Grundlagen des Relationenmodell
sKapitel 4
Übersichtvom ER-Modell zum Relationenmodell
Entities, Attribute, Beziehungen
Generalisierung
Operatoren
Optimierung
Vom ER-Modell zum
RelationenmodellEntities => Tabellen
Attribute => Spalten der TabellePrimärschlüssel bleibt gleich
Relationships1:1 => Fremdschlüssel als Spalte in einer der beiden Tabellen
1:n => Fremdschlüssel als Spalte in der zweiten Tabelle
n:m => eigene Tabelle mit Fremdschlüsseln auf beide Relationen
Vom ER-Modell zum
Relationenmodell
Dorfbewohner = (CNR, Name, Chef)
ChefDorfbewohner
CNR
Name
1
n Ober
Unter
GeneralisierungHausklassenmodell
Jede Instanz ist genau einmal und vollständig in ihrer Hausklasse gespeichert
vertikale PartitionierungJede Instanz wird entsprechend der Klassenattribute in der Is_a-Hierarchie zerlegt und in Teilen in den zugehörigen Klassen gespeichert
nur das ID-Attribut wird dupliziert.
GeneralisierungVolle Redundanz
Eine Instanz wird wiederholt in jeder Klasse, zu der sie gehört, gespeichert.
Werte der Attribute, die sie geerbt hat + Werte der Attribute der Klasse
Hierarchie-RelationGeneralisierungshierarchie in einer einzigen Relation
Attribut zur Typidentifikation (TT - type tag)
Nullwerte für Attribute, die in der zugeh. Klasse nicht vorhanden sind
SelektionCNR Name Beruf Chef
001 Asterix Krieger 006
002 Obelix Hinkelsteinlieferant 006
003 Idefix Hund 002
004 Miraculix Druide 006
005 Troubadix Barde 006
006 Majestix Häuptling 006
Finde den Chef des Dorfes!
ProjektionCNR Name Beruf Chef
001 Asterix Krieger 006
002 Obelix Hinkelsteinlieferant 006
003 Idefix Hund 002
004 Miraculix Druide 006
005 Troubadix Barde 006
006 Majestix Häuptling 006
Welche Berufe haben die Dorfbewohner?
DUPLIKATE WERDEN ELIMINIERT!
Vereinigung, Differenz &
Durchschnittgenau wie in der Mengenlehre
DivisionCNR
Leibspeise
001 Wildschwein
002 Wildschwein
003 Wildschwein
003 Gammelfisch von Verleihnix
004 Wildschwein
005 Wildschwein
005 Gammelfisch von Verleihnix
006 Wildschwein
Welche Leibspeise haben alle Dorfbewohner gemeinsam?
Leibspeise
Wildschwein
Kreuzproduktbraucht man für unser Beispiel nicht und passt eh mal nicht auf die Folie
A B
a1 b1
a2 b4
a2 b5
C
c2
c3
A B C
a1 b1 c2
a1 b1 c3
a2 b4 c2
a2 b4 c3
a2 b5 c2
a2 b5 c3
Natural Join
CNR
Name Beruf Chef
Leibspeise
001 Asterix Krieger 006 Wildschwein
002 Obelix Hinkelsteinlieferant
006 Wildschwein
003 Idefix Hund 002 Wildschwein
003 Idefix Hund 002 Gammelfisch von Verleihnix
004 Miraculix Druide 006 Wildschwein
005 Troubadix Barde 006 Gammelfisch von Verleihnix
005 Troubadix Barde 006 Wildschwein
006 Majestix Häuptling 006 Wildschwein
Ordne jedem Dorfbewohner seine Leibspeisen zu.
(Left/Right) Outer Join
A verlustfrei. Notfalls Null-Werte.
B verlustfrei.
Beide Relationen verlustfrei.
Umbenennen von Relationen
Wofür brauchen wir das?wenn wie eine Relation mit sich selbst joinen wollen
A.CNR
A.Name
A.Beruf A.Chef
B.CNR
B.Name
B.Beruf b.Chef
001 Asterix Krieger 006 006 Majestix
Häuptling 006
002 Obelix Hinkelsteinlieferant
006 006 Majestix
Häuptling 006
003 Idefix Hund 002 002 Obelix Hinkelsteinlieferant
006
004 Miraculix
Druide 006 006 Majestix
Häuptling 006
005 Troubadix
Barde 006 006 Majestix
Häuptling 006
006 Majestix Häuptling 006 006 Majestix
Häuptling 006
Algebraische Optimierung
1. Führe Selektion so früh wie möglich aus!
2. Führe Projektion (ohne Duplikateliminierung) frühzeitig aus!
3. Verknüpfe Folgen von unären Operationen wie Selektion und Projektion!
4. Fasse einfache Selektionen auf einer Relation zusammen!
Algebraische Optimierung
5. Verknüpfe bestimmte Selektionen mit einem vorausgehenden Kartesischen Produkt zu einem Verbund!
6. Berechne gemeinsame Teilbäume nur einmal!
7. Bestimme Verbundreihenfolge so, dass die Anzahl und Größe der Zwischenobjekte minimiert wird!
8. Verknüpfe bei Mengenoperationen immer zuerst die kleinsten Relationen!
Fragen?…dann ein paar Beispiele an der Tafel…
Beispiel
ABT ( ANR, BUDGET, A-ORT ) PERS ( PNR, NAME, BERUF, GEHALT, ALTER,W-ORT, ANR)PM ( PNR,JNR, DAUER, ANTEIL)PROJ ( JNR, BEZEICHNUNG, SUMME, P-ORT)
Welche Mitarbeiter
(PNR, Name) haben in allen
Projekten gearbeitet?
Welche Mitarbeiter
arbeiten in ihrem Wohnort an
einem Projekt?
Welche Mitarbeitername
n gibt es mehrfach?
Algebraische Optimierung
Annahmen Anzahl der Tupel in
ABT:N/5
PERS:N
PM:5*N (>M)
PROJ:M
Anzahl der Attributwerte von A-ORT:10
P-ORT:100
Verlustfreie Verbunde über PS/FS
ABT ( ANR, BUDGET, A-ORT ) PERS ( PNR, NAME, BERUF, GEHALT, ALTER, ANR)PM ( PNR,JNR, DAUER, ANTEIL)PROJ ( JNR, BEZEICHNUNG, SUMME, P-ORT)
Name und Beruf von Angestellten, deren Abteilung in KL ist
und die in KL Projekte durchführen