Datenbanksysteme II Architektur und Implementierung von Datenbanksystemen

Größe: px
Ab Seite anzeigen:

Download "Datenbanksysteme II Architektur und Implementierung von Datenbanksystemen"

Transkript

1 Datenbanksysteme II Architektur und Implementierung von Datenbanksystemen Winter 2009/10 Melanie Herschel Willhelm-Schickard-Institut für Informatik Organisatorisches zur Übung 5-6 Übungsblätter. Bestehen der Übung: mind. 50% der Punkte für jedes Übungsblatt. Sehr gute Teilnahme wirkt sich ggf. auf Prüfungsnote aus. Bearbeitung: In 2er Gruppen Abgabe bis Mittwoch Abend vor dem nächsten Übungstermin (Datum siehe Übungsblatt). Nur Papierabgaben werden berücksichtigt. Übungstermine Vorrechnen der Aufgabe durch Studenten an der Tafel. Bespechung der häufigsten Unklarheiten. Vertiefung ausgewählter Themen. 2

2 Kapitel 3 Indizes 1.Einführende Terminologie 2.Index Datenstrukturen 3.Datei Organisationen im Vergleich 4.Indizes und Performance Tuning 3 Architektur und Implementierung von Datenbanksystemen WS 2009/10 Melanie Herschel Universität Tübingen Einführende Terminologie Dateiorganisation (file organization) DBMS denkt in Records bzw. Dateien. File and Access Methods --> Verteilung der Daten auf der Festplatte. Ziel: Schneller Zugriff auf gewünschte Daten.!Dateiorganisation: Methode für die Anordnung von Records in einer Datei auf der Festplatte. Verschiede Dateiorganisationen machen manche Operationen effizient, andere wiederum teurer. Anfrage 1 auf Mitarbeiter(Alter, Name, Gehalt) SELECT * FROM Mitarbeiter ORDER BY Alter Sortierung der Mitarbeiter Records auf der Festplatte nach Alter (sequentieller Zugriff) Eine Solche Sortierung ist allerdings teuer aufrechzuerhalten, wenn neue Daten hinzugefügt werden. Anfrage 2 auf Mitarbeiter(Alter, Name, Gehalt) SELECT * FROM Mitarbeiter WHERE Gehalt > 5000 Verwendung der gleichen Dateiorganisation wie bei Anfrage 1 --> Die Datei muss komplett gescannt werden. 4

3 Einführende Terminologie Indizierung Index: Datenstruktur, die Records so auf der Platte anordnet, dass bestimmte Anfragen hinsichtlich ihres I/Os optimiert werden. Ein Index besitzt einen Suchschlüssel (search key). Anfragen über diesen Suchschlüssel können effizient bearbeitet werden. Datei enthält Daten Records. Mehrere Indizes (mit verschiedenen Suchschlüsseln) pro Datei möglich!optimierung von Anfragen, die durch Dateiorganisation selbst nicht optimiert sind. Indizes für Anfrage 1 und Anfrage 2 Index 1 Index 2 Suchschlüssel Alter Gehalt Optimierte Anfrage SELECT * FROM Mitarbeiter ORDER BY Alter SELECT * FROM Mitarbeiter WHERE Gehalt > 5000 Repräsentation auf Platte Index Datei enthält Mitarbeiter Records Index Datei enthählt Records, die es erlauben, auf entsprechende Mitarbeiter Records zuzugreifen. 5 Einführende Terminologie Dateneintrag (data entry) Dateneintrag: bezeichnet Records, die in einer Indexdatei gespeichert sind. Dateneintrag k*: Notation für einen Dateneintrag mit Suchschlüsselwert k. k* enthält genug Informationen, um ein oder mehrere Daten Records zu lokalisieren, die k entsprechen. Ziel: effizientes Durchsuchen der Index Datei um gewünschte Dateneinträge zu finden. Diese dann verwenden, um Daten Records zu finden. Veschiedene Möglichkeiten für Inhalt eines Dateneintrags 6

4 Einführende Terminologie Clustered vs. Unclustered Indizes Definition Sind die Daten Records einer Datei auf der Festplatte nach Attribut(en) A sortiert und existiert ein Index I, dessen Suchschlüssel A ist, so ist I ein Clustered Index. Entspricht die Reihenfolge nach Suchschlüssel des Index nicht der Reihenfolge der Daten Records auf der Festplatte, so sprechen wir von einem Unclustered Index. Auswirkung auf Anfrageeffizienz Bereichsanfragen werden sehr ineffizient bearbeitet wenn der verwendete Index unclustered ist. In diesem Fall lässt die Reihenfolge der Dateneinträge im Index keine Schlüsse auf die Reihenfolge der Daten Records auf der Festplatte zu. Anfrage 3: Bereichsanfrage auf Mitarbeiter(Alter, Name, Gehalt) SELECT * FROM Mitarbeiter WHERE Alter >= 40 AND Alter <= Clustered Index über Alter: a. Anfrage an den Index, um Dateneintrag mit Alter = 40 zu finden. Dieser referenziert Datenrecord r b. Sequentieller Scan über Daten Records von r bis r, wobei Alter > 50 für r 2. Unclustered Index über Alter: a. Wie bei clustered Index b. Den Index traversieren um nach und nach Referenzen zu gesuchten Daten Records zu bekommen. Diese Daten Records sind über die ganze Datei verteilt. 7 Einführende Terminologie Clustered vs. Unclustered Indizes Clustered Indizes in DB2 Erstellen eines Clustered Index IXR über Tabelle R mit Suchschlüssel A: CREATE INDEX IXR ON R (A ASC) CLUSTER Hier ein Auszug aus dem DB2 V9.5 Handbuch: [ CLUSTER ] specifies that the index is the clustering index of the table. The cluster factor of a clustering index is maintained or improved dynamically as data is inserted into the associated table, by attempting to insert new rows physically close to the rows for which the key values of this index are in the same range. Only one clustering index may exist for a table so CLUSTER may not be specified if it was used in the definition of any existing index on the table (SQLSTATE 55012). A clustering index may not be created on a table that is defined to use append mode (SQLSTATE 428D8). 8

5 Einführende Terminologie Primär- und Sekundärindizes Enthält der Suchschlüssel eines Index den Primärschlüssel einer Tabelle, so ist dieser ein Primärindex. Sonst sprechen wir von Sekundärindex. Zwei Dateneinträge sind Duplikate wenn sie den gleichen Suchschlüsselwert haben. Ein Primärindex enthält garantiert keine Duplikate. Ein Sekundärindex enthält im Allgemeinen Duplikate. Wenn wir wissen, dass der Suchschlüssel keine Duplikate enthält (d.h., er enthält einen Schlüsselkandidaten), so sprechen wir von einem Unique Index. Charakterisieren Sie die Indexdateien nach (i) Suchschlüssel k, (ii) Art Dateneintrag, (iii) Clustered Eigenschaft, (iii) Primärindex Eigenschaft A B C D rid1 1 1 a 50 rid2 2 2 c 60 rid3 3 1 b 50 Daten Records, Reihenfolge wie auf Platte A B C D 1 1 a c b 50 Index Datei 1 k rid_list 1 {rid1, rid3} 2 {rid2} Index Datei 2 k rid a rid1 b rid3 c rid2 Index Datei 3 9 Index Datenstrukturen Überblick Indexstruktur, bestehend aus Indexeinträgen Index Datei Dateneinträge (sequence set) Daten Records Daten Datei Wofür war doch gleich der Index? Wir erstellen einen Index, um effizient Daten Records auffinden zu können, indem wir 1 2 Die Indexstruktur effizient nach relevanten Dateneinträgen durchsuchen, und Die gefundenen Dateneinträge nutzen, um die gesuchten Daten Records zu finden. Punkt 2 ist (nun) klar, aber... Wie sind die Dateneinträge im Index organisiert, um Punkt 1 zu lösen?! Spezielle Indexstrukturen, z.b. Hash-basierte Indexstrukturen (siehe Kapitel 5) Baum-basierte Indexstrukturen (siehe Kapitel 4) Die Wahl der Indexstruktur ist unabhängig von der Wahl der Art der gespeicherten Dateneinträge (Art 1-3) 10

6 Kapitel 3 Indizes 1.Einführende Terminologie 2.Index Datenstrukturen 3.Datei Organisationen im Vergleich 4.Indizes und Performance Tuning 11 Architektur und Implementierung von Datenbanksystemen WS 2009/10 Melanie Herschel Universität Tübingen Index Datenstrukturen Hash-basierte Indexstrukturen Sortiert Dateneinträge basierend auf dem Hashwert von k in eine Indexstruktur ein. Basierend auf dem Hashwert erlaubt die Indexstruktur auch ein effizientes Auffinden des entsprechenden Dateneintrags (1-2 Disk I/Os) Intuition: Dateneinträge werden in Buckets einsortiert (1 Bucket pro Hashwert). Ein Bucket besteht aus einer Primärseite und wenn nötig aus weiteren Seiten. Seiten in einem Bucket sind als Kette verlinkt. Suchschlüssel k h(k) = x h(k) =y h h(k) =z 12

7 Index Datenstrukturen Beispiel Hash-basierter Indexstrukturen Hash-basierter Index für Anfrage 1 Suchschlüssel = Alter Hashfunktion h(alter): trunc-decimal(alter/10) Index der Art (1) Hash-basierter Index für Anfrage 2 Suchschlüssel = Gehalt Hashfunktion h(gehalt): trunc-decimal(gehalt/1000) Index der Art (2) Name Alter Gehalt Smith Basu Bristow Cass Tracy Jones Ashby Daniels Relationale Tabelle Mitarbeiter 14 Index Datenstrukturen Baum-basierte Indexstrukturen Dateneinträge sind nach Schlüsselwert sortiert und in einer doppelt verlinkten Struktur gespeichert. Die Seiten, die die Dateneinträge beinhalten sind die Blattknoten eines Baum-basierten Index. Indexeinträge werden in einer hierarchischen Suchstruktur verwaltet, um die Suche einer Seite zu steuern. Wesentliche Felder in einem Indexeintrag sind: min_key und max_key: zwei Suschschlüsselwerte. kind_kleiner: Zeiger zu einem Indexeintrag, der in der hierarchischen Struktur ein Kind des aktuellen Eintrags ist (Kindseite). Folgt man diesem Pfad, gelangt man ausschließlich zu Dateneinträgen, deren Suchschlüssel k < min_key sind. kind_zwischen: Zeiger auf eine Kindseite, über die man Dateneinträge findet, deren Suchschlüssel k zwischen min_key und max_key liegt, also min_key <= k < max_key. kind_größer: Zeiger auf eine Kindseite, über die man Dateneinträge mit k >= max_key erreicht. 15

8 Index Datenstrukturen Beispiel einer Baum-basierte Indexstruktur Name Alter Gehalt Smith Basu Bristow Cass Tracy Jones Ashby Daniels Relationale Tabelle Mitarbeiter Alter < 12 Beginn der Suche nach Alter > <= Alter < 78 Alter >= Baum basierter Index Suchschlüssel: Alter Anfrage: SELECT * FROM Mitarbeiter WHERE Alter > 24 AND Alter < Ashby Bristow Basu Daniels Jones Smith Tracy Cass Index Datenstrukturen B+ Bäume I/O Kosten in einer beliebigen Baumstruktur Jeder Knoten in der Baumstruktur wird auf einer separaten Seite gespeichert.! Anzahl I/Os während der Suche = Anzahl Knoten auf dem Pfad von der Wurzel bis zum Blattknoten + Anzahl Blattknoten, die zusätzlich zum ersten Blattknoten relevante Records enthalten (in unserem Beispiel: = 6). In der Praxis werden mehrere Indexeinträge auf eine Seite gespeichert, was die effizienz erhöht. B+ Baum Ein B+ Baum garantiert, dass alle Pfade von der Wurzel zu den Blättern gleicher Länge sind. Ein B+ Baum ist ausgeglichen (balanced) Die Höhe h eines B+ Baums ist die Länge eines Wurzel-zu-Blatt Pfades. Der fan-out f is die Durchschnittliche Anzahl Kinder pro Nicht-Blattknoten. I/O Kosten in einem B+ Baum Ein B+ Baum garantiert, dass alle Pfade von der Wurzel zu den Blättern gleicher Länge sind. Ein Baum der Höhe h und mit fan-out f hat f h Blattknote. In der Praxis ist f >= 100, d.h. ein B+ Baum der Höhe 4 enthält 100 Millionen Blattknoten. Suche nach einer Seite in unserem Beispiel mit 4 I/Os, Binärsuche bräuchte log > 25 I/Os. 17

9 Kapitel 3 Indizes 1.Einführende Terminologie 2.Index Datenstrukturen 3.Datei Organisationen im Vergleich 4.Indizes und Performance Tuning 18 Architektur und Implementierung von Datenbanksystemen WS 2009/10 Melanie Herschel Universität Tübingen Datei Organisationen im Vergleich Kandidaten Wir vergleichen die Kosten einfacher Operationen für verschiedene Dateiorganisationen: 1.Datei beliebig geordneter Mitarbeiter Records, oder Heap Datei. 2.Datei von Mitarbeiter Records sortiert nach <Alter, Gehalt> 3.Clustered B+ Baum mit Suchschlüssel <Alter, Gehalt> 4.Heap Datei mit einem unclustered B+ Baum Index über <Alter, Gehalt> 5.Heap Datei mit einem unclustered Hash Index über <Alter, Gehalt> Der Suchschlüssel ist immer <Alter, Gehalt>. Alle Selektionen einer Anfrage betrachten nur Felder des Suchschlüssels. 19

10 Datei Organisationen im Vergleich Aufgaben (Operationen) Scan (scan) Durchsuche alle Records einer Datei. Alle Seiten in der Datei müssen von der Platte in den Buffer Pool geladen werden. Es existiert ein CPU Overhead pro Record um dieses auf der Seite im Buffer Pool zu lokalisieren. Suche mit Gleichheitselektion (equality search) Finde alle Records, die eine Gleichheitsanfrage beantworten, z.b. Alter = 23 AND Gehalt = Wie beim Scan müssen Seiten, die den Suchkriterien entsprechen in den Buffer Pool geladen werden und einzelne Records auf den Seiten müssen durchsucht werden. Suche mit Bereichsselektion (range search) Finde alle Records, die eine Bereichsanfrage beantworten, z.b., Alter > 35 Einfügen eines Records in eine Datei (insert) Identifikation der Seite in der Datei, in die wir das Record einfügen Laden der Seite in den Hauptspeicher Ändern der Seite Zurückschreiben der Seite auf die Platte Je nach Dateiorganisation müssen wir eventuell auch weitere Seiten laden, ändern, und zurückschreiben. Löschen eines Records aus einer Datei (delete) Auffinden der Seite in der Datei, aus der Record gelöscht wird. Laden der Seite in den Hauptspeicher, ändern, und zurückschreiben. Je nach Dateiorganisation müssen wir eventuell auch weitere Seiten laden, ändern, und zurückschreiben. 20 Datei Organisationen im Vergleich Bewertung Wir bewerten jede Methode nach einem Kostenmodell. Die Kosten entsprechen der Laufzeit einer bestimmten Operation. Wir betrachten die in der Tabelle gelisteten Parameter in unserem Kostenmodell. Echte Systeme haben komplexere Kostenmodelle (CPU Kosten, Netzwerklatenz Kosten, sequentieller Zugriff auf Blöcke,...) Kürzel Bedeutung Typische Werte B R D C H Anzahl Daten Seiten, wenn Records lückenlos auf Seiten geschrieben werden. Anzahl Records pro Seite Durchschnittliche Zeit um eine Seite auf Platte zu schreiben bzw. von Platte zu lesen. Durchschnittliche Zeit um ein Record im Hauptspeicher zu bearbeiten (z.b. Vergleich zwischen Feldinhalt und Konstante in Prädikat) Zeit, um Hash Funktion auf ein Record anzuwenden. 15 ms 100 ns 100 ns F Fan-out

11 Datei Organisationen im Vergleich Kandidat 1: Heap Datei scan... Seiten in Heap File Buffer Pool... (1) Jede der B Seiten muss in den Hauptspeicher!B*D (2) R Records pro Seite müssen bearbeitet werden!b*r*c Gesamtkosten scan: B(D + RC) equality & range search 22 Datei Organisationen im Vergleich Kandidat 1: Heap Datei delete Sei r das zu löschende Record. insert Wir fügen ein Record am Ende der Heap Datei ein. Sei p die letzte Seite der Heap Datei. 1.Wir lesen p in Zeit D in den Hauptspeicher. 2.Wir fügen ein Record in Zeit C hinzu. 3.Wir schreiben in Zeit D die geänderte Seite wieder auf Platte.! Gesamtkosten insert: 2D + C 1.find: Wir suchen r in Heap Datei (Kosten siehe unten). 2.Wir löschen r aus der gefundenen Seite (die nun bereits im Hauptspeicher ist) in Zeit C. 3.Wir schreiben in Zeit D die geänderte Seite wieder auf Platte. Kosten für find: Ist r mit seiner rid spezifiziert, können wir mit dieser die page_id bestimmen und diese Seite direkt einlesen.! Kosten find = D Ist das zu löschende Record durch eine Gleichheits- oder Bereichsanfrage definiert, entsprechen die Suchkosten denen von equality search bzw. range search.! Gesamtkosten delete: find + C + D 23

12 Datei Organisationen im Vergleich Kandidat 2: Sortierte Datei scan Wie bei unsortierter Heap Datei müssen alle Seiten betrachtet werden. Interessant ist hier, dass die Daten in sortierter Reihenfolge betrachtet werden (geeignet für ORDER BY Anfragen) Gesamtkosten scan: B (D + RC) equality search Wenn Selektionskriterien dem Suchschlüssel <Alter, Gehalt> entsprechen (d.h., wir haben mindestens eine Selektion auf dem ersten Feld des Schlüssels): Finde die erste Seite, die dem Selektionskriterium entspricht (falls es eine gibt) mit binärer Suche in log2b Schritten. Jeder Schritt benötigt ein Disk I/O und zwei Vergleiche. Wurde die richtige Seite gefunden, finde mit binärer Suche das erste qualifizierende Record. Die Kosten dafür sind C log2r. Entsprechen mehrere Tupel dem Suchkriterium, müssen die Kosten für deren Bearbeitung auch in betracht gezogen werden. Da die Daten sortiert sind können wir vom ersten Record aus die Records der Seite traversieren, bis das Kriterium nicht mehr erfüllt ist.! Gesamtkosten equality search: D log2b + Clog2 R Entsprechen Selektionskriterien nicht dem Suchschlüssel, sind die Gesamtkosten wir bei unsortierten Dateien. range search Diskussion analog zu equality selection.! Gesamtkosten range search: D log2b + C log2r (bei Selektion dem Suchschlüssen entsprechend). 24 Datei Organisationen im Vergleich Kandidat 2: Sortierte Datei insert Füge Record ein: Ashby Finde Position des Record auf Seite... Ashby Bristow Basu Daniels Jones Smith Tracy Cass Sortierte Datei (Schlüssel = <Alter, Gehalt> 1 Finde Seite 3 Füge Record ein und verschiebe alle darauf Folgenden Records um eine Position.... Ashby Bristow Basu Daniels Ashby Jones Smith Tracy Cass

13 Datei Organisationen im Vergleich Kandidat 2: Sortierte Datei insert (ctd) Im Durchschnitt nehmen wir an, dass die eingefügten Records in der Mitte der Datei eingefügt werden. In diesem Fall lesen wir die nachfolgende Hälfte der Datei in den Hauptspeicher und schreiben diese nach Hinzufügen des Records wieder auf die Platte.! Gesamtkosten insert: find + 2 (0.5B (D + RC)) delete Der Prozess ist ähnlich zum insert Prozess: Wir suchen das zu löschende Record. Wir löschen das Record. Wir verschieben alle darauf folgende Records um die entstandene Lücke zu schließen. Unter den gleichen Annahmen wie bei insert sind die Gesamtkosten gleich den Gesamtkosten von insert.! Gesamtkosten delete: find + 2 (0.5B (D + RC)) 26 Datei Organisationen im Vergleich Kandidat 3: Clustered B+ Baum scan Empirische Studien haben ergeben, dass in clustered B+ Bäumen Seiten im Durchschnitt zu 67% gefüllt sind. Daher ist die Anzahl Daten Seiten ca. 1.5B, wenn wir die gleiche Menge an Daten wie bisher speichern.! Gesamtkosten scan: 1.5 B (D + RC) equality search Entsprechen Selektionskriterien dem Suchschlüssel, so gilt Folgendes: Wir können das entsprechende Record in logf1.5 B Schritten ermitteln. Die Wurzelseite des B+ Baums wird üblicherweise im Bufferpool gehalten. In diesem Fall sparen wir uns eine I/O Operation (Gesamtkosten ignorieren diese Optimierung). Jeder Schritt benötigt ein Platten I/O und zwei Vergleiche. Ist die richtige Seite gefunden, kann das gesuchte Record wieder mit Binärsuche in C log2 R gefunden werden.!gesamtkosten equality search: D logf 1.5B + C log2 R Entspricht mehr als ein Tupel dem Suchkriterium, befinden sich diese garantiert in der direkten Nachbarschaft des zuerst gefundenen Records. In diesem Fall entsprechen die Gesamtkosten den Gesamtkosten um das erste Record zu finden, plus die Kosten um sequentiell alle weiteren Records zu lesen. range search Diskussion analog zur Diskussion von equality search, wenn mehrere Tupel dem Suchkriterium entsprechen. 27

14 Datei Organisationen im Vergleich Kandidat 3: Clustered B+ Baum insert Füge Record ein: Ashby Alter < <= Alter < 78 Alter >= Finde Seite Seiten zu 67% gefüllt... Ashby Bristow Basu Daniels Ashby Jones Smith Tracy Cass Finde Position des Record auf Seite 3 Füge Record ein (Verschieben auf Folgeseiten wegen Seitenfüllgrads nur selten nötig) 28 Datei Organisationen im Vergleich Kandidat 3: Clustered B+ Baum insert (ctd) Kosten für Schritt 1: D logf(1.5b) Kosten für Schritt 2: C log2 R Kosten für Schritt 3: D! Gesamtkosten insert: D logf1.5b + C log2 R + D delete Der Prozess ist ähnlich zum insert Prozess: Wir suchen das zu löschende Record. Wir löschen das Record. Wir verschieben alle darauf folgende Records in aktueller Seite um die entstandene Lücke zu schließen.! Gesamtkosten delete: DlogF1.5B + Clog2R + D 29

15 Datei Organisationen im Vergleich Kandidat 4: Heap Datei mit Unclustered B+ Baumindex Anzahl Seiten hängt von der Größe eines Dateneintrags ab. Realistische Annahmen: Größe Dateneintrag = Größe Daten Record / 10 Seiten im Index zu 67% gefüllt.!#blattknoten im Index = 0,1(1.5B) = 0.15B!#Dateneinträge pro Seite = 6,7R Daten Records Indexstruktur, bestehend aus Indexeinträgen Dateneinträge scan Wir scannen die Blattknoten der Indexdatei, die Dateneinträge enthalten --> 0.15B (D+ 6.7RC) I/Os Für jeden Dateneintrag ermitteln wir das entsprechende Daten Record --> 1 I/O pro Record, Kosten insgesamt BR(D + C). Die Daten Datei scannen und sortieren wäre günstiger (4B)!! Gesamtkosten scan: 0.15B (D + 6.7RC) + BR (D + C) = BD ( R) BRC 30 Datei Organisationen im Vergleich Kandidat 4: Heap Datei mit Unclustered B+ Baumindex equality search range search 31

16 Datei Organisationen im Vergleich Kandidat 4: Heap Datei mit Unclustered B+ Baumindex insert 2 Finden des entsprechenden Blattknotens D logf 0.15 B + C log2 6.7R 3 Einfügen des Dateneintrags & auf Platte zurückschreiben D Dateneinträge 1 Einfügen in Heap Datei 2D + C Daten Records! Gesamtkosten insert: 3D + C + D logf 0.15 B + C log2 6.7R delete Finden des zu löschenden Dateneintrags in der Index-Datei und des entsprechenden Records in der Daten- Datei --> D logf 0.15B + Clog2 6.7R + D Löschen der Einträge in der Index Datei und der Heap Datei --> 2D! Gesamtkosten delete: D logf 0.15 B + C log2 6.7R + 3D 32 Datei Organisationen im Vergleich Kandidat 5: Heap Datei mit Unclustered Hash Index Suchschlüssel k h h(k) = x h(k) =y Vereinfachende Annahme: keine Overflow Ketten # Dateneinträge pro Seite im Index = 10 * # Records pro Seite in der Heap Datei Anzahl Seiten in Indexdatei bei 80% Füllgrad = 1.25 * (0.1 B) = B. Anzahl Dateneinträge pro Indexseite = 10 (0.8 R) = 8R h(k) =z Seiten in einem Bucket zu 80% gefüllt scan 33

17 Datei Organisationen im Vergleich Kandidat 5: Heap Datei mit Unclustered Hash Index equality search Sehr effizient wenn Gleichheitsprädikate auf allen Attributen des Suchschlüssels definiert sind (z.b. auf Alter und Gehalt). Identifikation der relevanten Seite im Index: H Da wir annehmen, dass keine Overflow Seiten existieren kostet das Laden des Buckets in den Hauptspeicher D. Unter der Annahme, dass wir den Dateneintrag im Durchschnitt nach Scannen der Hälfte der Indexseite finden, sind die Kosten, um den entsprechenden Dateneintrag zu finden 0.5 (8R) C = 4 RC. Wir lesen das entsprechende Daten Record in Zeit D in den Hauptspeicher.! Gesamtkosten equality search: H + 2D + 4RC Entspricht mehr als ein Tupel dem Suchkriterium, befinden sich diese nicht unbedingt nebeneinander (in der Index Datei als auch in der Daten Datei). In diesem Fall entsprechen die Gesamtkosten den Gesamtkosten um das erste Record zu finden (H + D + 4RC), plus die Kosten D für jedes weitere qualifizierende Record. range search Die Hash Struktur bietet keine Hilfe bei Bereichsanfragen. Daher muss die gesamte Heap Datei gescannt werden.! Gesamtkosten range search: B (D+RC) 34 Datei Organisationen im Vergleich Kandidat 5: Heap Datei mit Unclustered Hash Index insert Einfügen der Daten Record in die Heap Datei: 2D + C Ermitteln der entsprechenden Seite im Index: H + D Ändern der Index Seite und Zurückschreiben auf Platte: C + D! Gesamtkosten insert: 4D + H + 2C delete Suche nach Daten Record in der Heap Datei und des entsprechenden Dateneintrags im Hash Index: H + 2D + 4RC Löschen des Records und des Dateineintrags und zurückschreiben auf Platte: 2D! Gesamtkosten delete: H + 4D + 4 RC 35

18 Datei Organisationen im Vergleich Kandidat 4: Heap Datei mit Unclustered B+ Baumindex insert 2 Finden des entsprechenden Blattknotens D logf 0.15 B + C log2 6.7R 3 Einfügen des Dateneintrags & auf Platte zurückschreiben D Dateneinträge 1 Einfügen in Heap Datei 2D + C Daten Records! Gesamtkosten insert: 3D + C + D logf 0.15 B + C log2 6.7R delete Finden des zu löschenden Dateneintrags in der Index-Datei und des entsprechenden Records in der Daten- Datei --> D logf 0.15B + Clog2 6.7R + D Löschen der Einträge in der Index Datei und der Heap Datei --> 2D! Gesamtkosten delete: D logf 0.15 B + C log2 6.7R + 3D 36 Datei Organisationen im Vergleich Kandidat 5: Heap Datei mit Unclustered Hash Index equality search Sehr effizient wenn Gleichheitsprädikate auf allen Attributen des Suchschlüssels definiert sind (z.b. auf Alter und Gehalt). Identifikation der relevanten Seite im Index: H Da wir annehmen, dass keine Overflow Seiten existieren kostet das Laden des Buckets in den Hauptspeicher D. Unter der Annahme, dass wir den Dateneintrag im Durchschnitt nach Scannen der Hälfte der Indexseite finden, sind die Kosten, um den entsprechenden Dateneintrag zu finden 0.5 (8R) C = 4 RC. Wir lesen das entsprechende Daten Record in Zeit D in den Hauptspeicher.! Gesamtkosten equality search: H + 2D + 4RC Entspricht mehr als ein Tupel dem Suchkriterium, befinden sich diese nicht unbedingt nebeneinander (in der Index Datei als auch in der Daten Datei). In diesem Fall entsprechen die Gesamtkosten den Gesamtkosten um das erste Record zu finden (H + D + 4RC), plus die Kosten D für jedes weitere qualifizierende Record. range search Die Hash Struktur bietet keine Hilfe bei Bereichsanfragen. Daher muss die gesamte Heap Datei gescannt werden.! Gesamtkosten range search: B (D+RC) 37

19 Datei Organisationen im Vergleich Kandidat 5: Heap Datei mit Unclustered Hash Index insert Einfügen der Daten Record in die Heap Datei: 2D + C Ermitteln der entsprechenden Seite im Index: H + D Ändern der Index Seite und Zurückschreiben auf Platte: C + D! Gesamtkosten insert: 4D + H + 2C delete Suche nach Daten Record in der Heap Datei und des entsprechenden Dateneintrags im Hash Index: H + 2D + 4RC Löschen des Records und des Dateineintrags und zurückschreiben auf Platte: 2D! Gesamtkosten delete: H + 4D + 4 RC 38 Datei Organisationen im Vergleich Zusammenfassung File type scan equality search range search insert delete (relativ zu search) Heap BD 0,5 BD BD 2D search + D Sorted BD D log2 B D log2 B +#matching pages search + BD search + BD Clustered 1,5 BD D logf 1,5B D logf 1.5B +#matching pages search + D search + D Unclustered tree index BD (R + 0,15) D (1+logF 0,15B) D( logf 0,15B+ #matching recods ) D (3 + logf 0,15B) search + 2D Unclustered hash index BD (R + 0,125) 2D BD 4D search + 2D 39

20 Datei Organisationen im Vergleich Zusammenfassung Heap Dateien Gute Speichereffizienz Schnelle Scans und Einfügeoperationen. Langsame Such- und Löschoperationen. Sortierte Dateien Gute Speichereffizienz Schnellere Suche als bei Heap Dateien. Langsames Einfügen und Löschen von Records. Daher werden in realen DBMS Dateinen selten komplett sortiert gespeichert. Clustered B+ Baum-Indizes Geringere Speichereffizienz als Heap Dateien oder sortierte Dateien. Alle Vorteile einer Sortierten Datei plus effizientes Einfügen und Löschen. Suche schneller als bei sortierten Dateien, wobei diese in der Praxis schneller sein können, wenn eine hohe Anzahl Records sequentiell gesucht werden (Grund: sequentielles I/O). Unclustered Baum- bzw. Hash-Indizes Schnelle Suche, schnelles Löschen, schnelles Einfügen. Scans und Bereichsanfragen mit vielen übereinstimmenden Records sind langsam. Hash Indizes sind etwas schneller als Baum Indizes bei Gleichheitsanfragen, unterstützen jedoch keine Bereichsanfragen.!Keine der betrachteten Dateiorganisationen ist besser als alle anderen. Daher ist die Wahl einer geeigneten Dateiorganisation immer anwendungsabhängig. 40 Datei Organisationen im Vergleich Zusammenfassung Beispiel: Performance einer Bereichsanfrage bei wachsender Dateigröße Heap File Sorted File Zeit (s) bei D = s Anzahl Seiten (B) 41

21 Datei Organisationen im Vergleich Zusammenfassung Beispiel: Performance einer Löschoperation bei wachsender Dateigröße, gegeben die zu löschende rid Heap File Sorted File Zeit (s) bei D = s Anzahl Seiten (B) 42 Kapitel 3 Indizes 1.Einführende Terminologie 2.Index Datenstrukturen 3.Datei Organisationen im Vergleich 4.Indizes und Performance Tuning 43 Architektur und Implementierung von Datenbanksystemen WS 2009/10 Melanie Herschel Universität Tübingen

22 Indizes und Performance Tuning Wir haben soeben gesehen, dass keine Indexstruktur für alle Arten von Operationen geeignet ist. Anfrage, die von effizienter Gleichheitssuche profitiert. SELECT * FROM R WHERE C = 42!Hash-basierter Index Anfrage, die von effizienter Bereichssuche profitiert. SELECT * FROM R WHERE A > 0 AND A < 100!Baum-basierter Index Anfrage, die von einer Sortierung der Records nach A profitiert. SELECT * FROM R WHERE A > 0 AND A < 100!Clustered Index (sequentieller Zugriff)! Welcher Index bzw. welche Indizes sind für meine Anwendung geeignet? Wahl durch verschiedene Faktoren beeinflusst, unter Anderem: Art der Anfragen, die typischerweise an das DBMS gestellt werden. Verteilung der Daten in einer Relation. Um Redundanz zu vermeiden, maximal ein Clustered Index. Optimierung: Anfragen, die nur den Suchschlüssel beinhalten, können durch Seitenzugriffe auf Index bereits beantwortet werden (index-only evaluation). 44 Indizes und Performance Tuning Workload Definition Eine Workload ist definiert als eine Menge von Operationen, die typischerweise auf dem DBMS ausgefürt werden. Moderne DBMS erlauben es, Operationen in einer Workload zu gewichten, um die relative Häufigkeit der Anfragen, und somit die Relevanz deren effizienter Ausführung für die Gesamteffizienz des DBMS zu spezifizieren. Workload Workload Anfragen SELECT * FROM R WHERE C = 42 SELECT * FROM R WHERE A > 0 AND A < 100 Gewichtung 1 10 x pro Minute 100 x pro Minute!Baum-basierter Index Gewichtung x pro Minute 1 x pro Minute!Hash-basierter Index 45

23 Indizes und Performance Tuning Statistiken Die geeignete Wahl eines Index hängt auch von der Werteverteilung in Attributen ab. Moderne DBMS verwalten Statistiken über solche Werteverteilungen (in Form von Histogrammen) um unter Anderem geeignete Indizes zu identifizieren. Solche Histogramme sind ebenfalls für Anfrageoptimierung wichtig. Workload Workload Anfragen SELECT * FROM R WHERE C = 42 SELECT * FROM R WHERE A > 0 AND A < 100 Verteilung 1 C gleichverteilt von 0 bis 100 A entspricht Altersverteilung!Hash-basierter Index Verteilung 2 C = 42 in 95% aller Records Nur 5 % aller Werte in A fallen zwischen 0 und 100!Baum-basierter Index / Clustered Index 46 Indizes und Performance Tuning Designbeispiele für Clustered Indizes Anfrage 1 SELECT M.AbteilungsNR FROM Mitarbeiter M WHERE M.Alter > 40 Gegeben ein B+ Baum über Alter. Nur 10 % aller Mitarbeiter sind älter als 40 Jahre. Ist die Verwendung des Index sinnvoll? Ist der Index clustered? Nein --> Für jeden der 10% Mitarbeiter muss Dateneintrag im Index und die entsprechende Seite der Daten ermittelt werden. Das kann teurer als ein einfacher scan sein. Ja --> Finden des ersten Mitarbeiters mit Alter > 40 mit Hilfe des Index. Danach die Daten Records sequentiell lesen, daher nur ca. 10% der Kosten eines scans. Anfrage 2 SELECT M.AbteilungsNR, COUNT(*) FROM Mitarbeiter M WHERE M.Alter > 10 GROUP BY M.AbteilungsNR Gegeben ein B+ Baum über Alter. Alle Mitarbeiter sind älter als 10 Jahre. Verwenden wir den Index, so können wir Records mit Alter > 10 damit ermitteln und diese sortieren wir dann nach AbteilungsNR. In diesem Fall sollte der Index auf jeden Fall clustered sein, um sequenzielles I/O auf Daten zu nutzten. Ein scan über eine sortierte Datei wäre ähnlich effizient. Könnte ein Index über AbteilungsNR sinnvoller sein? Clustered Index: ja, da wir den Index verwenden, um ersten Mitarbeiter einer Gruppe zu finden und danach sequentiell Records (mit Alter > 10) lesen. Wenn der Index nicht clustered ist, ist potentiell ein Seiten I/O pro Mitarbeiter nötig! 47

24 Indizes und Performance Tuning Designbeispiele für Clustered Indizes Anfrage 3 (hohe Selektivität) Wahl eines Index für Anfrage 3 SELECT M.AbteilungsNR, COUNT(*) FROM Mitarbeiter M WHERE M.Alter > 60 GROUP BY M.AbteilungsNR Wahl eines Index für Anfrage 4 Anfrage 4 (Selektion auf Schlüsselattribut) SELECT M.AbteilungsNR FROM Mitarbeiter M WHERE M.PNR = Indizes und Performance Tuning Zusammengesetzte Suchschlüssel Ein zusammengesetzter Suchschlüssel ist ein Suchschlüssel über mehr als ein Attribut, z.b. über <Alter, Gehalt>. Gleichheitsanfrage über zusammengesetzte Schlüssel? Jedes Feld im Suchschlüssel ist in der Anfrage einer Konstanten gleichgesetzt. Gleichheitsanfrage (Suchschlüssel = <Alter, Gehalt>) SELECT * FROM Mitarbeiter WHERE Alter = 30 AND Gehalt = 3000 Bereichsanfrage über zusammengesetzte Schlüssel? Nicht jedes Feld im Suchschlüssel ist in der Anfrage einer Konstanten gleichgesetzt und lässt somit den Bereich für fehlende Attribute komplett offen. Prädikate der Anfrage können auch Ungleichungen enthalten. Bereichsanfragen wenn Suchschlüssel <Alter, Gehalt> SELECT * FROM Mitarbeiter WHERE Alter = 20 SELECT * FROM Mitarbeiter WHERE Alter < 20 AND Gehalt >

25 Indizes und Performance Tuning Zusammengesetzte Suchschlüssel <Alter, Gehalt> <11, 80, rid2> <12,10, rid1> <12, 20, rid3> <13, 75, rid4> <Gehalt, Alter> <10, 12, rid1> <20, 12, rid3> <75, 13, rid4> <80, 11, rid2> Zusammengesetzte Suchschlüssel Name Alter Gehalt Bob Cal Joe Sue Daten Records <Alter> <11, rid2> <12, rid1> <12, rid3> <13, rid4> <Gehalt> <10, rid1> <20, rid3> <75, rid4> <80, rid2> Einfache Suchschlüssel Welcher Index ist für die Anfrage Gehalt > 40 geeignet? 51 Indizes und Performance Tuning Zusammengesetzte Suchschlüssel Ein Index entspricht einem Selektionsbedingung wenn der Index in der Lage ist, ausschließlich die Tupel, die dem Ergebnis der Anfrage entsprechen, zurückzugeben. Für Selektionsbedingungen der Form B1 AND B2 AND... AND Bn (Konjunktion) bestimmen wir, ob ein Index einer Anfrage entspricht, wie folgt: Hash-Index Existiert für jedes Feld ki im Suchschlüssel <k1, k2,..., km> eine Gleichheitsbedingung Bi der Form ki = C, wobei C eine Konstante, so entspricht der Hash-Index der Selektionsbedingung. Baum-Index Gegeben ein Suchschlüssen <k1, k2,..., kp>, so entspricht dieser der Selektionsbedingung, wenn für jeden Teilschlüssel k1, k2,..., km, m <= p, eine Bedingung Bi (Gleichheit oder Ungleichheit) existiert. 52

26 Indizes und Performance Tuning Zusammengesetzte Suchschlüssel Vorteile Ein größeres Spektrum an Anfragen kann durch zusammengesetzte Schlüssel beatwortet werden. Der Index selbst entält mehr Daten zu einem Record, was die Chancen für eine Index- Only-Evaluation steigert. Nachteile Erhöhter Aktualisierungsaufwand, da ein Index mit zusammengesetztem Suchschlüssel aktualisiert werden muss, wenn eines der Felder im Suchschlüssel modifiziert wird. Geringere Speichereffizienz, da die Dateneinträge im Index größer sind. Bei B + -Baum-Indizes kann dies zu einer Erhöhung der Baumtiefe führen. 53 Indizes und Performance Tuning Designbeispiele für Indizes mit Zusammengesetztem Suchschlüssel Anfrage 1 SELECT M.PNR FROM Mitarbeiter M WHERE M.Alter BETWEEN 20 AND 30 AND M.Gehalt BETWEEN 3000 AND 5000 Anfrage 2 SELECT M.PNR FROM Mitarbeiter M WHERE M.Alter = 25 AND M.Gehalt BETWEEN 3000 AND 5000 Index über <Alter, Gehalt>? Hilfreich, wenn Bedingungen selektiv genug sind. Baum-Index, da Bereichsanfrage nicht von Hash- Indizes unterstützt werden. Clustered Index vermutlich besser als unclustered Index. Index über <Gehalt, Alter>? Unter der Annahme, dass beide Bedingungen eine ähnliche Selektivität haben, macht die Reihenfolge der Felder im Suchschlüssel keinen Unterschied.! Zusammengesetzter, clustered B + -Baum-Index über <Alter, Gehalt> oder über <Gehalt, Alter>. Clustered B+ Baum Index über <Alter, Gehalt>? Records sind zunächst nach Alter sortiert, d.h., alle Records mit Alter = 25 sind gruppiert. Records dieser Altersgruppe sind nach Gehalt (als zweiter Suchschlüssel) sortiert, was die Bereichsanfrage auf Gehalt unterstützt. Clustered B + -Baum-Index über <Gehalt, Alter>? Records sind zunächst nach Gehalt sortiert und zwei Records mit Alter = 25 können weit auseinanderliegen. Index hilfreich für die Bereichsanfrage über Gehalt, aber er kann nicht für das weitaus selektivere Attribut Alter verwendet werden.!zusammengesetzter, clustered B + -Baum-Index über <Alter, Gehalt>. 54

27 Indizes und Performance Tuning Designbeispiele für Indizes mit Zusammengesetztem Suchschlüssel Anfrage 3 SELECT AVG(M.Gehalt) FROM Mitarbeiter M WHERE M.Alter = 25 AND M.Gehalt BETWEEN 3000 AND 5000 Anfrage 4 SELECT M.AbteilungsNR, COUNT(*) FROM Mitarbeiter M WHERE M.Gehalt = GROUP BY M.AbteilungsNR Wie bei Anfrage 2 eignet sich hier ein clustered B + -Baum-Index über <Alter, Gehalt>. Zusätzlicher Vorteil: Index-Only Evaluation! Zusammengesetzter, clustered B + -Baum-Index über <Alter, Gehalt>. Index über AbteilungsNR? Hilft potentiell, Gruppen zu finden. Überprüfung, ob Gehalt = teuer. Analoge Diskussion für Index über Gehalt. Zusammengesetzter Index <Gehalt, AbteilungsNR>? Alle Dateneinträge mit Gehalt = im Index nebeneinander. Alle Dateneinträge mit Gehalt = sind nach AbteilungsNR sortiert, was Gruppierung und COUNT Evaluation vereinfacht. Index-Only Evaluation möglich. Analoge Diskussion für zusammengesetzten Index <AbteilungsNR, Gehalt>! Zusammengesetzter B + -Baum-Index über <Gehalt, AbteilungsNR> oder <AbteilungsNR, Gehalt>. 55 Indizes und Performance Tuning Designbeispiele für Indizes mit Zusammengesetztem Suchschlüssel Anfrage 5 SELECT M.AbteilungsNR, COUNT(*) FROM Mitarbeiter M WHERE M.Gehalt > GROUP BY M.AbteilungsNR Anfrage 6 SELECT M.AbteilungsNR, MIN(M.Gehalt) FROM Mitarbeiter M GROUP BY M.AbteilungsNR Wahl eines Index für Anfrage 5 Wahl eines Index für Anfrage 6 56

28 Indizes und Performance Tuning Toolbasierters Performance Tuning IBM DB2 Design Advisor (Wizard) Generiert automatisch Vorschläge für geeignete Indizes basierend auf einer Workload. Sowohl als Wizard als auch als Kommandozeilentool verfügbar. 57 Indizes und Performance Tuning Toolbasierters Performance Tuning IBM DB2 Design Advisor (Wizard) Workload mit Ausführungsfrequenz (Gewicht einer Anfrage) werden spezifiziert. 58

29 Indizes und Performance Tuning Toolbasierters Performance Tuning IBM DB2 Design Advisor (Wizard) Basierend auf Workload (und weiteren, nicht besprochener Optionen) wird eine Liste sinnvoller Indizes berchnet. Diese können erstellt werden, wenn sie noch nicht existieren. 59 Zusammenfassung Terminologie Überblick über Dateiorganisationen, Indizes, Dateneinträge, Clustered vs. Unclustered Indizes. Indexstrukturen Zwei wesentliche Indexstrukturen: Hash-Indizes und Baum-Indizes. Unter den Baum-Indizes sind B + -Baum-Indizes durch ihre Ausgewogenheit besonders interessant. Vergleich verschiedener Dateiorganisationen und Indizes Keine Indexstruktur und Dateiorganisation ist für alle Datenbankoperationen optimal. Indizes und Performance Tuning Bei der Definition von Indizes und Dateiorganisationen ist auf Workload und Datenverteilung zu achten. 60

Dateiorganisation und Zugriffsstrukturen

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

Mehr

Gleichheitsanfrage vs. Bereichsanfrage

Gleichheitsanfrage vs. Bereichsanfrage Datenbank Indexe Gleichheitsanfrage vs. Bereichsanfrage Gleichheitsanfrage (single key-value) : Abfragen, die eine Bedingung mit = haben Finde den Namen des Studenten mit Alter = 20 Bereichsanfrage (range

Mehr

Baum-Indexverfahren. Einführung

Baum-Indexverfahren. Einführung Baum-Indexverfahren Prof. Dr. T. Kudraß 1 Einführung Drei Alternativen, wie Dateneinträge k* im Index aussehen können: 1. Datensatz mit Schlüsselwert k 2.

Mehr

Baum-Indexverfahren. Prof. Dr. T. Kudraß 1

Baum-Indexverfahren. Prof. Dr. T. Kudraß 1 Baum-Indexverfahren Prof. Dr. T. Kudraß 1 Einführung Drei Alternativen, wie Dateneinträge k* im Index aussehen können: 1. Datensatz mit Schlüsselwert k 2.

Mehr

Kapitel 8: Physischer Datenbankentwurf

Kapitel 8: Physischer Datenbankentwurf 8. Physischer Datenbankentwurf Seite 1 Kapitel 8: Physischer Datenbankentwurf Speicherung und Verwaltung der Relationen einer relationalen Datenbank so, dass eine möglichst große Effizienz der einzelnen

Mehr

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

! DBMS organisiert die Daten so, dass minimal viele Plattenzugriffe nötig sind. Unterschiede von DBMS und files Speichern von Daten! DBMS unterstützt viele Benutzer, die gleichzeitig auf dieselben Daten zugreifen concurrency control.! DBMS speichert mehr Daten als in den Hauptspeicher

Mehr

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo. Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten

Mehr

Datenbanksysteme II Indexstrukturen Felix Naumann

Datenbanksysteme II Indexstrukturen Felix Naumann Datenbanksysteme II Indexstrukturen (Kapitel 13) 5.5.2008 Felix Naumann Klausur 2 Mittwoch, 23.7. 9 13 Uhr 4 Stunden Umfang auf 1,5 Stunden ausgelegt Keine Hilfsmittel Motivation 3 Platzierung der Tupel

Mehr

Physischer Datenbankentwurf: Datenspeicherung

Physischer Datenbankentwurf: Datenspeicherung Datenspeicherung.1 Physischer Datenbankentwurf: Datenspeicherung Beim Entwurf des konzeptuellen Schemas wird definiert, welche Daten benötigt werden und wie sie zusammenhängen (logische Datenbank). Beim

Mehr

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. MySQL-Befehle 1. Einleitung In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. 2. Arbeiten mit Datenbanken 2.1 Datenbank anlegen Eine Datenbank kann man wie folgt

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

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.

Mehr

OPERATIONEN AUF EINER DATENBANK

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:

Mehr

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

Mehr

Aufbau Datenbanksysteme

Aufbau Datenbanksysteme Aufbau Datenbanksysteme Lehrveranstaltung Datenbanktechnologien Prof. Dr. Ingo Claßen Prof. Dr. Martin Kempa Hochschule für Technik und Wirtschaft Berlin Speichersystem c Ingo Claßen, Martin Kempa Softwarearchitektur

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

Aufgabe 1 Indexstrukturen

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

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 13 (18.6.2014) Binäre Suchbäume IV (Rot Schwarz Bäume) Algorithmen und Komplexität Rot Schwarz Bäume Ziel: Binäre Suchbäume, welche immer

Mehr

Star Join & Kostenbasierte Optimierung. Architektur von Datenbanksystemen II

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

Mehr

Index Rebuild. DOAG Konferenz , Nürnberg DOAG Konferenz , Nürnberg Martin Hoermann Martin Hoermann

Index Rebuild. DOAG Konferenz , Nürnberg DOAG Konferenz , Nürnberg Martin Hoermann Martin Hoermann Index Rebuild DOAG Konferenz 17.01.2011, Nürnberg DOAG Konferenz 17.11.2011, Nürnberg Martin Hoermann info@ordix.de Martin Hoermann www.ordix.de info@ordix.de www.ordix.de Eine kurze Geschichte der Zeit

Mehr

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Mengen n Ziel: Aufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: Mengen n Ziel: Aufrechterhalten einer

Mehr

Cluster-Bildung. VL Datenbanken II 4 107

Cluster-Bildung. VL Datenbanken II 4 107 Cluster-Bildung gemeinsame Speicherung von Datensätzen auf Seiten wichtige Spezialfälle: Ballung nach Schlüsselattributen. Bereichsanfragen und Gruppierungen unterstützen: Datensätze in der Sortierreihenfolge

Mehr

Anfragebearbeitung 2. Vorlesung Datenbanksysteme vom

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

Mehr

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de 08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren

Mehr

Vorlesung Informationssysteme

Vorlesung Informationssysteme Saarbrücken, 23.07.2015 Information Systems Group Vorlesung Informationssysteme Vertiefung Kapitel 12: Indexstrukturen Erik Buchmann (buchmann@cs.uni-saarland.de) Foto: M. Strauch Bevor es losgeht: Datenbankoperationen

Mehr

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

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann Blatt Nr. 11 Übung zur Vorlesung Einsatz und Realisierung von Datenbanksystemen im SoSe15 Moritz Kaufmann (moritz.kaufmann@tum.de)

Mehr

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

6. Formaler Datenbankentwurf 6.1. Rückblick. Datenbanken und Informationssysteme, WS 2012/13 22. Januar 2013 Seite 1 6. Formaler Datenbankentwurf 6.1. Rückblick 3. Normalform Ein Relationsschema R = (V, F) ist in 3. Normalform (3NF) genau dann, wenn jedes NSA A V die folgende Bedingung erfüllt. Wenn X A F, A X, dann

Mehr

12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 12 (2-4)-Bäume (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 2. Die Ordnung (maximale Anzahl der Söhne eines Knotens) ist gleich 4 3. Innere Knoten haben 2 Söhne

Mehr

Kapitel 7 Datenbank-Tuning

Kapitel 7 Datenbank-Tuning Kapitel 7 Datenbank-Tuning Flien zum Datenbankpraktikum Wintersemester 2012/13 LMU München 2008 Thmas Bernecker, Tbias Emrich 2010 Tbias Emrich, Erich Schubert unter Verwendung der Flien des Datenbankpraktikums

Mehr

ACCESS SQL ACCESS SQL

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

Mehr

Kapitel 12: Schnelles Bestimmen der Frequent Itemsets

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

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung

Mehr

Kapitel 7: Referentielle Integrität

Kapitel 7: Referentielle Integrität Kapitel 7: Referentielle Integrität Im Allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen (IB) erfüllen. Integritätsbedingungen

Mehr

Anfragebearbeitung. Anfrage. Übersetzer. Ausführungsplan. Laufzeitsystem. Ergebnis

Anfragebearbeitung. Anfrage. Übersetzer. Ausführungsplan. Laufzeitsystem. Ergebnis Anfragebearbeitung Anfrage Übersetzer Ausführungsplan Laufzeitsystem Ergebnis Übersetzung SQL ist deklarativ, Übersetzung für Laufzeitsystem in etwas prozedurales DBMS übersetzt SQL in eine interne Darstellung

Mehr

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung Technische Universität München WS 2003/04, Fakultät für Informatik Datenbanksysteme I Prof. R. Bayer, Ph.D. Lösungsblatt 8 Dipl.-Inform. Michael Bauer Dr. Gabi Höfling 12.01. 2004 Integritätsbedingungen

Mehr

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

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP B-Bäume I Annahme: Sei die Anzahl der Objekte und damit der Datensätze. Das Datenvolumen ist zu groß, um im Hauptspeicher gehalten zu werden, z.b. 10. Datensätze auf externen Speicher auslagern, z.b. Festplatte

Mehr

105.3 SQL-Datenverwaltung

105.3 SQL-Datenverwaltung LPI-Zertifizierung 105.3 SQL-Datenverwaltung Copyright ( ) 2009 by Dr. W. Kicherer. This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License. To view a

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum

Mehr

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL Früherer Name: SEQUEL SQL: Structured Query Language Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL ist eine deklarative Anfragesprache Teile von SQL Vier große Teile:

Mehr

Wie beim letzten Mal - bitte besucht: http://pingo.upb.de/549170 Ihr seid gleich wieder gefragt... Übung Algorithmen I 4.5.16 Lukas Barth lukas.barth@kit.edu (Mit Folien von Julian Arz, Timo Bingmann,

Mehr

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

MS SQL Server: Index Management. Stephan Arenswald 10. Juli 2008 MS SQL Server: Index Management Stephan Arenswald 10. Juli 2008 Agenda 1. Einführung 2. Grundlagen Tabellen 3. Grundlagen Indexe 4. Indextypen 5. Index-Erstellung 6. Indexe und Constraints 7. Und Weiter...?

Mehr

Lösungen der Übungsaufgaben von Kapitel 10

Lösungen der Übungsaufgaben von Kapitel 10 Lösungen der Übungsaufgaben von Kapitel 10 1. Legen Sie mit einem SQL - Befehl eine neue Tabelle PERSON_KURZ mit den Feldern Kurz_Id, Kurz_Name an. Machen Sie das so, dass Kurz_Id der Primärschlüssel wird

Mehr

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird. Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,

Mehr

Unterabfragen (Subqueries)

Unterabfragen (Subqueries) Unterabfragen (Subqueries) Die kürzeste Formulierung ist folgende: SELECT Felderliste FROM Tabelle1 WHERE Tabelle1.Feldname Operator (SELECT Feldname FROM Tabelle2 WHERE Bedingung); wobei Tabelle1 und

Mehr

One of the few resources increasing faster than the speed of computer hardware is the amount of data to be processed. Bin Hu

One of the few resources increasing faster than the speed of computer hardware is the amount of data to be processed. Bin Hu Bin Hu Algorithmen und Datenstrukturen 2 Arbeitsbereich fr Algorithmen und Datenstrukturen Institut fr Computergraphik und Algorithmen Technische Universität Wien One of the few resources increasing faster

Mehr

Kapitel 7 Datenbank-Tuning. Folien zum Datenbankpraktikum Wintersemester 2010/11 LMU München

Kapitel 7 Datenbank-Tuning. Folien zum Datenbankpraktikum Wintersemester 2010/11 LMU München Kapitel 7 Datenbank-Tuning Flien zum Datenbankpraktikum Wintersemester 2010/11 LMU München 2008 Thmas Bernecker, Tbias Emrich unter Verwendung der Flien des Datenbankpraktikums aus dem Wintersemester 2007/08

Mehr

Inhaltsverzeichnis. jetzt lerne ich

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

Mehr

3 Indizes. 3.1 Indexarchitektur von SQL Server. SQL Server 2008: Datenbankentwicklung

3 Indizes. 3.1 Indexarchitektur von SQL Server. SQL Server 2008: Datenbankentwicklung 3 Indizes 3.1 Indexarchitektur von SQL Server Die folgende Abbildung zeigt die Organisationsstruktur einer Tabelle. Eine Tabelle befindet sich in einer oder mehreren Partitionen, und jede Partition enthält

Mehr

Bäume, Suchbäume und Hash-Tabellen

Bäume, Suchbäume und Hash-Tabellen Im folgenden Fokus auf Datenstrukturen, welche den assoziativen Zugriff (über einen bestimmten Wert als Suchkriterium) optimieren Bäume: Abbildung bzw. Vorberechnung von Entscheidungen während der Suche

Mehr

SÄTZE MIT VARIABLER LÄNGE

SÄTZE MIT VARIABLER LÄNGE Sätze variabler Länge 1 SÄTZE MIT VARIABLER LÄNGE Generellere Struktur von Datensätzen: Ersetzen von Felder durch Gruppen von Feldern. Beispiel: n m E 1 E 2 e 1 e 2 e 11 e 12 e 21 e 22 e 23 e 24 variable

Mehr

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität Datenbanken Unit 4: Das Relationale Modell & Datenintegrität 15. III. 2016 Outline 1 Organisatorisches 2 SQL 3 Relationale Algebra Notation 4 Datenintegrität Organisatorisches Erster Zwischentest: nach

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 10 (3.6.2014) Binäre Suchbäume I Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:

Mehr

Inhaltsverzeichnis. Installationsübersicht. A. Installationsübersicht

Inhaltsverzeichnis. Installationsübersicht. A. Installationsübersicht Inhaltsverzeichnis A. Installationsübersicht B. und Optimierungsbereiche B.1 Hardware B.2 OperatingSystem Z/OS B.3 Databasemanagementsystem DB2 B.4 Applikation C. Organisation BSS_Chart-library 1 Installationsübersicht

Mehr

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

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume

Mehr

Telefonbuchdaten. Leitungsdaten Antennendaten Mitarbeiterdaten Immobiliendaten Telefon-Verbindungsdaten Internet-Verbindungsdaten

Telefonbuchdaten. Leitungsdaten Antennendaten Mitarbeiterdaten Immobiliendaten Telefon-Verbindungsdaten Internet-Verbindungsdaten Datenbanken? Datenbanken! Vertragsdaten Kundendaten Rechnungsdaten Telefonbuchdaten Marketingdaten Leitungsdaten Antennendaten Mitarbeiterdaten Immobiliendaten Telefon-Verbindungsdaten Internet-Verbindungsdaten

Mehr

ANHANG: Vertiefung Zugriffspfade mit Übungsaufgaben

ANHANG: Vertiefung Zugriffspfade mit Übungsaufgaben ANHANG: Vertiefung Zugriffspfade mit Übungsaufgaben Im Folgenden wird der Begriff Indexstrukturen allgemeingültig (!) verwendet für Zugriffspfade, die als externe Datenstrukturen den Zugriff auf Datensätze

Mehr

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung 6. Datenintegrität Motivation Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung nur sinnvolle Attributwerte (z.b. keine negativen Semester) Abhängigkeiten

Mehr

Nachtrag zu binären Suchbäumen

Nachtrag zu binären Suchbäumen Nachtrag zu binären Suchbäumen (nicht notwendigerweise zu AVL Bäumen) Löschen 1 3 2 10 4 12 1. Fall: Der zu löschende Knoten ist ein Blatt: einfach löschen 2. Fall: Der zu löschende Knoten hat ein Nachfolgeelement

Mehr

Dynamische Mengen. Realisierungen durch Bäume

Dynamische Mengen. Realisierungen durch Bäume Dynamische Mengen Eine dynamische Menge ist eine Datenstruktur, die eine Menge von Objekten verwaltet. Jedes Objekt x trägt einen eindeutigen Schlüssel key[x]. Die Datenstruktur soll mindestens die folgenden

Mehr

Indexstrukturen in SQL

Indexstrukturen in SQL Indestrukturen in SQL Anlegen eines Primärinde in SQL: Anlegen eines Sekundärinde in SQL: Bsp: create table Dozenten ( DNr integer primary key, Name varchar(0), Geburt date, ) create [Unique] inde indename

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software SQL Tutorial SQL - Tutorial SS 06 Hubert Baumgartner INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien Inhalt des Tutorials 1 2 3 4

Mehr

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1 Systeme 1 Kapitel 3 Dateisysteme WS 2009/10 1 Letzte Vorlesung Dateisysteme Hauptaufgaben Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien Kleinste logische Einheit eines Dateisystems Dateitypen

Mehr

Untersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort.

Untersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort. Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe 1 (Güte von Hashfunktionen): Untersuchen Sie, inwiefern sich die folgenden Funktionen

Mehr

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

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Übung zu Einführung in die Informatik # 10

Übung zu Einführung in die Informatik # 10 Übung zu Einführung in die Informatik # 10 Tobias Schill tschill@techfak.uni-bielefeld.de 15. Januar 2016 Aktualisiert am 15. Januar 2016 um 9:58 Erstklausur: Mi, 24.02.2016 von 10-12Uhr Aufgabe 1* a),

Mehr

3. Übung Algorithmen I

3. Übung Algorithmen I Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der

Mehr

Logische Optimierung. Im Allgemeinen wird keine optimale Lösung erzielt, sondern nur eine Verbesserung. Logische Optimierung

Logische Optimierung. Im Allgemeinen wird keine optimale Lösung erzielt, sondern nur eine Verbesserung. Logische Optimierung Logische Optimierung Höhere, nichtprozedurale Abfragesprachen (SQL, QBE,...) verlangen keine Kenntnisse des Benutzers über die Implementierung, müssen aber in prozedurale Form (z. B. Relationenalgebra)

Mehr

Cassandra Query Language (CQL)

Cassandra Query Language (CQL) Cassandra Query Language (CQL) Seminar: NoSQL Wintersemester 2013/2014 Cassandra Zwischenpräsentation 1 Gliederung Basic facts Datentypen DDL/DML ähnlich zu SQL Besonderheiten Basic facts CQL kurz für

Mehr

Indexing und Performance Tuning

Indexing und Performance Tuning Indexing und Performance Tuning Cybertec Schönig & Schönig GmbH Hans-Jürgen Schönig PostgreSQL Indexing - Jeder hat schon einmal ein Telefonbuch Benutzt - Jeder hat schon einmal Suchen durchgeführt CREATE

Mehr

Kapitel 6 Anfragebearbeitung

Kapitel 6 Anfragebearbeitung LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Skript zur Vorlesung: Datenbanksysteme II Sommersemester 2014 Kapitel 6 Anfragebearbeitung Vorlesung: PD Dr. Peer Kröger

Mehr

Download:.../~rieche. gehalten am 2. Februar 2004. Stephan Rieche. Vortrag. Thema: Index Selection. von. Seminar Advanced Data Warehouse

Download:.../~rieche. gehalten am 2. Februar 2004. Stephan Rieche. Vortrag. Thema: Index Selection. von. Seminar Advanced Data Warehouse Seminar Advanced Data Warehouse Thema: Index Selection Vortrag von Stephan Rieche gehalten am 2. Februar 2004 Download:.../~rieche Inhalt des Vortrages 1. Einleitung - Was ist das Index Selection Problem?

Mehr

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Übung, Sommersemester 2013 29. April 2013 - MySQL 2 Sebastian Cuy sebastian.cuy@uni-koeln.de Aufgaben Anmerkungen Best practice: SQL Befehle

Mehr

SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement

SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement SQL Datenmanipulation Datenmanipulationssprache Ein DML Statement wird ausgeführt wenn: neue Tupel eingefügt werden existierende Tupel geändert werden existierende Tupel aus der Tabelle gelöscht werden

Mehr

Tag 4 Inhaltsverzeichnis

Tag 4 Inhaltsverzeichnis Tag 4 Inhaltsverzeichnis Normalformen Problem Formen (1-4) Weitere Formen Transaktionen Synchronisationsprobleme Überblick Autocommit Locking Savepoints Isolation levels Übungen RDB 4-1 Normalformen Problematik

Mehr

Oracle Datenbank / Ubuntu

Oracle Datenbank / Ubuntu Oracle Datenbank / Ubuntu Sebastian Gath & Hannes Schwarz Seminar Database Tuning & Administration Universität Konstanz - SS 2007 Administration Vorbereitung Zeitmessung Erste Zeitmessung 2 Ausgangssituation

Mehr

Dynamisches Huffman-Verfahren

Dynamisches Huffman-Verfahren Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über

Mehr

DBS: Administration und Implementierung Klausur

DBS: Administration und Implementierung Klausur Prof. Dr. Stefan Brass 12.06.2001 Institut für Informatik Universität Gießen Hinweise DBS: Administration und Implementierung Klausur Die Bearbeitungszeit ist 1 Stunde, 30 Minuten (von 8 30 bis 10 00 ).

Mehr

- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen:

- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen: 6 Partiell geordnete binäre Bäume: Heap (Haufen) Motivation für manchen Anwendungen nur partielle Ordnung der Elemente statt vollständiger nötig, z.b. - Prioritätsschlange: nur das minimale (oder maximale)

Mehr

Die Datenmanipulationssprache SQL

Die Datenmanipulationssprache SQL Die Datenmanipulationssprache SQL Daten eingeben Daten ändern Datenbank-Inhalte aus Dateien laden Seite 1 Data Manipulation Language A DML statement is executed when you Add new rows to a table Modify

Mehr

KAPITEL 4 BASISALGORITHMEN FÜR DATENBANKOPERATIONEN

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

Mehr

Physische Datenbankdefinition in. Arthur Bauer

Physische Datenbankdefinition in. Arthur Bauer Physische Datenbankdefinition in Arthur Bauer Inhalt Cluster Index-Cluster Hash-Cluster Vor- und Nachteile Index-Organisierte Tabelle (IOT) Partitionierung STORAGE-Klausel in DDL Indexstrukturen Oracle

Mehr

Gliederung. 1) Speicherplatz-Zuordnung und -Verwaltung 2) Indizes 3) Explain Plan 4) Join-Operationen 5) Der Optimizer 6) Parallelisieren

Gliederung. 1) Speicherplatz-Zuordnung und -Verwaltung 2) Indizes 3) Explain Plan 4) Join-Operationen 5) Der Optimizer 6) Parallelisieren Gliederung ) Speicherplatz-Zuordnung und -Verwaltung 2) Indizes 3) Explain Plan 4) Join-Operationen 5) Der Optimizer 6) Parallelisieren ) Speicherplatz-Zuordnung und -Verwaltung.) Tabellenspeicherung:

Mehr

Objektrelationale und erweiterbare Datenbanksysteme

Objektrelationale und erweiterbare Datenbanksysteme Objektrelationale und erweiterbare Datenbanksysteme Erweiterbarkeit SQL:1999 (Objekt-relationale Modellierung) In der Vorlesung werden nur die Folien 1-12 behandelt. Kapitel 14 1 Konzepte objekt-relationaler

Mehr

IBM Informix Tuning und Monitoring

IBM Informix Tuning und Monitoring Seminarunterlage Version: 11.01 Copyright Version 11.01 vom 25. Juli 2012 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

Seminar Datenbanken Martin Gerstmann

Seminar Datenbanken Martin Gerstmann Seminar Datenbanken Martin Gerstmann Gliederung 1. Ziele 2. Arten 2.1. erweiterbares Hashing 2.2. lineares Hashing 2.3. virtuelles Hashing 3. Bewertung 1. Ziele wachsende/schrumpfende Datenmengen verwalten

Mehr

Physische Datenorganisation

Physische Datenorganisation Web Science & Technologies University of Koblenz Landau, Germany Grundlagen der Datenbanken Dr. Jérôme Kunegis Wintersemester 2013/14 Zugriffshierarchie 2 Eigenschaften der Datenträger 8 32 Mb CPU Cache

Mehr

Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur

Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur Moderne Datenbanksysteme sind nach der 3-Ebenen-Architektur gebaut: Anwendung 1 Web-Anwendung Anwendung 2 Java-Programm... Anwendung n Applikation

Mehr

Kapitel DB:VI (Fortsetzung)

Kapitel DB:VI (Fortsetzung) Kapitel DB:VI (Fortsetzung) VI. Die relationale Datenbanksprache SQL Einführung SQL als Datenanfragesprache SQL als Datendefinitionssprache SQL als Datenmanipulationssprache Sichten SQL vom Programm aus

Mehr

Übung Datenbanksysteme II Physische Speicherstrukturen. Thorsten Papenbrock

Übung Datenbanksysteme II Physische Speicherstrukturen. Thorsten Papenbrock Übung Datenbanksysteme II Physische Speicherstrukturen Thorsten Papenbrock Organisatorisches: Übung Datenbanksysteme II 2 Übung Thorsten Papenbrock (thorsten.papenbrock@hpi.uni-potsdam.de) Tutoren Alexander

Mehr

SQL: statische Integrität

SQL: statische Integrität SQL: statische Integrität.1 SQL: statische Integrität Im allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen erfüllen. Integritätsbedingungen

Mehr

Datenbanksysteme II Architektur und Implementierung von Datenbanksystemen

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

Mehr

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language) Einführung in SQL 1. Grundlagen Structured Query Language Viele Dialekte Unterteilung: i. DDL (Data Definition Language) ii. iii. DML (Data Modifing Language) DRL (Data Retrival Language) 1/12 2. DDL Data

Mehr

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem

Mehr

Sortierverfahren für Felder (Listen)

Sortierverfahren für Felder (Listen) Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es

Mehr

Explizite Cursor. Cursor. Steuerung des expliziten Cursors. Explizite Cursor Funktionen

Explizite Cursor. Cursor. Steuerung des expliziten Cursors. Explizite Cursor Funktionen Explizite Jedes SQL Statement, das der Oracle Server ausführt, hat einen individuellen, der verbunden ist mit: Implizitem : Declariert für alle DML-Statements und PL/SQL SELECT Statements. Explizitem :

Mehr

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

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

Mehr

SQL Einstieg und Anwendung

SQL Einstieg und Anwendung Wolfgang D. Misgeld 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. SQL Einstieg und Anwendung Mit SQL-3, IBM DB2,

Mehr

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index!

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index! 1/40 PHP-User-Group Stuttgart 14.01.2009 Warum Datenbanken einen Hals bekommen und was sich dagegen tun lässt. Tuning und Performancesteigerung ohne zusätzliche Hardware. Ein. Loblied auf den Tabellen-Index!

Mehr