TU München, Fakultät für Inforatik Lehrstuhl III: Datenbanksystee Prof. Alfons Keper, Ph.D. Blatt Nr. 11 Übung zur Vorlesung Grundlagen: Datenbanken i WS15/16 Harald Lang, Linnea Passing (gdb@in.tu.de) http://-db.in.tu.de/teaching/s1516/grundlagen/ HINWEIS: Dieses Übungsblatt in der Woche vo 11.1. bis 15.1.16 in den Tutorien besprochen. Hausaufgabe 1 Es sollen alle ca. 10 Milliarden Menschen in einer ereiterbaren Hashtabelle veraltet erden. In jede Seite passen ca. 0 Einträge, durchschnittlich sind die Seiten halb voll. Je Vereis erden 4 Byte benötigt, da die Musterlösung aus einer Zeit stat, in der es defakto nur Maschinen it 32 bit CPU Architektur gab. Wie viel Speicherplatz verbraucht das Verzeichnis indestens? Lösung: Das Verzeichnis enthält die Vereise auf alle Seiten (= Buckets), in de die Einträge gehalten erden. Da pro Seite durchschnittlich 100 Einträge Platz haben, benötigen ir insgesat 10 10 /100 = 10 8 Seiten. U 10 8 Seiten zu referenzieren benötigen ir indestens log 2 10 8 Bits. Da dies eine positive ganze Zahl sein uss, ist die Anzahl der benötigten Bits log 2 10 8. Hierit können 2 log 2 108 Vereise i Verzeichnis abgelegt erden, da die Anzahl der Vereise in eine Verzeichnis ier einer 2er-Potenz entspricht. Pro Vereis erden 4 Byte benötigt, so dass das Verzeichnis eine Größe von 2 log 2 108 4 Byte, also ungefähr 512 MB hat. Hausaufgabe 2 10 4 7 15 25 5 6 9 13 17 19 22 27 1. Fügen Sie die 3 in den gezeigten B-Bau ein. Zeichnen Sie das Endergebnis. Zeichnen Sie jeeils den kopletten Bau oder achen Sie deutlich, falls Teile des Baues unverändert bleiben. Verenden Sie den aus der Vorlesung bekannten Algorithus. Das Ergebnis sieht ie folgt aus: 10 4 2 7 15 25 1 3 5 6 9 13 17 19 22 27 1
2. Entfernen Sie aus de ursprünglichen Bau den Eintrag. Zeichnen Sie das Ergebnis der Operation. Sollte es ehrere richtige Lösungen geben, genügt es, enn Sie hier eine angeben. Zeichnen Sie jeeils den kopletten Bau oder achen Sie deutlich, falls Teile des Baues unverändert bleiben. Verenden Sie den aus der Vorlesung bekannten Algorithus. Das Ergebnis sollte ie folgt aussehen: 10 19/ 21 4 7 15 25 Hausaufgabe 3 19 / 21/ 5 6 9 13 17 22 27 leer leer Fügen Sie in einen anfänglich leeren B-Bau it k = 2 die Zahlen eins bis zanzig in aufsteigender Reihenfolge ein. Was fällt Ihnen dabei auf? Lösung: Nachde an die Zahlen 1 bis 4 eingefügt hat, liegt folgender B-Bau vor: 3 4 Bei Einfügen von 5 ird der Knoten gespalten und an erhält eine neue Wurzel. 3 4 5 Die nächsten beiden Zahlen lassen sich ieder ohne Problee einfügen. 3 4 5 6 7 Bei Einfügen der 8 kot es erneut zu Überlauf. Die 6 andert in die Wurzel. 3 6 4 5 7 8 2
9 und 10 lassen sich ieder ohne Problee einfügen. Bei 11 kot es zu Überlauf. 3 6 4 5 7 8 9 10 Nach de Aufspalten erhält an dann: 3 6 9 10 11 4 5 7 8 Es erden nun die nächsten Zahlen bis 16 analog eingefügt. 3 6 9 12 13 14 15 16 10 11 4 5 7 8 Bei 17 kot es dann ieder zu Überlauf. 9 3 6 12 15 7 8 16 17 4 5 10 11 13 14 Fügt an nun noch die restlichen Zahlen ein, erhält an folgenden B-Bau: 3
9 3 6 12 15 7 8 19 4 5 10 11 16 17 13 14 Es fällt auf, dass der B-Bau nahezu iniale Auslastung aufeist. Dies liegt daran, dass eine aufsteigende Zahlenfolge sequentiell in den Bau eingefügt ird. Nach de Aufspalten einer Seite in zei Seiten erden dann in die Seite, die die kleineren Datensätze enthält, keine eiteren Werte ehr eingefügt. Allgeein ist das sortierte Einfügen der Schlüssel in einen B-Bau eine sehr schlechte Idee, da dies zu einer sehr geringen Auslastung führt. Hausaufgabe 4 Indizieren Sie die folgende Tabelle in eine R-Bau it den Diensionen Alter, Gehalt und Geschlecht. Nehen Sie an, dass (i) die Kapazität der inneren Knoten soie der Blattknoten gleich 4 ist und (ii) die Tabelle die Einfügereihenfolge festlegt. Illustrieren Sie die einzelnen Phasen i Aufbau des R-Baus. Nae Alter Gehalt Geschlecht 1 K ännlich 80 K eiblich 70 K ännlich K ännlich 100 K ännlich 45 55 K ännlich 45 K ännlich Urel 35 112 K neutral Bill 25 110 K ännlich Lucie 65 95 K eiblich Jan K ännlich Sepp 50 65 K ännlich Lösung: Geäß Aufgabenstellung habe die Blätter des R-Baus eine Maxialbelegung von 4. Dait können die Datensätze für,, und eingefügt erden, ohne dass eine Überlaufbehandlung erforderlich ist. 4
[,] [,1] {,} 1K K Fügt an zusätzlich in den R-Bau ein, so uss das Blatt aufgespalten erden. [,] [,80] {,} [,] [100,1] {} K 1K Die Datensätze für und üssen bezüglich ihrer Ausprägungen in das erste Blatt des R-Baus eingefügt erden. Fügt an zuerst und dann in den R-Bau ein, so uss erneut eine Überlaufbehandlung, d.h. ein Aufspalten des Blattes erfolgen. [,] [,80] {,} [,45] [45,70] {} [,] [100,1] {} K 45 55K 45K 1K Die folgenden Datensätze für Urel und Bill passen ieder in den bisherigen R-Bau, ohne eine Aufspaltung hervorzurufen. 5
[,] [,80] {,} [,45] [45,70] {} [25,] [100,1] {,n} K 45 55K 45K 1K 35 112K n Urel 25 110K Bill Ein Aufspalten ist erst bei Einfügen von Lucie notendig. Wir gruppieren hier Bill und Urel in einen Behälter und sehen einen zeiten Behälter für, Lucie und vor. Nit an als Gütekriteriu das Voluen, das durch die jeeiligen Behälter beschrieben ird, so hat diese Aufteilung Vorteile. [,] [,80] {,} [,45] [45,70] {} [,65] [95,1] {,} [25,35] [110,112] {,n} K 45 55K 45K 1K 65 95K Lucie 35 112K n Urel 25 110K Bill Anschließend erden noch die Datensätze für Jan und Sepp eingefügt. Beide ürden a besten in das Blatt passen, das bereits von, und belegt ist. Das Blatt ist dait Überbelegt und es erfolgt eine Spaltung. Diese Spaltung propagiert sich bis zu Vaterknoten, der zugleich der Wurzelknoten ist. Deshalb uss eine neue Wurzel erstellt erden. Folgende Darstellung zeigt den finalen R-Bau für unsere Beispielausprägung. Abbildung 1 stellt die Datensätze dreidiensional dar. 6
K [,] [,80] {,} [,45] [45,55] {} 45 55K 45K [,50] [,70] {} [,50] [45,80] {,} 1K K Jan 50 65K Sepp 65 95K Lucie [,65] [95,1] {,} [25,35] [110,112] {,n} [25,65] [95,1] {,,n} 35 112K n Urel 25 110K Bill Hausaufgabe 5 Bestien Sie alle Kandidatenschlüssel der Relation R. Wenden Sie den Dekopositionsalgorithus an, u die Relation R in die BCNF zu zerlegen und unterstreichen Sie die Schlüssel der Teilrelationen des Endergebnisses. FDs: 1. B DA 2. DEF B 3. C EA R = {A, B, C, D, E, F } Prüfen Sie als erstes FD 1) ob Sie für die Zerlegung geeignet ist und - falls dies der Fall ist - verenden Sie diese i ersten Zerlegungsschritt. Für diese Aufgabe ist zu bedenken, dass die oben angegebenen FDs eine Charakterisierung der insgesat geltenden FDs sind. Die Menge der geltenden FDs ist größer. Wieso? Wie uss dies bei Dekopositionsalgorithus genutzt erden? Lösung: Dekopositionsalgorithus: Starte it Z := {R}. 7
R in BCNF? - Nein, B DA verletzt die BCNF. Zerlegung anhand FD B DA, da {B} kein Superschlüssel: R 1 = {A, B, D} it den FDs F 1 = {B DA}, R 2 = {B, C, E, F } it den FDs F 2 = {C E}, FD (2) geht verloren und FD (3) geht teileise verloren: enn C AE gilt, dann gilt auch C A und C E (Dekopositionsregel), aber lediglich C E bleibt erhalten. Z := {R 1, R 2 } R 1 in BCNF? - Ja. R 2 in BCNF? - Nein, C E verletzt die BCNF. Zerlegung anhand FD C E, da {C} kein Superschlüssel: R 2.1 = {C, E} it den FDs F 2.1 = {C E}, R 2.2 = {B, C, F } it ausschließlich trivialen FDs. Z := {R 1, R 2.1, R 2.2 } R 2.1 in BCNF? - Ja. R 2.2 in BCNF? - Ja. Alter Lucie 50 Sepp Jan Urel 30 10 Bill eiblich Geschlecht neutral 0 45 55 65 75 85 95 105 115 125 ännlich Gehalt Abbildung 1: Der R-Bau it drei Diensionen (Gehalt, Alter, Geschlecht) 8
Ergebnis: R 1 = {A, B, D} R 2.1 = {C, E} R 2.2 = {B, C, F } I Allgeeinen ist eine gegebene FD-Menge eder inial noch vollständig. Die angegebenen FDs enthalten also öglichereise Redundanzen einerseits und andererseits erden triviale Abhängigkeiten i.d.r. nicht explizit it angegeben. Bei der Ausführung des Dekopositionsalgorithus üssen jedoch alle geltenden FDs betrachtet erden, die sich it Hilfe der Axioe von Arstrong herleiten lassen (F + ). So gilt i obigen Beispiel in R 2 die FD C E, obohl diese nicht explizit angegeben ar. 9