Datenbanksysteme
Vorlesung im SS '99
[Version vom 20. Juli 1999]
Oliver Vornberger
Praktische Informatik
Fachbereich Mathematik/Informatik
Universität Osnabrück
Literatur
Danksagung
Einführung
Definition
Motivation
Datenabstraktion
Transformationsregeln
Datenunabhängigkeit
Modellierungskonzepte
Architektur
Konzeptuelle Modellierung
Das Entity-Relationship-Modell
Schlüssel
Charakterisierung von Beziehungstypen
Die (
min, max
)-Notation
Existenzabhängige Entity-Typen
Generalisierung
Aggregation
Konsolidierung
Logische Datenmodelle
Das Hierarchische Datenmodell
Das Netzwerk-Datenmodell
Das Relationale Datenmodell
Das Objektorientierte Datenmodell
Physikalische Datenorganisation
Grundlagen
Heap-File
Hashing
Erweiterbares Hashing
ISAM
B*-Baum
Sekundär-Index
Mehrdimensionale Suchstrukturen
Problemstellung
k-d-Baum
Gitterverfahren mit konstanter Gittergröße
Grid File
Aufspalten und Mischen beim Grid File
Verwaltung geometrischer Objekte
Das Relationale Modell
Definition
Umsetzung in ein relationales Schema
Verfeinerung des relationalen Schemas
Abfragesprachen
Relationenalgebra
Relationenkalkül
Der relationale Tupelkalkül
Der relationale Domänenkalkül
Relationale Anfragesprachen
Oracle Datenbank
SQL
Datentypen in Oracle
Schemadefinition
Aufbau einer SQL-Query zum Anfragen
SQL-Queries zum Anfragen
SQL-Queries zum Einfügen, Modifizieren und Löschen
SQL-Queries zum Anlegen von Sichten
Query by Example
Datenintegrität
Grundlagen
Referentielle Integrität
Referentielle Integrität in SQL
Statische Integrität in SQL
Trigger
Datenbankapplikationen
MS-Access
PL/SQL
Embedded SQL
JDBC
Cold Fusion
Relationale Entwurfstheorie
Funktionale Abhängigkeiten
Schlüssel
Bestimmung funktionaler Abhängigkeiten
Schlechte Relationenschemata
Zerlegung von Relationen
Erste Normalform
Zweite Normalform
Dritte Normalform
Transaktionsverwaltung
Begriffe
Operationen auf Transaktionsebene
Abschluß einer Transaktion
Eigenschaften von Transaktionen
Transaktionsverwaltung in SQL
Zustandsübergänge einer Transaktion
Mehrbenutzersynchronisation
Multiprogramming
Fehler bei unkontrolliertem Mehrbenutzerbetrieb
Lost Update
Dirty Read
Phantomproblem
Serialisierbarkeit
Theorie der Serialisierbarkeit
Algorithmus zum Testen auf Serialisierbarkeit:
Sperrbasierte Synchronisation
Verklemmungen (Deadlocks)
Hierarchische Sperrgranulate
Zeitstempelverfahren
Recovery
Fehlerklassen
Lokaler Fehler einer Transaktion
Fehler mit Hauptspeicherverlust
Fehler mit Hintergrundspeicherverlust
Die Speicherhierarchie
Ersetzen von Pufferseiten
Zurückschreiben von Pufferseiten
Einbringstrategie
Protokollierung der Änderungsoperationen
Struktur der Log-Einträge
Beispiel einer Log-Datei
Logische versus physische Protokollierung
Schreiben der Log-Information
WAL-Prinzip
Wiederanlauf nach einem Fehler
Lokales Zurücksetzen einer Transaktion
Sicherungspunkte
Verlust der materialisierten Datenbasis
Sicherheit
Legislative Maßnamen
Organisatorische Maßnahmen
Authentisierung
Zugriffskontrolle
Auditing
Kryptographie
Public Key Systems
Das RSA-Verfahren
Korrektheit des RSA-Verfahrens
Effizienz des RSA-Verfahrens
Sicherheit des RSA-Verfahrens
Implementation des RSA-Verfahrens
Anwendungen des RSA-Verfahrens
Objektorientierte Datenbanken
Schwächen relationaler Systeme
Vorteile der objektorientierten Modellierung
Der ODMG-Standard
Eigenschaften von Objekten
Definition von Attributen
Definition von Beziehungen
Extensionen und Schlüssel
Modellierung des Verhaltens
Vererbung
Beispiel einer Typhierarchie
Verfeinerung und spätes Binden
Mehrfachvererbung
Die Anfragesprache OQL
C++-Einbettung
Data Warehouse
Datenbankentwurf für Data Warehouse
Star Join
Roll-Up/Drill-Down-Anfragen
Materialisierung von Aggregaten
Der Cube-Operator
Data Warehouse-Architekturen
Data Mining