MARTIN-LUTHER-UNIVERSITÄT HALLE-WITTENBERG DATENBANKEN IIB
Institut für Informatik Winter 2015/16
Prof. Dr. Stefan Brass [StudIP]

 

 

Datenbanken IIB: DBMS-Implementierung

Ablauf (Planung der zeitlichen Aufteilung)

Hier wird eine ungefähre Übersicht gegeben, wann welcher Stoff behandelt werden soll. Im Laufe des Semesters ist beabsichtigt, die Liste zu aktualisieren, und den tatsächlich behandelten Stoff einzutragen. Selbstverständlich sind alle Angaben unverbindlich.

Tatsächlicher Ablauf:

1. Donnerstag, 08.10.2015 (inkl. Übung):
Kapitel 0: Informationen zur Vorlesung / Organisatorisches (Folie 0-1 bis 0-33)
Inhalte, Motivation, Voraussetzungen, Zeitliche Belastung, Projekt, Literatur, Informationen zur Oracle- und zur IBM-DB2-Zertifizierung.
Kapitel 1: Einführung (Folie 1-1 bis 1-30)
Dienste von Datenbank-Managementsystemen, Transaktionen, Log-Datei, Wichtigkeit von Backups, Systemausfälle, Notfall-Systeme, Architektur (Schichteneinteilung) eines DBMS, Aufgaben eines Datenbank-Administrators, Data Dictionaries, Oracle Data Dictionary (Einstieg).
2. Donnerstag, 15.10.2015 (ink. Teil der Übung):
Kapitel 1: Einführung (Folie 1-30 bis 1-92)
Schema-Information im Oracle Data Dictionary, Zugriffsrechte (Objekt- und Systemrechte bei Oracle), Benutzer anlegen, Benutzer-Identifikation, Tablespaces, Quotas, Sicherheit.
3. Donnerstag, 22.10.2015:
Kapitel 1: Einführung (Folie 1-93 bis 1-146)
Oracle Architektur: Daten-Dateien, Tablespaces, Temporäre Dateien, Control Files, Puffer, Logdateien, Zweck der Logdateien und Sinn des verzögerten Schreibens veränderter Blöcke im Puffer, Parameter von Oracle, Alert-Datei. Oracle Architektur: Prozesse, Haupspeicherbereiche, Puffer, Oracle hoch- und runterfahren.
4. Donnerstag, 29.10.2015:
Kapitel 2: Platten, DBMS-Cache (Folie 2-1 bis 2-67)
...
5. Donnerstag, 05.11.2015:
Kapitel 2: Platten, DBMS-Cache (Folie 2-67 bis 2-108)
Charakteristiken verschiedener Speichermedien, Pufferung von Blöcken im Hauptspeicher, Schnittstelle eines typischen Buffer Managers, Ersetzungsstrategien, LRU, Sequential Flooding des Puffers, DBMS vs. Betriebssystem, Abfrage von Leistungsparatern in Oracle, CREATE TABLE Parameter für Pufferung in Oracle.
6. Donnerstag, 12.11.2015:
Kapitel 2: Platten, DBMS-Cache (Folie 2-109 bis 2-112)
Die Fünf-Minuten Regel.
Kapitel 3: Physische Speicherung von Relationen (Folie 3-1 bis 3-47)
Disk Manager: Segmente, Extents, Extentent Management in Oracle, CREATE TABLE Parameter für klassisches ("DICTIONARY") Extent Management, Algorithmus zur Extent-Anforderung/Belegung, Local Extent Management in Oracle, klassisches UNIX File System als Vergleich. Row Manager, Speicherung von Relationen als Heap-Datei, Zeiger auf Tupel: ROWID/TID.
7. Donnerstag, 19.11.2015:
Kapitel 3: Physische Speicherung von Relationen (Folie 3-36 bis 3-64)
Wiederholung zu Aufgaben des Row Managers, Heap Files, ROWIDs/TIDs, Diskussion über Vor- und Nachteile stabiler ROWIDs, Alternativen, Implementierung von Zeilen fester Länge, Implementierung von Zeilen variabler Länge, Migrierte Zeilen, ROWID-Konzept: Verhinderung längerer Verweisketten.
8. Donnerstag, 26.11.2015:
Kapitel 3: Physische Speicherung von Relationen (Folie 3-64 bis 3-99)
Vermeidung migrierter Zeilen mit PCTFREE, Verwaltung von Blöcken mit freiem Platz (PCTUSED, Automatic Segment Space Management), Implementierung des Full Table Scan (Hight Water Mark), ANALYZE TABLE, Bedeutung für Optimierer, Zeilenformat von Oracle, Diskussion verschiedener Alternativen, Datenformate von Oracle, Berechnung von Zeilenlänge und Speicherplatzbedarf von Relationen.
9. Donnerstag, 03.12.2015:
Kapitel 4: B-Baum Indexe (Folie 4-1 bis 4-48)
Motivation für Index-Strukturen (Berechnung der Dauer eines Full Table Scan für eine große Tabelle), Wiederholung zur physischen Datenunabhängigkeit, Wiederholung zu binären Suchbämen, B+-Bäume (typische Datenstruktur für Indexe), Gründe für die Wiederholung von Schlüsselwerten in Blattknoten (B-Baum vs. B+-Baum), Einfügung in B+-Bäume (ausführlich), Löschung (kurz), Asymptotische Komplexität von Suche/Einfügung/Löschung (logarithmisch), Berechnung von Höhe am Beispiel, CREATE INDEX Befehl, Nutzung von Indexen zur Anfrageauswertung: Selektion mit Gleichheitsbedingung, Schneiden von TID-Mengen bei Nutzung mehrerer Indexe, Indexe über Attributkombinationen, Selektion mit Range Query, LIKE mit bekanntem Präfix, Index Join, Nutzen für Sortierung, Duplikateliminierung, Gruppierung, "Index only" Zugriffspläne, Verwendung von Indexen für Schlüssel, Fremdschlüssel, Indexe und Nullwerte.
10. Donnerstag, 10.12.2015:
Kapitel 4: B-Baum Indexe (Folie 4-49 bis 4-100)
Wiederholung zu B+-Bäumen mit Skizzierung der Speicherstruktur von Verzweigungs- und Blatt-Knoten mit int-Werten als Schlüssel. (dabei auch Wiederholung zur Balancierung, zur Frage, warum man keine binären Bäume verwendet, und zur Frage, warum die Schlüsselwerte in den Blattknoten wiederholt werden: B+-Baum vs. B-Baum).
Index-Zugriff vs. Full Table Scan. Beispiel, bei dem Selektion mittels Index sehr viel langsamer als mittels Full Table Scan. Nachteile von Indexen. Index-Auswahl. CREATE INDEX Befehl. Laden großer Datenmengen. Indexe im Oracle Data Dictionary. Schätzung der Speichergröße von Indexen in Oracle. Zusammenfassung zum physischen Datenbank-Entwurf.
11. Donnerstag, 17.12.2015:
Kapitel 5: Weitere Speicher- und Indexstrukturen (Folie 5-1 bis 5-49)
Cluster (Index-Cluster in Oracle), Hashverfahren (Hash-Cluster in Oracle, Partitionierte Tabellen, Bitmap Indexe, Index-Organized Tables.
12. Donnerstag, 07.01.2016:
Kapitel 6: Anfrage-Auswertung (Folie 6-1 bis 6-52)
Anfrage-Auswertungspläne (QEPs: Query Evaluation/Execution Plans), Vergleich mit relationaler Algebra, Erste Beispiel-QEPs in Oracle. Pipelined/Lazy Evaluation (Vermeidung der Speicherung von Zwischenergebnissen), Beispiel-Schnittstelle mit Scan/Cursor/Iterator, Temporärer Speicher für Sortierung, Initialisierungs-Parameter für Sortierung in Oracle, Performance-Daten für Sortierung in Oracle, Mergesort, Verbesserungsmöglichkeiten für Mergesort. Join-Methoden: Nested-Loop Join, Merge-Join, Index-Join, Hash-Join.
13. Donnerstag, 14.01.2016:
Kapitel 6: Anfrage-Auswertung (Folie 6-37 bis 6-86)
Wiederholung zu Join-Verfahren und deren Komplexität. Optimizer Modes in Oracle, Wahl von Join-Methoden für Optimierungsziel schnelle Antwortzeit (erste Zeile möglichst schnell) oder hoher Durchsatz (letzte Zeile möglichst schnell), Beispiele von Oracle QEPs für Projekt-Selektion-Join Anfragen, Benutzung mehrerer Indexe für Konjunktionen und Disjunktionen, Auswertungspläne für Anfragen mit NOT EXISTS, Auswertungspläne für Aggregations-Anfragen, Auswertungspläne mit Sortierung, Zusammenfassung/Übersicht von Operatoren in Oracle QEPs. Besprechung einer Beispiel-Klausur
14. Donnerstag, 21.01.2016:
Kapitel 7: Anfrage-Optimierung (Folie 7-1 bis 7-36)
Aufgabe des Optimierers, Direkte/Naive Übersetzung von SQL in relationale Algebra, algebraische Optimierung, Anfrage-Normalisierung in Oracle (Ersetzen von SQL-Konstrukten durch andere, um syntaktische Varianten zu entfernen und nur eine SQL-Teilmenge im Optimierer behandeln zu müssen). Funktionsweise des früheren, Regel-basierten Optimierers von Oracle: Prioritätenliste von Zugriffspfaden, Auswahl eines Kandidaten-QEPs.

Planung (unverbindlich):

15. Donnerstag, 28.01.2016:
Kapitel 7: Anfrage-Optimierung (Folie 7-37 bis 7-71)
...
Kapitel 8: Backup und Recovery (Folie 8-1 bis 8-30)
...
(Reserve, Auswertung, Projekt)
...

 


Stefan Brass (brass@informatik.uni-halle.de), 23. Oktober 2015

Original URL: http://www.informatik.uni-halle.de/~brass/dbi15/ablauf.html   [XHTML 1.0 Checked]   [CSS Checked]   [Links Geprüft]   [Impressum]