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

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

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

Physische Datenorganisation

Physische Datenorganisation

Physische Datenorganisation

Die allerwichtigsten Raid Systeme

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

Kapitel 8: Physischer Datenbankentwurf

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

Kapitel 6 Anfragebearbeitung

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

Aufbau Datenbanksysteme

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

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

Physischer Datenbankentwurf: Datenspeicherung

Bäume, Suchbäume und Hash-Tabellen

Anfragebearbeitung. Vorlesung: Dr. Matthias Schubert

DBS: Administration und Implementierung Klausur

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

OPERATIONEN AUF EINER DATENBANK

Hauptspeicher- Datenbanksysteme

Verlässliche Systeme

Betriebssysteme K_Kap11C: Diskquota, Raid

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

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

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

Technische Informatik II Wintersemester 2002/03 Sommersemester Heiko Holtkamp

4.3 Hintergrundspeicher

Datenbanksysteme II Indexstrukturen Felix Naumann

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

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

Hard & Software Raid

KAPITEL 2 VERWALTUNG DES HINTERGRUNDSPEICHERS

Physische Datenorganisation

Alle Metadaten werden in Dateien gehalten

Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur

Datenbanksysteme II Klausurvorbereitung Felix Naumann

Grundlagen der Rechnerarchitektur

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

Hardware, Fehlertoleranz, Am Beispiel Dateisysteme

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

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

RAID. Name: Artur Neumann

Dateiorganisation und Zugriffsstrukturen

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

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

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

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

Betriebssysteme K_Kap11B: Files, Filesysteme Datenstrukturen

Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs])

Paging. Einfaches Paging. Paging mit virtuellem Speicher

STORAGE. Martin Schmidt Berufsschule Obernburg

Die klassische HDD & Das Mysterium SSD. Ernst Fankhauser

Informatik II Datenorganisation Datenbanken

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

Physische Datenorganisation. Kapitel / 520

Vorlesung Informatik II

Hardware & Fehlertoleranz, Beispiel: Dateisysteme

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

Datenbanksysteme II Physische Speicherstrukturen Felix Naumann

Kapitel VI. Speicherverwaltung. Speicherverwaltung

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

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

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

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

Kapitel 7 Datenbank-Tuning

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

Grundlagen der Rechnerarchitektur

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

B+-Baum mit Z-Ordnung. B+-Baum mit Z-Ordnung. Anforderungen. 7.3 Räumliche Zugriffsstrukturen

Schulinternes Curriculum im Fach Informatik

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

Suchen in Listen und Hashtabellen

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

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

Die Sicht eines Sysadmins auf DB systeme

Abschluss Einblick und Ausblick

Vorlesung ) Einführung

Hauptspeicherindexstrukturen. Stefan Sprenger Semesterprojekt Verteilte Echtzeitrecherche in Genomdaten 10. November 2015

Kapitel 5 Anfragebearbeitung

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

Wiederholung: Realisierung von Dateien

Lösungsvorschlag zur 5. Übung

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

KLAUSUR. zur Vorlesung Betriebssysteme SS Vorname Name Matrikelnummer

Cluster-Bildung. VL Datenbanken II 4 107

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

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

RAID Redundant Array of Independent [Inexpensive] Disks

Datenbanken Die Entwicklung der Datenbanksysteme ist eng an die der Hardware gekoppelt und wird wie jene in Generationen eingeteilt:

Wie profitiert SAP MaxDB von SSD Technologie?

Grundlagen der Informatik für Ingenieure I. Background: 4. Dateisystem/Betriebssystemschnittstelle

Anfragebearbeitung und Indexstrukturen in Datenbanksystemen

Datenbanken (WS 2015/2016)

Algorithmen & Datenstrukturen 1. Klausur

Recovery- und Buffermanager

Anleitung zur Installation von SATA- Festplatten und zur RAID-Konfiguration

9. Einführung in Datenbanken

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

Transkript:

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

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

Überblick: Speicherhierarchie Register Cache Hauptspeicher Plattenspeicher 8 Byte Compiler 64-024 kbyte Cache-Controller 4+ GB Betriebssystem Benutzer Archivspeicher 3

Überblick: Speicherhierarchie ns Register -0ns Cache 0-00ns Hauptspeicher 0 ms Plattenspeicher Zugriffslücke 05 sec Archivspeicher 4

Magnetplattenspeicher 5

204 5000 rpm ~ 4 ms pro Umdreh. 8 TB Kapazität 200 MB/s Transferrate < 0.$ / GB 6

Lesen von Daten von der Platte Seek Time: Arm positionieren 5ms Latenzzeit: ½ Plattenumdrehung (im Durchschnitt) 5000 Umdrehungen / Minute Ca 2ms Transfer von der Platte zum Hauptspeicher 200 MB/s 7

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

Disk Arrays RAID-Systeme 9

0

RAID 0: Striping A B Datei C D A B C D Lastbalancierung wenn alle Blöcke mit gleicher Häufgkeit 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)

RAID : 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 2

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

RAID 2: Striping auf Bit-Ebene Anstatt ganzer Blöcke, wie bei RAID 0 und RAID 0+, wird das Striping auf Bit- (oder Byte-) Ebene durchgeführt 00 0 0 00 00 00... 00... 000... 00... Datei 000... Es werden zusätzlich auf einer Platte noch Fehlererkennungs- und Korrekturcodes gespeichert In der Praxis nicht eingesetzt, da Platten sowieso schon Fehlererkennungscodes verwalten 4

RAID 3: Striping auf Bit-Ebene, zusätzliche Platte für Paritätsinfo 00 0 0 00 00 00... Datei Parität 00... 000... 00... 000... 0000... 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 Zugrif auf alle Platten Verschwendung von Schreib/Leseköpfen Alle marschieren synchron 5

RAID 3: Plattenausfall 00 0 0 00 00 00... Datei Parität 00... 000... 00... 000... 0000... Reparatur 000... 6

RAID 4: Striping von Blöcken A E B F C G D H PA-D PE-H Bessere Lastbalancierung als bei RAID 3 Flaschenhals bildet die Paritätsplatte 7

RAID 4: Striping von Blöcken 00 0 0 00 00 00... 00... 0... 0... Datei Paritäts block 00... 00... Bei jedem Schreiben muss auf die Paritätsplatte zugegriffen werden Bei Modifikation von Block A zu A wird die Parität PA-D wie folgt neu berechnet: P A-D := PA-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 8

RAID 5: Striping von Blöcken, Verteilung der Paritätsblöcke A E B F C G D PE-H PA-D H I M J PM-P PI-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äufg eingesetzt Guter Ausgleich zwischen Platzbedarf und Leistungsfähigkeit 9

Probleme bei RAID5 Recovery bei RAID 5 kann mehrere Stunden dauern Bs.: 4TB, 00MB/s Schreiben,h (=MTTR) Sei MTTF einer einzelnen Platte 2000 Tage MTTF des RAID-Systems: 2000/5 = 400 Tage Wahrscheinlichkeit für Plattenausfall während des Recovery: MTTF der übrigen 4 Platten: 2000/4=500 Tage ½ Tag für die Reparatur Totalausfall mit Wahrscheinlichkeit von 0,% Totalverlust der Daten mit Wahrscheinlichkeit 0,%! 20

RAID 6: Wie RAID5, aber zwei Paritätsblöcke A E PI-L M PA-D F J PM-P C G D PE-H PI-L N K O PA-D H L P PE-H B I PM-P RAID6 kann auch einen Ausfall während der RecoveryPhase verkraften 2

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

Ein- und Auslagern von Seiten Systempufer ist in Seitenrahmen gleicher Größe aufgeteilt Ein Rahmen kann eine Seite aufnehmen Überzählige Seiten werden auf die Platte ausgelagert Hauptspeicher 0 4K 6K 20K 8K 24K 2K 28K 32K 36K 40K 44K 48K 52K 56K 60K Seitenrahmen Platte(swap device) P23 P480 Seite 26

Adressierung von Tupeln auf dem Hintergrundspeicher 27

Verschiebung innerhalb einer Seite 28

Verschiebung von einer Seite auf eine andere Forward 29

Verschiebung von einer Seite auf eine andere Bei der nächsten Verschiebung wird der Forward auf Seite 47 geändert (kein Forward auf Seite 482) 30

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

32

Row Store versus Column Store 35

Row Store versus Column Store 36

Anfragebearbeitung 37

Komprimierung 38

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

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

4

42

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

Sukzessiver Aufbau eines B-Baums vom Grad k=2 7 0 3 9 44

Sukzessiver Aufbau eines B-Baums vom Grad k=2 3 7 0 3 9 45

Sukzessiver Aufbau eines B-Baums vom Grad k=2? 3 7 0 3 9 46

Sukzessiver Aufbau eines B-Baums vom Grad k=2? 3 7 0 3 9 47

Sukzessiver Aufbau eines B-Baums vom Grad k=2 0? 3 3 7 3 9 48

Sukzessiver Aufbau eines B-Baums vom Grad k=2 0? 3 7 3 9 49

Sukzessiver Aufbau eines B-Baums vom Grad k=2 0? 3 7 3 9 50

Sukzessiver Aufbau eines B-Baums vom Grad k=2 0? 3 7 3 9 5

Sukzessiver Aufbau eines B-Baums vom Grad k=2 0? 3 7 3 9 52

Sukzessiver Aufbau eines B-Baums vom Grad k=2 0? 3 7 3 9 53

Sukzessiver Aufbau eines B-Baums vom Grad k=2 2 0? 3 7 3 9 54

Sukzessiver Aufbau eines B-Baums vom Grad k=2 2 0? 2 3 7 3 9 55

Sukzessiver Aufbau eines B-Baums vom Grad k=2 2 0? 2 2 3 7 3 9 56

Sukzessiver Aufbau eines B-Baums vom Grad k=2 4 0? 2 3 7 3 9 57

Sukzessiver Aufbau eines B-Baums vom Grad k=2 4 0? 4 2 3 7 3 9 58

Sukzessiver Aufbau eines B-Baums vom Grad k=2 4 0? 4 2 3 7 3 9 59

Sukzessiver Aufbau eines B-Baums vom Grad k=2 4 0? 4 2 3 7 3 9 60

Sukzessiver Aufbau eines B-Baums vom Grad k=2 4 3? 0 4 2 3 7 3 9 6

Sukzessiver Aufbau eines B-Baums vom Grad k=2 3? 0 2 3 9 4 7 62

Sukzessiver Aufbau eines B-Baums vom Grad k=2 3? 0 2 3 9 4 7 63

Sukzessiver Aufbau eines B-Baums vom Grad k=2 3? 0 2 3 9 4 7 64

Sukzessiver Aufbau eines B-Baums vom Grad k=2 2 3? 0 2 3 9 4 7 65

Sukzessiver Aufbau eines B-Baums vom Grad k=2 2 3? 0 2 3 9 4 7 66

Sukzessiver Aufbau eines B-Baums vom Grad k=2 2 3? 0 2 3 9 2 4 7 67

Sukzessiver Aufbau eines B-Baums vom Grad k=2 2 3? 0 2 3 9 2 4 7 2 68

Sukzessiver Aufbau eines B-Baums vom Grad k=2 2 3? 0 2 3 9 2 4 7 2 69

Sukzessiver Aufbau eines B-Baums vom Grad k=2 2 3? 0 2 3 9 2 4 7 2 70

Sukzessiver Aufbau eines B-Baums vom Grad k=2 2 3? 0 3 2 3 9 2 4 7 2 7

Sukzessiver Aufbau eines B-Baums vom Grad k=2 2 3? 0 3 2 4 7 2 9 2 72

Sukzessiver Aufbau eines B-Baums vom Grad k=2 2 3? 0 3 2 9 2 4 7 2 73

Sukzessiver Aufbau eines B-Baums vom Grad k=2 4 3? 0 3 2 9 2 4 7 2 74

Sukzessiver Aufbau eines B-Baums vom Grad k=2 4 3? 0 3 2 4 9 2 4 7 2 75

Sukzessiver Aufbau eines B-Baums vom Grad k=2 5 3? 0 3 2 4 9 2 4 7 2 76

Sukzessiver Aufbau eines B-Baums vom Grad k=2 20 3? 0 3 2 4 5 9 2 4 7 2 77

Sukzessiver Aufbau eines B-Baums vom Grad k=2 20 3? 0 3 20 2 4 5 9 2 4 7 2 78

Sukzessiver Aufbau eines B-Baums vom Grad k=2 20 3? 0 3 20 2 4 5 9 2 4 7 2 79

Sukzessiver Aufbau eines B-Baums vom Grad k=2 20 3? 0 3 9 20 2 4 5 9 2 4 7 2 80

Sukzessiver Aufbau eines B-Baums vom Grad k=2 20 3? 0 3 9 20 2 2 4 5 4 7 2 8

Sukzessiver Aufbau eines B-Baums vom Grad k=2 5 3? 0 3 9 20 2 2 4 5 4 7 2 82

Sukzessiver Aufbau eines B-Baums vom Grad k=2 5 3? 0 3 9 20 2 2 4 5 4 7 2 83

Sukzessiver Aufbau eines B-Baums vom Grad k=2 5 3? 0 3 9 20 2 2 4 5 4 5 7 2 84

Sukzessiver Aufbau eines B-Baums vom Grad k=2 6 3? 0 3 9 20 2 2 4 5 4 5 7 2 85

Sukzessiver Aufbau eines B-Baums vom Grad k=2 6 3? 0 3 9 20 2 2 4 5 4 5 6 7 2 86

87

Sukzessiver Aufbau eines B-Baums vom Grad k=2 8 3? 0 3 9 2 20 2 4 5 4 5 6 7 2 88

Sukzessiver Aufbau eines B-Baums vom Grad k=2 8 3? 0 3 9 2 20 2 8 4 5 6 7 4 5 2 89

Sukzessiver Aufbau eines B-Baums vom Grad k=2 8 3? 0 3 9 2 20 2 8 4 5 6 7 4 5 2 90

Sukzessiver Aufbau eines B-Baums vom Grad k=2 8 3? 0 3 9 2 20 2 8 4 5 6 7 4 5 2 9

Sukzessiver Aufbau eines B-Baums vom Grad k=2 8 3? 0 3 9 2 4 20 2 5 8 6 7 4 5 2 92

Sukzessiver Aufbau eines B-Baums vom Grad k=2 6 3? 0 3 9 2 4 20 2 5 6 7 8 4 5 2 93

Sukzessiver Aufbau eines B-Baums vom Grad k=2 6 3? 0 3 9 2 4 20 2 5 4 5 7 8 2 94

Sukzessiver Aufbau eines B-Baums vom Grad k=2 6 3? 0 3 9 2 4 20 2 5 4 5 7 8 2 95

Sukzessiver Aufbau eines B-Baums vom Grad k=2 6 3? 0 3 9 2 4 20 2 5 4 5 7 8 2 96

Sukzessiver Aufbau eines B-Baums vom Grad k=2 6 3 6 3? 0 3 9 2 4 20 2 5 4 5 7 8 2 97

Sukzessiver Aufbau eines B-Baums vom Grad k=2 0 3 6 3? 9 2 4 20 2 5 4 5 7 8 2 98

Sukzessiver Aufbau eines B-Baums vom Grad k=2 0 3 6 3? 9 2 4 20 2 5 4 5 7 8 2 99

Sukzessiver Aufbau eines B-Baums vom Grad k=2 0 0 3 6 3? 9 2 4 20 2 5 4 5 7 8 2 00

Sukzessiver Aufbau eines B-Baums vom Grad k=2 B-Baum mit Minimaler Speicherplatzausnutzung 0 3 6 3? 9 2 4 20 2 5 4 5 7 8 2 0

Sukzessiver Aufbau eines B-Baums vom Grad k=2 B-Baum mit Minimaler Speicherplatzausnutzung 0 3 6 3? 9 2 4 20 2 5 4 5 7 8 2 02

03

Sukzessiver Aufbau eines B-Baums 23 vom Grad k=2 0 3 6 3? 9 2 4 20 2 5 4 5 7 8 2 04

Sukzessiver Aufbau eines B-Baums vom Grad k=2 0 3 6 3? 9 2 4 20 2 23 5 4 5 7 8 2 05

Sukzessiver Aufbau eines B-Baums 4 vom Grad k=2 0 3 6 3? 9 2 4 20 2 23 5 4 5 7 8 2 06

Sukzessiver Aufbau eines B-Baums 4 vom Grad k=2 0 3 6 3? 9 2 4 Unterlauf 20 2 23 5 4 5 7 8 2 07

Sukzessiver Aufbau eines B-Baums vom Grad k=2 0 3 6 3? 9 2 4 Unterlauf 20 2 23 5 5 7 8 2 08

Sukzessiver Aufbau eines B-Baums vom Grad k=2 0 3 6 3? 20 2 4 2 23 5 5 9 7 8 2 09

Sukzessiver Aufbau eines B-Baums 5 vom Grad k=2 0 3 6 3? 20 2 4 2 23 5 5 9 7 8 2 0

Sukzessiver Aufbau eines B-Baums 5 vom Grad k=2 0 3 6 3? 20 2 4 2 23 5 Unterlauf 5 9 7 8 2

Sukzessiver Aufbau eines B-Baums vom Grad k=2 0 3 6 3? 20 2 2 23 4 merge 5 9 7 8 2 2

Sukzessiver Aufbau eines B-Baums vom Grad k=2 0 3 6 3? 20 2 2 23 4 merge 5 9 7 8 2 3

Sukzessiver Aufbau eines B-Baums vom Grad k=2 0 Unterlauf 3 3? 20 2 4 2 23 6 7 8 5 9 2 4

Sukzessiver Aufbau eines B-Baums vom Grad k=2 0 merge 3 3? 20 2 4 2 23 6 7 8 5 9 2 5

Sukzessiver Aufbau eines B-Baums vom Grad k=2 0 merge 3 3? 20 2 4 2 23 6 7 8 5 9 2 6

Sukzessiver Aufbau eines B-Baums vom Grad k=2 3 0 3 20 2 4? 2 23 6 7 8 5 9 2 7

Sukzessiver Aufbau eines B-Baums vom Grad k=2 Schrumpfung, Freie Knoten 3 0 3 20 2 4? 2 23 6 7 8 5 9 2 8

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

Speicherstruktur eines B-Baums auf dem Hintergrundspeicher 8 KB-Blöcke 0*8KB *8KB 3 2*8KB 3*8KB 4*8KB 0 BlockNummer Datei 20

Speicherstruktur eines B-Baums auf dem Hintergrundspeicher 8 KB-Blöcke 0*8KB *8KB 3 2*8KB 3*8KB 4*8KB 0 BlockNummer Datei 2

Speicherstruktur eines B-Baums auf dem Hintergrundspeicher 0*8KB *8KB 3 2*8KB 3*8KB 4*8KB 0 BlockNummer Datei 0 0 0 0 FreispeicherVerwaltung 8 KB-Blöcke 22

Zusammenspiel: Hintergrundspeicher -- Hauptspeicher Hintergrundspeicher HauptspeicherPuffer 4 4 Zugriffslücke 05 23

B+-Baum Referenzschlüssel Daten Suchschlüssel BlockVerkettung 24

25

26

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

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

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

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

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

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 36

Statisches Hashing 37

0 0 0 binärer Trie, Entscheidungsbaum Directory Bucket Bucket Bucket Bucket Bucket Bucket 38

Hashfunktion für erweiterbares Hashing h: Schlüsselmenge {0,}* 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) = 00000000... (4=0..000) h(006) = 0000000... (6=0..00) h(007) = 000000... (7 =0..0) h(03) = 000000... (3 =0..00) h(08) = 00000000... (8 =0..0000) h(032) = 00000000... (32 =0..000000) h(048) = 0000000... (48 =0..00000) 39

0 0 32 3 Bucket 8 Bucket Bucket Bucket 0 6 7 0 0 Bucket 0 0 4 48 Bucket 40

00 0 0 0 0 0 0 0 0 Präfix 00 4 7 Bucket 6 Bucket 32 3 Bucket 8 Bucket Bucket 48 Präfix Bucket 4

000 00 00 0 00 0 Bucket Bucket Bucket Bucket Bucket Bucket 0 42

globale Tiefe: 3 Directory 000 00 00 0 00 0 lokale Tiefe: 3 0 lokale Tiefe: 4 lokale Tiefe: 2 Bucket 6 Bucket 32 Bucket 3 Bucket 8 Bucket 7 48 Bucket 43

globale Tiefe: 3 Directory 000 Einfügen: 2 00 2=00 h(2)=000... 00 0 00 0 lokale Tiefe: 3 0 lokale Tiefe: 4 Bucket 6 2 Bucket 32 lokale Tiefe: 2 Bucket 3 Bucket 8 Bucket 7 48 Bucket 44

globale Tiefe: 3 Directory 000 Einfügen: 20 00 20=000 h(20)=0000... 00 0 00 0 lokale Tiefe: 3 0 lokale Tiefe: Bucket 4 6 Overflow 2 Bucket 32 lokale Tiefe: 2 Bucket 3 Bucket 8 Bucket 7 48 Bucket 45

globale Tiefe: 3..4 0000 000 Directory 000 00 000 00 00 h(2)=0000.. h(4) =0000.. 0 000 00 00 h(20)=00000.. Overflow lokale Tiefe: 3.. 4 0 00 0 0 Bucket Bucket Bucket lokale Tiefe: 2 lokale Tiefe: Bucket Bucket Bucket Ausgleich 46

globale Tiefe: 3..4 0000 000 Directory 000 00 000 00 00 h(2)=0000.. h(4) =0000.. 0 000 00 00 h(20)=00000.. Overflow lokale Tiefe: 3.. 4 4 0 00 Bucket 20 0 0 Bucket 2 Bucket lokale Tiefe: 2 lokale Tiefe: Bucket Bucket Bucket Ausgleich 47

globale Tiefe: 4 0000 000 Directory 000 00 000 00 00 0 000 00 00 lokale Tiefe: 4 0 00 0 0 Bucket Bucket Bucket lokale Tiefe: 2 Overflow lokale Tiefe:.. 2 Bucket Bucket Bucket Ausgleich 48

49

50

Mehrdimensionale Datenstrukturen Wertbasierter Zugrif 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 5

Grundlagen mehrdimensionaler Datenstrukturen Wertebereiche D0,..., Dk-: alle Di sind endlich, linear geordnet und besitzen kleinstes (- i) und größtes ( i) Element Datenraum D = D0... Dk- k-dimensionaler Schlüssel entspricht Punkt im Datenraum p D 52

Grundlagen mehrdimensionaler Datenstrukturen. Exact Match Query spezifziert Suchwert für jede Dimension Di 2. Partial Match Query spezifziert Suchwert für einen Teil der Dimensionen 3. Range Query spezifziert ein Suchintervall [ugi, ogi ] für alle Dimensionen 4. Partial Range Query spezifziert ein Suchintervall für einen Teil der Dimensionen 53

R-Baum: Urvater der baum-strukturierten mehrdimensionalen Zugriffsstrukturen [8,60] [60,20] 60 20K Bond 20 80K Mini 43 70K Mickey 8 60K Duck 60 Bond Mickey 40 Alter Duck 20 40K 60K Mini 80K Gehalt 00K 20K 60

Gute versus schlechte Partitionierung gute Partitionierung schlechte Partitionierung Bond Bond Mickey Mickey Duck Mini Gehalt Alter Alter Speedy Speedy Duck Mini Gehalt 6

Nächste Phase in der Entstehungsgeschichte des R-Baums [8,43] [40,60] [60,80] [00,20] 20 80K Mini 60 20K Bond 43 70K Mickey 8 60K Duck Bert 40 00K Speedy (noch nicht eingefügt) Bond Mickey Alter Speedy Duck Mini Gehalt 62

Nächste Phase [8,20] [25,60] [4,45] [40,65] [60,80] [0,20] [45,70] [95,00] 20 80K Mini 8 60K Duck 60 20K Bond 35 2K Urmel 43 70K Mickey 25 0K Bill 45 55K Bert 4 45K Ernie 40 00K Speedy 65 95K Lucie 63

Datenraum Bond Lucie Bert Alter Ernie Duck Mickey Speedy Urmel Mini Gehalt Bill 64

Wachsen des Baums: nach oben wie im B-Baum [8,50] [25,65] [45,80] [95,20] [8,20] [60,80] [4,45] [45,55] [4,50] [60,70] [4,45] [40,65] [45,70] [95,00] 43 70K Mickey 4 60K Jan 50 65K Sepp... 65

Datenraum Lucie Sepp Bert Alter Ernie Mickey Jan Speedy Urmel Duck Mini Gehalt Bill 66

Datenraum und Speicherstruktur Überblick [8,50] [25,65] [45,80] [95,20] Lucie Bond Sepp Bert Alter [8,20] [4,45] [4,50] [60,80] [45,55] [60,70] [25,60] [40,65] [0,20] [95,00] 43 70K Mickey 4 60K Jan Ernie Mickey Jan Speedy Urmel Duck Mini Bill 50 65K Sepp...... Gehalt 67

[8,50] [25,65] [45,80] [95,20] [8,20] [60,80] [4,45] [45,55] 20 80K Mini [25,60] [40,65] [0,20] [95,00] [4,50] [60,70] 8 60K Duck 45 55K Bert 60 20K Bond 4 45K Ernie 43 70K Mickey 4 60K Jan 35 2K Urmel 25 0K Bill 40 00K Speedy 65 95K Lucie 50 65K Sepp 68

Bereichsanfragen auf dem R-Baum Anfragefenster [8,50] [25,65] Lucie [45,80] [95,20] Bond Sepp Bert [4,45] [4,50] [60,80] [45,55] [60,70] Mickey [25,60] [40,65] [0,20] [95,00] 43 70K Mickey 4 60K Jan 50 65K Sepp Alter [8,20] Ernie Jan Speedy Urmel Duck Mini Bill Gehalt... 40 00K Speedy 65 95K Lucie 69

[8,50] [25,65] [45,80] [95,20] [8,20] [60,80] [4,45] [45,55] 20 80K Mini [25,60] [40,65] [0,20] [95,00] [4,50] [60,70] 8 60K Duck 45 55K Bert 60 20K Bond 4 45K Ernie 43 70K Mickey 4 60K Jan 35 2K Urmel 25 0K Bill 40 00K Speedy 65 95K Lucie 50 65K Sepp 70

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

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

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

Objektballung / Clustering logisch verwandter Daten 83

84

85

86

Unterstützung eines Anwendungsverhaltens Select Name From Professoren Where PersNr = 236 Select Name From Professoren Where Gehalt >= 90000 and Gehalt <= 00000 87

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