Aufgabe 1. Herausforderungen I Persistente Datenspeicherung: Möchte man jeden Morgen alle Käufe und Verkäufe neu zusammensuchen? Sehr große Datenmengen:

Slides:



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

Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Suchbäume unterstützen alle unten angegebenen Operationen für dynamische Mengen K effizient: Search(K ,k) ---- Suche ein Element x von K mit Schlüssel.
Der k-d-Baum Richard Göbel.
7.2 B-Bäume / B*-Bäume als Hilfsmittel zur Indexorganisation
Sortieren I - Bubblesort -
Das LCA – Problem in Suffixbäumen
GIN2 – 2. Vorlesung, SS04 Prof. Dr. Wolfram Conen
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
Indexed Sequential Access Method
Sortieren mit Binären Bäumen
Effizienz: Indexstrukturen
Baumstrukturen Richard Göbel.
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
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (22 – Bruder-Bäume, B-Bäume) Prof. Th. Ottmann.
Informatik II – Kapitel 13
R-tree, R*-tree und R+-tree
IKG - Übung Diskrete Mathe I – Jörg Schmittwilken
Kap. 6.2 Binäre B-Bäume Ullmann: (2, 3) - Bäume
Minimum Spanning Tree: MST
7.1 Externes Suchen Bisherige Algorithmen: geeignet, wenn alle Daten im Hauptspeicher. Große Datenmengen: oft auf externen Speichermedien, z.B. Festplatte.
2. Die rekursive Datenstruktur Baum 2
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Übung Datenbanksysteme II Index- strukturen
Binäre Bäume Louis Moret und Reto Huber, 5. 11
Vorlesung Binärer Suchbaum II-
Graphen und Bäume.
Algorithmen und Datenstrukturen Übungsmodul 8
Komplexität von Algorithmen
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 Mai 2000 Konstruktion des Voronoi-Diagramms.
Algorithmen und Datenstrukturen 1 SS 2002
7 Bäume = „verzweigte Folgen“ Z.B. Stammbaum, patriarchalisch: Abraham
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
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
Diskrete Mathematik I Vorlesung 7 Binärer Suchbaum III.
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.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 2 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 1 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
1Formeln in ExcelPiWa 2006/07 Aufbau und Eingabe von Formeln l Funktion = vorgefertigte Formel Formel Funktion.
Aufgabe 1.
Übungsblatt 2 Erläuterungen Wintersemester 16/17 DBIS.
AVL-Bäume.
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
Laufzeitverhalten beim Sortieren
Punkt-in-Landkarte II
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
DB2 – SS 2019 von Baum allgemein bis B*-Baum
DB2 – SS 2019 von Baum allgemein bis B*-Baum
 Präsentation transkript:

Aufgabe 1

Herausforderungen I Persistente Datenspeicherung: Möchte man jeden Morgen alle Käufe und Verkäufe neu zusammensuchen? Sehr große Datenmengen: Welche Papierberge ergeben sich wohl für alle Käufe und Verkäufe aller Aktien seit Beginn des Aktienhandels? Sehr schneller Zugriff auf alle Daten: Wie lange Wartezeiten sind akzeptierbar, wenn Sie Aktien kaufen wollen und den aktuellen Kurs benötigen? Hohe Verfügbarkeit der Daten: Welche Geschäftszeiten sind im internationalen Aktienmarkt vereinbar? 2Wintersemester 15/16DBIS

Herausforderungen II Hohe Flexibilität beim Datenzugriff inklusive (automatischer) Auswertung: Wer überwacht alle Käufe und Verkäufe und erstellt dann die Charts über den Kursverlauf? Hohe Flexibilität bezüglich der Datenverteilung: Können alle Daten im internationalen Aktienmarkt zentral verwaltet werden? Hohe Flexibilität bezüglich der Lastverteilung: Kann ein PC das ganze Aktienwesen steuern? Was passiert, wenn dieser ausfällt? Hohe Benutzerfreundlichkeit des Datenhaltungssystems: Möchten alle Käufer komplizierte Formeln (Code) eingeben, um z.B. die aktuellen Kurse einzusehen? 3Wintersemester 15/16DBIS

Herausforderungen III Sicherheit vor Datenverlust: Ist es akzeptabel, dass ein Aktienkauf auch mal verloren geht? Was ist bei technischen Störungen? Sicherheit vor unberechtigtem Datenzugriff: Darf mein Nachbar wissen, welche Aktien ich besitze? Paralleler Zugriff ohne Konflikte: Ist es vertretbar, dass immer nur eine Person pro Zeiteinheit Aktien kaufen kann? Automatische Garantie semantischer Integrität: Kann ein Aktienkurs negativ werden? Was passiert mit den Aktien eines Unternehmens, wenn es aufgekauft wird? Hoher Grad an Datenunabhängigkeit: Muss/Kann man alle Anwendungen ändern, wenn z.B. durch Gesetze neue Informationen zu Aktienkäufen gespeichert werden müssen? 4Wintersemester 15/16DBIS

Aufgabe 2

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 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 „Regel für Höchstanzahl der Söhne:

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.

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

Hinzufügen der Werte 3, 4, 9,

Hinzufügen des Wertes Zu voll, umsortieren Mittleres Element Neuer Vater landet in übergeordneter Ebene

Löschen des Wertes Löschen des Wertes Zu leer, umsortieren

Nachbar bietet ausreichend Platz  verschmelzen

Beispiel Kleine Rotation

Beispiel große Rotation

Aufgabe 3

Schritt 1 – Berechnung der Hashwerte h(x) = x DIV 10 Werte: 42, 165, 211, 233, 255 und DIV 10 = 4 R 2  DIV 10 = 16 R 5  DIV 10 = 21 R 1  DIV 10 = 23 R 3  DIV 10 = 25 R 5  DIV 10 = 8 R 2  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 ≙ * * * * * 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: Leserichtung

4 = = = = = = Schritt 3 – Schrittweises Einfügen der Werte in den Bucket Gegeben: Bucket-Kapazität b=3 Startsituation: leerer Bucket, lokale Tiefe B1B1

B1B1 Einfügen der Werte 42, 165, (00100) B1B1 4 (00100) 16 (10000) B1B1 4 (00100) 16 (10000) 21 (10101)

Einfügen des Wertes B1B1 4 (00100) 16 (10000) 21 (10101) Voll!  Neuer Bucket, neue Tiefe(n) B1B1 1 B2B2

0… 1 1… 1 B1B1 1 B2B2 Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. Hashwerte, die binär mit 1 beginnen, kommen in Bucket 2.

0… 1 1… 42 1 B1B1 1 B2B2 Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. Hashwerte, die binär mit 1 beginnen, kommen in Bucket 2. 4 (00100)

0… 1 1… 42 1 B1B B2B2 Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. Hashwerte, die binär mit 1 beginnen, kommen in Bucket 2. 4 (00100) 16 (10000)

0… 1 1… 42 1 B1B B2B2 Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. Hashwerte, die binär mit 1 beginnen, kommen in Bucket 2. 4 (00100) 16 (10000) 21 (10101)

0… 1 1… 42 1 B1B B2B2 Hashwerte, die binär mit 0 beginnen, kommen in Bucket 1. Hashwerte, die binär mit 1 beginnen, kommen in Bucket 2. 4 (00100) 16 (10000) 21 (10101) 23 (10111)

0… 1 1… 42 1 B1B B2B2 Einfügen des Wertes (00100) 16 (10000) 21 (10101) 23 (10111) Voll!  Neuer Bucket, neue Tiefe(n)

B1B1 2 B2B2 4 (00100) 2 B3B3 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. Magic! Unterschiedliche lokale Tiefen.

B1B B2B2 4 (00100) 2 B3B3 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 (10000)

B1B B2B2 4 (00100) 2 B3B3 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 (10000) 21 (10101)

B1B B2B2 4 (00100) 2 B3B3 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 (10000) 21 (10101) 23 (10111)

B1B B2B2 4 (00100) B3B3 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 (10000) 21 (10101) 23 (10111) 25 (11001)

B1B B2B2 4 (00100) B3B3 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 (10000) 21 (10101) 23 (10111) 25 (11001)

B1B B2B2 4 (00100) B3B3 Einfügen des Wertes (10000) 21 (10101) 23 (10111) 25 (11001) 8 (01000)

Aufgabe 4

Wie viele Datensätze kann ein komplett gefüllter B+-Baum mit obigen Vorgaben 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 sind ohne Daten Wie viele Elemente passen in einen Knoten? Innere Knoten (n): 4000 Byte – 96 Byte Overhead = 3904 Byte 2 Pointer = 24 Byte 1 Schlüsselwert= 8 Byte Seite mit einem Knoten: = 128 Byte Jeder weitere Knoten: = 20 Byte 2 Knoten: 148 Byte 3 Knoten: 168 Byte … 194 Knoten: 128 Byte + (193*20 Byte) = 128 Byte Byte = 3988 Byte  n = 97

Äußere Knoten (n*): 4000 Byte – 96 Byte Overhead = 3904 Byte 2 Pointer = 24 Byte 1 Schlüsselwert= 8 Byte 1 Datenteil= 80 Byte Seite mit einem Knoten: = 208 Byte Jeder weitere Knoten: = 100 Byte 2 Knoten: 308 Byte 3 Knoten: 408 Byte … 38 Knoten: 208 Byte + (37*100 Byte) = 208 Byte Byte = 3908 Byte  n* = 19

Gegeben: h = 3 Wurzel h = 1 h = 2 h = 3 Jeweils 194 Elemente pro Blatt Jeweils 38 Elemente pro Blatt Ebene 0 (Wurzel): 194 Elemente 195 ausgehenden Kanten Ebene 1: 195 * 194 = Elemente 195 * 195 = ausgehende Kanten Ebene 2: * 194 = Elemente * 195 = ausgehende Kanten Ebene 3: Blätter haben Datenteile, daher nur 38 Elemente pro Blatt! * 38 = Daten liegen nur in den Blättern ~ 282 Mio. Datenelemente im Baum

Wie viele Datensätze kann ein komplett gefüllter B-Baum mit obigen Vorgaben aufnehmen? B-Baum: Daten in allen Knoten Ebene 0 (Wurzel): 38 Elemente 39 ausgehenden Kanten Ebene 1: 39 * 38 = Elemente 39 * 39 = ausgehende Kanten Ebene 2: * 38 = Elemente * 39 = ausgehende Kanten Ebene 3: * 38 = Elemente Daten liegen in allen Elementen: ~ 2,3 Mio. Datenelemente im Baum