PostgreSQL

PostgreSQL ist ein freies objektrelationales Datenbanksystem, das geeignet ist, die Daten von wichtigen Geschäftsanwendungen, Web-Anwendungen und Web Services zu verwalten. Als lizenzkostenfreie Software ist PostgreSQL eine ausgezeichnete Alternative zu lizenzkostenpflichtigen Datenbanksystemen.

PostgreSQL hat technisch ein hohes Niveau und wird für seine Zuverlässigkeit, Korrektheit, Performanz und Datenintegrität beim Speichern und Verwalten von Geschäftsdaten geschätzt.

PostgreSQL wird als Open-Source-Projekt ständig professionell weiter entwickelt. Die seit Jahrzehnten kontinuierliche Entwicklung hat inzwischen eine unübertroffene Geschwindigkeit erreicht.

Die Features von PostgreSQL sind nicht nur vergleichbar mit denen führender proprietärer Datenbanksysteme, sondern übertreffen diese in fortgeschrittenen Datenbankfunktionen, Erweiterbarkeit, Sicherheit und Stabilität.

PostgreSQL eignet sich besonders gut für transaktionale Geschäftsanwendungen, Web-Anwendungen und Web-Services. Die meisten Anwendungen, die heute auf Basis lizenzkostenpflichtiger Datenbanksysteme laufen, können ebenso gut mit PostgreSQL betrieben werden. Bereits vorhandene Datenbanken lassen sich mit überschaubarem Aufwand in eine PostgreSQL-Datenbank übertragen.

PostgreSQL ist hochgradig skalierbar sowohl hinsichtlich der Datenmenge, die PostgreSQL verarbeiten kann, als auch  hinsichtlich der Anzahl der Benutzer, die gleichzeitig auf die Daten in PostgreSQL zugreifen können.

Nach Angaben des Herstellers wird PostgreSQL in Produktionsumgebungen eingesetzt, in denen mehr als vier Terabyte an Daten verwaltet und verarbeitet werden.

Replikation

Mit Hilfe synchroner und asynchroner Replikation kann PostgreSQL auch in einem Cluster betrieben werden. Ein Cluster bietet den Vorteil, dass die Rechenlast auf mehrere Computer verteilt werden kann. Außerdem steht PostgreSQL in einem Cluster weiterhin zur Verfügung, falls einer der Computer im Cluster beispielsweise wegen eines Hardwarefehlers ausfällt.

PostgreSQL bietet mit Logical Decoding eine Programmierschnittstelle, um Replikationsdaten zu lesen, zu filtern und zu verändern. Diese Schnittstelle ist die Grundlage für Replikationswerkzeuge, um beispielsweise eine bidirektionale Replikation und Datenbank-Cluster mit mehreren Mastern zu ermöglichen.

Der Vorteil einer synchronen Replikation liegt darin, dass sichergestellt wird, dass die Transaktion mindestens auf zwei Servern tatsächlich ausgeführt wurde, womit eine vollständige Wiederherstellung von Daten quasi garantiert werden kann (Hot Standby). Diese Ausfallsicherheit wird naturgemäß durch eine längere Wartezeit auf das Abschließen von Transaktionen (sog. Commit) erkauft. Die synchronie Replikation wird daher für besonders wichtige Geschäftsprozesse verwendet, wie zum Beispiel für finanzielle Transaktionenen.

Bei weniger wichtigen Transaktionen, wie zum Beispiel die Aufzeichnung weniger relevanter Benutzerinteraktionen, kann die sehr viel schnellere asynchrone Replikation verwendet werden.

PostgreSQL als NoSQL-Alternative

Seit Version 9.4 bietet PostgreSQL eine Reihe von technischen Features, um Daten flexibler, skalierbarer und schneller verarbeiten zu können.

Der Datentyp JSONB beschleunigt die Verarbeitung des Datenaustauschformats JSON (JavaScript Object Notification). JSON ist im Internet weit verbreitet, unter anderem in Web-Anwendungen auf Basis von JavaScript, in mobilen Anwendungen auf Basis von iOS sowie in Programmierschnittstellen bzw. Web Services auf Basis von REST.

Eine Reihe von PostgreSQL-Funktionen ermöglicht es, JSON-Daten mit einfachen Ausdrücken abzufragen, zu extrahieren und zu verändern. PostgreSQL vereinfacht damit die Integration von relationalen Datentabellen und JSON-Dokumenten.

Die PostgreSQL-Entwickler versprechen, dass die Performance von PostgreSQL dabei vergleichbar bzw. teilweise sogar höher sein soll als bei populären NoSQL-Dokument-Datenbanken.

PostgreSQL für alle gängigen Betriebssysteme verfügbar

PostgreSQL läuft auf allen wichtigen Betriebssystemen einschließlich Linux, Windows und macOS. PostgreSQL ist in den meisten Linux-Distributionen enthalten. Apple liefert PostgreSQL mit seinem Betriebssystem macOS als Standarddatenbank aus.

Freier Quellcode

Mit einer globalen Community bestehend aus Tausenden Nutzern und Mitwirkenden und Dutzenden von Unternehmen und Organisationen ist PostgreSQL das führende Open-Source-Datenbanksystem.

Der Quellcode von PostgreSQL wurde unter einer freien Lizenz veröffentlicht, die es erlaubt, PostgreSQL kostenlos zu verwenden, zu modizifieren und zu verteilen. Die Lizenz von PostgreSQL ist sehr vorteilhaft, weil die Anwender von PostgreSQL exklusiv alle Rechte an Änderungen und Erweiterungen behalten, die sie selbst entwickeln.

Upgrade-Prozess

Eine regelmäßige Aktualisierung von PostgreSQL-Datenbank-Servern ermöglicht es, stets von den neuen funktionalen Verbesserungen des PostgreSQL- Datenbanksystems sowie von den Leistungszuwächsen im Bereich der Performance von PostgreSQL zu profitieren.

Für das Upgrade der meisten PostgreSQL-Datenbanksysteme ist es ein bewährtes Verfahren, zunächst Sicherungen der vorhandenen Datenbanken anzulegen und anschließend die jüngste Version von PostgreSQL parallel zur vorhandenen PostgreSQL-Instanz zu installieren.

Anschließend können die Daten mit Hilfe eines von PostgreSQL bereitgestellten Moduls normalerweise innerhalb von wenigen Minuten zügig und reibungslos von den alten zu den neuen PostgreSQL-Servern übertragen werden.

Nur ganz wenige Anwendungen, die PostgreSQL verwenden, müssen vorher angepasst werden.

Historie

Die Ursprünge von PostgreSQL liegen in den frühen 1980er Jahren in einem Datenbank-Projekt der University of California, Berkely. Im Jahr 1995 wurde die erste Version von PostgreSQL unter dem damaligen Namen Postgres95 veröffentlicht. PostgreSQL wird als Open-Source-Projekt ständig professionell weiter entwickelt.

Version 9.6 wurde im September 2016 veröffentlicht. Die wichtigsten Änderungen betreffen vertikale und horizontale Skalierung, parallelisierte Abfragen, Phrasensuche und Verbesserungen bei synchroner Replikation, außerdem wurde die Performance und Benutzerfreundlichkeit weiter verbessert.

Version 9.5 wurde im Januar 2016 veröffentlicht.

Version 9.4 wurde im Dezember 2014 veröffentlicht. Die PostgreSQL-Entwickler haben den neuen Datentyp JSONB implementiert und außerdem Maßnahmen ergriffen, um die Performance des Datenbanksystems weiter zu verbessern. GIN-Indizes erreichen nun eine bis zu dreimal höhere Geschwindigkeit und sparen dabei bis zu 50 Prozent des bisherigen Platzbedarfes ein. Materialized Views lassen sich jetzt im Hintergrund aktualisieren, ohne Abfragen zu blockieren. Dadurch können Auswertungen schneller und damit auch regelmäßiger erstellt werden. Der nach einem Neustart geleerte Datenbank-Cache kann mit Hilfe von pg_rewarm schnell neu geladen werden, ohne alle Abfragen auf die Datentabellen erneut durchführen zu müssen. Das Transaktions-Log von PostgreSQL kann jetzt schneller parallel geschrieben werden. Und PostgreSQL unterstützt jetzt Linux Huge Pages auf Servern mit großem Arbeitsspeicher.

Version 9.3 wurde im September 2013 veröffentlicht. Verbesserungen finden sich im Bereich der Unterstützung von JSON, bei materialisierten Views und beschreibbaren Views.

Version 9.2 wurde im September 2012 veröffentlicht. Sie bietet neue Funktionalitäten zur Verbesserung der Performance.

Version 9.1 wurde im September 2011 veröffentlicht. Diese Version brachte eine Verbesserung der Hochverfügbarkeit bei Betrieb von mehreren Servern mit Hilfe synchroner Replikation, Zugriff auf fremde Datenquellen, spaltenweise linguistisch korrekte Sortierbarkeit und Einbindung von Erweiterungen

Version 9.0 wurde im September 2010 veröffentlicht. Sie brachte Funktionen für Replikation und Hot-Standby sowie Verbesserungen bei Sicherheit, Monitoring und speziellen Datentypen.

Version 8.3 wurde im Februar 2008 veröffentlicht. Sie brachte eine Reihe von Leistungsverbesserungen sowie Funktionserweiterungen. Eine Volltextsuche, die bisher als Zusatzprodukt verfügbar war, wurde in den Kern des Datenbanksystems integriert. Die Verarbeitung von XML wird durch einen XML-Datentypen unterstützt, der jeweils ein XML-Dokument enthält. Bei Abfragen können beispielsweise SQL- mit XPath-Queries in einer Transaktion kombiniert werden. Neu eingeführt wurden die Datentypen ENUM und UUID.