Next:
Vorwort
Up:
osp-basis
Previous:
osp-basis
Contents
Vorwort
Motivation
Über PostgreSQL
Die Entwicklung von PostgreSQL
Einarbeitung von Patches
Release Cycles
Aktuelle Einsatzgebiete
PostgreSQL Architektur
Die Systemarchitektur
Der Postmaster
Backends
Background Writer
Statistics Collector
Der Weg einer Abfrage
Das Speichermanagement
Storage Management
System Tables
Installation
Die Installation auf UNIX Systemen
Installation auf Linux und BSD
AIX specifics
Solaris Specifics
Regression Tests
Installation auf Windows Systemen
Nach der Installation
Datenbanken anlegen
Die 'postgres' Datenbank
Datenbanken löschen
Das Frontend
SQL
Datenstrukturen definieren
Einfache Tabellen erzeugen
Den Platzbedarf optimieren
Primärschlüssel vergeben
Grundlegende Operationen
Daten einfügen
Daten verändern
Daten löschen
Daten selektieren
Datentypen und Operatoren
Datentypen
Auto Increment
Schemas
Schemas anlegen
Schemas löschen
Schemas wiederfinden
Das 'public'-Schema
Daten importieren und exportieren
Indices verwenden
Typen von Indices
Einfache Indices definieren
Unique Indices definieren
Kombinierte Indices
Partielle Indices
Indices entfernen
BITMAP
Views
Cursor
Einfache Cursor
WITH HOLD Cursor
Binary Cursors
ORA-01000: maximum open cursors exceeded
Sequenzen
Datenstrukturen verändern
Syntax
Tabellen umbenennen
Spalten einfügen und löschen
Datentypen modifizieren
Defaultwerte und Constraints
Storage Parameter
Erweiterte Funktionalitaet
Rules und Trigger
Trigger
Rules
Domains und Co. definieren
Vererbung und Arrays
Vererbung
Arrays
Foreign Keys und Constraints
Einfache Constraints
Wozu Foreign Keys
Foreign Keys definieren
ON UPDATE / ON DELETE
Durchführung von Integritätschecks und Constraints modifizieren
Foreign Keys und Performance
LISTEN / NOTIFY
Transaction Management
Transaktionen in PostgreSQL
Einfache Transaktionen
Transaction Isolation Levels
MVCC und Co.
Locking Konzepte
Grundlegende Regeln
Einfache Beispiele mit einer schreibenden Transaktion
SELECT FOR UPDATE
SELECT FOR SHARE
Deadlocks
Explizite Locks
Crash Recovery und Checkpointing
WAL und Checkpoints
Recovery
Temporary Tabellen und Transaktionen
Sequenzen und Transaktionen
ROLLBACK verwenden
Sichtbarkeitsregeln für Sequences
Administration
Tablespaces und Co.
Benutzerverwaltung
Benutzer und Gruppen anlegen
Benutzer und Gruppen modifizieren
Benutzer und Gruppen löschen
Die interne Speicherung
GRANT und REVOKE
Netzwerk und Netzwerksecurity
pg_hba.conf - Host Based Access Control
Ident Server benutzen
SSL
Parameter adjustieren
Filesystem Optionen
Authentifizierung
Ressourcenverwaltung
Write Ahead Logs
Planner Einstellungen
Logging
Laufzeitparameter
Verbindungsparameter
Lock Management
Kompatibilität
Logverwaltung
Backup und Recovery
Daten sichern
Daten wiederherstellen
Fussangeln und Fallstricke
Point-in-Time-Recovery
Datenbank Maintenance
VACUUM
System Monitoring
Aktuelle Datenbankverbindungen
I/O Analyse
Locks
Kernel Parameter adjustieren
Linux
FreeBSD
Solaris
MacOS X
Windows
Detailinfos
PostgreSQL auf größeren Systemen
Storagebedarf und Kapazitäsplanung
Sehr große Indices
Daten partitionieren
Fazit
Serverseitiges Programmieren
Der Function Manager
Funktionen anlegen und löschen
Funktionen ersetzen
Funktionen modifizieren
Funktionen und deren interne Speicherung
Stabile und instabile Funktionen
Zusammengesetzte Datentypen
Set Returning Functions
Aggregierungsfunktionen
PL/pgSQL
Programmiersprachen installieren
PL/pgSQL Programme
Kontrollstrukturen und Schleifen
Exception Handling
Programme debuggen
PL/pgSQL Funktionen und Transaktionen
RECORDs
Mit Cursorn arbeiten
TYPE
ROWTYPE
Set-Returning Functions in PL/pgSQL
Trigger in PL/pgSQL
PL/SQL vs. PL/pgSQL
PL/Perl
PL/Perl installieren
Einfache Funktionen
Logging und Debugging
Zusammengesetzte Datentypen
Trusted vs. Untrusted
Globale Werte
Das SPI von PL/Perl aus nutzen
Set-Returning Functions
Triggers in PL/Perl
PL/Tcl
PL/Tcl einbinden
Einfache Funktionen
Datenbankzugriffe
Trigger in Tcl
PL/Python
Einfache Funktionen
Datenbankabfragen absetzen
Serverseitiges Java
SPI und Co
Einfache SPI Programme
Das PostgreSQL build system verwenden
Trigger
PostgreSQL erweitern
Datentypen implementieren
Aggregates implementieren
Einfache Aggregates
Performance Tuning und Query Optimization
Grundlegendes
Klassisches Parameter Tuning
Tuning durch intelligentes Fragen
Die Big-O Notation
Daten importieren
Den Tuple Header klein halten
Indizierung
Imports und Checkpointing
Execution Plans
Einfache Plans lesen
Kosten als Entscheidungskriterium
VACUUM ANALYZE und Plans
Plans im Detail
Plan Nodes
Komplexere Plans
Die Funktionsweise des Planners
Arten der Optimierung
Der 'Standard' Planner
Genetische Optimierung
Statistische Information
Planner Hints
Basiskosten
Caching und Performance
Der LRU-Algorithmus
Der 2Q-Algorithmus
shared_buffers und effective_cache_size
Execution Plans cachen
PREPARE / EXECUTE
Probleme mit gecachten Plans
'Persistent Storage' Optimierungen
Sync Methoden
Index Organized Tables
Bitmap Indexes
Tablespaces und Performance
Storage Bereiche trennen
SQL effizienter formulieren
Datensätze zählen
MIN / MAX
Joinreihenfolgen, explizite Joins und join_collapse_limit
Der Stats-Collector
Den Stats-Collector aktivieren
pg_stat_activity
Das I/O Verhalten tracen
Clientprogrammierung
C
Datenbankverbindungen aufbauen
Einfache Befehle ausführen
Daten aus einem Cursor holen
Metadaten abfragen
Ein weiteres Beispiel
COPY verwenden
Auf BLOBs zugreifen
Das asynchrone Interface
pgeasy
C++
Datenbankverbindungen
SQL absetzen
Daten abfragen
Metadaten abfragen
COPY verwenden
ECPG
Datenbankverbindungen aufbauen und Code kompilieren
SQL ausführen und Ergebnisse abfragen
Error Handling
Cursor verwenden
Descriptoren verwenden
Der ECPG Parser
Perl
Das Pg-Modul
Das DBD-Modul
PHP
Datenbankverbindungen aufbauen
Einfache Statements ausführen
Daten auslesen
Metadaten auslesen
Cursor verwenden
COPY verwenden
Persistente Datenbankverbindungen
Tcl
Verbindungen aufbauen
SQL absetzen
Daten abfragen
Metadaten
Python
Verbindungen aufbauen
Daten einfügen
Daten abfragen
Metadaten
Schlusswort
Java
Installation
Datenbankverbindungen aufbauen
SQL absetzen
Metadaten
Daten abfragen
Transaction Isolation Level und Transactions
Prepared Statements
Fehlende Funktionen
Mono und .Net
ADO.NET und Npgsql
Datenbankverbindungen aufbauen
Einfaches SQL ausführen
Daten abfragen
Metadaten abfragen
Transaktionen
Prepared Statements
Logging
Data Sets
Andere Programmiersprachen
Geometrische Daten
Geometrische Operationen
Geometrische Datentypen
PostGIS
Distributed Databases, Replication und Failover
Lösungsansätze
Commit Protokolle
Asynchrone vs. Synchrone Replikation
Log Based vs. Query Based
Die Kemme Papers
Slony I
Grundlegendes
Slony installieren
Slony konfigurieren
Slony starten
Filesysteme spiegeln
http://www.postgresql.at