PostgreSQL

PostgreSQL (or Postgres for short) is an open-source relational database management systems (RDBMS). The purpose of the wikibook on hand is an introduction to PostgreSQL's capabilities, architecture, installing procedure, maintenance, and optimization tasks. Such aspects differ greatly from RDBMS to RDBMS. Thus the book is primarily aimed at database administrators - especially for students, occasional users, and novice DBAs who start to work with PostgreSQL. It only conveys basic knowledge and first steps. Many - even important - DBA topics are omitted. For a complete treatment, we recommend


 * accomplish a professional training course offered by a consulting company
 * use the excellent and complete PostgreSQL documentation regularly
 * consult PostgreSQL wiki which summarizes some special topics.

In addition to graphical interfaces, the main access method to an RDBMS is SQL, the standardized language for accessing relational databases. Because SQL does not differ that much from system to system, it's out of scope of this Wikibook: it's a topic of itself. If you are interested in the SQL syntax, you may want to refer to the Wikibook SQL, which describes this standard independently from any RDBMS. PostgreSQL's implementation of SQL is very close to the standard.

Historical note: PostgreSQL is a follow-up (but independent) project of Ingres starting at 1986. The roots of both systems go back to the University of California at Berkeley.

Introduction

 * Major Features
 * Supported Platforms

First Steps

 * Download, Installation
 * Managing the Instance
 * DBA Tools: psql, pgAdmin, phpAdmin, ...
 * Configuration
 * Backup & Recovery

Concepts

 * Architecture: Collaboration of Processes, RAM, and Files
 * The logical Perspective: Cluster, Database, Schema
 * The physical Perspective: Directories and Files


 * Transactions
 * The ACID Paradigm
 * Visibility of Rows: Isolation Levels
 * Multiversion Concurrency Control (MVCC): Implementation of the ACID Paradigm
 * Vacuum
 * Wraparound and Freeze


 * Visibility Map and Free Space Map
 * Write-Ahead-Log (WAL)

Special Topics

 * Client-Server Communication: The Client Side
 * Client-Server Communication: The Server Side
 * Security within the Database: Roles, Users, Privileges
 * Replication
 * Partitioning
 * Tablespace
 * Upgrade
 * Glossary / Prominent Terms

Extensions

 * The Extension Mechanism
 * PostGIS - Spatial Data
 * Foreign Data Wrappers
 * BDR: Bidirectional Replication

Implementation Details

 * Directories and Files (see above)
 * Page Layout for Data and Index Files
 * Indices
 * B-tree
 * GIN
 * BRIN
 * Hash