Kapitel 6 Externes Sortieren
|
|
|
- Maya Steinmann
- vor 8 Jahren
- Abrufe
Transkript
1 Kapitel 6 Externes Sortieren Überblick Two-Way Merge Sort External Merge Sort Kostenminimierung B+ Bäume zur Sortierung 1 Architektur und Implementierung von Datenbanksystemen WS 2009/10 Melanie Herschel Universität Tübingen
2 Anfragebearbeitung Was eine SQL Anfrage dem DBMS aufbürdet Aggregation SELECT C.CUST_ID, C.NAME, SUM(O.TOTAL) AS REVENUE FROM CUSTOMERS AS C, ORDERS AS O WHERE C.ZIPCODE BETWEEN 8000 AND 8999 AND C.CUST_ID = O.CUST_ID Join GROUP BY C.CUST_ID Gruppierung ORDER BY C.CUST_ID, C.NAME Sortierung Selektion Der Query Prozessor eines DBMSs muss eine Reihe von Aufgaben unter erschwerenden Bedingungen erfüllen, denn Speicherresourcen sind limitiert, die zu verarbeitenden Datenmengen sind groß, eine Anfrage muss so schnell wie möglich beantwortet werden. 2
3 Überblick Architektur eines DBMS Web Forms Applications SQL Interface Figure inspired by Ramakrishnan/Gehrke: Database Management Systems, McGraw-Hill Transaction Manager Lock Manager SQL Commands Executor Operator Evaluator Parser Optimizer File and Access Methods Buffer Manager Disk Space Manager!!!! Database Recovery Manager DBMS data, files, indices,... 3
4 Anfragepläne und Operatoren Operatoren als Bausteine einer Anfrage Ein DBMS sieht eine SQL Anfrage nicht als einen monolithischen Block. Stattdessen wird eine Anfrage in kleinere Teile unterteilt: Anfrageoperatoren. Operatoren können zu einem Anfragegraphen kombiniert werden. Dieser Graph entspricht dem sogenannten Anfrageplan. Dieser Anfrageplan ist in der Lage, die gestellte SQL Anfrage korrekt zu beantworten. Für jeden Operator gibt es spezielle Implementierungen, die eine Aufgabe gut bewältigen (z.b. Zeit- und Speichereffizienz). Beispiel für einen Anfrageplan SELECT R.A, S.C FROM R, S WHERE R.B = S.B ORDER BY R.A Sortierung nach R.A Projektion von R.A und S.C Join über B Scan R Scan S 4
5 Sortierung während der Anfragebearbeitung Sortierung ist ein nützlicher Operator, der entweder explizit oder implizit verwendet wird. Explizite Sortierung via SQL ORDER BY Klausel SELECT A, B, C FROM R ORDER BY A Implizite Sortierung, z.b. zur Duplikateliminierung SELECT DISTINCT A, B, C FROM R Implizite Sortierung, z.b. zur Vorbereitung eines Equijoins. SELECT FROM WHERE R.A, S.C R, S R.B = S.B Außerdem: Gruppierung via GROUP BY, Bulk Loading eines B+ Baumes,... 5
6 Definition von Sortierung Eine Datei ist bezüglich eines Sortierschlüssels k und einer Reihenfolge! sortiert, wenn für zwei beliebige Records ri und rj, wobei ri dem Record rj in der Datei vorangeht gilt, dass ihre jeweiligen Schlüsselwerte der!-reihenfolge entsprechen: ri! rj ri.k! rj.k Ein Schlüssel kann sowohl aus einem oder aus mehreren Attributen bestehen. Im letzteren Fall entspricht die Reihenfolge der lexikographischen Reihenfolge. Gegeben k = (A, B) und! = <, so gilt ri < rj ri.a < rj.a! ( ri.a = rj.a " ri.b < rj.b ) 6
7 Externes Sortieren Ein fundamentales Ziel eines DBMS ist es, keine Beschränkung bezüglich der Größe der zu verarbeitenden Daten festlegen zu müssen. "Fundamentales Problem: Wie können wir die Records einer Datei sortieren, wenn die Datei deutlich größer ist als der zur Verfügung stehender Hauptspeicherplatz (bzw. der vom Buffer Manager verwaltete Speicherplatz)? Wir nähern uns der Aufgabe in zwei Schritten: (1) Sortierung einer Datei beliebiger Größe ist selbst dann möglich, wenn wir nicht mehr als drei freie Seiten im Buffer zur Verfügung haben. (2) Erweiterung des in (1) erarbeiteten Algorithmus, um effektiver größere (realistischere) Mengen freien Speichers auszunutzen. Außerdem betrachten wir eine Reihe von Optimierungen, die die Anzahl nötiger I/O Operationen reduziert. 7
8 Kapitel 6 Externes Sortieren Überblick Two-Way Merge Sort External Merge Sort Kostenminimierung B+ Bäume zur Sortierung 8 Architektur und Implementierung von Datenbanksystemen WS 2009/10 Melanie Herschel Universität Tübingen
9 Two-Way Merge Sort Benötigt nur drei Seiten im Buffer Pool. Sortiert eine Datei mit 2 k Seiten in mehreren Passes. In jedem Pass werden eine Menge von sortierten Teildateien, sog. Runs, generiert. Pass 0 sortiert jede der 2 k Seiten separat, und schreibt jede sortiere Datei auf Platte " 2 k Runs. Jeder weitere Pass (Merge-Pass) vereinigt Paare von Runs zu jeweils neuen, doppelt so großen Runs " Pass n produziert 2 k-n Runs. Pass k generiert einen einzigen Run, der der sortierten Datei entspricht. In jedem Pass betrachten wir jede Seite der Input Datei "Es sind k! N Lese- und k! N Schreiboperationen nötig, um die Datei zu sortieren. 9
10 Two-Way Merge Sort Beispiel Sortierung einer Datei von 7 Seiten (Teil 1) 3, 4 6, 2 9, 4 8, 7 5, 6 3, 1 2 Input File Pass 0 3, 4 2, 6 4, 9 7, 8 5, 6 1, Page Runs Pass 1 2, 3 4, 6 4, 7 8, 9 1, 3 5, Page Runs Pass 2 2, 3 4, 4 6, 7 8, 9 1, 2 3, Page Runs 10
11 Two-Way Merge Sort Beispiel Sortierung einer Datei von 7 Seiten (Teil 2) 2, 3 4, 4 6, 7 8, 9 1, 2 2, 3 3, 4 4, 5 6, 6 7, 8 9 1, 2 3, Page Runs Pass 3 8-Page Runs 11
12 Two-Way Merge Sort Algorithmus Two-Way Merge Sort einer Datein von N = 2k Seiten function two_pass_merge_sort(file, N) begin end for each Seite p in file do Lese p in den Hauptspeicher, sortiere p, und schreibe p auf Platte zurück. for n in 1... k do for r in k-n - 1 do begin Vereinige Runs 2r und 2r + 1 aus verhergehendem Pass in einen neuen Run, indem die Eingabe-Runs Seitenweise gelesen werden; Lösche Eingabe-Runs 2r und 2r + 1; end Gebe letzten verbleibenden Run zurück; 12
13 Two-Way Merge Sort Anzahl I/O Operationen Um eine Datei von N Seiten zu sortieren, führen wir pro Pass durch: Das Lesen von N Seiten Sortieren und Mergen Das Schreiben von N Seiten "2 N I/O Operationen pro Pass. Anzahl Passes: 1 + log2n "Anzahl I/O Operationen insgesamt: 2 N ( 1 + log2n ) Wie viele I/O Operationen brauchen wir, um eine 8GB Datei (Seitengröße = 8 KB) zu sortieren? 13
14 Kapitel 6 Externes Sortieren Überblick Two-Way Merge Sort External Merge Sort Kostenminimierung B+ Bäume zur Sortierung 14 Architektur und Implementierung von Datenbanksystemen WS 2009/10 Melanie Herschel Universität Tübingen
15 External Merge Sort Annahme Wir haben B Seiten im Buffer zur Verfügung. Wie sortieren eine Datei, die aus N Seiten besteht. Grundidee Wie bei Two-Way Merge Sort führen wir mehrere Passes über die Seiten der zu sortierenden Datei aus. Durch Verwendung von B statt 3 Frames des Buffers minimieren wir die Anzahl Passes (und somit die Anzahl I/O Operationen). Lösungsansatz (1)Pass 0: Reduktion der Anzahl Runs, die initial im ersten Pass produziert werden. (2)Pass i, i > 0: Reduktion der Anzahl weiterer Passes, indem während eines Passes mehr als zwei Runs auf einmal miteinander gemerged werden. 15
16 External Merge Sort Initialer Pass Wir lesen B Seiten in den Hauptspeicher ein. Die Daten werden im Hauptspeicher sortiert (nach beliebigem in-memory Sortieralgorithmus, z.b. Quicksort). " N/B Runs, jeweils der Größe B (letzter Run eventuell auch kleiner). External Merge Sort - Initialer Pass 3, 4 2, 3 1. Output Run 6, 2 4, 4 5, 6 1, 2 9, 4 6, 7 3, 1 3, 5 8, 7 8, , 2 5, 6 3, 5 3, 1 6 Nach Lesen Nach Sortierung 2 2. Output Run Input File Buffer Pool mit B = 4 Seiten Output Runs 16
17 External Merge Sort Merge-Passes (Pass i, i > 0) Verwende B - 1 Seiten des Buffers, um Seiten einzulesen. Verwende verbleibende Seite um die Ausgabe (seitenweise) zu produzieren und zu schreiben. " Kein 2-Way Merge Sort, sondern ein (B-1)-Way Merge Sort. External Merge Sort - Merge Phase Run 1 2, 3 1, 2 1, 2 4, 4 6, 7 8, 9 Run 2 2, 4 5, 6 7, 9 Input Runs Run 3 3, 5 6 in 1 in 2 in 3 B -1 gelesene Seiten 1 Output Seite Buffer Pool mit B = 4 Seiten out 1, 1 2, 2 2, 2 3, 3 4, 4 4, 5 5, 6 6, 6 7, 7 8, 9 9 Output Runs 17
18 External Merge Sort Anzahl Passes Schritt (1): Reduktion der in Pass 0 initialisierten Runs In Pass 0 lesen wir die gesamte Datei (N Seiten) und produzieren N1 = N/B Runs statt N beim Two-Way Merge Sort. Schritt (2): Reduktion der Anzahl der Merge Passes Statt der log2n Passes, die in Merge Phase beim Two-Way Merge Sort nötig sind, benötigen wir nun logb-1 N1 Passes. "Insgesamt 1 + logb-1 N/B Passes Da in der Praxis B >> 2 ist, kann die Anzahl Passes über die Datei, und somit die Anzahl I/O Operationen, reduziert werden. 18
19 External Merge Sort Anzahl Passes Anzahl Passes bei External Merge Sort N B = 3 B = 5 B = 9 B = 17 B = 129 B = , ,000, ,000, ,000,000,
20 External Merge Sort Algorithmus Algorithmus External Merge Sort gegeben B zur Verfügung stehende Buffer Frames procedure external_merge_sort(file) begin Lese B Seiten in den Buffer ein; Sortiere Daten dieser B Seiten; Schreibe sortierte Daten als einen Run der Größe B; while Anzahl Runs am eine eines Passes > 1 do while es gibt Runs des verhergehenden Pass, die gemerged werden können do Wähle nächste B - 1 Runs (des vorhergendenden Pass); Lese jeden der gewählten Runs in einen Input Buffer seitenweise ein; Merge diese B - 1 Runs seitenweise und schreibe Ergebnis in den Output Buffer; Schreibe den Output Buffer seitenweise auf Platte zurück; end end 20
21 External Merge Sort Minimierung der Anzahl Initialer Runs Wir haben gesehen, dass in Pass 0 Runs der konstanten Größe B produziert werden. In der Merge-Phase profitieren wir von dieser geringeren Anzahl Runs (im Vergleich zu Two-Way Merge Sort), da weniger Runs (in weniger Passes) gemerged werden müssen. " Idee: können wir die Anzahl initialer Runs weiter verringern? Replacement Sort Vergrößert die Größe eines initialen Runs von B auf durchschnittlich 2B. Teilt den zur Verfügung stehenden Hauptspeicher (B Frames) in einen Input-Buffer, ein Current Set und einen Output-Buffer auf. Beispielhafte Aufteilung des Hauptspeichers bei Replacement Sort, gegeben B = 5 1 Frame für Input- Buffer 3 Frames für Current Set 1 Frame für Output- Buffer 21
22 External Merge Sort Algorithmus für Replacement Sort Replacement Sort Annahmen Input-Buffer = 1 Frame; Output-Buffer = 1 Frame; Current Set = B - 2 Frames; (1) Öffne eine leere Datei, in die wir aktuellen Run schreiben. (2) Lade die jeweils nächste Seite der zu sortierenden Datei in den Input-Buffer. Gibt es keine Seiten mehr zu laden, gehe zu Schritt (4). (3) Solange im Current Set freier Speicher existiert, so verschiebe ein Record aus dem Input- Buffer in das Current Set (wenn Input-Buffer leer, gehe zu Schritt (2) ). (4) Aus dem Current Set, wähle ein Record r mit dem kleinsten Sortierschlüsselwert k, so dass k! kout ist. Dabei ist kout der maximale Sortierschlüsselwert im Output-Buffer (oder -!, falls dieser leer ist). Ist der Output-Buffer voll, hänge dessen Inhalt dem aktuellen Run an. (5) Sind alle k des Current Set < kout, so hänge den Output-Buffer dem aktuellen Run an, und schließe den aktuellen Run. Ein neuer Run wird nun begonnen. (6) Wurden alle Daten der Eingabedatei verarbeitet, stop. Sonst gehe zurück zu Schritt (3). 22
23 External Merge Sort Beispiel für Replacement Sort Beispiel: Record mit Schlüssel k = 8 wird als nächstes in den Output-Buffer geschrieben. Momentan haben wir kout = (3) Schreiben in Current Set (4) Schreiben in Output-Buffer Input-Buffer Current Set Output-Buffer Im Current Set ist 8 der kleinste Schlüssel, der " dem maximalen Schlüssel im Output-Buffer (aktuell 5) ist " 8 wird als nächstes in den Output Buffer geschrieben. Das Record mit Schlüsselwert k = 2 kann nicht mehr dem aktuellen Output-Buffer (und somit Run) hinzugefügt werden, da es kleiner 5 ist. "Wird in nächsten Run geschrieben. 23
24 External Merge Sort Beispiel für Replacement Sort Replacement Sort Schritt für Schritt verfolgen Wir nehmen an, dass B = 6 und die Größe des Current Sets = 4. Die Eingabedatei enthält die folgenden INTEGER Werte: 503, 087, 512, 061, 908, 170, 897, 275, 426, 154, 509, 612 Schreiben Sie einen Trace für Replacement Sort, indem Sie die unten stehende Tabelle ausfüllen. Markieren Sie das Ende eines Runs durch <EOR>. Das Current Set wurde bereits bis Schritt (3) des Algorithmus gefüllt. current set 503, 087, 512, 061 output 24
25 Kapitel 6 Externes Sortieren Überblick Two-Way Merge Sort External Merge Sort Kostenminimierung B+ Bäume zur Sortierung 25 Architektur und Implementierung von Datenbanksystemen WS 2009/10 Melanie Herschel Universität Tübingen
26 Kostenminimierung I/O Kostenminimierung vs. Minimierung der I/O Operationen Bisher: Kostenbetrachtung nur auf Basis der Anzahl I/O Operationen Anzahl I/O Operationen nur eine Approximation der wirklichen Kosten. Ignoriert Optimierungen, wie z.b. Blocked I/O (sequentielles Lesen). Zusätzliche Kosten, wie z.b. CPU Kosten. Verfeinerung von External Merge Sort Berücksichtigung von Blocked I/O " Buffer Blocks Berücksichtigung der CPU Kosten " Double Buffering 26
27 Kostenminimierung Berücksichtigung von Blocked I/O Wenn nur Anzahl I/O Operationen minimiert werden, ist das Ziel, die Anzahl Passes zu minimieren. Betrachten wir zusätzlich den Vorteil von blocked I/O, der die durchschnittliche Lesezeit eines zusammenhängenden Blocks von Seiten minimiert, so kann es von Vorteil sein, Blöcke von zusammenhängenden Seiten, sog. Buffer Blocks, in den Buffer einzulesen. Grundidee von blocked I/O: Alloziiere b Seiten für jeden Input-Buffer (statt nur einer Seite). Dies reduziert die durchschnittlichen I/O-Kosten zum Lesen einer Seite um Faktor " b. Diese Änderung führt zu einem geringeren Fan-In, da wir mit dem gleichen freien Speicherplatz von B Seiten nur noch (B - b) / b Runs in einem Pass mergen können. In der Praxis sind Hauptspeichergrößen groß genug, um Dateien in einem einzigen Merge-Pass zu sortieren, selbst mit blocked I/O. 27
28 Kostenminimierung Double Buffering Bisher: CPU Berechnungen und I/O Operationen werden sequentiell durchgeführt. 1.Daten werden zuerst in Input Buffer gelesen (I/O). 2.Danach wird im Hauptspeicher sortiert bzw. gemerged (CPU). 3.Seiten des Output-Buffers werden auf die Festplatte geschrieben (I/O). Verwendung von Double Buffering Grundidee: führe I/O und CPU Operationen parallel aus. Verfahren: Lege jeden Buffer doppelt an (shadow buffers). Die CPU wechselt zwischen den beiden Kopien sobald ein Input-Buffer leer ist. In diesem Fall wird asynchron eine I/O Operation gestartet, die den verbrauchten Buffer neu füllt. Der Output-Buffer wird analog verwaltet. Ist die Zeit, einen Block zu lesen kleiner als die Zeit, einen Block zu konsumieren, so ist mit dieser Double Buffering Technik die CPU immer beschäftigt. Nachteil: doppelt soviel Hauptspeicher ist nötig. 28
29 Kapitel 6 Externes Sortieren Überblick Two-Way Merge Sort External Merge Sort Kostenminimierung B+ Bäume zur Sortierung 29 Architektur und Implementierung von Datenbanksystemen WS 2009/10 Melanie Herschel Universität Tübingen
30 B+ Bäume zur Sortierung Frage: Gegeben ein B+ Index über einen Sortierschlüssel k, können wir Die Daten mit Hilfe des Index effizient in sortierter Reihenfolge abrufen? Clustered Index Unclustered Index! # 30
31 B+ Bäume zur Sortierung Clustered Index Indexstruktur, bestehend aus Indexeinträgen Index Datei Dateneinträge (sequence set) Daten Records Daten-Datei Sortieralgorithmus (1)Finde am weitesten links liegenden Dateneintrag im Sequence Set. Kosten: Baumhöhe, 3-4 I/Os (2)Traversiere jede Seite im Sequence Set. Kosten: Anzahl Seiten des Sequence Set = Bruchteil der Seiten der Daten-Datei. (3)Ermittle Daten Records, die Dateneinträgen entsprechen. Kosten: Da Sequence Set und Daten-Datei die gleiche Reihenfolge aufweisen (clustered Index), benötigen wir nur einen Pass über die Daten Datei. 31
32 B+ Bäume zur Sortierung Unclustered Index Indexstruktur, bestehend aus Indexeinträgen Index Datei Dateneinträge (sequence set) Daten Records Daten-Datei Sortieralgorithmus Schritt (1) und (2) wie bei clustered Index. (3)Ermittle Daten Records, die Dateneinträgen entsprechen. Kosten: Da Sequence Set und Daten-Datei unterschiedliche Reihenfolge aufweisen (unclustered Index), benötigen wir im schlimmsten Fall 1 I/O pro Dateneintrag! Worst Case muss nicht erreicht sein, die tatsächlichen Kosten hängen davon ab, wie sich die Reihenfolgen unterscheiden, welche Seiten im Buffer Pool sind,... 32
33 Zusammenfassung Two-Way Merge Sort Minimale Nutzung des Hauptspeichers (3 Seiten). Hohe Anzahl I/O Operationen, da viele Passes nötig sind. External Merge Sort Minimierung der Anzahl Passes durch verstärkte Nutzung des Hauptspeichers. Minimierung der initialen Anzahl Runs durch Replacement Sort. Kostenminimierung Anzahl I/O Operationen vs. tatsächliche Kosten. Blocked I/O Double Buffering B+ Bäume zur Sortierung Clustered Indizes eignen sich dafür. Die Eignung von unclustered Indizes hängt von vielen Faktoren ab und in der Praxis werden diese nicht zur Sortierung von Daten verwendet. 33
Anfragebearbeitung 2. Vorlesung Datenbanksysteme vom
Vorlesung Datenbanksysteme vom 21.11.2016 Anfragebearbeitung 2 Architektur eines DBMS Logische Optimierung Physische Optimierung Kostenmodelle + Tuning Physische Optimierung Iterator: einheitliche Schnittstelle
Algorithmen II Vorlesung am
Algorithmen II Vorlesung am 31.01.2013 Algorithmen für externen Speicher INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales
Datenbanksysteme II Architektur und Implementierung von Datenbanksystemen
Datenbanksysteme II Architektur und Implementierung von Datenbanksystemen Winter 2009/10 Melanie Herschel Willhelm-Schickard-Institut für Informatik Kapitel 1 Einführung Vorstellung Überblick Organisatorisches
Algorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 6. Vorlesung Martin Middendorf / Universität Leipzig Institut für Informatik [email protected] [email protected] Merge-Sort Anwendbar für
Transaktionsverwaltung
Transaktionsverwaltung VU Datenbanksysteme vom 21.10. 2015 Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Transaktionsverwaltung
Übung Datenbanksysteme II Physische Speicherstrukturen. Maximilian Jenders. Folien basierend auf Thorsten Papenbrock
Übung Datenbanksysteme II Physische Speicherstrukturen Maximilian Jenders Folien basierend auf Thorsten Papenbrock Organisatorisches: Übung Datenbanksysteme II 2 Übung Maximilian Jenders ([email protected])
Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Heapsort / 1 Heap: Ein Array heißt Heap, falls A [i] A [2i] und A[i] A [2i + 1] (für 2i n bzw. 2i + 1 n) gilt. Beispiel: A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 2 Darstellung eines Heaps als
Dateiorganisation und Zugriffsstrukturen. Prof. Dr. T. Kudraß 1
Dateiorganisation und Zugriffsstrukturen Prof. Dr. T. Kudraß 1 Mögliche Dateiorganisationen Viele Alternativen existieren, jede geeignet für bestimmte Situation (oder auch nicht) Heap-Dateien: Geeignet
Übung Datenbanksysteme II Anfrageausführung. Thorsten Papenbrock
Übung Datenbanksysteme II Anfrageausführung Thorsten Papenbrock Einleitung: Themen 3 Iterator-Operatoren Algorithmen-Klassen ort-basierte Hash-basierte Index-basierte Algorithmen-chwierigkeitsgrade One-Pass-Algorithmen
Übung Datenbanksysteme II Physische Speicherstrukturen. Thorsten Papenbrock
Übung Datenbanksysteme II Physische Speicherstrukturen Thorsten Papenbrock Organisatorisches: Übung Datenbanksysteme II 2 Übung Thorsten Papenbrock ([email protected]) Tutoren Alexander
Grundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010
Es geht also im die SQL Data Manipulation Language.
1 In diesem Abschnitt wollen wir uns mit den SQL Befehlen beschäftigen, mit denen wir Inhalte in Tabellen ( Zeilen) einfügen nach Tabelleninhalten suchen die Inhalte ändern und ggf. auch löschen können.
B / B* - Bäume. Guido Hildebrandt Seminar Datenbanksysteme
B / B* - Bäume Guido Hildebrandt Seminar Datenbanksysteme 25.11.2010 Gliederung Einleitung Binärbaum B - Baum B* - Baum Varianten Zusammenfassung Quellen Gliederung Einleitung Binärbaum B - Baum B* - Baum
Performance Verbesserung BIRT-BERICHTE
ClassiX Software GmbH Performance Verbesserung der BIRT-BERICHTE Tipps zur Performance Verbesserung der Berichte unabhängig von der Engine Jana Fischereit 21.01.2013 1 Inhalt 2 Allgemeine Aussagen... 2
SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.
SQL Lehr- und Forschungseinheit Datenbanken und Informationssysteme Ziele Grundlagen von SQL Beziehung zur relationalen Algebra SELECT, FROM, WHERE Joins ORDER BY Aggregatfunktionen Lehr- und Forschungseinheit
PostgreSQL Ein Überblick
26. August 2007 Agenda Neue Funktionen im Bereich SQL, XML und Volltextsuche Geschwindigkeitsverbesserungen Neue Erweiterungen (contrib) XML (1) Neuer Datentyp xml ( well-formedness ) Viele Funktionen
Aufgabe 1 Indexstrukturen
8. Übung zur Vorlesung Datenbanken im Sommersemester 2006 mit Musterlösungen Prof. Dr. Gerd Stumme, Dr. Andreas Hotho, Dipl.-Inform. Christoph Schmitz 25. Juni 2006 Aufgabe 1 Indexstrukturen Zeichnen Sie
Datenbanken. Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme. Karsten Martiny (Übungen)
Datenbanken Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Karsten Martiny (Übungen) Architektur eines DBMS Web Forms Applications SQL Interface Webformulare Anwendungen SQL-Schnittstelle
Anfrageverarbeitung. Einführung
Anfrageverarbeitung Prof. Dr. T. Kudraß 1 Einführung Wir betrachten die Implementierung der Operatoren der Relationenalgebra: Basis-Operationen: Selektion ( σ ) Auswahl einer Teilmenge von Tupeln aus der
Explain verstehen. Hans-Jürgen Schönig.
Explain verstehen Zielsetzung EXPLAIN... Was versucht uns PostgreSQL zu sagen? Wie kann diese Information genutzt werden? Wie erkenne ich Probleme? Abfragen in PostgreSQL Mehrstufige Ausführung Parser:
B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records.
B*-Bäume 1 B*-BÄUME Beobachtung: Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records. Es gibt keinen Grund, warum man nicht einen Index über einem Index haben sollte, und
Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL
Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) DDL ist Teil von SQL (Structured
In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.
1 In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. Zunächst stellt sich die Frage: Warum soll ich mich mit der Architektur eines DBMS beschäftigen?
Indizes B+Bäume in Oracle. Jörg Winkler
Indizes B+Bäume in Oracle Vortragende: Conrad Kobsch Jörg Winkler Inhalt Allgemeines Aufbau / Eigenschaften von B+Bäumen Vorteile / Nachteile B+Baum-Indexe Kriterien für Indizes Anlegen eines Indizes Anfrageoptimierung
Rückblick. SQL bietet viele Möglichkeiten zur Anfrageformulierung
Rückblick SQL bietet viele Möglichkeiten zur Anfrageformulierung mathematische Funktionen (z.b. ABS(A) und SIGN(A)) Aggregatfunktionen (z.b. MIN(A) und SUM(A)) Boole sche Operatoren (AND, OR, EXCEPT) Verknüpfungen
Datenbanken: Indexe. Motivation und Konzepte
Datenbanken: Indexe Motivation und Konzepte Motivation Warum sind Indexstrukturen überhaupt wünschenswert? Bei Anfrageverarbeitung werden Tupel aller beteiligter Relationen nacheinander in den Hauptspeicher
Oracle Database 12c Was Sie immer schon über Indexe wissen wollten
Oracle Database 12c Was Sie immer schon über Indexe wissen wollten Marco Mischke, 08.09.2015 DOAG Regionaltreffen B* Indexe - Aufbau 0-Level Index A-F G-Z 1-Level Index A-F G-Z 2-Level Index A-F G-M N-Z
Gran Turismo Cars - WS 11/12
WS 2011/2012 Stephan Gimbel Repetitorium PAD 1+2 Übungsblatt Gran Turismo Cars - WS 11/12 Empfehlung: Arbeiten Sie in kleinen Schritten und sorgen Sie dafür, dass Sie jederzeit ein lauffähiges Anwendungssystem
Kapitel 2 Speicher. Magnetische Festplatten RAID. Disk Space Manager. Buffer Manager. Speicherverwaltung
Kapitel 2 Speicher Magnetische Festplatten RAID Disk Space Manager Buffer Manager Speicherverwaltung 1 Architektur und Implementierung von Datenbanksystemen WS 2009/10 Melanie Herschel Universität Tübingen
Kapitel 12: Schnelles Bestimmen der Frequent Itemsets
Einleitung In welchen Situationen ist Apriori teuer, und warum? Kapitel 12: Schnelles Bestimmen der Frequent Itemsets Data Warehousing und Mining 1 Data Warehousing und Mining 2 Schnelles Identifizieren
Oracle Core für Einsteiger: Datenbank I/O
Oracle Core für Einsteiger: Datenbank I/O Martin Klier Performing Databases GmbH Mitterteich #FiveWordTechHorrors Storage comes from other department @MartinKlierDBA Oracle Core für Einsteiger: Datenbank
ACCESS SQL ACCESS SQL
ACCESS SQL Datenbankabfragen mit der Query-Language ACCESS SQL Datenbankpraxis mit Access 34 Was ist SQL Structured Query Language Bestehend aus Datendefinitionssprache (DDL) Datenmanipulationssprache
Prof. Dr. Margarita Esponda
Algorithmen und Programmieren II Sortieralgorithmen imperativ Teil I Prof. Dr. Margarita Esponda Freie Universität Berlin Sortieralgorithmen Bubble-Sort Insert-Sort Selection-Sort Vergleichsalgorithmen
Kapitel Andere dynamische Datenstrukturen
Institute of Operating Systems and Computer Networks Algorithms Group Kapitel 4.8-4.11 Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2017/2018 Vorlesung#13, 12.12.2017
4. Sortieren 4.1 Vorbemerkungen
. Seite 1/21 4. Sortieren 4.1 Vorbemerkungen allgemeines Sortierproblem spezielle Sortierprobleme Ordne a 1,..., a n so um, dass Elemente in aufsteigender Reihenfolge stehen. Die a i stammen aus vollständig
Anfragebearbeitung. Kapitel 7. Anfragebearbeitung 285 / 520
Kapitel 7 Anfragebearbeitung 285 / 520 Übersicht Anfrage Übersetzer Ausführungsplan Laufzeitsystem Ergebnis 286 / 520 Übersetzung Übersetzung SQL ist deklarativ, irgendwann muß Anfrage aber für Laufzeitsystem
OPERATIONEN AUF EINER DATENBANK
Einführung 1 OPERATIONEN AUF EINER DATENBANK Ein Benutzer stellt eine Anfrage: Die Benutzer einer Datenbank können meist sowohl interaktiv als auch über Anwendungen Anfragen an eine Datenbank stellen:
Abfragen (Queries, Subqueries)
Abfragen (Queries, Subqueries) Grundstruktur einer SQL-Abfrage (reine Projektion) SELECT [DISTINCT] {* Spaltenname [[AS] Aliasname ] Ausdruck} * ; Beispiele 1. Auswahl aller Spalten SELECT * ; 2. Auswahl
Star Join & Kostenbasierte Optimierung. Architektur von Datenbanksystemen II
Star Join & Kostenbasierte Optimierung Architektur von Datenbanksystemen II Star Join Übungsaufgabe zum 09.06.2015 JOIN-ALGORITHMUS für folgendes Scenario Große Faktentabelle F mit sehr vielen Einträgen
Optimiertes Laden in die F-Fakten-Tabelle des SAP BW
Optimiertes Laden in die F-Fakten-Tabelle des SAP BW Schlüsselworte SAP BW Index unusable. Einleitung Jörn Bartels Oracle München Mit Oracle Database 11g Release 2 kann das Laden der F-Fakten Tabelle in
DATENSTRUKTUREN UND ALGORITHMEN
DATENSTRUKTUREN UND ALGORITHMEN 2 Ist die Datenstruktur so wichtig??? Wahl der Datenstruktur wichtiger Schritt beim Entwurf und der Implementierung von Algorithmen Dünn besetzte Graphen und Matrizen bilden
Freispeicherverwaltung Martin Wahl,
Freispeicherverwaltung Martin Wahl, 17.11.03 Allgemeines zur Speicherverwaltung Der physikalische Speicher wird in zwei Teile unterteilt: -Teil für den Kernel -Dynamischer Speicher Die Verwaltung des dynamischen
SQL,Teil 2: SELECT. W. Spiegel. Übersicht SELECT. Mehrfache Werte vermeiden: SELECT DISTINCT. Ausgabe ordnen: ORDER BY. Projektion.
SQL,Teil 2: SELECT W. Spiegel Übersicht SELECT Mehrfache Werte vermeiden: SELECT DISTINCT Ausgabe ordnen: ORDER BY Projektion Selektion: WHERE Join mit SELECT Beispiel Aufgaben 1 SELECT Die SELECT-Anweisung
7. Sortieren Lernziele. 7. Sortieren
7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche
Universität Augsburg, Institut für Informatik Wintersemester 2008/2009 Prof. Dr. W. Kießling 03. Februar Semesterklausur
Universität Augsburg, Institut für Informatik Wintersemester 2008/2009 Prof. Dr. W. Kießling 03. Februar 2009 Dr. A. Huhn, M. Endres, T. Preisinger Datenbanksysteme I Semesterklausur Hinweise: Die Bearbeitungszeit
Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs])
Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) Hochschule für Technik, Wirtschaft und Kultur Leipzig 06.06.2008 Datenbanken II,Speicherung und Verarbeitung großer Objekte
IMPLEMENTIERUNG VON OPERATIONEN AUF RELATIONEN
Joins 1 IMPLEMENTIERUNG VON OPERATIONEN AUF RELATIONEN Literatur Priti Mishara, Maragaret H. Eich, Join Processing in Relational Databases, ACM Computing Surveys, Vol. 24, No. 1, March 1992 Goetz Graefe,
Hash-Verfahren. Prof. Dr. T. Kudraß 1
Hash-Verfahren Prof. Dr. T. Kudraß 1 Einführung Drei Alternativen, wie Dateneinträge k* im Index aussehen können: 1. Datensatz mit Schlüsselwert k.
Datenbanksysteme II Architektur und Implementierung von Datenbanksystemen
Datenbanksysteme II Architektur und Implementierung von Datenbanksystemen Winter 2009/10 Melanie Herschel Willhelm-Schickard-Institut für Informatik 1 Kapitel 7 Evaluation Relationaler Operatoren Überblick
Inhalt. 1. Indextypen B*Baum-Index Reversed Key Index Bitmap Index Funktionsbasierter Index
Inhalt 1. Indextypen B*Baum-Index Reversed Key Index Bitmap Index Funktionsbasierter Index 2. Indexverwendung Vergleich von B*Baum und Bitmap Steuerung der Indexverwendung Richtlinien für die Indizierung
Dateiorganisation und Zugriffsstrukturen
Dateiorganisation und Zugriffsstrukturen Prof. Dr. T. Kudraß 1 Mögliche Dateiorganisationen Viele Alternativen existieren, jede geeignet für bestimmte Situation (oder auch nicht) Heap-Dateien: Geeignet
SQL: Weitere Funktionen
Vergleich auf Zeichenketten SQL: Weitere Funktionen LIKE ist ein Operator mit dem in Zeichenketten andere Zeichenketten gesucht werden; zwei reservierte Zeichen mit besonderer Bedeutung sind hier % (manchmal
Visualisierung in Informatik und Naturwissenschaften
Visualisierung in Informatik und Naturwissenschaften Datenbankvisualisierung Sven Bernhard 12.06.1999 Datenbankvisualisierung Datenbanktheorie in 5 Minuten Visualisierung vs. Datenbanken Visualisierung
SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT
SQL SQL SELECT Anweisung Mit der SQL SELECT-Anweisung werden Datenwerte aus einer oder mehreren Tabellen einer Datenbank ausgewählt. Das Ergebnis der Auswahl ist erneut eine Tabelle, die sich dynamisch
KAPITEL 4 BASISALGORITHMEN FÜR DATENBANKOPERATIONEN
KAPITEL 4 BASISALGORITHMEN FÜR DATENBANKOPERATIONEN h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 4: Basisalgorithmen für Datenbankoperationen 1 Einordnung in die 5-Schichten-Architektur
Webbasierte Informationssysteme
SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn - SS 2004 - Prof. Dr. Stefan Böttcher Folie 1 Was ist eine relationale Datenbank? Menge von Relationen (=Tabellen) und Constraints (=Integritätsbedingungen)
DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER
DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.
Schlüssel. Definition: Ein Schlüssel (key) einer Relation r(r) ist eine Til Teilmenge K von R, so dass für je zwei verschiedene Tupeln t 1
Schlüssel Definition: Ein Schlüssel (key) einer Relation r(r) ist eine Til Teilmenge K von R, so dass für je zwei verschiedene Tupeln t 1 und t 2 r gilt: - t 1 (K) t 2 (K) und - keine echte Teilmenge K'
Freispeicherverwaltung
Freispeicherverwaltung Allgemeine Techniken und Anwendung unter Linux Martin Wahl, 17.11.03 Freispeicherverwaltung 1 Überblick Allgemeines Suchstrategien Verwaltungsstrategien externer / interner Verschnitt
SYSTEM J - Konzeption und prototypische Umsetzung eines Praktikums zur Datenbanksystementwicklung
Einführung Architektur Komponenten FileManager BufferManager RecordManager IndexManager LockManager CatalogManager Compiler Optimizer RunTime Erfahrungen SYSTEM J - Konzeption und prototypische Umsetzung
Mehrwegbäume Motivation
Mehrwegbäume Motivation Wir haben gute Strukturen (AVL-Bäume) kennen gelernt, die die Anzahl der Operationen begrenzen Was ist, wenn der Baum zu groß für den Hauptspeicher ist? Externe Datenspeicherung
Firebird Database Cache Buffer
Firebird Database Cache Buffer Norman Dunbar 20. Juli 2013 Version 1.3.1-de - deutsche Version Übersetzung ins Deutsche: Martin Köditz Inhaltsverzeichnis Einleitung... 3 Der Firebird-Cache... 3 MON$IO_STATS
Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. [email protected]
Datenbankanwendung Wintersemester 2014/15 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern [email protected] Wiederholung: Anfragegraph Anfragen dieses Typs können als Graph dargestellt werden: Der
MCSA: SQL 2016 Database Development
MCSA: SQL 2016 Database Development Querying Data with Transact-SQL & Developing SQL Databases Seminarziel In diesem 6-tägigen Kurs werden die Teilnehmer von Grund auf in die Entwicklung
Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)
Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der
Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration)
Protokoll 1: Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration) Abschnitt 2.1 (Ausführungen zum Shutdown / Startup)
Christoph Niederseer, Michaela Mayr, Alexander Aichinger, Fabian Küppers. Wissenschaftl. Arbeitstechniken und Präsentation
Christoph Niederseer, Michaela Mayr, Alexander Aichinger, Fabian Küppers 1. Was ist paralleles Programmieren 2. Bitoner Sortieralgorithmus 3. Quicksort a) sequenzielles Quicksort b) paralleles Quicksort
Algorithmische Geometrie: Schnittpunkte von Strecken
Algorithmische Geometrie: Schnittpunkte von Strecken Nico Düvelmeyer WS 2009/2010, 3.11.2009 3 Phasen im Algorithmenentwurf 1. Konzentration auf das Hauptproblem 2. Verallgemeinerung auf entartete Eingaben
Literatur und Quellen. Datenbanken. Inhalt. Inhalt. Transaktionen. Nikolaus Augsten. Wintersemester 2013/14
Literatur und Quellen Datenbanken Nikolaus Augsten [email protected] FB Computerwissenschaften Universität Salzburg Wintersemester 2013/14 Lektüre zu den Themen : Kapitel 9 () aus Kemper und Eickler:
Hash-Join Algorithmen
Hash-Join lgorithmen dvanced Topics in Databases Ws08/09 atthias ichly Einleitung 2 Grundlage ist das Paper: Join Processing in Database Systems With Large ain emories Quelle: C Transactions on Database
Inverted Files for Text Search Engines
Inverted Files for Text Search Engines Justin Zobel, Alistair Moffat PG 520 Intelligence Service Emel Günal 1 Inhalt Einführung Index - Inverted Files - Indexkonstruktion - Indexverwaltung Optimierung
Suchen und Sortieren
Suchen und Sortieren Suchen Sortieren Mischen Zeitmessungen Bewertung von Sortier-Verfahren Seite 1 Suchverfahren Begriffe Suchen = Bestimmen der Position (Adresse) eines Wertes in einer Datenfolge Sequentielles
Bucketsort. Korrektheit. Beispiel. Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt.
Bucketsort Beispiel Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt 1 2 A.78.17 0 1 B.12.17 Sonst: Skalieren ( Aufwand O(n) ) 3.39 2.21.23.26 Idee:
Inhaltsverzeichnis. jetzt lerne ich
Inhaltsverzeichnis jetzt lerne ich Einführung 15 1 Erste Schritte 21 1.1 Datenbanken und Datenbank-Managementsysteme 21 1.2 Zugriff auf Datenbanken 22 1.3 Was der Großvater noch wusste... 22 1.4 Einordnung
Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Vorstellen des vierten Übungsblatts 2. Vorbereitende Aufgaben für das vierte Übungsblatt
Dateneingabe und Transformation Übersicht
Dateneingabe und Transformation Übersicht 2.0 Allgemeine 2.1 Eingabe über die 2.2 2.3 Eingabe eines externen ASCII-Files 2.4 Varianten der INPUT-Anweisung, Formatierungselemente 2.5 Ein- und Ausgabe von
3. Übungsblatt zu Algorithmen I im SoSe 2017
Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799
