lehrerbibliothek.deDatenschutzerklärung
Datenbanksysteme Eine Einführung 5. Auflage
Datenbanksysteme
Eine Einführung


5. Auflage

Alfons Kemper, André Eickler

Oldenbourg Schulbuchverlag
EAN: 9783486273922 (ISBN: 3-486-27392-2)
640 Seiten, paperback, 17 x 25cm, 2004, 5., aktualisierte und erweiterte Auflage

EUR 39,80
alle Angaben ohne Gewähr

Umschlagtext
Dieses Buch vermittelt eine systematische und umfassende Einführung in moderne Datenbanksysteme. Der Schwerpunkt der Darstellung liegt auf der derzeit marktbeherrschenden relationalen Datenbanktechnologie.



Folgende Aspekte werden ausführlich dargestellt: Datenmodellierung, Datenbankentwurf, SQL, Speichertechnologie, Anfrageoptimierung sowie die Transaktionsverwaltung mit Fehlerbehandlung und Mehrbenutzersynchronisation. Darauf aufbauend stellt das Buch das objektorientierte Datenmodell, die objektrelationalen Modellierungskonzepte und das deduktive Datenmodell vor.



Einen Schwerpunkt der nunmehr 5. Auflage bilden die fortschrittlichen Anwendungen von Datenbanken im Internet sowie im betriebswirtschaftlichen Data Warehouse für Decision Support-Anfragen und das Data Mining. Die Anbindung von Datenbanken an das Internet über die Java-Schnittstellen sowie die XML-Datenmodellierung, XML-Anfragesprachen und Webservices wurden neu ausgearbeitet.



Alle Konzepte werden an einer durchgehenden Beispielanwendung veranschaulicht. Jedes Kapitel enthält zahlreiche Übungsaufgaben. So eignet sich das Buch sowohl für Studenten als Lehrbuch als auch für Anwender als Referenz bzw. Anleitung zum Selbststudium.
Verlagsinfo
== Verlagsinfo zur 4. Auflage ==

Dieses Buch vermittelt eine systematische und umfassende Einführung in moderne Datenbanksysteme. Der Schwerpunkt der Darstellung liegt auf der derzeit marktbeherrschenden relationalen Datenbanktechnologie.

Folgende Aspekte werden ausführlich dargestellt: Datenmodellierung, Datenbankentwurf, SQL, Speichertechnologie, Anfrageoptimierung sowie die Transaktionsverwaltung mit Fehlerbehandlung und Mehrbenutzersynchronisation. Darauf aufbauend stellt das Buch das objektorientierte Datenmodell, die objektrelationalen Modellierungskonzepte und das deduktive Datenmodell vor. Einen neuen Schwerpunkt der nunmehr 4. Auflage bilden die fortschrittlichen Anwendungen von Datenbanken im Internet sowie im betriebswirtschaftlichen Data Warehouse für Decision-Support-Anfragen und das Data Mining. Die Anbindung von Datenbanken an das Internet über die Java-Schnittstellen sowie die XML-Datenmodellierung wurden neu ausgearbeitet.

Alle Konzepte werden an einer durchgehenden Beispielanwendung veranschaulicht. Jedes Kapitel enthält zahlreiche Übungsaufgaben. So eignet sich das Buch einerseits für Studenten als Lehrbuch und andererseits für Anwender als Referenz bzw. Anleitung zum Selbststudium.

"... eine gute Einführung und detaillierte Darstellung der Technologie ´Datenbanksystem´ ..."
(Prof. Dr. R. Buhr, Fachhochschule Frankfurt)
Inhaltsverzeichnis
Vorwort

1 Einleitung und Übersicht

1.1 Motivation für den Einsatz eines DBMS
1.2 Datenabstraktion
1.3 Datenunabhängigkeit
1.4 Datenmodelle
1.5 Datenbankschema und Ausprägung
1.6 Einordnung der Datenmodelle
1.6.1 Modelle des konzeptuellen Entwurfs
1.6.2 Logische (Implementations-)Datenmodelle
1.7 Architekturübersicht eines DBMS
1.8 Übungen
1.9 Literatur

2 Datenbankentwurf

2.1 Abstraktionsebenen des Datenbankentwurfs
2.2 Allgemeine Entwurfsmethodik
2.3 Die Datenbankentwurfsschritte
2.4 Die Anforderungsanalyse
2.4.1 Informationsstrukturanforderungen
2.4.2 Datenverarbeitungsanforderungen
2.5 Grundlagen des Entity-Relationship-Modells
2.6 Schlüssel
2.7 Charakterisierung von Beziehungstypen
2.7.1 Funktionalitäten der Beziehungen
2.7.2 Funktionalitätsangaben bei n-stelligen Beziehungen
2.7.3 Die (min, max)-Notation
2.8 Existenzabhängige Entitytypen
2.9 Generalisierung
2.10 Aggregation
2.11 Kombination von Generalisierung und Aggregation
2.12 Konsolidierung, Sichtenintegration
2.13 Konzeptuelle Modellierung mit UML
2.13.1 UML-Klassen
2.13.2 Assoziationen zwischen Klassen
2.13.3 Aggregation in UML
2.13.4 Anwendungsbeispiel: Begrenzungsflächendarstellung von Polyedern in UML
2.13.5 Generalisierung in UML-Notation
2.13.6 Die Modellierung der Universität in UML
2.13.7 Verhaltensmodellierung in UML
2.13.8 Anwendungsfall-Modellierung (use cases)
2.13.9 Interaktionsdiagramme
2.13.10 Interaktionsdiagramm zur Prüfungsdurchführung
2.14 Übungen
2.15 Literatur

3 Das relationale Modell

3.1 Definition des relationalen Modells
3.1.1 Mathematischer Formalismus
3.1.2 Schema-Definition
3.2 Umsetzung eines konzeptuellen Schemas in ein relationales Schema
3.2.1 Relationale Darstellung von Entitytypen
3.2.2 Relationale Darstellung von Beziehungen
3.3 Verfeinerung des relationalen Schemas
3.3.1 1:N-Beziehungen
3.3.2 1:1-Beziehungen
3.3.3 Relationale Modellierung der Generalisierung
3.3.4 Beispielausprägung der Universitäts-Datenbank
3.3.5 Relationale Modellierung schwacher Entitytypen
3.4 Die relationale Algebra
3.4.1 Selektion
3.4.2 Projektion
3.4.3 Vereinigung
3.4.4 Mengendifferenz
3.4.5 Kartesisches Produkt (Kreuzprodukt)
3.4.6 Umbenennung von Relationen und Attributen
3.4.7 Definition der relationalen Algebra
3.4.8 Der relationale Verbund (Join)
3.4.9 Mengendurchschnitt
3.4.10 Die relationale Division
3.4.11 Operatorbaum-Darstellung
3.5 Der Relationenkalkül
3.5.1 Beispielanfrage im relationalen Tupelkalkül
3.5.2 Quantifizierung von Tupelvariablen
3.5.3 Formale Definition des Tupelkalküls
3.5.4 Sichere Ausdrücke des Tupelkalküls
3.5.5 Der relationale Domänenkalkül
3.5.6 Beispielanfragen im Domänenkalkül
3.5.7 Sichere Ausdrücke des Domänenkalküls
3.6 Ausdruckskraft der Anfragesprachen
3.7 Übungen
3.8 Literatur

4 Relationale Anfragesprachen

4.1 Geschichte
4.2 Datentypen
4.3 Schemadefinition
4.4 Schemaveränderung
4.5 Elementare Datenmanipulation: Einfügen von Tupeln
4.6 Einfache SQL-Anfragen
4.7 Anfragen über mehrere Relationen
4.8 Aggregatfunktionen und Gruppierung
4.9 Geschachtelte Anfragen
4.10 Quantifizierte Anfragen in SQL
4.11 Nullwerte
4.12 Spezielle Sprachkonstrukte
4.13 Joins in SQL-92
4.14 Rekursion
4.15 Veränderungen am Datenbestand
4.16 Sichten
4.17 Sichten zur Modellierung von Generalisierungen
4.18 Charakterisierung update-fähiger Sichten
4.19 Einbettung von SQL in Wirtssprachen
4.20 Anfragen in Anwendungsprogrammen
4.21 JDBC: Java Database Connectivity
4.21.1 Verbindungsaufbau zu einer Datenbank
4.21.2 Resultset-Programmbeispiel
4.21.3 Vorübersetzung von SQL-Ausdrücken
4.22 SQLJ: Eine Einbettung von SQL in Java
4.23 Query by Example
4.24 Übungen
4.25 Literatur

5 Datenintegrität

5.1 Referentielle Integrität
5.2 Gewährleistung referentieller Integrität
5.3 Referentielle Integrität in SQL
5.4 Überprüfung statischer Integritätsbedingungen
5.5 Das Universitätsschema mit Integritätsbedingungen
5.6 Komplexere Integritätsbedingungen
5.7 Trigger
5.8 Übungen
5.9 Literatur

6 Relationale Entwurfstheorie

6.1 Funktionale Abhängigkeiten
6.1.1 Konventionen zur Notation
6.1.2 Einhaltung einer funktionalen Abhängigkeit
6.2 Schlüssel
6.3 Bestimmung funktionaler Abhängigkeiten
6.3.1 Kanonische Überdeckung
6.4 'Schlechte' Relationenschemata
6.4.1 Die Updateanomalien
6.4.2 Einfügeanomalien
6.4.3 Löschanomalien
6.5 Zerlegung (Dekomposition) von Relationen
6.5.1 Verlustlosigkeit
6.5.2 Kriterien für die Verlustlosigkeit einer Zerlegung
6.5.3 Abhängigkeitsbewahrung
6.6 Erste Normalform
6.7 Zweite Normalform
6.8 Dritte Normalform
6.9 Boyce-Codd Normalform
6.10 Mehrwertige Abhängigkeiten
6.11 Vierte Normalform
6.12 Zusammenfassung
6.13 Übungen
6.14 Literatur

7 Physische Datenorganisation

7.1 Speichermedien
7.2 Speicherarrays: RAID
7.3 Der Datenbankpuffer
7.4 Abbildung von Relationen auf den Sekundärspeicher
7.5 Indexstrukturen
7.6 ISAM
7.7 B-Bäume
7.8 (B+)-Bäume
7.9 Präfix-(B+)-Bäume
7.10 Hashing
7.11 Erweiterbares Hashing
7.12 Mehrdimensionale Indexstrukturen
7.13 Ballung logisch verwandter Datensätze
7.14 Unterstützung eines Anwendungsverhaltens
7.15 Physische Datenorganisation in SQL
7.16 Übungen
7.17 Literatur

8 Anfragebearbeitung

8.1 Logische Optimierung
8.1.1 Äquivalenzen in der relationalen Algebra
8.1.2 Anwendung der Transformationsregeln
8.2 Physische Optimierung
8.2.1 Implementierung der Selektion
8.2.2 Implementierung von binären Zuordnungsoperatoren
8.2.3 Gruppierung und Duplikateliminierung
8.2.4 Projektion und Vereinigung
8.2.5 Zwischenspeicherung
8.2.6 Übersetzung der logischen Algebra
8.3 Kostenmodelle
8.3.1 Selektivitäten
8.3.2 Kostenabschätzung für die Selektion
8.3.3 Kostenabschätzung für den Join
8.3.4 Kostenabschätzung für die Sortierung
8.4 'Tuning' von Datenbankanfragen
8.5 Übungen
8.6 Literatur

9 Transaktionsverwaltung

9.1 Begriffsbildung
9.2 Anforderungen an die Transaktionsverwaltung
9.3 Operationen auf Transaktions-Ebene
9.4 Abschluß einer Transaktion
9.5 Eigenschaften von Transaktionen
9.6 Transaktionsverwaltung in SQL
9.7 Zustandsübergänge einer Transaktion
9.8 Literatur
10 Fehlerbehandlung
10.1 Fehlerklassifikation
10.1.1 Lokaler Fehler einer Transaktion
10.1.2 Fehler mit Hauptspeicherverlust
10.1.3 Fehler mit Hintergrundspeicherverlust
10.2 Die Speicherhierarchie
10.2.1 Ersetzung von Puffer-Seiten
10.2.2 Einbringen von Änderungen einer Transaktion
10.2.3 Einbringstrategie
10.2.4 Hier zugrunde gelegte Systemkonfiguration
10.3 Protokollierung von Änderungsoperationen
10.3.1 Struktur der Log-Einträge
10.3.2 Beispiel einer Log-Datei
10.3.3 Logische oder physische Protokollierung
10.3.4 Schreiben der Log-Information
10.3.5 Das WAL-Prinzip
10.4 Wiederanlauf nach einem Fehler
10.4.1 Analyse des Logs
10.4.2 Redo-Phase
10.4.3 Undo-Phase
10.5 Fehlertoleranz des Wiederanlaufs
10.6 Lokales Zurücksetzen einer Transaktion
10.7 Partielles Zurücksetzen einer Transaktion
10.8 Sicherungspunkte
10.8.1 Transaktionskonsistente Sicherungspunkte
10.8.2 Aktionskonsistente Sicherungspunkte
10.8.3 Unscharfe (fuzzy) Sicherungspunkte
10.9 Recovery nach einem Verlust der materialisierten Datenbasis
10.10 Übungen
10.11 Literatur

11 Mehrbenutzersynchronisation

11.1 Fehler bei unkontrolliertem Mehrbenutzerbetrieb
11.1.1 Verlorengegangene Änderungen (lost update)
11.1.2 Abhängigkeit von nicht freigegebenen Änderungen
11.1.3 Phantomproblem
11.2 Serialisierbarkeit
11.2.1 Beispiele serialisierbarer Ausführungen (Historien)
11.2.2 Nicht serialisierbare Historie
11.3 Theorie der Serialisierbarkeit
11.3.1 Definition einer Transaktion
11.3.2 Historie (Schedule)
11.3.3 Äquivalenz zweier Historien
11.3.4 Serialisierbare Historien
11.3.5 Kriterien für Serialisierbarkeit
11.4 Eigenschaften von Historien bezüglich der Recovery
11.4.1 Rücksetzbare Historien
11.4.2 Historien ohne kaskadierendes Rücksetzen
11.4.3 Strikte Historien
11.4.4 Beziehungen zwischen den Klassen von Historien
11.5 Der Datenbank-Scheduler
11.6 Sperrbasierte Synchronisation
11.6.1 Zwei Sperrmodi
11.6.2 Zwei-Phasen-Sperrprotokoll
11.6.3 Kaskadierendes Rücksetzen (Schneeballeffekt)
11.7 Verklemmungen (Deadlocks)
11.7.1 Erkennung von Verklemmungen
11.7.2 Preclaiming zur Vermeidung von Verklemmungen
11.7.3 Verklemmungsvermeidung durch Zeitstempel
11.8 Hierarchische Sperrgranulate
11.9 Einfüge- und Löschoperationen, Phantome
11.10 Zeitstempel-basierende Synchronisation
11.11 Optimistische Synchronisation
11.12 Synchronisation von Indexstrukturen
11.13 Mehrbenutzersynchronisation in SQL-92
11.14 Übungen
11.15 Literatur

12 Sicherheitsaspekte

12.1 Discretionary Access Control
12.2 Zugriffskontrolle in SQL
12.2.1 Identifikation und Authentisierung
12.2.2 Autorisierung und Zugriffskontrolle
12.2.3 Sichten
12.2.4 Auditing
12.3 Verfeinerung des Autorisierungsmodells
12.3.1 Implizite Autorisierung von Subjekten
12.3.2 Implizite Autorisierung von Operationen
12.3.3 Implizite Autorisierung von Objekten
12.3.4 Implizite Autorisierung entlang einer Typhierarchie
12.4 Mandatory Access Control
12.5 Multilevel-Datenbanken
12.6 Kryptographie
12.6.1 Der Data Encryption Standard
12.6.2 Public-Key Kryptographie
12.7 Zusammenfassung
12.8 Übungen
12.9 Literatur

13 Objektorientierte Datenbanken

13.1 Bestandsaufnahme relationaler Datenbanksysteme
13.2 Vorteile der objektorientierten Datenmodellierung
13.3 Der ODMG-Standard
13.4 Eigenschaften von Objekten
13.4.1 Objektidentität
13.4.2 Typ eines Objekts
13.4.3 Wert eines Objekts
13.5 Definition von Objekttypen
13.5.1 Attribute
13.5.2 Beziehungen
13.5.3 Typeigenschaften: Extensionen und Schlüssel
13.6 Modellierung des Verhaltens: Operationen
13.7 Vererbung und Subtypisierung
13.7.1 Terminologie
13.7.2 Einfache und Mehrfachvererbung
13.8 Beispiel einer Typhierarchie
13.9 Verfeinerung (Spezialisierung) und spätes Binden von Operationen
13.10 Mehrfachvererbung
13.11 Die Anfragesprache OQL
13.11.1 Einfache Anfragen
13.11.2 Geschachtelte Anfragen und Partitionierung
13.11.3 Pfadausdrücke
13.11.4 Erzeugung von Objekten
13.11.5 Operationsaufruf
13.12 C++-Einbettung
13.12.1 Objektidentität
13.12.2 Objekterzeugung und Ballung
13.12.3 Einbettung von Anfragen
13.13 Übungen
13.14 Literatur

14 Erweiterbare und objekt-relationale Datenbanken

14.1 Übersicht über die objekt-relationalen Konzepte
14.2 Large Objects (LOBs)
14.3 Distinct Types: Einfache benutzerdefinierte Datentypen
14.4 Table Functions
14.4.1 Nutzung einer textit {Table Function} in Anfragen
14.4.2 Implementierung einer textit {Table Function}
14.5 Benutzerdefinierte strukturierte Objekttypen
14.6 Geschachtelte Objekt-Relationen
14.7 Vererbung von SQL-Objekttypen
14.8 Komplexe Attribut-Typen
14.9 Übungen
14.10 Literatur

15 Deduktive Datenbanken

15.1 Terminologie
15.2 Datalog
15.3 Eigenschaften von Datalog-Programmen
15.3.1 Rekursivität
15.3.2 Sicherheit von Datalog-Regeln
15.4 Auswertung von nicht-rekursiven Datalog-Programmen
15.4.1 Auswertung eines Beispielprogramms
15.4.2 Auswertungs-Algorithmus
15.5 Auswertung rekursiver Regeln
15.6 Inkrementelle (semi-naive) Auswertung rekursiver Regeln
15.7 Bottom-Up oder Top-Down Auswertung
15.8 Negation im Regelrumpf
15.8.1 Stratifizierte Datalog-Programme
15.8.2 Auswertung von Regeln mit Negation
15.8.3 Ein etwas komplexeres Beispiel
15.9 Ausdruckskraft von Datalog
15.10 Übungen
15.11 Literatur

16 Verteilte Datenbanken

16.1 Terminologie und Abgrenzung
16.2 Entwurf verteilter Datenbanken
16.3 Horizontale und vertikale Fragmentierung
16.3.1 Horizontale Fragmentierung
16.3.2 Abgeleitete horizontale Fragmentierung
16.3.3 Vertikale Fragmentierung
16.3.4 Kombinierte Fragmentierung
16.3.5 Allokation für unser Beispiel
16.4 Transparenz in verteilten Datenbanken
16.4.1 Fragmentierungstransparenz
16.4.2 Allokationstransparenz
16.4.3 Lokale Schema-Transparenz
16.5 Anfrageübersetzung und -optimierung in VDBMS
16.5.1 Anfragebearbeitung bei horizontaler Fragmentierung
16.5.2 Anfragebearbeitung bei vertikaler Fragmentierung
16.6 Join-Auswertung in VDBMS
16.6.1 Join-Auswertung ohne Filterung
16.6.2 Join-Auswertung mit Filterung
16.7 Transaktionskontrolle in VDBMS
16.8 Mehrbenutzersynchronisation in VDBMS
16.8.1 Serialisierbarkeit
16.8.2 Das Zwei-Phasen-Sperrprotokoll in VDBMS
16.9 Deadlocks in VDBMS
16.9.1 Erkennung von Deadlocks
16.9.2 Deadlock-Vermeidung
16.10 Synchronisation bei replizierten Daten
16.11 Übungen
16.12 Literatur

17 Betriebliche Anwendungen: OLTP, Data Warehouse, Data Mining

17.1 SAP R/3: Ein betriebswirtschaftliches Datenbankanwendungssystem
17.1.1 Architektur von SAP R/3
17.1.2 Datenmodell und Schema von SAP R/3
17.1.3 ABAP/4
17.1.4 Transaktionen in SAP R/3
17.2 Data Warehouse, Decision-Support, OLAP
17.2.1 Datenbankentwurf für das Data Warehouse
17.2.2 Anfragen im Sternschema: Star Join
17.2.3 Roll-Up/Drill-Down-Anfragen
17.2.4 Flexible Auswertungsmethoden
17.2.5 Materialisierung von Aggregaten
17.2.6 Der cube-Operator
17.2.7 Wiederverwendung materialisierter Aggregate
17.2.8 Bitmap-Indexe für OLAP-Anfragen
17.2.9 Auswertungsalgorithmen für komplexe OLAP-Anfragen
17.2.10 Data Warehouse-Architekturen
17.3 Data Mining
17.3.1 Klassifikation von Objekten
17.3.2 Assoziationsregeln
17.3.3 Der Á Priori-Algorithmus
17.3.4 Bestimmung der Assoziationsregeln
17.3.5 Cluster-Bestimmung
17.4 Übungen
17.5 Literatur

18 Internet-Datenbankanbindungen

18.1 HTML- und HTTP-Grundlagen
18.1.1 HTML: Die Hypertext-Sprache des World Wide Web
18.1.2 Adressierung von Web-Dokumenten
18.1.3 Client/Server-Architektur des World Wide Web
18.1.4 HTTP: Das HyperText Transfer Protokoll
18.1.5 HTTPS
18.2 Web-Datenbank-Anbindung via Servlets
18.2.1 Beispiel-Servlet
18.3 Java Server Pages / Active Server Pages
18.3.1 JSP/HTML-Seite mit Java-Code
18.3.2 HTML-Seite mit Java-Bean-Aufruf
18.3.3 Die Java-Bean Komponente VorlesungenBean
18.3.4 Sokrates' Homepage
18.4 Datenbankanbindung via Java-Applets
18.5 Übungen
18.6 Literatur

19 XML-Datenmodellierung und Web-Services

19.1 XML-Datenmodellierung
19.1.1 Schema oder kein Schema
19.1.2 Rekursive Schemata
19.1.3 Universitätsinformation in XML-Format
19.1.4 XML-Namensräume
19.1.5 XML Schema: Eine Schemadefinitionssprache
19.1.6 Verweise (Referenzen) in XML-Daten
19.2 XQuery: Eine XML-Anfragesprache
19.2.1 Pfadausdrücke
19.2.2 Verkürzte XPath-Syntax
19.2.3 Beispiel-Pfadausdrücke in verkürzter Syntax
19.2.4 Anfragesyntax von XQuery
19.2.5 Geschachtelte Anfragen
19.2.6 Joins in XQuery
19.2.7 Join-Prädikat im Pfadausdruck
19.2.8 Das let-Konstrukt
19.2.9 Dereferenzierung in FLWOR-Ausdrücken
19.2.10 Rekursive Anfragen
19.3 Web-Services
19.3.1 Erstellen und Nutzen eines Web-Services im Überblick
19.3.2 Das Auffinden von Diensten
19.3.3 Ein Beispiel-Web-Service
19.3.4 Definition der Web-Service Schnittstellen
19.3.5 Nachrichtenformat für die Interaktion mit Web-Services
19.3.6 Implementierung des Web-Services
19.3.7 Aufruf des Web-Services
19.4 Übungen
19.5 Literatur

20 Leistungsbewertung

20.1 Überblick über Datenbanksystem-Benchmarks
20.2 Der TPC-C Benchmark
20.3 Die TPC-H und TPC-R (früher TPC-D) Benchmarks
20.4 Der OO7 Benchmark für oo-Datenbanken
20.5 Der TPC-W Benchmark
20.6 Übungen
20.7 Literatur

Literaturverzeichnis

Index