Datenbanken Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Marc Stelzner (Übungen) Torben Matthias Kempfert (Tutor) Maurice-Raphael Sambale (Tutor) Architektur eines DBMS Architecture of a DBMS / Course Outline Applications Anwendungen Webformulare Web Forms SQL Interface SQL-Schnittstelle Parser Parser Operator Evaluator Operator-Evaluierer Optimizer Optimierer Transaction TransaktionsVerwalter Manager Lock SperrVerwalter Manager Dateiverwaltungsund Zugriffsmethoden Files and Access Methods Buffer Manager Puffer-Verwalter WiederRecovery herstellungsManager Verwalter dieser Teil des Kurses this course Ausführer Executor Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003. SQL-Kommandos SQL Commands Disk Space Manager Verwalter für externen Speicher DBMS Dateien für Daten und Indexe. . . data files, indices, Fall 2008 Datenbank Database Systems Group — Department of Computer Science — ETH Zürich 3 2 Danksagung • Diese Vorlesung ist inspiriert von den Präsentationen zu dem Kurs: „Architecture and Implementation of Database Systems“ von Jens Teubner an der ETH Zürich • Graphiken wurden mit Zustimmung des Autors aus diesem Kurs übernommen 3 Speicher: Platten und Dateien Architecture of a DBMS / Course Outline Applications Anwendungen Webformulare Web Forms SQL Interface SQL-Schnittstelle Parser Parser Operator Evaluator Operator-Evaluierer Optimizer Optimierer Transaction TransaktionsVerwalter Manager Lock SperrVerwalter Manager Dateiverwaltungsund Zugriffsmethoden Files and Access Methods Buffer Manager Puffer-Verwalter WiederRecovery herstellungsManager Verwalter dieser Teil des Kurses this course Ausführer Executor Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003. SQL-Kommandos SQL Commands Disk Space Manager Verwalter für externen Speicher DBMS Dateien für Daten und Indexe. . . data files, indices, Fall 2008 Datenbank Database Systems Group — Department of Computer Science — ETH Zürich 3 4 Speicherhierarchie • • • • • • CPU (mit Registern) Cache-Speicher Hauptspeicher Flash-Speicher Festplatte Bandautomat Kapazität Latenz Bytes Kilo-/Mega-Bytes Giga-Bytes Giga/Tera-Bytes Tera-Bytes Peta-Bytes < 1 ns < 10 ns 20-100 ns 30-250 µs 3-10 ms variierend • Zur CPU: Schnell aber klein • Zur Peripherie: Langsam aber groß • Cache-Speicher zur Verringerung der Latenz 5 Magnetische Platten / Festplatten Magnetic Disks rotation Rotation Spur track rotation track block Block block arm Arm arm sector Sektor platter sector Magnetscheibe platter heads Köpfe heads Photo: http://www.metallurgy.utah.edu/ Schrittmotor positioniert Arme aufof of steppermotor motor positions array AAstepper positions anan array bestimmte Spur disk headsonon the requested track. disk heads the requested track. • Platters Magnetscheiben rotierenrotate. ständig I (disks) steadily I Platters (disks) steadily rotate. • Disks Organisation in Blöcke I aremanaged managed blocks: system I Disks are in in blocks: thethe system • reads/writes Transfer erfolgt blockweise (lesend reads/writes data one block a time. data one block at aattime. und schreibend) I • I Fall2008 2008 Fall Systems Group — Department of Computer Science ETH Zürich Systems Group — Department of Computer Science — ETH— Zürich Photo: http://www.metallurgy.utah.edu/ Magnetic Disks 10 10 6 Zugriffszeit Konstruktion der Platten hat Einflüsse auf Zugriffszeit (lesend und schreibend) auf einen Block 1. Bewegung der Arme auf die gewünschte Spur (Suchzeit ts) 2. Wartezeit auf gewünschten Block bis er sich unter dem Arm befindet (Rotationsverzögerung tr) 3. Lesezeit bzw. Schreibezeit (Transferzeit ttr) Zugriffszeit: t = ts + tr + ttr 7 Hitachi Travelstar 7K200 (für Laptops) • • • • • 4 Köpfe, 2 Magnetplatten, 512 Bytes/Sektor, Kapazität: 200 GB Rotationsgeschwindigkeit: 7200 rpm Mittelere Suchzeit: 10 ms Transferrate: ca. 50 MB/s Wie groß ist die Zugriffszeit auf einen Block von 8 KB? 8 Sequentieller vs. Wahlfreier Zugriff Beispiel: Lese 1000 Blöcke von je 8 KB • Wahlfreier Zugriff: – trnd = 1000 ∙ 14.33 ms • Sequentieller Zugriff: – Travelstar 7k200 hat 63 Sektoren pro Spur, mit einer Track-to-Track-Suchzeit von 1 ms – Ein Block mit 8 KB benötigt 16 Sektoren – tseq = ts + 1000 ∙ ttr + 16 ∙1000/63 ∙ ts,track-to-track = 10 ms + 4.14 ms + 160 ms + 254 ms ≈ 428 ms Einsicht: Sequentieller Zugriff viel schneller als wahlfreier Zugriff: Vermeide wahlfreie I/O wenn möglich Beobachtung: Wenn 428 ms / 14330 ms = 3% einer Datei benötigt wird, kann man gleich die ganze Datei lesen 9 Performance Tricks Tricks zurplay Performanzsteigerung System builders a number of tricks to improve performance. (track skewing) track Spurverschiebung skewing Align sector 0Sektor of each trackjeden to avoid Verschiebe 0 einer Spur, so dass delay Rotationsverzögerung rotational during sequential bei sequentiellem Abgriff minimiert wird scans. Anfrageplanung request scheduling (request scheduling) Falls mehrere Blockanfragen werden müssen, If multiple requests have to bebefriedigt served, choose the one that wählethe die smallest Anfrage, die diemovement kleineste Armbewegung bedarf requires arm (SPTF: shortest (SPTF: shortest positioning time first) positioning time first). Einteilung in unterschiedliche Zonen (zoning) zoning Mehr Sektoren in den längeren Spuren Outer tracks are longer than theäußeren inner ones. Therefore, unterbringen divide outer tracks into more sectors than inners. 10 Fall 2008 Systems Group — Department of Computer Science — ETH Zürich 14 Verbesserung der Festplattentechnologie Latenz der Platten über die letzten 10 Jahre nur marginal verbessert (≈ 10% pro Jahr) Aber: – Durchsatz (Transferraten) um ≈ 50% pro Jahr verbessert – Kapazität der Festplatten um ≈ 50% pro Jahr verbessert Daher: – Kosten für wahlfreien Zugriff über die Zeit hinweg relativ gesehen immer bedeutsamer 11 Wege zur Verbesserung der I/O-Performanz Latenzproblem kaum zu vermeiden Aber: – Durchsatz kann recht leicht gesteigert werden durch Ausnutzung von Parallelität – Idee: Verwende mehrere Platten und greife parallel auf Daten zu TPC-C: Ein Industrie-Laufzeittest für OLTP (V5.11) Kennzeichen des im Jahre 2013 besten Systems (Oracle 11g auf SPARC T5-8 Server): • Server-CPU: SPARC T5 3,6 GHz, #Prozessoren: 8, #Kerne (total): 128 • Client-CPUs: Intel Xeon E5-2690 2,9 GHz, #Clients: 8, #Proz. 32, #Kerne: 256 • In der Summe 8,5 Mio Transaktionen pro Minute • Kosten: $4.663.073 USD http://www.tpc.org/tpcc/results/tpcc_perf_results.asp 12 Spiegelung von Festplatteninhalten Disk Mirroring data onto von multiple disks auf mehrere Platten • Replicate Replizierung Daten I 1 2 3 4 5 6 7 8 9 ··· 1 2 3 4 5 6 7 8 9 ··· 1 2 3 4 5 6 7 8 9 ··· • I/O-Parallelität nur für Lesezugriffe I I/O parallelism only for reads. • Erhöhte Fehlertoleranz (überlegt Plattenfehler) I Improved failure tolerance (can survive one disk failure). I• This also known as RAID 1(Spiegelung (mirroring without parity). Alsis RAID1 bekannt ohne Parität) (RAID: Redundant Array of Array Inexpensive Disks) (RAID: Redundant of Inexpensive Disks) Fall 2008 Systems Group — Department of Computer Science — ETH Zürich 17 13 Speicherung mit Streifenbildung Disk Striping • IVerteilung derover Daten Distribute data disks auf mehrere Platten 1 2 3 4 5 6 7 8 9 ··· 1 4 7 ··· 2 5 8 ··· 3 6 9 ··· • IVolle I/O-Parallelität Full I/O parallelism. • IHohe Fehlerrate (hier: dreimal höheres Ausfallrisiko) High failure risk (here: 3 times risk of single disk failure)! Also known as RAIDbekannt 0 (striping (Streifenbildung without parity). • IAuch als RAID-0 ohne Parität) Fall 2008 Systems Group — Department of Computer Science — ETH Zürich 18 14 Streifenbildung mit Parität Disk Striping with Parity I Distribute • Verteile Daten und Paritätsinformation data and parity information over disks. über Platten 1 2 3 4 5 6 7 8 9 ··· 1 3 5/6 7 · · · 2 3/4 5 8 · · · 1/2 4 6 7/8 · · · • Hohe I/O-Parallelität I High I/O parallelism. • Fehlertoleranz: Eine ohne I Fault tolerance: one diskPlatte can fail kann withoutausfallen, data loss (two disks dass with dual parity/RAID 6). Daten verloren gehen I Also known as RAID 5 (striping with distributed parity). • RAID-5 (Streifenbildung mit verteilter Parität) Fall 2008 Systems Group — Department of Computer Science — ETH Zürich 19 15 Solid-State Disks als Alternative zur Festplatte Anpassung von Datenbanken auf Geräteeigenschaften ist immer noch Forschungsgegenstand Quelle: Wikipedia Solid-State Disk 16 Netzwerk-Speicher ist kein Flaschenhals • Durchsatz Festplatte: >500 MB/s (Serial ATA) • SDRAM: 50 Gbit/s (Latenz: ∼ ns) • Ethernet – 100-Gbit/s heute (Latenz: ∼ µs) – 400 Gbit/s erwartet in 2017 Warum also nicht Datenbank-Speicher über das Netzwerk referenzieren? 17 Speichernetzwerk (Storage Area Network, SAN) • Block-basierter Netzwerkzugriff auf Speicher – Als logische Platten betrachtet (Suche Block 4711 von Disk 42) – Nicht wie bei NFS (Network File System) • SAN-Speichergeräte abstrahieren von RAID oder physikalischen Platten und zeigen sich dem DBMS als logische Platten – Hardwarebeschleunigung und einfachere Verwaltung • Üblicherweise lokale Netzwerke mit multiplen Servern und Speicherressourcen – Bessere Fehlertoleranz und erhöhte Flexibilität 18 Cloud-Speicher • Cluster von vielen Standard-PCs (z.B. Google, Amazon) – Systemkosten vs. Zuverlässigkeit und Performanz – Verwendung massiver Replikation von Datenspeichern • CPU-Zyklen und Disk-Kapazität als Service – Amazons „Elastic Compute Cloud (EC2)“ • Kosten pro Stunde <10 Cent – Amazons „Simple Storage System (S3)“ • Unendlicher Speicher für Objekte in einer Größe zwischen 1 Byte und 5 GB mit Key-Value-Struktur – Latenz: 100 ms bis 1s • Datenbank auf Basis von S3 entwickelt in 2008 M. Brantner, D. Florescu, D. Graf, D. Kossmann, T. Kraska, Building a database on S3, Proceedings of the 2008 ACM SIGMOD International Conference on Management of Data (SIGMOD '08), S. 251-264, 2008 19 Architektur eines DBMS Architecture of a DBMS / Course Outline Applications Anwendungen Webformulare Web Forms SQL Interface SQL-Schnittstelle Parser Parser Operator Evaluator Operator-Evaluierer Optimizer Optimierer Transaction TransaktionsVerwalter Manager Lock SperrVerwalter Manager Dateiverwaltungsund Zugriffsmethoden Files and Access Methods Buffer Manager Puffer-Verwalter WiederRecovery herstellungsManager Verwalter dieser Teil des Kurses this course Ausführer Executor Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003. SQL-Kommandos SQL Commands Disk Space Manager Verwalter für externen Speicher DBMS Dateien für Daten und Indexe. . . data files, indices, Fall 2008 Datenbank Database Systems Group — Department of Computer Science — ETH Zürich 3 20 Verwaltung des externen Speichers • Abstraktion von technischen Details der Speichermedien • Konzepte der Seite (page) mit typischerweise 4-64KB als Speichereinheiten für die restlichen Komponenten • Verzeichnis für Abbildung Seitennummer à Physikalischer Speicherort wobei der physikalische Speicherort – eine Betriebssystemdatei inkl. Versatz, – eine Angabe Kopf-Sektor-Spur einer Festplatte oder – eine Angabe für Bandgerät und -nummer inkl. Versatz sein kann 21 Verwaltung leerer Seiten Verwendete Techniken: 1. Liste der freien Seiten – Hinzufügung falls Seite nicht mehr verwendet 2. Bitmap mit einem Bit für jede Seite – Umklappen des Bits k, wenn Seite k (de-)alloziert wird 22 Aufgabe Verwendete Techniken: 1. Liste der freien Seiten - Hinzufügung falls Seite nicht mehr verwendet 2. Bitmap mit einem Bit für jede Seite - Umklappen des Bits k, wenn Seite k (de-)alloziert wird Zur Erhöhung des sequentiellen Zugriffs sollten hintereinanderliegende Seiten verwendet werden. Welche Technik, 1. oder 2., würden Sie wählen, um dieses zu unterstützen? 23 Architektur eines DBMS Architecture of a DBMS / Course Outline Applications Anwendungen Webformulare Web Forms SQL Interface SQL-Schnittstelle Parser Parser Operator Evaluator Operator-Evaluierer Optimizer Optimierer Transaction TransaktionsVerwalter Manager Lock SperrVerwalter Manager Dateiverwaltungsund Zugriffsmethoden Files and Access Methods Buffer Manager Puffer-Verwalter WiederRecovery herstellungsManager Verwalter dieser Teil des Kurses this course Ausführer Executor Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003. SQL-Kommandos SQL Commands Disk Space Manager Verwalter für externen Speicher DBMS Dateien für Daten und Indexe. . . data files, indices, Fall 2008 Datenbank Database Systems Group — Department of Computer Science — ETH Zürich 3 24 Puffer-Verwalter Buffer Manager • buffer Vermittelt zwischen The manager Seitenanforderungen page requests 6 3 1 Hauptspeicher main 4 memory disk page free frame freier Seite 7 Rahmen 1 7 2 8 Fall 2008 3 4 5 6 9 10 11 · · · disk Festplatte externem und internem mediates between external Speicher storage and(Hauptspeicher) main memory, manages a designated main • I Verwaltet hierzu einen memory area, the buffer pool besonderen Bereich im for this task. Hauptspeicher, den Disk Pufferbereich pages are brought into pool) (buffer memory as needed and loaded into • Externe Seiten in Rahmen memory frames. des Pufferbereichs laden A replacement policy decides which page to evict when the buffer is full. • Verdrängungsstrategie falls Pufferbereich voll I Systems Group — Department of Computer Science — ETH Zürich 28 25 Schnittstelle zum Puffer-Verwalter Funktion pin für Anfragen nach Seiten und unpin für Freistellungen von Seiten nach Verwendung • pin(pageno) – Anfrage nach Seitennummer pageno – Lade Seite in Hauptspeicher falls nötig – Rückgabe einer Referenz auf pageno • unpin(pageno, dirty) – Freistellung einer Seite pageno zur möglichen Auslagerung – dirty = true bei Modifikationen der Seite Wofür nötig? 26 Implementation von pin() Implementation of pin () 1 2 3 4 5 6 7 8 9 10 11 12 Function: pin(pageno) if buffer pool already contains pageno then pinCount (pageno) pinCount (pageno) + 1 ; return address of frame holding pageno ; else select a victim frame v using the replacement policy ; if dirty (v) then write v to disk ; read page pageno from disk into frame v ; pinCount (pageno) 1; dirty (pageno) false ; return address of frame v ; 27 Fall 2008 Systems Group — Department of Computer Science — ETH Zürich 30 Implementation von unpin() Implementation of unpin () 1 Function: unpin(pageno, dirty) 2 pinCount (pageno) if dirty then dirty (pageno) 3 4 pinCount (pageno) 1; dirty ; Why don’t we write pages back to disk during unpin ()? Warum werden Seiten nicht gleich beim unpin zurückgeschrieben? 28 Verdrängungsstrategien Die Effektivität des Puffer-Verwalters hängt von der gewählten Verdrängungsstrategie ab, z.B.: • Least Recently Used (LRU) – Verdrängung der Seite mit längszurückliegendem unpin() • LRU-k – Wie LRU, aber k-letztes unpin(), nicht letztes • Most Recently Used (MRU) – Verdrängung der Seite mit jüngstem unpin() • Random – Verdrängung einer beliebigen Seite Wann welche Strategie einsetzen? 29 Pufferverwaltung in der Praxis • Prefetching – Antizipation von Anfragen, um CPU- und I/O- zu überlappen • Spekulatives Prefetching: Nehme sequentiellen Seitenzugriff an und lese im Vorwege • Prefetch-Listen mit Instruktionen für den Pufferverwalter für Prefetch-Seiten • Fixierungs- oder Verdrängungsempfehlung – Höherer Code kann Fixierung (z.B. für Indexseiten) oder schnelle Verdrängung (bei seq. Scans) empfehlen • Partitionierte Pufferbereiche – Z.B. separate Bereiche für Index und Tabellen 30 Datenbanken vs. Betriebssysteme • Haben wir nicht gerade ein Betriebssystem entworfen? • Yes – Verwaltung für externen Speicher und Pufferverwaltung ähnlich • Aber – DBMS weiß mehr über Zugriffsmuster (z.B. Prefetching) – Limitationen von Betriebssystemen häufig zu stark für DBMS (Obergrenzen für Dateigrößen, Plattformunabhängigkeit nicht gegeben) 31 Datenbanken vs. Betriebssysteme • Gegenseitige Störung möglich – Doppelte Seitenverwaltung – DMBS-Transaktionen vs. Transaktionen auf Dateien organisiert vom Betriebssystem (journalling) – DBMS Pufferbereiche durch Betriebssystem ausgelagert – DBMS schalten Betriebssystemdienste aus • Direkter Zugriff auf Festplatten • Eigene Prozessverwaltung • ... 32 Architektur eines DBMS Architecture of a DBMS / Course Outline Applications Anwendungen Webformulare Web Forms SQL Interface SQL-Schnittstelle Parser Parser Operator Evaluator Operator-Evaluierer Optimizer Optimierer Transaction TransaktionsVerwalter Manager Lock SperrVerwalter Manager Dateiverwaltungsund Zugriffsmethoden Files and Access Methods Buffer Manager Puffer-Verwalter WiederRecovery herstellungsManager Verwalter dieser Teil des Kurses this course Ausführer Executor Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003. SQL-Kommandos SQL Commands Disk Space Manager Verwalter für externen Speicher DBMS Dateien für Daten und Indexe. . . data files, indices, Fall 2008 Datenbank Database Systems Group — Department of Computer Science — ETH Zürich 3 33 Datenbank-Dateien Database Files I I I So far we have talked about pages. Their management is • Seitenverwaltung unbeeinflusst vom Inhalt oblivious with respect to their actual content. • the DBMS verwaltet von Tupeln, Indexstrukturen, ... On conceptual level,Tabellen a DBMS manages tables of tuples and (among others). von Datensätzen (records) • indexes Tabellen sind Dateien Such tables arebesteht implemented as files ofmehrerer records: Seiten – Datei aus einer oder I A file consists of one or more pages. – Jede Seite speichert eine oder mehrere Datensätze I Each page contains one or more records. – Jeder Datensatz korrespondiert I Each record corresponds to one tuple. zu einem Tupel file 0 free file 1 page 0 page 1 page 2 page 3 free page 4 Fall 2008 page 5 page 6 Systems Group — Department of Computer Science — ETH Zürich page 7 37 34 Heap-Dateien Heap Files • The Wichtigster Dateityp: Speicherung von Datensätzen mit most important type of files in a database is the heap file. It stores records in no particular order (in line with, e.g., SQL). willkürlicher Ordnung (konform mit SQL) Linked list ofListe pages von Seiten Verkettete header page data page data page ··· data page pages w/ free space data page data page ··· data page full pages + easy tozu implement + Einfach implementieren – most pages will in freeder pagefreie list Seiten - Viele Seiten aufend derupListe – might have to search many pages to place a (large) record (haben also noch Kapazität) - Fall 2008 Viele Seiten anzufassen bis passende Seite gefunden Systems Group — Department of Computer Science — ETH Zürich 38 35 Heap-Dateien Heap Files Directory of pages • Verzeichnis von Seiten data page ··· data page data page – Verwendung als Abbildung mit Informationen über freie I use as space map with information about free page Plätze (Granularität ist Abwägungssache) I granularity as trade-off space $ accuracy + Suche nach freien Plätzen effizient (range from open/closed bit to exact information) - Zusatzaufwand für Verzeichnisspeicher + free space search more efficient – small memory overhead to host directory Fall 2008 Systems Group — Department of Computer Science — ETH Zürich 36 39 Freispeicher-Verzeichnis Welche Seite soll für neuen Datensatz gewählt werden? • Append Only – Immer in letzte Seite einfügen, sonst neue Seite anfordern • Best-Fit – Alle Seiten müssen betrachtet werden, Reduzierung der Fragmentierung • First-Fit – Suche vom Anfang, nehme erste Seite mit genug Platz – Erste Seiten füllen sich schnell, werden immer wieder betrachtet • Next-Fit – Verwalte Zeiger und führe Suche fort, wo Suche beim vorigen Male endete 37 Inhalt einer Seite Inside a Page Inside a Page IDID NAME NAME 4711 John John 4711 1723 Marc 1723 Marc 6381 Betty 6381 Betty SEX M M F SEX M M F 4 7 1 1 J o4h 7 n 1 1 J o hM n 1723M arc M 6 3 8 1 B e t tMy 6 arc F F identifier (rid): • I record Datensatz-Kennung hpageno, slotnoi I record (record identifier, identifier (rid): rid) I record position (within page): hpageno, • Datensatz-Position slotno ⇥ bytesslotnoi per slot (Versatz auf (within der Seite) I record I Tuple position page): deletion? record shouldn’t change Slotno xidbytes Bytes pro Slot slotno ⇥ per slot ! slot directory (bitmap) Datensatz gelöscht? I • Tuple deletion? slot directory I no. of records in this page slot directory 101 3 Header – record rid sollte sich nichtchange ändern id shouldn’t !– slot directory (bitmap) Slot-Verzeichnis (Bitmap) I Fall 2008 M1723M 381Betty Systems Group — Department of Computer Science — ETH Zürich no. of records in this page 42 101 3 Header 38 Fall 2008 Systems Group — Department of Computer Science — ETH Zürich 42 Inside aInhalte Page—Variable-Sized Fields Länge einer Seite: Felder variabler I I I I Variable-sized fields moved to • Felder variabler Länge zum end of Ende each verschoben record. I Placeholder points to – Platzhalter zeigt auf Position location. Warum? I Why? • Slot-Verzeichnis zeigt auf Slot directory points to start of Start eines Feldes each• record. Felder können auf Seite Recordsverschoben can move werden on page. (z.B. sichchanges. Feldgröße I E.g., if wenn field size ändert) Create “forward address” if • Einführung einer record won’t fit on page. Vorwärtsreferenz, wenn I Future updates? Feld nicht auf Seite passt 4711 • MJohn?1723 • MM arc?6381 • FBetty?172 3• • M T i m o t h y ? forward slot directory • no. of records in this page • • 3 Header Was passiert bei Updates? Fall 2008 Systems Group — Department of Computer Science — ETH Zürich 39 43 Alternative Seiteneinteilungen Alternative Page Page Layouts Layouts Alternative We have just populated data pages in a row-wise fashion: We have just wurden populated Datensätzen data pages in a row-wise fashion: • Im Beispiel zeilenweise angeordnet: aa11 aa22 aa33 aa4 4 bb11 bb22 bb33 bb4 4 cc11 cc22 cc33 cc4 4 dd11 dd22 dd33 dd4 a1 b1 c1 a b c 1 1 c d a 1 c1 1 b d1 1 c a22 d 2 2 2 b c d 2 2 2 d a b d22 c a33 d b3 3 c33 d33 a4 b4 a b 4 c d 4 c4 4 d4 4 page 0 page 0 4 c c4 4 page 1 page 1 We could could as as well wellAnordnung dothat thatcolumn-wise: column-wise: • Spaltenweise genauso möglich: We do aa11 aa22 aa33 aa44 Fall2008 2008 Fall bb11 bb22 bb33 bb44 cc11 cc22 cc33 cc44 dd11 dd22 dd33 dd44 aa1 1 aa33 aa44 aa22 aa3 3 bb1 1 bb3 3 bb4 4 page00 page SystemsGroup Group— —Department DepartmentofofComputer ComputerScience Science——ETH ETHZürich Zürich Systems bb2 2 bb3 3 · ·· ·· · page1 1 page 4444 40 Alternative Page Layouts Alternative Seitenanordnungen These two approaches are also known as NSM (n-ary storage model) and DSM (decomposition storage model).1 Vorgestellte Schemata heißen auch: I Tuning knob for certain workload types (e.g., OLAP) I – Row-Store – Column-Store Different behavior with respect to compression. Anwendungen fürPAX verschiedene A• hybrid approach is the (Partition Attributes Accross) Lasttypen undlayout: Anwendungs- minipage 3 minipage 2 (z.B. OLAP) I kontexte Divide each page into minipages. • I Unterschiedliche Group attributes into them. Kompressionsmöglichkeiten % Ailamaki et al. Weaving Relations for Cache • Kombination möglich: Performance. VLDB 2001. minipage 1 minipage 0 page 0 – Unterteilung einer Seite in Miniseiten 1 Recently, the terms row-store and column-store have become popular, too. – mit entsprechender Aufteilung Fall 2008 Systems Group — Department of Computer Science — ETH Zürich Ailamaki et al. Weaving Relations for Cache Performance. VLDB 2001 45 41 Zusammenfassung • Kennzeichen von Speichermedien – Wahlfreier Zugriff langsam (I/O-Komplexität) • Verwalter für externen Speicher – Abstraktion von Hardware-Details – Seitennummer à Physikalischer Speicherort • Puffer-Verwalter – Seiten-Caching im Hauptspeicher – Verdrängungsstrategie • Dateiorganisation – Stabile Record-Bezeichner (rids) – Verwaltung statischer und dynamischer Felder Architektur eines DBMS Architecture of a DBMS / Course Outline Applications Anwendungen Webformulare Web Forms SQL Interface SQL-Schnittstelle Parser Parser Operator Evaluator Operator-Evaluierer Optimizer Optimierer Transaction TransaktionsVerwalter Manager Lock SperrVerwalter Manager Dateiverwaltungsund Zugriffsmethoden Files and Access Methods Buffer Manager Puffer-Verwalter WiederRecovery herstellungsManager Verwalter dieser Teil des Kurses this course Ausführer Executor Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003. SQL-Kommandos SQL Commands Disk Space Manager Verwalter für externen Speicher DBMS Dateien für Daten und Indexe. . . data files, indices, Fall 2008 Datenbank Database Systems Group — Department of Computer Science — ETH Zürich 3 43