Physische Datenorganisat

Ähnliche Dokumente
Physische Datenorganisation

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

Physische Datenorganisation

! DBMS organisiert die Daten so, dass minimal viele Plattenzugriffe nötig sind.

Kapitel 8: Physischer Datenbankentwurf

Physische Datenorganisation

Kapitel 6 Anfragebearbeitung

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

Die allerwichtigsten Raid Systeme

Physischer Datenbankentwurf: Datenspeicherung

Anfragebearbeitung. Vorlesung: Dr. Matthias Schubert

Datenbanksysteme II: Implementation of Database Systems Storage, Discs, and Raid

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP

6. Formaler Datenbankentwurf 6.1. Rückblick. Datenbanken und Informationssysteme, WS 2012/ Januar 2013 Seite 1

DBS: Administration und Implementierung Klausur

4.3 Hintergrundspeicher

Betriebssysteme K_Kap11C: Diskquota, Raid

Hauptspeicher- Datenbanksysteme. Hardware-Entwicklungen Column- versus Row-Store...

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur

Datenbanksysteme II Physische Speicherstrukturen (Kapitel 11) Felix Naumann. Datenmodellebene. Logischer Zugriff. Speicherstrukturen

KAPITEL 2 VERWALTUNG DES HINTERGRUNDSPEICHERS

OPERATIONEN AUF EINER DATENBANK

Proseminar Konzepte von Betriebssystem-Komponenten Disk-Caches & Dateizugriff von Athanasia Kaisa

Physische Datenorganisation

Datenbanksysteme II Klausurvorbereitung Felix Naumann

Hard & Software Raid

Betriebssysteme WS 2012/13 Peter Klingebiel, DVZ. Zusammenfassung Kapitel 4 - Datenträger/Dateiverwaltung

Cluster-Bildung. VL Datenbanken II 4 107

Datenbanksysteme II: Storage, Discs, and Raid. Ulf Leser

Wegweiser. Gegenstand und Begriffe. Dateien und Verzeichnisse. Implementationsaspekte. Ablauf eines Dateizugriffs. Plattenspeicher

Speicher Virtuelle Speicherverwaltung. Speicherverwaltung

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Fakten statt Bauchgefühl: RAID Mathematik für Admins

RAID. Name: Artur Neumann

Dateiorganisation und Zugriffsstrukturen

STORAGE. Martin Schmidt Berufsschule Obernburg

Kapitel VI. Speicherverwaltung. Speicherverwaltung

Moderne RAID Technologie. Grundlagen technisches Wissen, verständlich erklärt

Was machen wir heute? Betriebssysteme Tutorium 12. Organisatorisches. Frage 12.1.a. Programmieraufgaben Vorstellung. Antwort

Alle Metadaten werden in Dateien gehalten

4 LCN VCN LCN Extents werden außerhalb der MFT gespeichert

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

RAID Systeme. Redundant Array of Independent Disks. Stefan Berntheisel. Stand: Dezember 2003

0RGHUQH5$,'7HFKQRORJLH *UXQGODJHQ. 7HFKQLVFKHV:LVVHQYHUVWlQGOLFKHUNOlUW &RS\ULJKW ,&3YRUWH[&RPSXWHUV\VWHPH*PE+ )DOWHUVWUDVVH )OHLQ*HUPDQ\

Technische Informatik I. Übung 3 Speicherhierarchie. v t d 0 d 1 d 2 d Technische Informatik I Übung 3. Technische Informatik I Übung 3

Grundlagen der Rechnerarchitektur

Kapitel 6 Speicherverwaltung Seite 1 zum Teil nach: Silberschatz&Galbin, Operating System Concepts, Addison-Wesley)

Speicherstrukturen und Zugriffssystem

5.Vorlesung Grundlagen der Informatik

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

Bedeutung der Metadateien. Alle Metadaten werden in Dateien gehalten. NTFS ist ein Journal-File-System

Einführung in die technische Informatik

Datenbanksysteme II Physische Speicherstrukturen Felix Naumann

Inhalt. Datenbanken Vertiefung. Literatur und Quellen. Inhalt. Physische Datenorganisation I. Nikolaus Augsten. Wintersemester 2013/14

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

Kapitel 5 Anfragebearbeitung

Hardware & Fehlertoleranz, Beispiel: Dateisysteme

Leistungsanalyse von Rechnersystemen

1C02. RAID Performance Grundlagen. Wozu überhaupt über I/O Performance nachdenken?

Lösungsskizzen zur Abschlussklausur Betriebssysteme

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

Informatik II Datenorganisation Datenbanken

Basiseinheit Cluster. Rückgrat des gesamten Systems. Basiseinheit Strom. entsprechender Eintrag für

Optimierte Indexstruktur für Flashspeicher: Lazy-Adaptive Tree

Microsoft SQL Server 2005 für Administratoren

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis

Nachtrag zu binären Suchbäumen

Prozedurale Datenbank- Anwendungsprogrammierung

Datenstrukturen in Java

Vorlesungsinhalt. Recovery. G. Specht: Datenbanksysteme Kapitel XI. Vorlesung Datenbanksysteme Univ.-Prof. Dr.

Definition. Gnutella. Gnutella. Kriterien für P2P-Netzwerke. Gnutella = +

Verteiltes Backup. Einleitung Grundlegende Backup Techniken Backup in Netzwerken. Client/Server Peer-to-Peer

KLAUSUR. zur Vorlesung Betriebssysteme SS Vorname Name Matrikelnummer

LVM AUSARBEITUNGEN ZUM THEMA A6: TIMO BÖLLINGER DOMINIC ECKART DOZENT: PROF. TISCHHHAUSER MANNHEIM 2004 VON UND

6-1 A. Schwill Grundlagen der Programmierung II SS 2005

8. Swapping und Virtueller Speicher

Sichere Daten mit OSL Storage Cluster

Schulinternes Curriculum im Fach Informatik

10 Datenträgerverwaltung, RAID

4. Vorlesung Betriebssysteme

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

IO Performance - Planung Messung, Optimierung. Ulrich Gräf Principal Sales Consultant Oracle Deutschland B.V. und Co. KG

Technische Informatik 2 Speichersysteme, Teil 3

Programmiertechnik II

PostgreSQL Hardware und RAM Tuning

MS SQL Server: Index Management. Stephan Arenswald 10. Juli 2008

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

Felix Großkreuz Philipps-Universität Marburg Fachbereich 12 Seminar IT-Administration SS2011

Teil VII Indexstrukturen für Data Warehouse

Praktikum Informatik 2: Betriebssysteme und Rechnernetze

stattdessen: geräteunabhängiges, abstraktes Format für Speicherung und Transfer von Daten Datei

Weißbuch zur RAID-Technologie

Algorithmen & Datenstrukturen 1. Klausur

Anfragebearbeitung 3

SSDs als Cache für HDDs

MIN oder MAX Bildung per B*Tree Index Hint

Sortierte Folgen 250

Wie profitiert SAP MaxDB von SSD Technologie?

Transkript:

Physische Datenorganisat Speicherhierarchie Hintergrundspeicher / RAID B-Bäume Hashing (R-Bäume ) Objektballung Indexe in SQL Kapitel 7 1

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

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

Überblick: Speicherhierarchie Literaturrecherche Kopf (30 sec) Internet (5 min) Uni-Bibl. (50 min) Fernleihe (1 Jahr) 1-10ns Register 10-100ns Cache 100-1000ns Hauptspeicher 10 ms Plattenspeicher Zugriffslücke 10 5 Archäologie (1000 Jahre) sec Archivspeicher 4

Magnetplattenspeicher 5

6

Lesen von Daten von der Platte Seek Time: Arm positionieren 5ms Latenzzeit: ½ Plattenumdrehung (im Durchschnitt) 10000 Umdrehungen / Minute Ca 3ms Transfer von der Platte zum Hauptspeicher 100 Mb /s 15 MB/s 7

Random versus Chained I/O 1000 Blöcke à 4KB sind zu lesen Random I/O Jedesmal Arm positionieren Jedesmal Latenzzeit 1000 * (5 ms + 3 ms) + Transferzeit von 4 MB > 8000 ms + 300ms 8.3 s Chained I/O Einmal positionieren, dann von der Platte kratzen 5 ms + 3ms + Transferzeit von 4 MB 8ms + 300 ms 0.38 s Also ist chained I/O ein bis zwei Größenordnungen schneller als random I/O. Ist bei Datenbank-Algorithmen unbedingt zu beachten! 8

Disk Arrays RAID-Systeme 9

10

RAID 0: Striping Datei A B C D A C B D 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) 11

RAID 1: Spiegelung (mirroring) A B A B C D C D 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 12

RAID 0+1: Striping und Spiegelung A A B B C C D D 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. 13

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 1010 1101 1011 0110 0011 1100... Datei 111001... 010101... 101110... 011010... Es werden zusätzlich auf einer Platte noch Fehlererkennungsund Korrekturcodes gespeichert In der Praxis nicht eingesetzt, da Platten sowieso schon Fehlererkennungscodes verwalten 14

RAID 3: Striping auf Bit-Ebene, zusätzliche Platte für Paritätsinfo 1010 1101 1011 0110 0011 1100... Datei Parität 111001... 010101... 101110... 011010... 011000... 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 = bitweise 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 15

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

RAID 4: Striping von Blöcken A E B F C G D H P A- D P E- H 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 17

RAID 4: Striping von Blöcken 1010 1101 1011 0110 0011 1100... Datei Paritäts block 1010... 1101... 1011... 0110... 1010... 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 18

RAID 5: Striping von Blöcken, Verteilung der Paritätsblöcke P E- H P A- D A E B F C G D H I M J P M -P P I- L N K O L P 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 19

Lastbalancierung bei der Blockabbildung auf die Platten 20

Parallelität bei Lese/Schreib-Aufträgen 21

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 Hauptspeicher 0 4K 8K 12K 16K 32K 20K 36K 24K 40K 28K 44K Platte(swap device) P123 P480 48K 52K 56K 60K Seitenrahmen Seite 22

Systempuffer-Verwaltung einlagern verdrängen Hauptspeicher Platte ~ persistente DB Verdrängungsstrategien: Least-Recently-Used (LRU) First-in-first out (FIFO) Second Chance Zähler (simulierte Uhr) (Ziel: Annäherung der Belady- Strategie: Seite, die am längsten nicht mehr benötigt wird, verdrängen) 23

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

Adressierung von Tupeln auf dem Hintergrundspeicher Naiver Ansatz: jedes Tupel hat gleiche Länge l i. Tupel hat Position (i -1) x l Komplexe Anforderungen verlangen flexiblere Adressierung: variable Feldlängen Logdateien mehrfacher Bezug auf Werte Lösung: nur die Seiten werden nach obigem Schema addressiert. innerhalb einer Seite werden Zeiger verwendet. 25

Adressierung von Tupeln auf dem Hintergrundspeicher 26

Verschiebung innerhalb einer Seite 27

Verschiebung von einer Seite auf eine andere Forward 28

Verschiebung von einer Seite auf eine andere Seite 0815 Bei der nächsten Verschiebung wird der Forward auf Seite 4711 geändert (kein weiterer Forward auf Seite 4812) Seite 0815 Jedes Tupel kann also in max. zwei Seitenzugriffen erreicht werden. 29

Indexstrukturen Oft werden bei Anfragen nur wenige Tupel benötigt. Mit einem Index muss nicht die ganze Datei durchsucht werden. Wir betrachten hier: B-Bäume Hashing Ein Index ist immer mit Wartungsaufwand und Speicherverbrauch verbunden. Es ist in der konkreten Anwendung abzuwägen, ob sich dieser Aufwand rechnet. 30

B-Bäume Binärbäume sind gute Suchstrukturen, aber nur für Verwendung im Hauptspeicher geeignet. B-Baum = balancierter Mehrwege-Suchbaum für den Hintergrundspeicher Ein Knoten entspricht einer Seite im Hintergrundspeicher. Die maximale Anzahl der Seitenzugriffe wird durch die Höhe des Baums begrenzt. Aufgrund der Balancierung sind alle Blätter gleich weit von der Wurzel entfernt. 31

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

33

34

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

7 10 13 19 36

3 7 10 13 19 37

? 3 7 10 13 19 38

? 3 7 10 13 19 39

10? 3 3 7 13 19 40

10? 3 7 13 19 41

1 10? 3 7 13 19 42

1 10? 3 7 13 19 43

10? 1 3 7 13 19 44

10? 1 1 3 7 13 19 45

2 10? 1 3 7 13 19 46

2 10? 2 1 3 7 13 19 47

2 10? 2 1 2 3 7 13 19 48

4 10? 1 2 3 7 13 19 49

4 10? 4 1 2 3 7 13 19 50

4 10? 4 1 2 3 7 13 19 51

4 4 10? 1 2 3 7 13 19 52

4 4?3 10 1 2 3 7 13 19 53

?3 10 1 2 13 19 4 7 54

11?3 10 1 2 13 19 4 7 55

?3 10 1 2 11 13 19 4 7 56

21?3 10 1 2 11 13 19 4 7 57

21?3 10 1 2 11 13 19 4 7 58

12?3 10 1 2 11 13 19 21 4 7 59

12?3 10 1 2 11 13 19 21 4 7 12 60

12?3 10 1 2 11 13 19 21 4 7 12 61

12?3 10 1 2 11 13 19 21 4 7 12 62

12?3 10 13 1 2 11 13 19 21 4 7 12 63

12?3 10 13 1 2 11 19 21 4 7 11 12 64

12?3 10 13 1 2 19 21 4 7 11 12 65

14?3 10 13 1 2 19 21 4 7 11 12 66

14?3 10 13 1 2 14 19 21 4 7 11 12 67

15?3 10 13 1 2 14 19 21 4 7 11 12 68

20?3 10 13 1 2 14 15 19 21 4 7 11 12 69

20?3 10 13 20 1 2 14 15 19 21 4 7 11 12 70

20?3 10 13 20 1 2 14 15 19 21 4 7 11 12 71

20?3 10 13 19 20 1 2 14 15 19 21 4 7 11 12 72

20?3 10 13 19 20 21 1 2 14 15 4 7 11 12 73

5?3 10 13 19 20 21 1 2 14 15 4 7 11 12 74

5?3 10 13 19 20 21 1 2 14 15 4 7 11 12 75

5?3 10 13 19 20 21 1 2 14 15 4 5 7 11 12 76

6?3 10 13 19 20 21 1 2 14 15 4 5 7 11 12 77

6?3 10 13 19 20 21 1 2 14 15 4 5 6 7 11 12 78

8?3 10 13 19 1 2 20 21 14 15 4 5 6 7 11 12 79

8?3 10 13 19 1 2 20 21 14 15 8 4 5 6 7 11 12 80

8?3 10 13 19 1 2 20 21 14 15 8 4 5 6 7 11 12 81

8?3 10 13 19 1 2 20 21 14 15 8 4 5 6 7 11 12 82

8?3 10 13 19 1 2 4 5 20 21 14 15 8 6 7 11 12 83

6?3 10 13 19 1 2 4 5 6 20 21 14 15 7 8 11 12 84

6?3 10 13 19 1 2 4 5 20 21 14 15 7 8 11 12 85

6?3 10 13 19 1 2 4 5 20 21 14 15 7 8 11 12 86

6?3 10 13 19 1 2 4 5 20 21 14 15 7 8 11 12 87

6 3 6?3 10 13 19 1 2 4 5 20 21 14 15 7 8 11 12 88

10 3 6 13? 19 1 2 4 5 20 21 14 15 7 8 11 12 89

10 3 6 13? 19 1 2 4 5 20 21 14 15 7 8 11 12 90

10 10 3 6 13? 19 1 2 4 5 20 21 14 15 7 8 11 12 91

10 B-Baum mit Minimaler Speicherplatzausnutzung 3 6 13? 19 1 2 4 5 20 21 14 15 7 8 11 12 92

10 B-Baum mit Minimaler Speicherplatzausnutzung 3 6 13? 19 1 2 4 5 20 21 14 15 7 8 11 12 93

23 10 3 6 13? 19 1 2 4 5 20 21 14 15 7 8 11 12 94

10 3 6 13? 19 1 2 4 5 20 21 23 14 15 7 8 11 12 95

14 10 3 6 13? 19 1 2 4 5 20 21 23 14 15 7 8 11 12 96

14 10 3 6 13? 19 Unterlauf 1 2 4 5 20 21 23 14 15 7 8 11 12 97

10 3 6 13? 19 Unterlauf 1 2 4 5 20 21 23 15 7 8 11 12 98

10 3 6 13? 20 1 2 4 5 21 23 15 19 7 8 11 12 99

5 10 3 6 13? 20 1 2 4 5 21 23 15 19 7 8 11 12 100

5 10 3 6 13? 20 1 2 4 5 21 23 15 19 Unterlauf 7 8 11 12 101

10 3 6 13? 20 1 2 4 21 23 15 19 merge 7 8 11 12 102

10 3 6 13? 20 1 2 4 21 23 15 19 merge 7 8 11 12 103

Unterlauf 10 3 13? 20 1 2 4 6 7 8 21 23 15 19 11 12 104

merge 10 3 13? 20 1 2 4 6 7 8 21 23 15 19 11 12 105

merge 10 3 13? 20 1 2 4 6 7 8 21 23 15 19 11 12 106

3 10 13 20? 1 2 4 6 7 8 21 23 15 19 11 12 107

Schrumpfung, Freie Knoten 3 10 13 20? 1 2 4 6 7 8 21 23 15 19 11 12 108

Speicherstruktur eines B-Baums auf dem Hintergrundspeicher 4 Speicherblock Nr 4 109

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

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

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

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

B + -Bäume Je größer der Verzweigungsgrad des Baumes ist, desto flacher ist er. Dadurch verringert sich die Suchtiefe. Bei B + -Bäumen werden daher (im Gegensatz zu B-Bäumen) die Inhalte in die Blätter verlagert. In der Literatur heissen die B + -Bäume auch B * -Bäume. 114

B + -Baum Referenzschlüssel Suchschlüssel 115

116

117

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

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

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

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

Hashing B-Bäume haben den Vorteil, dass sie Bereichsanfragen und Sortierungen unterstützen. Aufwand: O(log n) Hashing ist vom Aufwand O(1) für das Suchen einzelner Tupel, unterstützt aber keine Sortierung. 122

Statisches Hashing durch Überlaufseiten 123

Statisches Hashing Einfacher Ansatz: Hashfunktion h(x) = x mod N, wobei N die Größe der Tabelle in Seiten ist. h(x) gibt die Seite an, auf der der Eintrag zu Schlüssel x zu finden ist. Probleme: À 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 124

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 125

0 1 0 0 1 1 binärer Trie, Entscheidungsbaum Directory Bucket Bucket Bucket Bucket Bucket Bucket 126

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

128

129

Objektballung / Clustering logisch verwandter Daten 130

131

132

133

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

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