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:
- ...
Planung (unverbindlich, wird noch aktualisiert):
- 1. Donnerstag, 14.10.2021:
- Kapitel 1: Einführung
(Folie 1-1 bis 1-35)
Dienste von Datenbank-Managementsystemen. Physische Datenunabhängigkeit. 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, 21.10.2021:
- Kapitel 1: Einführung
(Folie 1-35 bis 1-64)
Aufbau des Oracle Data Dictionaries. Schema-Information im Oracle Data Dictionary. - 3. Donnerstag, 28.10.2021:
- Kapitel 2: Basic Oracle Architecture and Administration
(Folie 2-1 bis 2-32)
Zugriffsrechte (Objekt- und Systemrechte bei Oracle), Benutzer anlegen, Benutzer-Identifikation, Tablespaces, Quotas, Auditing. - 4. Donnerstag, 04.11.2021:
- Kapitel 2: Basic Oracle Architecture and Administration
(Folie 2-33 bis 2-54, 2-60)
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. Übersicht zur Oracle Architektur: Prozesse und Dateien. - 5. Donnerstag, 11.11.2021:
- Kapitel 2: Basic Oracle Architecture and Administration
(Folie 2-52 bis 2-88)
Oracle Architektur: Prozesse, Haupspeicherbereiche, Puffer, Oracle hoch- und runterfahren. - Kapitel 4: Disks
(Folie 4-1 bis 4-13)
Aufbau und Funktionsweise von Magnetplatten. - 6. Donnerstag, 18.11.2021:
- Kapitel 4: Disks
(Folie 4-10 bis 4-36)
Aufbau und Funktionsweise von Magnetplatten. Diskussion zu Stromausfällen und partiell geschriebenen Blöcken. Drei Komponenten der Zugriffszeit (Seek Time, Latency Time, Transfer Time), Konsequenzen für performante Anwendung, Historische Entwicklung der Leistungsparameter, RAID-Systeme, RAID-Level 0, 1, 10. - 7. Donnerstag, 25.11.2021:
- Kapitel 4: Disks
(Folie 4-30 bis 4-67)
RAID-Systeme, RAID-Level 0, 1, 10, 4, 5. Tablespaces in Oracle. - Kapitel 5: The Buffer Cache
(Folie 5-1 bis 5-12)
Charakteristiken verschiedener Speichermedien, Pufferung von Blöcken im Hauptspeicher, Hit Ratio. - 8. Donnerstag, 02.12.2021:
- Kapitel 5: The Buffer Cache
(Folie 5-12 bis 5-50)
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. Die Fünf-Minuten Regel. - 9. Donnerstag, 09.12.2021:
- Kapitel 6: Storage of Relations I: Segments (Files)
(Folie 6-1 bis 6-36)
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. - 10. Donnerstag, 16.12.2021:
- Kapitel 7: Storage of Relations II: Sets of Bytestrings
(Folie 7-1 bis 7-17)
Row Manager, Speicherung von Relationen als Heap-Datei, Einfachster Fall: Implementierung von Zeilen fester Länge. - 11. Donnerstag, 13.01.2022:
- Kapitel 3: Physische Speicherung von Relationen
(Folie 3-1 bis 3-47)
Speicherung von Relationen als Heap-Datei, Zeiger auf Tupel: ROWID/TID. - Kapitel 3: Physische Speicherung von Relationen
(Folie 3-36 bis 3-69, 3-95 bis 3-108)
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. Vermeidung migrierter Zeilen mit PCTFREE, Implementierung des Full Table Scan (Hight Water Mark), Reorganisation von Tabellen, Zeilenformat von Oracle, Datenformate von Oracle, Berechnung von Zeilenlänge und Speicherplatzbedarf von Relationen. - Kapitel 3: Physische Speicherung von Relationen
(Folie 3-70 bis 3-89)
Veraltung von Listen von Bl"ocken mit freien Speicherplatz, PCTUSED, Automatic Segment Space Management, Wiederholung/Zusammenfassung zur CREATE TABLE Syntax mit Speicherparametern, ANALYZE TABLE, Bedeutung für Optimierer. - Kapitel 4: B-Baum Indexe
(Folie 4-1 bis 4-26)
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. Asymptotische Komplexität von Suche/Einfügung/Löschung (logarithmisch). - Kapitel 4: B-Baum Indexe
(Folie 4-27 bis 4-53)
Berechnung von Höhe am Beispiel, Diskussion der Nutzung von Präfixen der Suchschlüssel ("rear compression"), Indexe mit mehreren ROWIDs zu einem Datenwert. Verkettung der Blattknoten. 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. Index-Zugriff vs. Full Table Scan. - 12. Donnerstag, 20.01.2022:
- Kapitel 4: B-Baum Indexe
(Folie 4-54 bis 4-100)
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. - Kapitel 5: Weitere Speicher- und Indexstrukturen
(Folie 5-1 bis 5-49, Nur kurzer Überblick)
Cluster (Index-Cluster in Oracle), Hashverfahren (Hash-Cluster in Oracle), Partitionierte Tabellen, Bitmap Indexe, Index-Organized Tables. - Kapitel 6: Anfrage-Auswertung
(Folie 6-1 bis 6-34)
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, - 13. Donnerstag, 27.01.2022:
- Kapitel 6: Anfrage-Auswertung
(Folie 6-35 bis 6-86)
Mergesort, Verbesserungsmöglichkeiten für Mergesort. Join-Methoden: Nested-Loop Join, Merge-Join, Index-Join, Hash-Join. 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. - Kapitel 7: Anfrage-Optimierung
(Folie 7-1 bis 7-16)
Aufgabe des Optimierers, Direkte/Naive Übersetzung von SQL in relationale Algebra, algebraische Optimierung, Äquivalenzen der Relationenalgebra, Heuristik: Selektionen nach unten schieben (vor Joins), Beispiel, in dem das gerade falsch ist, lineare Join-Reihenfolgen vs. "bushy joins". - 14. Donnerstag, 03.02.2022:
- Kapitel 7: Anfrage-Optimierung
(Folie 7-17 bis 7-71)
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. Kostenbasierte Optimierung: Eingabedaten, Schätzung der Selektivität verschiedener Bedingungen, Histogramme in Oracle, Kostenschätzung für Full Table Scans, Index Scans, Zeilenzugriff über ROWID (Dereferenzierung), Nested Loop Join, Optimizer Hints in Oracle, Zusammenfassung. - 15. Donnerstag, 10.02.2022:
- ...
Prof. Dr. Stefan Brass | Impressum |