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 SQL Interface SQL-Schnittstelle Figure inspired by Ramakrishnan/ Gehrke: “Dat abase Management Systems”, McGraw-Hill 2003. Webformulare Web Forms Ausführer Executor Parser Parser Operator Evaluator Operator-Evaluierer Optimizer Optimierer Transaction Transaktions Manager Dateiverwaltungsund Zugriffsmethoden Files and Access Methods Verwalter Puffer-Verwalter Buffer Manager Lock SperrVerwalter Manager Verwalter für Manager externen Disk Space RWiederecovery herstellungsManager Verwalter dieser Teil des thiscourse Kurses SQL-Kommandos SQLCommands 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 SQL Interface SQL-Schnittstelle Figure inspired by Ramakrishnan/ Gehrke: “Dat abase Management Systems”, McGraw-Hill 2003. Webformulare Web Forms Ausführer Executor Parser Parser Operator Evaluator Operator-Evaluierer Optimizer Optimierer Transaction Transaktions Manager Dateiverwaltungsund Zugriffsmethoden Files and Access Methods Verwalter Puffer-Verwalter Buffer Manager Lock SperrVerwalter Manager Verwalter für Manager externen Disk Space RWiederecovery herstellungsManager Verwalter dieser Teil des thiscourse Kurses SQL-Kommandos SQLCommands 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 Kapazität • CPU (mit Registern) ns • Cache-Speicher ns • Hauptspeicher 100 ns • Flash-Speicher 250 ms • Festplatte 3-10 ms • Bandautomat variierend Latenz Bytes <1 Kilo-/Mega-Bytes < 10 Giga-Bytes 20- Giga/Tera-Bytes 30- Tera-Bytes Peta-Bytes 5 Magnetische Platten / Festplatten Magnetic Disks Magnetic Disks rotation Rotation Spur track rotation arm Arm arm track sector heads Köpfe heads • II positioniert Arme auf steppermotor motor positions an array AASchrittmotor stepper positions an array of of bestimmte Spur disk heads the requested track. disk heads onon the requested track. • Platters Magnetscheiben rotieren ständig (disks) steadily rotate. I I Platters (disks) steadily rotate. • Disks Organisation in Blöcke I I Disks are managed blocks: system are managed in in blocks: thethe system • reads/ Transfer erfolgt blockweise reads/ writes data one block a time. writes data one block at (lesend aattime. und schreibend) Fall 2008 Fall 2008 Systems Group — Department of Computer ScienceScience — ETH — Zürich Systems Group — Department of Computer ETH Zürich Photo: ht t p: / / www. met al l ur gy. ut ah. edu/ Sektor platter sector platter Magnetscheibe Photo: ht t p: / / www. met al l ur gy. ut ah. edu/ block Block block 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 ormance Tricks zur Performanzsteigerung ystemTricks builders play a number of tricks to improve performance. Spurverschiebung (track skewing) ack skewing Align sector 0 of each0track avoid Verschiebe Sektor einerto jeden Spur, so dass Rotationsverzögerung rotational delay during sequential bei sequentiellem Abgriff minimiert wird scans. Anfrageplanung (request scheduling) quest scheduling Falls mehrere Blockanfragen befriedigt werden If multiple requests have to be served, choose themüssen, one that wähle die Anfrage, die die kleineste Armbewegung requires the smallest arm movement (SPTF: shortest bedarf positioning time first). (SPTF: shortest positioning time first) oningEinteilung in unterschiedliche Zonen (zoning) Outer tracks are longer than the inner ones. Therefore, Mehr Sektoren in den längeren äußeren Spuren divide outer tracks into more sectors than inners. unterbringen 10 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 http://www.tpc.org/tpcc/results/tpcc_perf_results.asp • Kosten: $4.663.073 USD 12 Spiegelung von Festplatteninhalten Disk Mirroring I data onto multiple disks auf mehrere Platten • Replicate Replizierung von Daten 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). Als RAID1 (Spiegelung ohne Parität) I • This is also knownbekannt as RAID 1(mirroring without parity). (RAID: Redundant Array of Inexpensive (RAID: Redundant Array ofDisks) Inexpensive Disks) Fall 2008 Systems Group — Department of Computer Science — ETH Zürich 17 13 Speicherung mit Streifenbildung Disk Striping • IVerteilung der Daten Distribute data over 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 höheres Ausfallrisiko) High failure risk (here:(hier: 3 timesdreimal risk of single disk failure)! Also known as RAID 0 bekannt (striping without parity). • IAuch als RAID-0 (Streifenbildung 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: Platte kanndata ausfallen, ohne I Fault tolerance: oneEine disk can fail without loss (two disks withDaten dual parity/ RAID 6). gehen dass verloren 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 Dis 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: ∼ ms) – 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 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 • Datenbank auf Basis von S3 entwickelt in 2008 19 Architektur eines DBMS Architecture of a DBMS / Course Outline Applications Anwendungen SQL Interface SQL-Schnittstelle Figure inspired by Ramakrishnan/ Gehrke: “Dat abase Management Systems”, McGraw-Hill 2003. Webformulare Web Forms Ausführer Executor Parser Parser Operator Evaluator Operator-Evaluierer Optimizer Optimierer Transaction Transaktions Manager Dateiverwaltungsund Zugriffsmethoden Files and Access Methods Verwalter Puffer-Verwalter Buffer Manager Lock SperrVerwalter Manager Verwalter für Manager externen Disk Space RWiederecovery herstellungsManager Verwalter dieser Teil des thiscourse Kurses SQL-Kommandos SQLCommands 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 464KB 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 SQL Interface SQL-Schnittstelle Figure inspired by Ramakrishnan/ Gehrke: “Dat abase Management Systems”, McGraw-Hill 2003. Webformulare Web Forms Ausführer Executor Parser Parser Operator Evaluator Operator-Evaluierer Optimizer Optimierer Transaction Transaktions Manager Dateiverwaltungsund Zugriffsmethoden Files and Access Methods Verwalter Puffer-Verwalter Buffer Manager Lock SperrVerwalter Manager Verwalter für Manager externen Disk Space RWiederecovery herstellungsManager Verwalter dieser Teil des thiscourse Kurses SQL-Kommandos SQLCommands 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 1 3 1 2 3 4 7 8 9 10 Fall 2008 externem und internem mediates between external Speicher storage and(Hauptspeicher) main memory, 4 memory I Verwaltet manages a designated main • hierzu einen Seite disk page memory area, the buffer pool 7 besonderen Bereich im free frame freier for this task. Rahmen Hauptspeicher, den DiskPufferbereich pages are brought(buffer into memory as needed and loaded into pool) disk Festplatte memory frames. 5 6 Externe Seiten in which A•replacement policy decides 11 · · · desthe buffer is full. pageRahmen to evict when Pufferbereichs laden • Verdrängungsstrategie Systems Group — Department of Computer Science — ETH Zürich 28 falls Pufferbereich voll 25 Hauptspeicher main I 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 pi n ( ) 1 Function: pi n( pageno) 2 if buffer pool already contains pageno then pi nCount ( pageno) + 1; pi nCount ( pageno) return address of frame holding pageno ; else select a victim frame v using the replacement policy ; if di r t y ( v) then write v to disk ; 3 4 5 6 7 8 9 10 11 12 read page pageno from disk into frame v ; 1; pi nCount ( pageno) false ; di r t y ( pageno) return address of frame v ; 27 Implementation von unpin() Implementation of unpi n ( ) 1 Function: unpi n( pageno, dirty) 2 pi nCount ( pageno) if dirty then di r t y ( pageno) 3 4 pi nCount ( pageno) − 1; dirty ; Why don’t we write pagesback to disk during unpi n ( ) ? 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 SQL Interface SQL-Schnittstelle Figure inspired by Ramakrishnan/ Gehrke: “Dat abase Management Systems”, McGraw-Hill 2003. Webformulare Web Forms Ausführer Executor Parser Parser Operator Evaluator Operator-Evaluierer Optimizer Optimierer Transaction Transaktions Manager Dateiverwaltungsund Zugriffsmethoden Files and Access Methods Verwalter Puffer-Verwalter Buffer Manager Lock SperrVerwalter Manager Verwalter für Manager externen Disk Space RWiederecovery herstellungsManager Verwalter dieser Teil des thiscourse Kurses SQL-Kommandos SQLCommands 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 abase Files I I I 2008 So far we have talked about pages. Their management is • Seitenverwaltung unbeeinflusst Inhalt oblivious with respect to their actual contentvom . • the DBMS verwaltet von tablesof Tupeln,tuples On conceptual level, aTabellen DBMSmanages and indexes(among others). Indexstrukturen, ... Such tables are implemented as filesof records: • Tabellen sind Dateien von Datensätzen (records) I A file consists of one or more pages. – Datei besteht aus einer oder mehrerer Seiten I Each page contains one or more records. – Jede Seite speichert einetuple. oder mehrere Datensätze I Each record corresponds to one 0 –fileJeder Datensatz korrespondiert zu einem Tupel free page 0 page 1 page 2 page 3 file 1 free page 4 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 most important type of files in a database is the heap file. It stores records in no particular order (in line with, e.g., mit willkürlicher Ordnung (konform mitSQL). SQL) Linked list of pages Verkettete Liste von Seiten header page data page data page ··· data page pages w/ free space data page data page ··· data page full pages + Einfach zu implementieren + easy to implement – mostSeiten pages will endder up inListe free page - Viele auf derlistfreie Seiten – might have search many pages to place a (large) record (haben alsotonoch Kapazität) -Fall 2008 Viele Seiten anzufassen bis passende Seite Systems Group — Department of Computer Science — ETH Zürich gefunden 38 35 Heap-Dateien Heap Files Directory of pagesvon Seiten • Verzeichnis data page ··· data page data page – Verwendung als Abbildung mit Informationen über I use as space map with information about free page freie Plätze (Granularität ist Abwägungssache) granularity as trade-off space $ accuracy + ISuche 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 36 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 nside a Page Inside a Page I DI D NAM N AME E 4711 John John 4711 1723 Mar c 1723 Mar c 6381 Bet t y 6381 Bet t y I I SEX SEX 4 7 1 1 J o4h7n 1 1 J o hM1 n723M M1 7 2 3 M y 3 8 1 Be t t y M M a r c F a r c M6 3 8 1 B e t t M6 F M M F F •I record Datensatz-Kennung identifier (rid): hpageno, slotnoi (record identifier, record identifier (rid): rid) I record position (within page): hpageno, slotnoi • Datensatz-Position slotno ⇥ bytes per slot (Versatz auf(within der Seite) record position page): I Tuple deletion? Slotno Bytes slotno ⇥xidbytes perpro slotSlot record shouldn’t change ! slot directory (bitmap) •Tuple Datensatz deletion?gelöscht? slot directory I I –record rid sollte sich nicht id shouldn’t change ändern ! slot directory (bitmap) – Slot-Verzeichnis (Bitmap) I Fall 2008 Fall 2008 no. of records in this page slot no. of records 1 0 1 3 Header directory in this page Systems Group — Department of Computer Science — ETH Zürich Systems Group — Department of Computer Science — ETH Zürich 42 101 3 Header 38 42 de aInhalte Page—Variable-Sized einer Seite: FelderFields variabler Länge Variable-sized fields moved to 4 7 1 1 • MJ o h n ? 1 7 2 3 • MM • Felder variabler Länge a r c ? 6 3 8 1 • F Be t t y ? 1 7 2 end of each record. • • MT i mo t h y ? 3 zum Ende verschoben I Placeholder points – Platzhalter zeigt to auf forward location. Position Warum? I Why? Slot-Verzeichnis zeigtof auf Slot •directory points to start Start eines Feldes each record. • Felder können auf Seite Records can move on page. verschoben werden I E.g., if field size changes. slot no. of records (z.B. wenn sich directory in this page Create Feldgröße “forward address” if ändert) record won’t fit oneiner page. • Einführung I • • • 3 Header Future updates? wenn Vorwärtsreferenz, Was passiert bei Feld nicht auf Seite passt 39 Updates? Alternative Seiteneinteilungen Alternative Page Layouts Alternative Page Layouts We have just populated data pages in a row-wise fashion: WeBeispiel have just populated pages in a row-wise fashion: • Im wurdendata Datensätzen zeilenweise angeordnet: a1 b1 c1 a4 b4 a a11 a a22 a a33 a a44 b b11 b b22 b b33 b b44 c c11 c c22 c c33 c c44 d d11 d d22 d d33 d d44 c1a1 d1 c1 b2 d1 d2b2 a3 d2 c3 a3 c3 b1 a2c1 c2 a2 d2 c2 b3d2 d3 b3 d3 c4a4 d4 b4 c4 d4 page 0 page 0 c4 c4 page 1 page 1 We could could as aswell well do dothat that column-wise: column-wise: We • Spaltenweise Anordnung genauso möglich: aa11 aa22 aa33 aa44 Fall 2008 2008 Fall bb11 bb22 bb33 bb44 cc11 cc22 cc33 cc44 dd11 dd22 dd33 dd44 a1 a2 a a 1 2 a a 3 4 a3 a4 aa33 b1 b2 b b 1 2 b b 3 4 b3 b4 page 0 page 0 SystemsGroup Group— —Department DepartmentofofComputer ComputerScience Science——ETH ETHZürich Zürich Systems bb3 3 ····· · page 1 page 1 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) – Row-Store – Column-Store Different behavior with respect to compression. I A•Anwendungen hybrid approach isfür theverschiedene PAX (Partition Attributes Accross) layout: Lasttypen und Anwendungs- kontexte (z.B.page OLAP) I Divide each into minipages. •Unterschiedliche I Group attributes into them. Kompressionsmöglichkeiten % Ailamaki et al. Weaving Relations for Cache •Kombination möglich: Performance. VLDB 2001 . minipage 3 minipage 2 minipage 1 minipage 0 page 0 – Unterteilung einer Seite in Miniseiten 1 Recently, terms row-store and column-store have become popular, too. – mit the 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 SQL Interface SQL-Schnittstelle Figure inspired by Ramakrishnan/ Gehrke: “Dat abase Management Systems”, McGraw-Hill 2003. Webformulare Web Forms Ausführer Executor Parser Parser Operator Evaluator Operator-Evaluierer Optimizer Optimierer Transaction Transaktions Manager Dateiverwaltungsund Zugriffsmethoden Files and Access Methods Verwalter Puffer-Verwalter Buffer Manager Lock SperrVerwalter Manager Verwalter für Manager externen Disk Space RWiederecovery herstellungsManager Verwalter dieser Teil des thiscourse Kurses SQL-Kommandos SQLCommands 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