1 Architektur, Modellierung und Entwurf
1.1 Datenbanken - was ist das?
1.2 Datenbankmanagementsystem
1.3 Architektur eines Datenbanksystems
1.3.1 Die konzeptuelle Ebene
1.3.2 Die externe Ebene
1.4 Datenmodellierung
1.5 Von der realen Welt zum Modell
1.6 Vom Modell zum Datenbankentwurf
1.7 Das relationale Datenmodell
1.8 Normalisierung
2 Downloads und Installationen 31
2.1 Downloads
2.2 Installationen
2.3 Testen des Webservers und der PHPInstallation
3 PostgreSQL - der Einstieg 39
3.1 Einige Konventionen zur Vergabe von Namen
3.2 Das Handwerkszeug: psql
3.3 Datenbanken erzeugen - CREATE DATABASE
3.4 Tabellen definieren - CREATE TABLE
3.5 Die Tabellen mit Daten füllen - INSERT
3.6 Auf die Daten zugreifen - SELECT
3.7 Datensätze löschen - DELETE
3.8 Datensätze aktualisieren - UPDATE
3.9 Tabellen löschen - DROP TABLE
3.10 Die Tabellenstruktur ändern - ALTER TABLE
3.11 Tabellen anderen Benutzern verfügbar machen
4 Datentypen in PostgreSQL 67
4.1 Das definierte Unbekannte - NULL
4.2 Der Datentyp Boolean
4.3 ZeichenkettenTypen
4.4 Binary Strings - Der Datentyp bytea
4.5 Numerische Typen
4.6 Datum und Zeit
4.7 Geometrische Datentypen
4.8 Arrays
4.9 Large Objects
4.10 Network
4.11 Bitstrings
4.12 Typkonvertierung
5 Operatoren 93
5.1 Logische Operatoren
5.2 Vergleichsoperatoren
5.3 Arithmetische Operatoren
5.4 Operatoren für bitweise Operationen
5.5 Operatoren für Zeichenketten
5.6 Operatoren für reguläre Ausdrücke
5.7 Die Operatoren für die geometrischen Datentypen
5.8 Die Rangfolge der Operatoren
6 Funktionen in PostgreSQL 107
6.1 Allgemeines
6.2 Arithmetische und trigonometrische Funktionen
6.3 Funktionen für Zeichenketten
6.4 Datums und Zeitfunktionen
6.5 Konvertierungsfunktionen - Formatfunktionen
6.6 Verschiedene Funktionen
6.7 Aggregatfunktionen .
6.8 Funktionen für den Typ bytea
6.9 Funktionen für geometrische Datentypen
6.10 Kataloginformationen
7 Die Datenbankstruktur: Sequenzen und Constraints 135
7.1 Das Datenmodell
7.2 Die Umsetzung des ERModells
7.3 Sequenzen oder der Typ SERIAL
7.4 Constraints
7.5 Die Datendefinition
8 Daten importieren und exportieren - Die Projektdaten 161
8.1 Einfügen der Reihe nach
8.2 Die Dateneingabe innerhalb von psql mit \i
8.3 Die Datenbankstruktur testen
8.4 Daten importieren und exportieren mit COPY
8.5 Das psqlKommando \copy
8.6 Datensicherung und DatenRestauration
9 PostgreSQL und PHP - Die Webanwendung 177
9.1 Die Konzeption der Anwendung
9.2 Die Startseite .
9.3 Die Bibliothek - Verbindung aufbauen
9.4 HTML und PHP - Datenbankabfragen
9.5 Die Ausgabeseite für den Katalog
9.6 Die Ergebnisse einer Abfrage mit PHP weiterverarbeiten
9.7 Eine dynamische Seite mit unterschiedlichen Inhalten
10 Abfragen über mehrere Tabellen - SELECTs kombinieren 199
10.1 Namenskonventionen
10.2 Abfragen verketten - UNION, INTERSECT, EXCEPT
10.3 Verbundoperationen - Joins
10.4 Unterabfragen - Subselects oder Subqueries
10.5 Die Ausgabeseite für die Publikationen
11 Erweiterte Abfragen, temporäre Tabellen und Views 239
11.1 Neue Tabellen ableiten
11.2 Daten einfügen mit SELECT
11.3 Updates aus verschiedenen Datenquellen
11.4 Temporäre Tabellen
11.5 Views
11.6 Cursors
12 Datenbanktuning 249
12.1 Indizes
12.2 CLUSTER
12.3 Die Optimierung der Daten
12.4 Den Ausführungsplan anzeigen mit EXPLAIN
13 Transaktionen und Sperren 267
13.1 Was sind Transaktionen?
13.2 Das ACIDPrinzip
13.3 Die Isolation von Transaktionen
13.4 MVCC in PostgreSQL
13.5 Deadlocks
14 Das PostgreSQLRuleSystem 291
14.1 Wie arbeiten Regeln?
14.2 Regeln definieren und löschen
14.3 Verschiedene Instanzen eines Datensatzes
14.4 Regeln anwenden
14.5 Views und Regeln
14.6 Achtung Endlosschleifen
15 Eigene Funktionen - stored procedures 301
15.1 Wozu eigene Funktionen?
15.2 Neue Funktionen definieren
15.3 SQLFunktionen
15.4 PL/pgSQLFunktionen
16 Reagieren auf Ereignisse 339
16.1 Trigger erzeugen und löschen
16.2 Triggerfunktionen
16.3 Ein Anwendungsbeispiel für einen Trigger
16.4 Einer sagt's dem anderen - LISTEN und NOTIFY
17 Vererbung 349
17.1 Eine Kindtabelle erzeugen
17.2 Mit Eltern und Kindtabellen arbeiten
17.3 Tabellen aktualisieren
17.4 Warum Vererbung?
17.5 Die neue Struktur in der Anwendung
18 Large Objects verarbeiten 357
18.1 Bilddaten in einer Datenbank
18.2 PHP, Large Objects und binäre Strings
18.3 Dateien in eine Tabelle einfügen
18.4 Bilddaten auslesen und darstellen
19 Ausblick 377
19.1 Die PHPVariablen
19.2 Sessions
19.3 Persistente Verbindungen
A Von MySQL zu PostgreSQL 387
B Wichtige Werkzeuge 391
B.5 Internetadressen 406