Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Kapitel 7 Physische Datenorganisation  Speicherhierarchie  Hintergrundspeicher / RAID  Speicherstrukturen  B-Bäume  Hashing  R-Bäume.

Ähnliche Präsentationen


Präsentation zum Thema: "Kapitel 7 Physische Datenorganisation  Speicherhierarchie  Hintergrundspeicher / RAID  Speicherstrukturen  B-Bäume  Hashing  R-Bäume."—  Präsentation transkript:

1

2 Kapitel 7 Physische Datenorganisation  Speicherhierarchie  Hintergrundspeicher / RAID  Speicherstrukturen  B-Bäume  Hashing  R-Bäume

3 2 Überblick: Speicherhierarchie Register (L1/L2/L3) Cache Hauptspeicher Plattenspeicher Archivspeicher

4 3 Überblick: Speicherhierarchie Register Cache Hauptspeicher Plattenspeicher Archivspeicher 1 – 8 Byte Compiler 8 – 128 Byte Cache-Controller 4 – 64 KB Betriebssystem Benutzer

5 4 Überblick: Speicherhierarchie 1-10ns Register 10-100ns Cache 100-1000ns Hauptspeicher 10 ms Plattenspeicher sec Archivspeicher Zugriffslücke 10 5

6 5 Überblick: Speicherhierarchie 1-10ns Register 10-100ns Cache 100-1000ns Hauptspeicher 10 ms Plattenspeicher sec Archivspeicher Zugriffslücke 10 5 Kopf (1min) Raum (10 min) München (1.5h) Pluto (2 Jahre) Andromeda (2000 Jahre)

7 6

8 7 Magnetplattenspeicher

9 8 2013 15000 rpm ~ 4 ms pro Umdreh. 1 TB Kapazität 100 MB/s Transferrate < 1$ / GB

10 9 Lesen von Daten von der Platte  Seek Time: Arm positionieren  5ms  Latenzzeit: ½ Plattenumdrehung (im Durchschnitt)  15000 Umdrehungen / Minute   Ca 2ms  Transfer von der Platte zum Hauptspeicher  100 MB/s

11 10 Random versus Chained IO  1000 Blöcke à 4KB sind zu lesen  Random I/O  Jedesmal Arm positionieren  Jedesmal Latenzzeit   1000 * (5 ms + 2 ms) + Transferzeit von 4 MB   > 7000 ms + 40ms  7s  Chained IO  Einmal positionieren, dann „von der Platte kratzen“   5 ms + 2ms + Transferzeit von 4 MB   7ms + 40 ms  1/20 s  Also ist chained IO mindestens zwei Größenordnungen schneller als random IO  in Datenbank-Algorithmen unbedingt beachten !

12 11 Disk Arrays  RAID-Systeme

13 12

14 13 RAID 0: Striping  Lastbalancierung wenn alle Blöcke mit gleicher Häufigkeit gelesen/geschrieben werden  Doppelte Bandbreite beim sequentiellen Lesen der Datei bestehend aus den Blöcken ABCD...  Aber: Datenverlust wird immer wahrscheinlicher, je mehr Platten man verwendet (Stripingbreite = Anzahl der Platten, hier 2) A C B D ABCD Datei

15 14 RAID 1: Spiegelung (mirroring)  Datensicherheit: durch Redundanz aller Daten (Engl. mirror)  Doppelter Speicherbedarf  Lastbalancierung beim Lesen: z.B. kann Block A von der linken oder der rechten Platte gelesen werden  Aber beim Schreiben müssen beide Kopien geschrieben werden  Kann aber parallel geschehen  Dauert also nicht doppelt so lange wie das Schreiben nur eines Blocks A C B D A C B D

16 15  Kombiniert RAID 0 und RAID 1  Immer noch doppelter Speicherbedarf  Zusätzlich zu RAID 1 erzielt man hierbei auch eine höhere Bandbreite beim Lesen der gesamten Datei ABCD....  Wird manchmal auch als RAID 10 bezeichnet RAID 0+1: Striping und Spiegelung A C A C B D B D

17 16 RAID 2: Striping auf Bit-Ebene  Anstatt ganzer Blöcke, wie bei RAID 0 und RAID 0+1, wird das Striping auf Bit- (oder Byte-) Ebene durchgeführt  Es werden zusätzlich auf einer Platte noch Fehlererkennungs- und Korrekturcodes gespeichert  In der Praxis nicht eingesetzt, da Platten sowieso schon Fehlererkennungscodes verwalten 1010 1101 1011 0110 0011 1100.... Datei 111001...010101...101110...011010...

18 17 RAID 3: Striping auf Bit-Ebene, zusätzliche Platte für Paritätsinfo  Das Striping wird auf Bit- (oder Byte-) Ebene durchgeführt  Es wird auf einer Platte noch die Parität der anderen Platten gespeichert. Parität = bit-weise xor   Dadurch ist der Ausfall einer Platte zu kompensieren  Das Lesen eines Blocks erfordert den Zugriff auf alle Platten  Verschwendung von Schreib/Leseköpfen  Alle marschieren synchron 1010 1101 1011 0110 0011 1100.... Datei 111001...010101...101110...011010...011000...  Parität

19 18 RAID 3: Plattenausfall 1010 1101 1011 0110 0011 1100.... Datei 111001...010101...101110...011010...011000...  Parität 011010... Reparatur

20 19 RAID 4: Striping von Blöcken  Bessere Lastbalancierung als bei RAID 3  Flaschenhals bildet die Paritätsplatte  Bei jedem Schreiben muss darauf zugegriffen werden  Bei Modifikation von Block A zu A‘ wird die Parität P A-D wie folgt neu berechnet:  P‘ A-D := P A-D  A  A‘  D.h. bei einer Änderung von Block A muss der alte Zustand von A und der alte Paritätsblock gelesen werden und der neue Paritätsblock und der neue Block A‘ geschrieben werden AEBF CG DH P A-D P E-H

21 20 RAID 4: Striping von Blöcken  Flaschenhals bildet die Paritätsplatte  Bei jedem Schreiben muss darauf zugegriffen werden  Bei Modifikation von Block A zu A‘ wird die Parität P A-D wie folgt neu berechnet:  P‘ A-D := P A-D  A  A‘  D.h. bei einer Änderung von Block A muss der alte Zustand von A und der alte Paritätsblock gelesen werden und der neue Paritätsblock und der neue Block A‘ geschrieben werden 1010 1101 1011 0110 0011 1100.... Datei 1010......1101.......1011......0110......1010.......  Paritäts block

22 21 RAID 5: Striping von Blöcken, Verteilung der Paritätsblöcke  Bessere Lastbalancierung als bei RAID 4  die Paritätsplatte bildet jetzt keinen Flaschenhals mehr  Wird in der Praxis häufig eingesetzt  Guter Ausgleich zwischen Platzbedarf und Leistungsfähigkeit AEBF CG D HP A-D P E-H IMJ O LN K PP I-L P M-P

23 22 RAID 6: Wie RAID5, aber zwei Paritätsblöcke  Recovery bei RAID 5 kann mehrere Stunden dauern  Ausfall während Recovery führt zu Totalverlust der Daten  RAID6 kann auch einen Ausfall während der Recovery-Phase verkraften AEF CG D HP A-D P E-H I MJ O LN K PP I-L P M-P P E-H B P A-D P I-L P M-P

24 23 Lastbalancierung bei der Blockabbildung auf die Platten

25 24 Parallelität bei Lese/Schreib- Aufträgen

26 25 Bewertung der Parallelität bei RAID  RAID 0  ?  RAID 1  ?  RAID 0+1  ?  RAID 3  ?  RAID 4  ?  RAID 5  ?

27 26 verdrängen Hauptspeicher einlagern Platte ~ persistente DB Systempuffer-Verwaltung

28 27 Ein- und Auslagern von Seiten  Systempuffer ist in Seitenrahmen gleicher Größe aufgeteilt  Ein Rahmen kann eine Seite aufnehmen  „Überzählige“ Seiten werden auf die Platte ausgelagert Platte (swap device) Hauptspeicher 04K8K12K 28K 44K 60K 40K 48K 24K20K 16K 32K 36K 56K52K P480 P123 Seitenrahmen Seite

29 28 Adressierung von Tupeln auf dem Hintergrundspeicher

30 29 Verschiebung innerhalb einer Seite

31 30 Verschiebung von einer Seite auf eine andere Forward

32 31 Verschiebung von einer Seite auf eine andere Bei der nächsten Verschiebung wird der „Forward“ auf Seite 4711 geändert (kein Forward auf Seite 4812)

33 Neue Entwicklungen  Hauptspeicher-Datenbanksysteme  Times Ten  Transact in Memory  Monet DB  TREX von SAP  Columns Store versus Row Store  C-Store / Vertica  Monet  TREX 32

34 33

35 34 Überblick: Speicherhierarchie 1-10ns Register 10-100ns Cache 100-1000ns Hauptspeicher 10 ms Plattenspeicher sec Archivspeicher Zugriffslücke 10 5

36 35

37 Row Store versus Column Store 36

38 Row Store versus Column Store 37

39 Anfragebearbeitung 38

40 Komprimierung 39

41 B-Bäume Balancierte Mehrwege-Suchbäume Für den Hintergrundspeicher

42 41

43 42

44 43

45 44 S.. Suchschlüssel D.. Weitere Daten V.. Verweise (SeitenNr)

46 45

47 46

48 47 Einfügen eines neuen Objekts (Datensatz) in einen B-Baum

49 48 Sukzessiver Aufbau eines B-Baums vom Grad k=2 101319 7

50 49 Sukzessiver Aufbau eines B-Baums vom Grad k=2 7101319 3

51 50 Sukzessiver Aufbau eines B-Baums vom Grad k=2 7101319 3 ?

52 51 Sukzessiver Aufbau eines B-Baums vom Grad k=2 710 3 1319 ?

53 52 Sukzessiver Aufbau eines B-Baums vom Grad k=2 37 3 1319 ? 10

54 53 Sukzessiver Aufbau eines B-Baums vom Grad k=2 371319 ? 10

55 54 Sukzessiver Aufbau eines B-Baums vom Grad k=2 371319 ? 10 1

56 55 Sukzessiver Aufbau eines B-Baums vom Grad k=2 371319 ? 10 1

57 56 Sukzessiver Aufbau eines B-Baums vom Grad k=2 371319 ? 10 1

58 57 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1371319 ? 10 1

59 58 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1371319 ? 10 2

60 59 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1371319 ? 10 2 2

61 60 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12371319 ? 10 2 2

62 61 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12371319 ? 10 4

63 62 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12371319 ? 10 4 4

64 63 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12371319 ? 10 4 4

65 64 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12371319 ? 10 4 4

66 65 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12371319 ? 310 4 4

67 66 Sukzessiver Aufbau eines B-Baums vom Grad k=2 121319 ? 310 47

68 67 Sukzessiver Aufbau eines B-Baums vom Grad k=2 121319 ? 310 11 47

69 68 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12111319 ? 310 47

70 69 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12111319 ? 310 21 47

71 70 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12111319 ? 310 21 47

72 71 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1211131921 ? 310 12 47

73 72 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1211131921 ? 310 12 47

74 73 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1211131921 ? 310 12 47

75 74 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1211131921 ? 310 12 47

76 75 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1211131921 ? 31013 12 47

77 76 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12111921 ? 31013 12 471112

78 77 Sukzessiver Aufbau eines B-Baums vom Grad k=2 121921 ? 31013 12 471112

79 78 Sukzessiver Aufbau eines B-Baums vom Grad k=2 121921 ? 31013 14 471112

80 79 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12141921 ? 31013 14 471112

81 80 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12141921 ? 31013 15 471112

82 81 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1214151921 ? 31013 20 471112

83 82 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1214151921 ? 31013 20 471112 20

84 83 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1214151921 ? 31013 20 471112 20

85 84 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1214151921 ? 3101319 20 471112 20

86 85 Sukzessiver Aufbau eines B-Baums vom Grad k=2 121415 ? 3101319 20 471112 2021

87 86 Sukzessiver Aufbau eines B-Baums vom Grad k=2 121415 ? 3101319 5 471112 2021

88 87 Sukzessiver Aufbau eines B-Baums vom Grad k=2 121415 ? 3101319 5 471112 2021

89 88 Sukzessiver Aufbau eines B-Baums vom Grad k=2 121415 ? 3101319 5 4571112 2021

90 89 Sukzessiver Aufbau eines B-Baums vom Grad k=2 121415 ? 3101319 6 4571112 2021

91 90 Sukzessiver Aufbau eines B-Baums vom Grad k=2 121415 ? 3101319 6 45671112 2021

92 91

93 92 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 3101319 45671112 2021 8

94 93 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 3101319 45671112 2021 8 8

95 94 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 3101319 45671112 2021 8 8

96 95 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 3101319 45671112 2021 8 8

97 96 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 3101319 671112 2021 8 8 45

98 97 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 3101319 781112 2021 6 6 45

99 98 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 3101319 781112 2021 6 45

100 99 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 3101319 781112 2021 6 45

101 100 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 3101319 781112 2021 6 45

102 101 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 3101319 781112 2021 6 45 36

103 102 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 1319 781112 2021 10 45 36

104 103 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 1319 781112 2021 45 36 10

105 104 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 1319 781112 2021 45 36 10

106 105 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 1319 781112 2021 45 36 10 B-Baum mit Minimaler Speicherplatz- ausnutzung

107 106 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 1319 781112 2021 45 36 10 B-Baum mit Minimaler Speicherplatz- ausnutzung

108 107

109 108 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 1319 781112 2021 45 36 10 23

110 109 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 1319 781112 202123 45 36 10

111 110 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 1319 781112 202123 45 36 10 14

112 111 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 1319 781112 202123 45 36 10 14 Unterlauf

113 112 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 15 ? 1319 781112 202123 45 36 10 Unterlauf

114 113 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1519 ? 1320 781112 2123 45 36 10

115 114 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1519 ? 1320 781112 2123 45 36 10 5

116 115 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1519 ? 1320 781112 2123 45 36 10 5 Unterlauf

117 116 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1519 ? 1320 781112 2123 4 36 10 merge

118 117 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1519 ? 1320 781112 2123 4 36 10 merge

119 118 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1519 ? 1320 1112 2123 4678 3 10 Unterlauf

120 119 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1519 ? 1320 1112 2123 4678 3 10 merge

121 120 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1519 ? 1320 1112 2123 4678 3 10 merge

122 121 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1519 ? 1112 2123 4678 3101320

123 122 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1519 ? 1112 2123 4678 3101320 Schrumpfung, Freie Knoten

124 123 Speicherstruktur eines B-Baums auf dem Hintergrundspeicher 4 Speicherblock Nr 4

125 124 Speicherstruktur eines B-Baums auf dem Hintergrundspeicher 3 0 Datei 8 KB-Blöcke 0*8KB 1*8KB 2*8KB 3*8KB 4*8KB Block- Nummer

126 125 Speicherstruktur eines B-Baums auf dem Hintergrundspeicher 3 0 Datei 8 KB-Blöcke 0*8KB 1*8KB 2*8KB 3*8KB 4*8KB Block- Nummer

127 126 Speicherstruktur eines B-Baums auf dem Hintergrundspeicher 3 0 Datei 8 KB-Blöcke 0*8KB 1*8KB 2*8KB 3*8KB 1 1 0 1 0 0 1 1 0 Freispeicher- Verwaltung 4*8KB Block- Nummer

128 127 Zusammenspiel: Hintergrundspeicher -- Hauptspeicher Hintergrundspeicher 4 4 Hauptspeicher- Puffer Zugriffslücke 10 5

129 128 B + -Baum Referenz- schlüssel Such- schlüssel

130 129

131 130

132 131 Mehrere Indexe auf denselben Objekten B-Baum Mit (PersNr, Daten) Einträgen Name, Alter, Gehalt... B-Baum Mit (Alter, ???) Einträgen Alter, PersNr

133 132 Mehrere Indexe auf denselben Objekten B-Baum Mit (PersNr, Daten) Einträgen Name, Alter, Gehalt... B-Baum Mit (Alter, ???) Einträgen Alter, PersNr Wer ist 20 ? 20, 007

134 133 Mehrere Indexe auf denselben Objekten B-Baum Mit (PersNr, Daten) Einträgen Name, Alter, Gehalt... B-Baum Mit (Alter, ???) Einträgen Alter, PersNr Wer ist 20 ? 20, 007007,Bond,20,...

135 134 Eine andere Möglichkeit: Referenzierung über Speicheradressen PersNr Alter 007,... 20,... 007, Bond, 20,...

136 135 Realisierungstechnik für Hintergrundspeicher-Adressen Seiten / Blöcke (ca 8 KB)

137 136 Adressierung von Tupeln auf dem Hintergrundspeicher

138 137 Verschiebung innerhalb einer Seite

139 138 Verschiebung von einer Seite auf eine andere Forward

140 139 Verschiebung von einer Seite auf eine andere Bei der nächsten Verschiebung wird der „Forward“ auf Seite 4711 geändert (kein Forward auf Seite 4812)

141 140 „Statische“ Hashtabellen  À priori Allokation des Speichers  Nachträgliche Vergrößerung der Hashtabelle ist „teuer“  Hashfunktion h(...) =... mod N  Rehashing der Einträge  h(...) =... mod M  In Datenbankanwendungen viele GB  Erweiterbares Hashing  Zusätzliche Indirektion über ein Directory  Ein zusätzlicher Zugriff auf ein Directory, das den Zeiger (Verweis, BlockNr) des Hash-Bucket enthält  Dynamisches Wachsen (und Schrumpfen) ist möglich  Der Zugriff auf das Directory erfolgt über einen binären Hashcode

142 141

143 142 Statisches Hashing

144 143

145 144 Hashfunktion für erweiterbares Hashing  h: Schlüsselmenge   {0,1}*  Der Bitstring muss lang genug sein, um alle Objekte auf ihre Buckets abbilden zu können  Anfangs wird nur ein (kurzer) Präfix des Hashwertes (Bitstrings) benötigt  Wenn die Hashtabelle wächst wird aber sukzessive ein längerer Präfix benötigt  Beispiel-Hashfunktion: gespiegelte binäre PersNr  h(004) = 001000000... (4=0..0100)  h(006) = 011000000... (6=0..0110)  h(007) = 111000000... (7 =0..0111)  h(013) = 101100000... (13 =0..01101)  h(018) = 0100100000... (18 =0..010010)  h(032) = 000001000... (32 =0..0100000)  H(048) = 000011000... (48 =0..0110000)

146 145 7 13 6 18 32 48 4

147 146 7 13 6 18 32 48 4

148 147

149 148 7 13 6 18 32 48 4

150 149 7 13 6 18 32 48 4 12 Einfügen: 12 12=1100 h(12)=00110...

151 150 7 13 6 18 32 48 4 12 Einfügen: 20 20=10100 h(20)=001010... Overflow

152 151 h(12)=001100.. h(4) =00100.. h(20)=0010100..

153 152 h(12)=001100.. h(4) =00100.. h(20)=0010100.. 4 20 12

154 153

155 154

156 155

157 156

158 157  Wertbasierter Zugriff auf der Grundlage mehrerer Attribute, dies einzeln oder in beliebigen Kombinationen.  Typische Anforderungen aus CAD, VLSI-Entwurf, Kartographie,...  Anfragen decken den Bereich ab zwischen  mehrdimensionalem Punktzugriff (EMQ) und  mehrdimensionalen Bereichsanfragen (RQ)  Lösung mit eindimensionalen Indexen  erfordert konjunktive Zerlegung der Anfrage in Einattributanfragen und Schnittmengenbildung  bedingt hohe Speicherredundanz  Problemstellung:  Mehrdimensionale Nachbarschaftsverhältnisse Mehrdimensionale Datenstrukturen

159 158  Wertebereiche D 0,..., D k-1 : alle D i sind endlich, linear geordnet und besitzen kleinstes (-  i ) und größtes (  i ) Element  Datenraum D = D 0 ...  D k-1  k-dimensionaler Schlüssel entspricht Punkt im Datenraum p  D Grundlagen mehrdimensionaler Datenstrukturen

160 159 1. Exact Match Query spezifiziert Suchwert für jede Dimension D i 2. Partial Match Query spezifiziert Suchwert für einen Teil der Dimensionen 3. Range Query spezifiziert ein Suchintervall [ug i, og i ] für alle Dimensionen 4. Partial Range Query spezifiziert ein Suchintervall für einen Teil der Dimensionen Grundlagen mehrdimensionaler Datenstrukturen

161 160 Mehrdimensionale Zugriffsstrukturen können gemäß der Art der Aufteilung des Datenraums in Gebiete charakterisiert werden: 1. nur atomare Gebiete (beschreibbar durch ein Rechteck) 2. vollständig (die Vereinigung aller Gebiete ergibt den gesamten Datenraum) 3. disjunkt (die Gebiete überlappen nicht) Charakterisierung mehrdimensionaler Datenstrukturen Grid-File (Gitter-Datei): atomar, vollständig, disjunkt

162 161 Mehrdimensionale Zugriffsstrukturen können gemäß der Art der Aufteilung des Datenraums in Gebiete charakterisiert werden: 1. nur atomare Gebiete (beschreibbar durch ein Rechteck) 2. vollständig (die Vereinigung aller Gebiete ergibt den gesamten Datenraum) 3. disjunkt (die Gebiete überlappen nicht) Charakterisierung mehrdimensionaler Datenstrukturen K-D-B-Baum: atomar, vollständig, disjunkt

163 162 Mehrdimensionale Zugriffsstrukturen können gemäß der Art der Aufteilung des Datenraums in Gebiete charakterisiert werden: 1. nur atomare Gebiete (beschreibbar durch ein Rechteck) 2. vollständig (die Vereinigung aller Gebiete ergibt den gesamten Datenraum) 3. disjunkt (die Gebiete überlappen nicht) Charakterisierung mehrdimensionaler Datenstrukturen R + -Baum: atomar, disjunkt

164 163 Mehrdimensionale Zugriffsstrukturen können gemäß der Art der Aufteilung des Datenraums in Gebiete charakterisiert werden: 1. nur atomare Gebiete (beschreibbar durch ein Rechteck) 2. vollständig (die Vereinigung aller Gebiete ergibt den gesamten Datenraum) 3. disjunkt (die Gebiete überlappen nicht) Charakterisierung mehrdimensionaler Datenstrukturen R-Baum: atomar

165 164 Mehrdimensionale Zugriffsstrukturen können gemäß der Art der Aufteilung des Datenraums in Gebiete charakterisiert werden: 1. nur atomare Gebiete (beschreibbar durch ein Rechteck) 2. vollständig (die Vereinigung aller Gebiete ergibt den gesamten Datenraum) 3. disjunkt (die Gebiete überlappen nicht) Charakterisierung mehrdimensionaler Datenstrukturen Buddy-Hash-Baum: atomar, disjunkt

166 165 Mehrdimensionale Zugriffsstrukturen können gemäß der Art der Aufteilung des Datenraums in Gebiete charakterisiert werden: 1. nur atomare Gebiete (beschreibbar durch ein Rechteck) 2. vollständig (die Vereinigung aller Gebiete ergibt den gesamten Datenraum) 3. disjunkt (die Gebiete überlappen nicht) Charakterisierung mehrdimensionaler Datenstrukturen Z-B-Baum: vollständig,disjunkt

167 166 R-Baum: Urvater der baum-strukturierten mehrdimensionalen Zugriffsstrukturen

168 167 Gute versus schlechte Partitionierung

169 168 Nächste Phase in der Entstehungsgeschichte des R-Baums

170 169 Nächste Phase

171 170 Datenraum

172 171 Wachsen des Baums: nach oben – wie im B-Baum

173 172 Datenraum

174 173 Datenraum und Speicherstruktur – Überblick

175 174

176 175 Bereichsanfragen auf dem R-Baum

177 176

178 177 Indexierung räumlicher Objekte (anstatt Punkten) mit dem R-Baum

179 178 Indexierung räumlicher Objekte (anstatt Punkten) mit dem R-Baum

180 179 Indexierung räumlicher Objekte (anstatt Punkten) mit dem R-Baum

181 Bitmap-Indexe  Optimierung durch Komprimierung der Bitmaps  Ausnutzung der dünnen Besetzung  Runlength-compression  Grundidee: speichere jeweils die Länge der Nullfolgen zwischen zwei Einsen  Mehrmodus-Komprimierung:  bei langen Null/Einsfolgen speichere deren Länge  Sonst speichere das Bitmuster

182 Beispiel-Anfrage und Auswertung

183 Bitmap-Operationen

184 Bitmap-Join-Index

185

186 B-Baum TID-V (i,II)(ii,I)(iii,II)(iv,II)(v,I)(vi,II)... B-Baum TID-K (I,i)(I,v)(II,i)(II,iii)(II,iv)(II,vi)...

187 B-Baum TID-V (i,II)(ii,I)(iii,II)(iv,II)(v,I)(vi,II)... B-Baum TID-K (I,i)(I,v)(II,i)(II,iii)(II,iv)(II,vi)...

188 B-Baum TID-V (i,II)(ii,I)(iii,II)(iv,II)(v,I)(vi,II)... Select k.* From Verkäufe v, Kunden k Where v.ProduktID = 5 And v.KundenNr = k.KundenNr 5 5

189 Select v.* From Verkäufe v, Kunden k Where k.KundenNr = 4711 and v.KundenNr = k.KundenNr B-Baum TID-K (I,i)(I,v)(II,i)(II,iii)(II,iv)(II,vi)...

190 189 Objektballung / Clustering logisch verwandter Daten

191 190

192 191

193 192

194 193 Unterstützung eines Anwendungsverhaltens Select Name From Professoren Where PersNr = 2136 Select Name From Professoren Where Gehalt >= 90000 and Gehalt <= 100000

195 194 Indexe in SQL Create index SemsterInd on Studenten (Semester) drop index SemsterInd


Herunterladen ppt "Kapitel 7 Physische Datenorganisation  Speicherhierarchie  Hintergrundspeicher / RAID  Speicherstrukturen  B-Bäume  Hashing  R-Bäume."

Ähnliche Präsentationen


Google-Anzeigen