190 likes | 299 Views
Grundlagen des Relationenmodells. Kapitel 4. Übersicht. vom ER-Modell zum Relationenmodell Entities , Attribute, Beziehungen Generalisierung Operatoren Optimierung. Vom ER-Modell zum Relationenmodell. Entities => Tabellen Attribute => Spalten der Tabelle
E N D
Grundlagen des Relationenmodells Kapitel 4
Übersicht • vom ER-Modell zum Relationenmodell • Entities, Attribute, Beziehungen • Generalisierung • Operatoren • Optimierung
Vom ER-Modell zum Relationenmodell • Entities => Tabellen • Attribute => Spalten der Tabelle • Primärschlüssel bleibt gleich • Relationships • 1: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) n CNR Ober Chef Dorfbewohner Name 1 Unter
Generalisierung • Hausklassenmodell • Jede Instanz ist genau einmal und vollständig in ihrer Hausklasse gespeichert • vertikale Partitionierung • Jede 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.
Generalisierung • Volle 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-Relation • Generalisierungshierarchie in einer einzigen Relation • Attribut zur Typidentifikation (TT - type tag) • Nullwerte für Attribute, die in der zugeh. Klasse nicht vorhanden sind
Selektion Finde den Chef des Dorfes!
Projektion DUPLIKATE WERDEN ELIMINIERT! Welche Berufe haben die Dorfbewohner?
Vereinigung, Differenz & Durchschnitt • genau wie in der Mengenlehre
Division Welche Leibspeise haben alle Dorfbewohner gemeinsam?
Kreuzprodukt • braucht man für unser Beispiel nicht und passt eh mal nicht auf die Folie
NaturalJoin Ordne jedem Dorfbewohner seine Leibspeisen zu.
(Left/Right) OuterJoin 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
Algebraische Optimierung • Führe Selektion so früh wie möglich aus! • Führe Projektion (ohne Duplikateliminierung) frühzeitig aus! • Verknüpfe Folgen von unären Operationen wie Selektion und Projektion! • Fasse einfache Selektionen auf einer Relation zusammen!
Algebraische Optimierung • Verknüpfe bestimmte Selektionen mit einem vorausgehenden Kartesischen Produkt zu einem Verbund! • Berechne gemeinsame Teilbäume nur einmal! • Bestimme Verbundreihenfolge so, dass die Anzahl und Größe der Zwischenobjekte minimiert wird! • Verknüpfe bei Mengenoperationen immer zuerst die kleinsten Relationen!
Fragen? …dann ein paar Beispiele an der Tafel…
Beispiel Welche Mitarbeiter arbeiten in ihrem Wohnort an einem Projekt? 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 Mitarbeiternamen 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