Übungsblatt 2 Erläuterungen Wintersemester 16/17 DBIS.

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Datenbankdesign mit ACCESS.
Der k-d-Baum Richard Göbel.
7.2 B-Bäume / B*-Bäume als Hilfsmittel zur Indexorganisation
Prof. Dr. T. Kudraß1 Hash-Verfahren. Prof. Dr. T. Kudraß2 Einführung Drei Alternativen, wie Dateneinträge k* im Index aussehen können: 1. Datensatz mit.
Das LCA – Problem in Suffixbäumen
GIN2 – 2. Vorlesung, SS04 Prof. Dr. Wolfram Conen
C Tutorium – B*-Baum Index Manager –
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (22 – B-Bäume)
FH-Hof Der B-Baum Richard Göbel. FH-Hof Wahl des Verzweigungsgrad Verzweigungsgrad kann größer als 2 sein v Nachfolger für einen Knoten v-1 Werte in einem.
Der B-Baum Richard Göbel.
Kapitel 6: Klassifizierung von Sortiertechniken
7. Natürliche Binärbäume
Gewichtsbalancierte Suchbäume
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Bäume • Kernidee: Speicherung von Daten in einer Baumstruktur
Sortieren mit Binären Bäumen
Baumstrukturen Richard Göbel.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 – Sortieren vorsortierter Daten) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Sortieren vorsortierter Daten
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - Balancierte Bäume, AVL-Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
Informatik II – Kapitel 13
Datenbankentwurf mit Hilfe des ER-Modells entwickeln
IKG - Übung Diskrete Mathe I – Jörg Schmittwilken
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
Beziehungen und Beziehungstypen (1)
Kapitel 2: Datenstrukturen
Punktbeschriftung mit vier Rechtecken gleicher Höhe (Anzahlmaximierung) Julia Löcherbach.
7.1 Externes Suchen Bisherige Algorithmen: geeignet, wenn alle Daten im Hauptspeicher. Große Datenmengen: oft auf externen Speichermedien, z.B. Festplatte.
Animationen zu Kap. 4.3: AVL-Bäume
Splay Trees Von Projdakov Benjamin.
2. Die rekursive Datenstruktur Baum 2
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 7 SS 2000 Punkt-in-Polygon-Verfahren I (Trapezkarte)
Effiziente Algorithmen
Effiziente Algorithmen
Information und Kommunikation
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Übung Datenbanksysteme II Index- strukturen
(D.h. „Hallo MausFans!“ auf Japanisch).
7.2.2 Bäume als Hilfsmittel zur Indexorganisation (1/14)
Graphen und Bäume.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung April 2000 AVL-Bäume.
Binärer Suchbaum IV AVL-Baum I
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Binärer Suchbaum III- -AVL-Baum-
Binärer Baum, Binärer Suchbaum I
Raumbezogene Zugriffsverfahren
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren.
Binärbäume.
Aufgabe 1. Herausforderungen I Persistente Datenspeicherung: Möchte man jeden Morgen alle Käufe und Verkäufe neu zusammensuchen? Sehr große Datenmengen:
Übungsblatt 3 Erläuterungen Wintersemester 15/16 DBIS.
ER-Modell Gegeben E: Jedes Entity eines Typs ist eindeutig durch das zugeordnete Tupel beschrieben. (sonst wäre A nicht charakteristisch [genug]
AVL-Bäume.
OCL – Object Constraint Language
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
Laufzeitverhalten beim Sortieren
Punkt-in-Landkarte II
ER-Modell und Relationales Schema
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
3. Die Datenstruktur Graph 3.2 Repräsentation von Graphen
DB2 – SS 2019 von Baum allgemein bis B*-Baum
DB2 – SS 2019 von Baum allgemein bis B*-Baum
 Präsentation transkript:

Übungsblatt 2 Erläuterungen Wintersemester 16/17 DBIS

Aufgabe 1 B-Bäume Wintersemester 16/17 DBIS

Definition eines B-Baums mit Ordnung n: Jeder Weg von der Wurzel zum Blatt hat die gleiche Länge h. Jeder Knoten (außer Wurzel und Blätter) hat mindestens n+1 Söhne. Die Wurzel hat mindestens 2 Söhne. Jedes Blatt besitzt mindestens n Einträge. Jeder Knoten hat höchstens 2n+1 Söhne. Während der Entstehungsphase des Baumes kann es zu Verletzungen dieser Bedingungen kommen (Initialfüllphase). Rückschluss aus „Regeln“ für Höchstanzahl der Söhne: 1-elementige Knoten haben maximal 2 Kinder (links, rechts) 2-elementige Knoten haben maximal 3 Kinder (da sie sich ein Kind teilen) 3-elementige Knoten haben maximal 4 Kinder

 Auf jeden Knoten passen maximal 6 Elemente. Gegeben: n = 3 Jeder Weg von der Wurzel zum Blatt hat die gleiche Länge h. Jeder Knoten (außer Wurzel und Blätter) hat mindestens 4 Söhne. Die Wurzel hat mindestens 2 Söhne. Jedes Blatt besitzt mindestens 3 Einträge. Jeder Knoten hat höchstens 7 Söhne.  Auf jeden Knoten passen maximal 6 Elemente.

Beginn der Füllung mit den Werten 5,7 und 21 Hinzufügen der Werte 2, 10, 76 2 5 7 21 2 5 7 10 21 2 5 7 10 21 76 Hinzufügen des Wertes 77 2 5 7 10 21 76 77 Zu voll, umsortieren Mittleres Element

10 2 5 7 21 76 77 Hinzufügen der Werte 3, 4, 9, 78 10 2 3 5 7 21 76 77 10 2 3 4 5 7 21 76 77 10 2 3 4 5 7 9 21 76 77

Hinzufügen des Wertes 1 Zu voll, umsortieren Mittleres Element 10 2 3 4 5 7 9 21 76 77 78 Hinzufügen des Wertes 1 10 1 2 3 4 5 7 9 21 76 77 78 Zu voll, umsortieren Mittleres Element Neuer Vater landet in übergeordneter Ebene 4 1 2 3 5 7 9

Löschen des Wertes 76 Löschen des Wertes 77 Zu leer, umsortieren 4 10 2 3 5 7 9 21 76 77 78 Löschen des Wertes 76 4 10 1 2 3 5 7 9 21 77 78 Löschen des Wertes 77 4 10 1 2 3 5 7 9 21 78 Zu leer, umsortieren

Nachbar bietet ausreichend Platz  verschmelzen 4 10 1 2 3 5 7 9 21 78 Nachbar bietet ausreichend Platz  verschmelzen 4 1 2 3 5 7 9 10 21 78

Beispiel Kleine Rotation

Beispiel große Rotation

Aufgabe 2 Extendible Hashing Wintersemester 16/17 DBIS

Schritt 1 – Berechnung der Hashwerte h(x) = x DIV 10 Werte: 42, 165, 211, 233, 255 und 82 42 DIV 10 = 4 R 2  4 165 DIV 10 = 16 R 5  16 211 DIV 10 = 21 R 1  21 233 DIV 10 = 23 R 3  23 255 DIV 10 = 25 R 5  25 82 DIV 10 = 8 R 2  8

x h(x)10 h(x)2 42 4 165 16 211 21 233 23 255 25 82 8 Schritt 2 – Berechnung der Binärwerte zu den Hashwerten Werte h(x): 4, 16, 21, 23, 25 und 8 Zahlen in Binär: 4 ≙ 0 0 1 0 0 24 23 22 21 20 0 * 16 + 0 * 8 + 1 * 4 + 0 * 2 + 0 * 1 Umrechnung z.B. über Divisionsrestverfahren: 4 MOD 2 = 2 R 0 2 MOD 2 = 1 R 0 1 MOD 2 = 0 R 1  100  vorn Nullen anstellen bis zur gegeben Länge: 00100 Leserichtung

Schritt 3 – Schrittweises Einfügen der Werte in den Bucket x h(x)10 h(x)2 42 4 165 16 211 21 233 23 255 25 82 8 4 = 00100 16 = 10000 21 = 10101 23 = 10111 25 = 11001 8 = 01000 Schritt 3 – Schrittweises Einfügen der Werte in den Bucket Gegeben: Bucket-Kapazität b=3 Startsituation: leerer Bucket, lokale Tiefe 0 B1

x h(x)10 h(x)2 42 4 00100 165 16 10000 211 21 10101 233 23 10111 255 25 11001 82 8 01000 Einfügen der Werte 42, 165, 211 B1 42 4 (00100) B1 42 4 (00100) 165 16 (10000) B1 42 4 (00100) 165 16 (10000) 211 21 (10101)

Voll!  Neuer Bucket, neue Tiefe(n) x h(x)10 h(x)2 42 4 00100 165 16 10000 211 21 10101 233 23 10111 255 25 11001 82 8 01000 Einfügen des Wertes 233 B1 42 4 (00100) 165 16 (10000) 211 21 (10101) Voll!  Neuer Bucket, neue Tiefe(n) 1 B1 1 1 1 B2

Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. x h(x)10 h(x)2 42 4 00100 165 16 10000 211 21 10101 233 23 10111 255 25 11001 82 8 01000 Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. Hashwerte, die binär mit 1 beginnen, kommen in Bucket 2. 1 B1 1 0… 1 1… B2

Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. x h(x)10 h(x)2 42 4 00100 165 16 10000 211 21 10101 233 23 10111 255 25 11001 82 8 01000 Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. Hashwerte, die binär mit 1 beginnen, kommen in Bucket 2. 1 B1 42 4 (00100) 1 0… 1 1… B2

Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. x h(x)10 h(x)2 42 4 00100 165 16 10000 211 21 10101 233 23 10111 255 25 11001 82 8 01000 Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. Hashwerte, die binär mit 1 beginnen, kommen in Bucket 2. 1 B1 42 4 (00100) 1 0… 1 1… B2 165 16 (10000)

Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. x h(x)10 h(x)2 42 4 00100 165 16 10000 211 21 10101 233 23 10111 255 25 11001 82 8 01000 Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. Hashwerte, die binär mit 1 beginnen, kommen in Bucket 2. 1 B1 42 4 (00100) 1 0… 1 1… B2 165 16 (10000) 211 21 (10101)

Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. x h(x)10 h(x)2 42 4 00100 165 16 10000 211 21 10101 233 23 10111 255 25 11001 82 8 01000 Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. Hashwerte, die binär mit 1 beginnen, kommen in Bucket 2. 1 B1 42 4 (00100) 1 0… 1 1… B2 165 16 (10000) 211 21 (10101) 233 23 (10111)

Voll!  Neuer Bucket, neue Tiefe(n) x h(x)10 h(x)2 42 4 00100 165 16 10000 211 21 10101 233 23 10111 255 25 11001 82 8 01000 Einfügen des Wertes 255 1 B1 42 4 (00100) 1 0… 1 1… B2 165 16 (10000) 211 21 (10101) 233 23 (10111) Voll!  Neuer Bucket, neue Tiefe(n)

Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. x h(x)10 h(x)2 42 4 00100 165 16 10000 211 21 10101 233 23 10111 255 25 11001 82 8 01000 Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. Hashwerte, die binär mit 10 beginnen, kommen in Bucket 2. Hashwerte, die binär mit 11 beginnen, kommen in Bucket 3. 1 B1 42 4 (00100) 2 2 00.. B2 01.. Magic! Unterschiedliche lokale Tiefen. 10.. 11.. 2 B3

Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. x h(x)10 h(x)2 42 4 00100 165 16 10000 211 21 10101 233 23 10111 255 25 11001 82 8 01000 Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. Hashwerte, die binär mit 10 beginnen, kommen in Bucket 2. Hashwerte, die binär mit 11 beginnen, kommen in Bucket 3. 1 B1 42 4 (00100) 2 2 00.. B2 165 16 (10000) 01.. 10.. 11.. 2 B3

Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. x h(x)10 h(x)2 42 4 00100 165 16 10000 211 21 10101 233 23 10111 255 25 11001 82 8 01000 Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. Hashwerte, die binär mit 10 beginnen, kommen in Bucket 2. Hashwerte, die binär mit 11 beginnen, kommen in Bucket 3. 1 B1 42 4 (00100) 2 2 00.. B2 165 16 (10000) 01.. 211 21 (10101) 10.. 11.. 2 B3

Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. x h(x)10 h(x)2 42 4 00100 165 16 10000 211 21 10101 233 23 10111 255 25 11001 82 8 01000 Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. Hashwerte, die binär mit 10 beginnen, kommen in Bucket 2. Hashwerte, die binär mit 11 beginnen, kommen in Bucket 3. 1 B1 42 4 (00100) 2 2 00.. B2 165 16 (10000) 01.. 211 21 (10101) 10.. 233 23 (10111) 11.. 2 B3

Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. x h(x)10 h(x)2 42 4 00100 165 16 10000 211 21 10101 233 23 10111 255 25 11001 82 8 01000 Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. Hashwerte, die binär mit 10 beginnen, kommen in Bucket 2. Hashwerte, die binär mit 11 beginnen, kommen in Bucket 3. 1 B1 42 4 (00100) 2 2 00.. B2 165 16 (10000) 01.. 211 21 (10101) 10.. 233 23 (10111) 11.. 2 B3 255 25 (11001)

x h(x)10 h(x)2 42 4 00100 165 16 10000 211 21 10101 233 23 10111 255 25 11001 82 8 01000 Einfügen des Wertes 82 1 B1 42 4 (00100) 82 8 (01000) 2 2 00.. B2 165 16 (10000) 01.. 211 21 (10101) 10.. 233 23 (10111) 11.. 2 B3 255 25 (11001)

Aufgabe 3 Größenordnungen im B+-Baum Wintersemester 16/17 DBIS

Wie viele Datensätze kann ein komplett gefüllter B+-Baum aufnehmen Wie viele Datensätze kann ein komplett gefüllter B+-Baum aufnehmen? Beginnen Sie mit der Berechnung der maximalen Werte für n und n*. B+-Baum = Daten liegen nur in den Blättern, Wurzel und innere Knoten enthalten keine Daten

Wie viele Elemente passen in innere Knoten? Gegeben: Seitengröße exklusive Overhead = 4000 Byte Pointer = 12 Byte Schlüsselwert = 8 Byte Seite mit einem Element: 2 Pointer + 1 Schlüsselwert = 24 Byte + 8 Byte = 32 Byte Jedes weitere Element: 1 Pointer + 1 Schlüsselwert = 12 Byte + 8 Byte = 20 Byte 2 Elemente: 52 Byte 3 Elemente: 72 Byte … 199 Elemente: 32 Byte + (198*20 Byte) = 32 Byte + 3960 Byte = 3992 Byte  n = 199 / 2 = 99,5

Wie viele Elemente passen in äußere Knoten? Gegeben: Seitengröße exklusive Overhead = 4000 Byte Pointer = 12 Byte Schlüsselwert = 8 Byte Datenteil = 80 Byte Seite mit einem Element: 2 Pointer + 1 Schlüsselwert + 1 Datenteil = 24 Byte + 8 Byte + 80 Byte = 112 Byte Jedes weitere Element: 1 Schlüsselwert + 1 Datenteil = 8 Byte + 80 Byte = 88 Byte 2 Elemente: 200 Byte 3 Elemente: 288 Byte … 45 Elemente: 112 Byte + (44*88 Byte) = 112 Byte + 3872 Byte = 3984 Byte  n* =45 / 2 = 22,5

Wie viele Datensätze kann ein komplett gefüllter B+-Baum aufnehmen? Gegeben: Höhe = 3 Wurzel h = 1 Jeweils 199 Elemente pro Seite h = 2 h = 3 Jeweils 45 Elemente pro Seite Ebene 0 (Wurzel): 199 Elemente 200 ausgehenden Kanten Ebene 1: 200 * 199 = 39.800 Elemente 200 * 200 = 40.000 ausgehende Kanten Ebene 2: 40.000 * 199 = 7.960.000 Elemente 40.000 * 200 = 8.000.000 ausgehende Kanten Ebene 3: Blätter haben Datenteile, daher nur 45 Elemente pro Blatt! 8.000.000 * 45 = 360.000.000 Daten liegen nur in den Blättern 360 Mio. Datenelemente im Baum

Wie viele Datensätze kann ein komplett gefüllter B-Baum mit den selben Vorgaben aufnehmen? B-Baum: Daten in allen Knoten

Wie viele Elemente passen in einen Knoten? Gegeben: Seitengröße exklusive Overhead = 4000 Byte Pointer = 12 Byte Schlüsselwert = 8 Byte Datenteil = 80 Byte Seite mit einem Element: 2 Pointer + 1 Schlüsselwert + 1 Datenteil = 24 Byte + 8 Byte + 80 Byte = 112 Byte Jedes weitere Element: 1 Pointer + 1 Schlüsselwert + 1 Datenteil = 12 Byte + 8 Byte + 80 Byte = 100 Byte 2 Elemente: 212 Byte 3 Elemente: 312 Byte … 39 Elemente: 112 Byte + (38*100 Byte) = 112 Byte + 3800 Byte = 3912 Byte  n =39 / 2 = 19,5

Wie viele Datensätze kann ein komplett gefüllter B-Baum aufnehmen? Ebene 0 (Wurzel): 39 Elemente 40 ausgehenden Kanten Ebene 1: 40 * 39 = 1.560 Elemente 40 * 40 = 1.600 ausgehende Kanten Ebene 2: 1.600 * 39 = 62.400 Elemente 1.600 * 40 = 64.000 ausgehende Kanten Ebene 3: 64.000 * 39 = 2.496.000 Elemente Daten liegen in allen Seiten: 2.496.000 + 62.400 + 1.560 + 39 = 2.559.999 ~ 2,6 Mio. Datenelemente im Baum

Aufgabe 4 Begriffe des Entity-Relationship-Modells

Ordnen Sie den folgenden Beschreibungen den passenden Begriff zu. Begriffe: Entity, Entitytyp, Entitymenge, Attribut, Attributwert, Beziehung, Beziehungstyp und Beziehungsmenge HiWi Martin Welsch Prof. Dr.-Ing. habil. Ernst Günter Schukat-Talamazzini Professor Menge aller möglichen Professoren {F. Haney, A. Wickenhäuser} kennen = Student x Professor Jessika Peter kennt Prof. Dr.-Ing. habil. Clemens Beckstein Vorname Ernst Günter {Jessika Peter schätzt Prof. Dr. Beckstein, Jessika Peter schätzt Prof. Dr. Küspert} 1955 Entitytyp Entity Entitymenge Beziehungstyp Beziehung Attribut Attributwert Beziehungsmenge

Aufgabe 5 Schlüssel zum Glück

Stellt dies eine geeignete Modellierung dar? Herr X hat trotz schwieriger gesamtwirtschaftlicher Lage am 12.11.2015 eine Firma Y AG & Co. KG in Z gegründet, welche sich in mehrere Abteilungen untergliedert. Keine zwei Mitarbeiter dieser jungen, aufstrebenden Firma besitzen den gleichen Namen (obwohl die Firma bereits zwei Mitarbeiter hat!). Als Primärschlüssel des Entitytyps Mitarbeiter soll das Attribut „Name“ dienen. Als Primärschlüssel des Entitytyps Abteilung wurde das Attribut „AbtNr“ ausgewählt. Name bleibt nicht zwingend eindeutig. (Firma soll noch wachsen.) ungeeignete Modellierung Abteilungsnummer kann beliebig erhöht werden neue Abteilungen können Problemlos eingerichtet werden geeignete Modellierung