Inhaltsverzeichnis 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 3 3.1 3.2 Übersicht über Datenbanken Definition einer Datenbank .................................................................... Anforderungen an eine Datenbank ......................................................... Der Datenbank-Administrator ................................................................ Datenbankmodelle ................................................................................. Relationale Datenbanken ........................................................................ Objektorientierte Datenbanken ............................................................... Hierarchische und netzwerkartige Datenbanken ..................................... Moderne Entwicklungen ........................................................................ Transaktionen......................................................................................... Das Konsistenzmodell ACID ................................................................. Übungsaufgaben..................................................................................... Literatur ................................................................................................. Das Relationenmodell Beispiel zu relationalen Datenbanken .................................................... Relationale Datenstrukturen ................................................................... Primärschlüssel ...................................................................................... Relationale Integritätsregeln .................................................................. Entitäts-Integritätsregel .......................................................................... Referenz-Integritätsregel ........................................................................ Relationale Algebra................................................................................ Relationale Operatoren........................................................................... Vereinigung, Schnitt und Differenz ........................................................ Projektion und Restriktion ..................................................................... Kreuzprodukt, Verbund und Division..................................................... Eigenschaften der relationalen Operatoren ............................................. Zusammenfassung .................................................................................. Übungsaufgaben..................................................................................... Literatur ................................................................................................. Datenbankdesign Normalformen ........................................................................................ Erste Normalform .................................................................................. Funktionale Abhängigkeit ...................................................................... Zweite Normalform ................................................................................ Dritte Normalform nach Boyce und Codd .............................................. Dritte Normalform nach Codd ................................................................ Vierte Normalform ................................................................................. Fünfte Normalform ................................................................................ Zusammenfassung .................................................................................. Entity-Relationship-Modell .................................................................... Entitäten ................................................................................................. Beziehungen........................................................................................... 3.3 3.4 4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14 Beziehungsrelationen ............................................................................. Fremdschlüsseleigenschaften ................................................................. Schwache Entitäten und Subtypen .......................................................... Zusammenfassung .................................................................................. Übungsaufgaben..................................................................................... Literatur ................................................................................................. Die Zugriffssprache SQL Der Abfragebefehl Select ....................................................................... Der Aufbau des Select-Befehls .............................................................. Die From-Klausel ................................................................................... Die Select-Klausel ................................................................................. Die Where-Klausel ................................................................................. Die Group-By- und Having-Klausel ....................................................... Union, Except und Intersect ................................................................... Der Verbund (Join) ................................................................................ Der äußere Verbund (Outer Join) ........................................................... Die Order-By-Klausel ............................................................................ Nullwerte und die Coalesce-Funktion .................................................... Arbeitsweise des Select-Befehls ............................................................. Mutationsbefehle in SQL ....................................................................... Transaktionsbetrieb mit SQL ................................................................. Relationale Algebra und SQL ................................................................ Zusammenfassung .................................................................................. Übungsaufgaben..................................................................................... Literatur ................................................................................................. Die Beschreibungssprache SQL Relationen erzeugen ............................................................................... Datentypen ............................................................................................. Spalten- und Tabellenbedingungen ........................................................ Relationen ändern und löschen ............................................................... Temporäre Relationen ............................................................................ Sichten (Views) ...................................................................................... Zusicherungen (Assertions) .................................................................... Gebiete ................................................................................................... Trigger ................................................................................................... Sequenzen .............................................................................................. Zugriffsrechte ........................................................................................ Zugriffsschutz ........................................................................................ Integrität ................................................................................................ Aufbau einer Datenbank ......................................................................... Information Schema ............................................................................... Datenbanken und Oracle ........................................................................ Datenbanken und SQL Server ................................................................ Datenbanken und MySQL ...................................................................... Einrichten und Verwalten von Datenbanken .......................................... Oracle Datenbanken ............................................................................... SQL Server Datenbanken ....................................................................... MySQL Datenbanken ............................................................................. Zusammenfassung .................................................................................. 5.15 5.16 Übungsaufgaben..................................................................................... Literatur ................................................................................................. 6 6.1 6.2 Datenbankprogrammierung mit PHP Arbeiten mit PHP ................................................................................... Überblick zu Webserver, HTML und PHP ............................................. Internet und Webserver .......................................................................... Hypertext Markup Language (HTML) ................................................... PHP ........................................................................................................ Felder in PHP: eine kurze Übersicht ...................................................... Erste Datenbankzugriffe ......................................................................... Datenbankzugriff mit PHP ..................................................................... Die Datenbankschnittstelle PDO ............................................................ Erster PHP-Zugriff auf Datenbanken ..................................................... Einführung in die Fehlerbehandlung ...................................................... Auslesen mehrerer Datenzeilen .............................................................. Komplexere Datenbankzugriffe .............................................................. Sessionvariable ...................................................................................... Mehrfache Lesezugriffe auf Datenbanken .............................................. Eine GUI zur Eingabe von SQL-Befehlen .............................................. 6.3 6.4 6.5 6.6 6.7 6.8 7 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 7.10 8 8.1 8.2 Die Klasse PDOException ..................................................................... Transaktionsbetrieb mit PHP .................................................................. Arbeiten mit großen Binärdaten ............................................................. Verwendung des Datentyps BLOB ......................................................... Speichern von Binärdaten in einer Datenbank ........................................ Auslesen von Binärdaten aus einer Datenbank ....................................... Zusammenfassung .................................................................................. Übungsaufgaben..................................................................................... Literatur ................................................................................................. Performance in Datenbanken Optimizer und Ausführungsplan............................................................. Optimierung in Oracle ............................................................................ Optimierung in SQL Server.................................................................... Optimierung in MySQL ......................................................................... Index ...................................................................................................... Partitionierung ....................................................................................... Materialisierte Sicht ............................................................................... Optimierung des Select-Befehls ............................................................. Stored Procedure .................................................................................... Weitere Optimierungen .......................................................................... Zusammenfassung .................................................................................. Übungsaufgaben..................................................................................... Literatur ................................................................................................. Concurrency und Recovery Transaktionen in Datenbanken ............................................................... Recovery ................................................................................................ Recovery und Logdateien ....................................................................... Aufbau der Logdateien ........................................................................... Recovery und Checkpoints ..................................................................... 8.3 8.4 8.5 8.6 8.7 8.8 8.9 8.10 9 9.1 Concurrency ........................................................................................... Sperrmechanismen ................................................................................. Deadlocks .............................................................................................. Concurrency und SQL ............................................................................ Concurrency in der Praxis ...................................................................... Concurrency in Oracle ........................................................................... Concurrency in MS SQL Server ............................................................. Concurrency in MySQL ......................................................................... Zusammenfassung .................................................................................. Übungsaufgaben..................................................................................... Literatur ................................................................................................. 9.3 9.4 9.5 Moderne Datenbankkonzepte Verteilte Datenbanken ............................................................................ Vorteile der verteilten Datenhaltung ...................................................... Die zwölf Regeln zur verteilten Datenhaltung ........................................ Das CAP-Theorem ................................................................................. Das Konsistenzmodell BASE ................................................................. Überblick über moderne Datenbanksysteme ........................................... Zwei-Phasen-Commit ............................................................................. Objektorientierte Datenbanken ............................................................... Definition objektorientierter Datenbanken ............................................. Objektrelationale Datenbanken .............................................................. Objektrelationale Erweiterungen in Oracle............................................. Eingebettete Relationen in Oracle .......................................................... Zusammenfassung .................................................................................. Übungsaufgaben..................................................................................... Literatur ................................................................................................. 10 Anhang: Die Beispieldatenbank Bike 9.2