Datenbanken entstanden ab etwa 1960 aus der Notwendigkeit, die logischen auf die immer größer werdenden Datenmengen zu vereinfachen und Zugriffe 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 Kleinrechnern 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 einer leichten Benut zerführung und anschaulichen Musterbeispielen, so daß auch dem interessier ten 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 daß 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 mehreren Vorlesungen zu Datenbanken, die ich an der Fachhochschule Regensburg für Informatiker gelesen habe. Doch ich will auch denNicht-Informatiker und interessierten Laien gezielt ansprechen. Dazu wird mit zahlreichen Beispielen die Theorie direkt in die Praxis umgesetzt.
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 dBase und Oracle. - 6. 6 Systemtabellen in SQL, dBase und Oracle. - 6. 7 Zusammenfassung. - 6. 8 Übungsaufgaben. - 7 Nicht-Relationale Datenbanken. - 7. 1 Invertierte Listen. - 7. 2 Hierarchische Datenbanken. - 7. 3 Hierarchisches System IMS. - 7. 4 Netzwerkartige Systeme. - 7. 5 CODASYL Datenbank UDS. - 7. 6 Übungsaufgaben. - 8 Concurrency und Recovery. - 8. 1 Recovery. - 8. 2 Zwei-Phasen-Commit. - 8. 3 Concurrency. - 8. 4 Sperrmechanismen. - 8. 5 Deadlocks. - 8. 6 Sperren in SQL-2, dBase und Oracle. - 8. 7 Zusammenfassung. - 8. 8 Übungsaufgaben. - 9 Sicherheit und Integrität. - 9. 1 Sicherheit. - 9. 2Integrität. - 9. 3 Ergänzungen zum Relationenmodell. - 9. 4 Zusammenfassung. - 9. 5 Übungsaufgaben. - 10 Eingebettetes SQL. - 10. 1 Einbettung von SQL in C. - 10. 2 Programmieren in C mit eingebettetem SQL. - 10. 3 Transaktionsbetrieb mit eingebettetem SQL. - 10. 4 SQL-Cursor. - 10. 5 Besonderheiten in dBase. - 10. 6 Zusammenfassung. - 10. 7 Übungsaufgaben. - 11 Überblick zu weiteren Themen. - 11. 1 Verteilte Datenbanken. - 11. 2 Objektorientierte Datenbanken. - 11. 3 Übungsaufgaben. - Anhang A Die Beispieldatenbank Radl. - A 1 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 den Begleitprogrammen. - Literaturhinweis.