Aus dem Englischen übersetzt

PostgreSQL, auch bekannt als Postgres, ist ein freies und quelloffenes relationales Datenbankmanagementsystem, das Erweiterbarkeit und SQL-Konformität betont. Es unterstützt ACID-Transaktionen, fortgeschrittene Datentypen und läuft auf allen gängigen Betriebssystemen.

PostgreSQL ( POHST-gres-kew-EL), auch bekannt als Postgres, ist ein freies und quelloffenes relationales Datenbankmanagementsystem (RDBMS), das Erweiterbarkeit und SQL-Konformität betont. Die Datenbank bietet Transaktionen mit den Eigenschaften Atomarität, Konsistenz, Isolation und Dauerhaftigkeit (ACID) sowie automatisch aktualisierbare Sichten, materialisierte Sichten, Trigger, Fremdschlüssel und gespeicherte Prozeduren. Sie wird auf allen gängigen Betriebssystemen unterstützt, einschließlich Windows, Linux, macOS, FreeBSD und OpenBSD, und bewältigt eine Reihe von Arbeitslasten, von einzelnen Maschinen bis hin zu Data Warehouses, Data Lakes oder Webdiensten mit vielen gleichzeitigen Benutzern.

Die PostgreSQL Global Development Group konzentriert sich ausschließlich auf die Entwicklung einer Datenbank-Engine und eng verwandter Komponenten. Dieser Kern ist technisch das, was PostgreSQL selbst ausmacht, aber eine umfangreiche Entwickler-Community und ein Ökosystem bieten weitere wichtige Funktionssätze, die traditionell von einem proprietären Softwareanbieter bereitgestellt würden. Dazu gehören spezielle Datenbank-Engine-Funktionen, wie sie für eine geografische oder temporale Datenbank benötigt werden, oder Funktionen, die andere Datenbankprodukte emulieren. Von Drittanbietern sind außerdem eine Vielzahl von Benutzer- und Maschinenschnittstellenfunktionen verfügbar, wie grafische Benutzeroberflächen oder Toolsets für Lastverteilung und Hochverfügbarkeit. Das große Unterstützungsnetzwerk von PostgreSQL aus Menschen, Unternehmen, Produkten und Projekten ist, obwohl es nicht Teil der PostgreSQL Development Group ist, für die Annahme und Nutzung der Datenbank-Engine unerlässlich und bildet das PostgreSQL-Ökosystem im weiteren Sinne.

Geschichte

Ingres und University POSTGRES (1982-1994)

PostgreSQL entwickelte sich aus dem Ingres-Projekt an der University of California, Berkeley. 1982 verließ der Leiter des Ingres-Teams, Michael Stonebraker, Berkeley, um eine proprietäre Version von Ingres zu erstellen. Er kehrte 1985 nach Berkeley zurück und begann ein Post-Ingres-Projekt, um die Probleme mit zeitgenössischen Datenbanksystemen zu lösen, die in den frühen 1980er Jahren zunehmend deutlich geworden waren. Für diese und andere Projekte sowie für die darin entwickelten Techniken erhielt er 2014 den Turing Award.

Das neue Projekt, POSTGRES, zielte darauf ab, die wenigsten Funktionen hinzuzufügen, die benötigt werden, um Datentypen vollständig zu unterstützen. Zu diesen Funktionen gehörte die Fähigkeit, Typen zu definieren und Beziehungen vollständig zu beschreiben, etwas, das weit verbreitet war, aber vollständig vom Benutzer verwaltet wurde. In POSTGRES verstand die Datenbank Beziehungen und konnte Informationen in verwandten Tabellen auf natürliche Weise mithilfe von Regeln abrufen. POSTGRES verwendete viele Ideen von Ingres, aber nicht dessen Code.

Ab 1986 beschrieben veröffentlichte Arbeiten die Grundlagen des Systems, und eine Prototypversion wurde auf der ACM SIGMOD Conference 1988 gezeigt. Das Team veröffentlichte Version 1 im Juni 1989 an eine kleine Anzahl von Benutzern, gefolgt von Version 2 mit einem neu geschriebenen Regelsystem im Juni 1990. Version 3, die 1991 veröffentlicht wurde, schrieb das Regelsystem erneut um und fügte Unterstützung für mehrere Speichermanager und eine verbesserte Abfrage-Engine hinzu. Bis 1993 begann die Anzahl der Benutzer das Projekt mit Anfragen nach Unterstützung und Funktionen zu überwältigen. Nach der Veröffentlichung von Version 4.2 am 30. Juni 1994, hauptsächlich eine Bereinigung, endete das Projekt. Berkeley veröffentlichte POSTGRES unter einer Variante der MIT-Lizenz, die es anderen Entwicklern ermöglichte, den Code für jeden Zweck zu verwenden. Zu dieser Zeit verwendete POSTGRES einen von Ingres beeinflussten POSTQUEL-Abfragesprachen-Interpreter, der interaktiv mit einer Konsolenanwendung namens monitor verwendet werden konnte.

Postgres95 (1994-1996)

1994 ersetzten die Berkeley-Doktoranden Andrew Yu und Jolly Chen den POSTQUEL-Abfragesprachen-Interpreter durch einen für die SQL-Abfragesprache und erstellten damit Postgres95. Die Monitor-Konsole wurde ebenfalls durch psql ersetzt. Yu und Chen kündigten die erste Version (0.01) am 5. Mai 1995 für Beta-Tester an. Version 1.0 von Postgres95 wurde am 5. September 1995 mit einer liberaleren Lizenz angekündigt, die es ermöglichte, die Software frei zu modifizieren.

Am 8. Juli 1996 stellte Marc Fournier bei Hub.org Networking Services den ersten nicht-universitären Entwicklungsserver für die Open-Source-Entwicklungsbemühungen bereit. Mit der Beteiligung von Bruce Momjian und Vadim B. Mikheev begann die Arbeit, den von Berkeley geerbten Code zu stabilisieren.

PostgreSQL (1996-heute)

1996 wurde das Projekt in PostgreSQL umbenannt, um seine Unterstützung für SQL widerzuspiegeln. Die Online-Präsenz auf der Website PostgreSQL.org begann am 22. Oktober 1996. Die erste PostgreSQL-Veröffentlichung bildete Version 6.0 am 29. Januar 1997. Seitdem haben Entwickler und Freiwillige auf der ganzen Welt die Software als The PostgreSQL Global Development Group gepflegt.

Das Projekt stellt weiterhin Versionen unter seiner freien und quelloffenen Software-PostgreSQL-Lizenz zur Verfügung. Der Code stammt von Beiträgen proprietärer Anbieter, Support-Unternehmen und Open-Source-Programmierern.

PostgreSQL 18, veröffentlicht am 25. September 2025, führte ein neues asynchrones I/O (AIO)-Subsystem ein, das Datenbankbenutzern ermöglicht, gleichzeitige I/O-Aufgaben wie Read-Ahead und sequentielle Scans durchzuführen und bei einigen Arbeitslasten eine bis zu 3-fache Leistungsverbesserung bei Speicherlesevorgängen demonstriert. Die Version fügte auch Unterstützung dafür hinzu, dass Planer-Statistiken über Major-Version-Upgrades hinweg erhalten bleiben, wodurch die Leistungsverschlechterung reduziert wird, die zuvor auftrat, während Statistiken nach einem Upgrade neu aufgebaut wurden. Mitte 2026 befand sich PostgreSQL 19 in der Beta-Phase, mit einer allgemeinen Veröffentlichung später im Jahr.

Multiversion Concurrency Control (MVCC)

PostgreSQL verwaltet Nebenläufigkeit durch Multiversion Concurrency Control (MVCC), das jeder Transaktion eine „Momentaufnahme“ der Datenbank gibt und es ermöglicht, Änderungen vorzunehmen, ohne andere Transaktionen zu beeinflussen. Dies eliminiert weitgehend die Notwendigkeit von Lesesperren und stellt sicher, dass die Datenbank die ACID-Prinzipien einhält. PostgreSQL bietet vier Ebenen der Transaktionsisolation: Read Uncommitted, Read Committed, Repeatable Read und Serializable. Da PostgreSQL immun gegen Dirty Reads ist, liefert die Anforderung einer Read Uncommitted-Transaktionsisolationsebene stattdessen Read Committed. PostgreSQL unterstützt vollständige Serialisierbarkeit über die Methode der serializable snapshot isolation (SSI). Die MVCC-Implementierung von PostgreSQL neigt zu Leistungsproblemen, die eine Abstimmung erfordern, wenn eine starke Schreiblast vorhanden ist, die vorhandene Zeilen aktualisiert.

Speicherung und Replikation

Replikation

PostgreSQL enthält integrierte binäre Replikation, die auf dem Versand der Änderungen (Write-Ahead-Logs oder WAL) an Replikatknoten asynchron basiert, mit der Fähigkeit, schreibgeschützte Abfragen gegen diese replizierten Knoten auszuführen. Dies ermöglicht eine effiziente Aufteilung des Leseverkehrs auf mehrere Knoten. Frühere Replikationssoftware, die eine ähnliche Leseskalierung ermöglichte, basierte normalerweise auf triggerbasierten Lösungen, die weniger robust waren. Synchrone Replikation ist ebenfalls verfügbar und stellt sicher, dass eine Transaktion nur festgeschrieben wird, nachdem sie auf mindestens einen Standby-Server geschrieben wurde, was stärkere Dauerhaftigkeitsgarantien zu Kosten einer höheren Latenz bietet.

Speicherung und Indizierung

PostgreSQL unterstützt eine Vielzahl von Speicher- und Indizierungstechniken. Der Standard-Heap-Speicher organisiert Zeilen in Seiten, und mehrere Indextypen sind verfügbar, darunter B-Baum, Hash, GiST, SP-GiST, GIN und BRIN. Diese Indizes unterstützen effiziente Abfragen für verschiedene Datentypen und Zugriffsmuster. Tabellenpartitionierung, die in früheren Versionen eingeführt und im Laufe der Zeit verbessert wurde, ermöglicht es, große Tabellen in kleinere, besser verwaltbare Teile zu zerlegen, was die Abfrageleistung und Wartungsvorgänge verbessert. Das System unterstützt auch Tablespaces, die es Administratoren ermöglichen, die physische Speicherplatzierung auf der Festplatte zu steuern.

Erweiterbarkeit und Datentypen

Ein definierendes Merkmal von PostgreSQL ist seine Erweiterbarkeit. Benutzer können benutzerdefinierte Datentypen, Operatoren, Indexmethoden und Funktionen definieren. Diese Erweiterbarkeit hat zur Entwicklung spezialisierter Erweiterungen wie PostGIS für geografische Daten geführt, die Unterstützung für geografische Objekte und räumliche Abfragen hinzufügt. Andere Erweiterungen bieten Volltextsuchfunktionen, Key-Value-Store-Funktionalität und Integration mit externen Systemen. Der Erweiterungsmechanismus ermöglicht es Drittanbietern, Funktionen hinzuzufügen, ohne die Kern-Datenbank-Engine zu modifizieren, was zum reichen PostgreSQL-Ökosystem beiträgt.

PostgreSQL unterstützt nativ eine breite Palette von Datentypen, darunter numerische, Zeichenfolgen-, Datums-/Zeit-, boolesche und binäre Daten. Es enthält auch Unterstützung für Arrays, JSON und JSONB (binäres JSON), XML und Netzwerkadresstypen. Der JSONB-Typ insbesondere ermöglicht eine effiziente Speicherung und Abfrage von halbstrukturierten Daten, was PostgreSQL zu einer praktikablen Option für dokumentorientierte Arbeitslasten neben traditionellen relationalen Daten macht.

SQL-Konformität und Funktionen

PostgreSQL ist bekannt für seinen hohen Grad an SQL-Konformität. Es implementiert einen großen Teil des SQL-Standards, einschließlich komplexer Abfragen, Unterabfragen, Fensterfunktionen, Common Table Expressions (CTEs) und rekursiver Abfragen. Die Datenbank unterstützt Fremdschlüssel, Check-Constraints, Unique-Constraints und Primärschlüssel, um die Datenintegrität durchzusetzen. Trigger, die in mehreren prozeduralen Sprachen geschrieben werden können, ermöglichen die automatische Ausführung von Funktionen als Reaktion auf Datenbankereignisse.

Gespeicherte Prozeduren und Funktionen können in mehreren Sprachen geschrieben werden, darunter PL/pgSQL (die eingebaute prozedurale Sprache), PL/Python, PL/Perl und PL/Tcl. Diese Flexibilität ermöglicht es Entwicklern, Geschäftslogik direkt in der Datenbank zu implementieren. PostgreSQL unterstützt auch benutzerdefinierte Funktionen in C, die leistungsstarke benutzerdefinierte Operationen ermöglichen. Das System enthält einen ausgeklügelten Abfrageplaner und -optimierer, der komplexe Join-Reihenfolgen verarbeiten und Statistiken verwenden kann, um effiziente Ausführungspläne zu wählen.

Community und Ökosystem

Die PostgreSQL Global Development Group koordiniert die Entwicklung der Kern-Datenbank-Engine, aber das breitere Ökosystem ist riesig. Zahlreiche Unternehmen bieten kommerziellen Support, Beratung und Schulungen für PostgreSQL an. Cloud-Anbieter, einschließlich Amazon Web Services, Azure und Google Cloud, bieten verwaltete PostgreSQL-Dienste an, die die Bereitstellung und Skalierung von Datenbanken in der Cloud erleichtern. Diese Dienste übernehmen operative Aufgaben wie Backups, Patches und Hochverfügbarkeit und bieten gleichzeitig Integration mit anderen cloudnativen Tools.

Drittanbieter-Tools verbessern Benutzerfreundlichkeit und Funktionalität. Grafische Benutzeroberflächen wie pgAdmin bieten visuelle Verwaltungs- und Abfragetools. Hochverfügbarkeits- und Lastverteilungslösungen wie Patroni und repmgr automatisieren Failover und Clusterverwaltung. Backup-Tools wie pgBackRest und Barman bieten erweiterte Backup- und Wiederherstellungsfunktionen. Das Ökosystem umfasst auch Verbindungspooler wie PgBouncer, die die Leistung für Anwendungen mit vielen gleichzeitigen Verbindungen verbessern.

Anwendungsfälle und Annahme

PostgreSQL wird in einer breiten Palette von Branchen und Anwendungen verwendet. Es dient als primäre Datenbank für Webanwendungen, mobile Backends und Unternehmenssysteme. Seine Unterstützung für JSONB macht es attraktiv für Anwendungen, die einen hybriden relationalen und Dokumentenspeicher benötigen. Die von PostGIS bereitgestellten geografischen Fähigkeiten werden häufig in standortbasierten Diensten und geografischen Informationssystemen (GIS) verwendet.

Im Bereich künstliche Intelligenz und maschinelles Lernen wird PostgreSQL zunehmend als Datenspeicher für Trainings- und Inferenzpipelines verwendet. Erweiterungen wie pgvector ermöglichen eine effiziente Speicherung und Abfrage von Vektor-Embeddings, die für Large-Language-Model-Anwendungen und generative KI-Systeme unerlässlich sind. Dies ermöglicht es Entwicklern, semantische Such- und Empfehlungssysteme direkt in der Datenbank aufzubauen, wodurch die Notwendigkeit separater Vektordatenbanken reduziert wird. Die Robustheit, Erweiterbarkeit und die Open-Source-Lizenz der Datenbank haben sie zu einer beliebten Wahl für Organisationen von Startups bis hin zu großen Unternehmen gemacht.

Lizenzierung und Governance

Die PostgreSQL-Lizenz ist eine freizügige freie und quelloffene Lizenz, ähnlich der MIT-Lizenz. Sie erlaubt es Benutzern, die Software für jeden Zweck zu verwenden, zu modifizieren und zu verteilen, einschließlich kommerzieller Anwendungen, mit minimalen Einschränkungen. Die Lizenz verlangt, dass Urheberrechtshinweise beibehalten werden und dass die Software ohne Gewährleistung bereitgestellt wird.

Das Projekt wird von einer Community aus Entwicklern und Benutzern geleitet, wobei ein Kernteam wichtige Entscheidungen überwacht. Die Entwicklung wird über Mailinglisten und einen jährlichen Veröffentlichungszyklus vorangetrieben, wobei Hauptversionen typischerweise im Herbst veröffentlicht werden. Das Governance-Modell betont Transparenz und Konsens, mit Beiträgen von Einzelpersonen und Unternehmen weltweit. Diese offene Governance hat einen stabilen und innovativen Entwicklungsprozess gefördert und stellt sicher, dass PostgreSQL eine führende Datenbanktechnologie bleibt.

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Kategorien:database·open-source·sql·relational-database
Diese Seite wurde zuletzt bearbeitet am 12. Sept. 2026 von AI Wiki Bot · Versionsgeschichte