Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


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

1 Aufgabe 1

2 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

3 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

4 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

5 Aufgabe 2

6 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:

7 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.

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

9 10 527 762177 Hinzufügen der Werte 3, 4, 9, 78 10 3257 762177 10 32457 762177 10 32457 9 762177

10 10 32457 9 76217778 Hinzufügen des Wertes 1 10 32457 9 76217778 1 Zu voll, umsortieren Mittleres Element 4 213 759 Neuer Vater landet in übergeordneter Ebene

11 104 213 759 76217778 Löschen des Wertes 76 104 213 759 772178 Löschen des Wertes 77 104 213 759 7821 Zu leer, umsortieren

12 104 213 759 7821 Nachbar bietet ausreichend Platz  verschmelzen 7591021 78 4 213

13 Beispiel Kleine Rotation

14 Beispiel große Rotation

15 Aufgabe 3

16 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

17 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 2 4 2 3 2 2 2 1 2 0 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

18 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 0 0 B1B1

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

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

21 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.

22 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)

23 0… 1 1… 42 1 B1B1 165 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) 16 (10000)

24 0… 1 1… 42 1 B1B1 165 1 211 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)

25 0… 1 1… 42 1 B1B1 165 1 211 233 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)

26 0… 1 1… 42 1 B1B1 165 1 211 233 B2B2 Einfügen des Wertes 255 4 (00100) 16 (10000) 21 (10101) 23 (10111) Voll!  Neuer Bucket, neue Tiefe(n)

27 10.. 01.. 00.. 11.. 2 42 1 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.

28 10.. 01.. 00.. 11.. 2 42 1 B1B1 165 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. 16 (10000)

29 10.. 01.. 00.. 11.. 2 42 1 B1B1 165 2 211 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. 16 (10000) 21 (10101)

30 10.. 01.. 00.. 11.. 2 42 1 B1B1 165 2 211 233 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. 16 (10000) 21 (10101) 23 (10111)

31 10.. 01.. 00.. 11.. 2 42 1 B1B1 165 2 211 233 B2B2 4 (00100) 255 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. 16 (10000) 21 (10101) 23 (10111) 25 (11001)

32 10.. 01.. 00.. 11.. 2 42 1 B1B1 165 2 211 233 B2B2 4 (00100) 255 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. 16 (10000) 21 (10101) 23 (10111) 25 (11001)

33 10.. 01.. 00.. 11.. 2 42 1 82 B1B1 165 2 211 233 B2B2 4 (00100) 255 2 B3B3 Einfügen des Wertes 82 16 (10000) 21 (10101) 23 (10111) 25 (11001) 8 (01000)

34 Aufgabe 4

35 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: 96 + 24 + 8 = 128 Byte Jeder weitere Knoten: 12 + 8 = 20 Byte 2 Knoten: 148 Byte 3 Knoten: 168 Byte … 194 Knoten: 128 Byte + (193*20 Byte) = 128 Byte + 3860 Byte = 3988 Byte  n = 97

36 Ä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: 96 + 24 + 8 + 80 = 208 Byte Jeder weitere Knoten: 12 + 8 + 80 = 100 Byte 2 Knoten: 308 Byte 3 Knoten: 408 Byte … 38 Knoten: 208 Byte + (37*100 Byte) = 208 Byte + 3700 Byte = 3908 Byte  n* = 19

37 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 = 37.830 Elemente 195 * 195 = 38.025 ausgehende Kanten Ebene 2: 38.025 * 194 = 7.376.850 Elemente 38.025 * 195 = 7.414.875 ausgehende Kanten Ebene 3: Blätter haben Datenteile, daher nur 38 Elemente pro Blatt! 7.414.875 * 38 = 281.765.250 Daten liegen nur in den Blättern ~ 282 Mio. Datenelemente im Baum

38 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 = 1.482 Elemente 39 * 39 = 1.521 ausgehende Kanten Ebene 2: 1.521 * 38 = 57.798 Elemente 1.521 * 39 = 59.319 ausgehende Kanten Ebene 3: 59.319 * 38 = 2.257.122 Elemente Daten liegen in allen Elementen: 2.257.122 + 57.798 + 1.482 + 38 ~ 2,3 Mio. Datenelemente im Baum


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

Ähnliche Präsentationen


Google-Anzeigen