Datenbanken entstanden ab etwa 1960 aus der Notwendigkeit, die logischen Zugriffe auf die immer größer werdenden Datenmengen zu vereinfachen und zu normieren. Wurden diese Datenbanken über mehr als zwei Jahrzehnte hin weg ausschließlich auf Großrechnern eingesetzt, so haben sie inzwischen ihren Siegeszug auch auf kleinen Rechnern angetreten. Ermöglicht wurde dies aus dreierlei Gründen: erstens durch die enorm gestiegene Rechnerleistung der letzten Jahre, zweitens durch die Verwendung relationaler Datenbanken und drittens durch die Einführung grafischer Oberflächen. Die Anfang der 70er Jahre entwickelten relationalen Datenbanken ermögli chen eine einfache Erstellung und Programmierung. Grafische Oberflächen unterstützen den Anwender und Datenbankdesigner dank leichter Benutzer führung und anschaulicher Musterbeispiele, so dass auch dem interessierten Laien diese Form der Datenhaltung mit all ihren Möglichkeiten offen steht. Der Laie sei aber davor gewarnt, größere Datenbanken ohne theoretische Grundkenntnisse selbst zu erstellen. Denn hier leitet sich der Datenbankent wurf in der Regel nicht mehr direkt aus der AufgabensteIlung ab. Doch nur ein guter Entwurf garantiert übersichtliche und optimale Zugriffe und ermöglicht je nach Bedarf Ergänzungen und Erweiterungen der Datenbank. Auch wird nur dadurch die Konsistenz und Integrität der Datenbank ermöglicht, so dass feh lerhafte, widersprüchliche und nicht mehr zugreifbare Datenbestände verhin dert werden. Grundlagen zu Datenbankentwurf und -programmierung sollten für den Datenbankprogrammierer daher selbstverständlich sein. Dieses Buch entstand aus Vorlesungen zu Datenbanken, die ich für Infor matiker an der Fachhochschule Regensburg gelesen habe. Doch ich will auch denNicht-Informatiker und interessierten Laien gezielt ansprechen, indem mittels zahlreicher Beispiele die Theorie direkt in die Praxis umgesetzt wird.
Inhaltsverzeichnis
1 Datenorganisation.- 1.1 Überblick.- 1.2 Speicherung von Daten.- 1.3 Speicherung auf adressierbarem Speicher.- 1.4 Einstufige physische Datenstrukturen.- 1.5 Mehrstufige Datenstrukturen.- 1.6 Index Sequentielle Dateien.- 1.7 Hash-Verfahren.- 1.8 Primär- und Sekundärschlüssel.- 1.9 Übungsaufgaben.- 2 Übersicht über Datenbanken.- 2.1 Definition einer Datenbank.- 2.2 Anforderungen an eine Datenbank.- 2.3 Der Datenbank-Administrator.- 2.4 Datenbankmodelle.- 2.5 Transaktionen.- 2.6 Übungsaufgaben.- 3 Das Relationenmodell.- 3.1 Beispiel zu relationalen Datenbanken.- 3.2 Relationale Datenstrukturen.- 3.3 Relationale Integritätsregeln.- 3.4 Relationale Algebra.- 3.5 Zusammenfassung.- 3.6 Übungsaufgaben.- 4 Die Datenbankzugriffssprache SQL.- 4.1 Der Abfragebefehl Select.- 4.2 Manipulationsbefehle in SQL.- 4.3 Relationale Algebra und SQL.- 4.4 Zusammenfassung.- 4.5 Übungsaufgaben.- 5 Datenbankdesign.- 5.1 Normalformen.- 5.2 Entity-Relationship-Modell.- 5.3 Zusammenfassung.- 5.4 Übungsaufgaben.- 6 Die Datenbankbeschreibungssprache SQL.- 6.1 Relationen erzeugen, ändern und löschen.- 6.2 Erzeugen und Entfernen eines Index.- 6.3 Sichten (Views).- 6.4 Kataloge und Schemata.- 6.5 Besonderheiten in Oracle und MS-Access.- 6.6 Systemtabellen in SQL und Oracle.- 6.7 Zusammenfassung.- 6.8 Übungsaufgaben.- 7 Concurrency und Recovery.- 7.1 Recovery.- 7.2 Zwei-Phasen-Commit.- 7.3 Concurrency.- 7.4 Sperrmechanismen.- 7.5 Deadlocks.- 7.6 Sperren in SQL-2, MS-Access und Oracle.- 7.7 Zusammenfassung.- 7.8 Übungsaufgaben.- 8 Sicherheit und Integrität.- 8.1 Sicherheit.- 8.2 Integrität.- 8.3 Ergänzungen zum Relationenmodell.- 8.4 Zusammenfassung.- 8.5 Übungsaufgaben.- 9 Eingebettetes SQL.- 9.1 Einbettung von SQL in C++.- 9.2 Programmieren in C++ mit eingebettetem SQL.- 9.3Transaktionsbetrieb mit eingebettetem SQL.- 9.4 SQL-Cursor.- 9.5 Besonderheiten in MS-Access.- 9.6 Zusammenfassung.- 9.7 Übungsaufgaben.- 10 Nicht-Relationale Datenbanken.- 10.1 Invertierte Listen.- 10.2 Hierarchische Datenbanken.- 10.3 Hierarchisches System IMS.- 10.4 Netzwerkartige Systeme.- 10.5 CODASYL Datenbank UDS.- 10.6 Übungsaufgaben.- 11 Moderne Datenbankkonzepte.- 11.1 Verteilte Datenbanken.- 11.2 Objektorientierte Datenbanken.- 11.3 Übungsaufgaben.- Anhang A Die Beispieldatenbank Radl.- A1 Die Idee der Radl-Datenbank.- A2 Entity-Relationship-Modell der Radl-Datenbank.- A3 Die Basisrelationen der Radl-Datenbank.- A4 Deklaration der Radl-Datenbank.- A5 Zugriffe auf die Radl-Datenbank.- Anhang B SQL-Syntaxdiagramme.- Anhang C Lösungen zu den Übungsaufgaben.- Anhang D Hinweise zu Begleitprogrammen.- Literaturhinweis.