Was ist PostgreSQL?

PostgreSQL (oft „Postgres“ abgekürzt) ist die weltweit fortschrittlichste objektrelationale Open-Source-Datenbank. Es wurde für Leistung auf Unternehmensniveau entwickelt und wird für seine robusten Funktionen und seine Zuverlässigkeit geschätzt.

Postgres begann 1986 als eine Weiterentwicklung von Ingres, einer älteren Datenbank der University of California, Berkeley. Seit 1994 verwendet es die Structured Query Language (SQL) für Abfragen und Transaktionen. Es wurde kontinuierlich von einer Community aus Entwicklern und Unternehmensentwicklern aktualisiert.

Diese langjährige Erfahrung bei der Entwicklung und Nutzung von SQL macht PostgreSQL zu einer der beliebtesten Open-Source-Datenbanken weltweit. Jeder große Cloud-Anbieter bietet PostgreSQL- oder von PostgreSQL-abgeleitete Datenbanken als Dienst an.


Registrieren Sie sich für einen kostenlosen Testzeitraum für eine der PostgreSQL-Datenbanken von Google Cloud, darunter AlloyDB, Cloud SQL for PostgreSQL und Spanner.

Was ist eine relationale Datenbank?

Eine relationale Datenbank speichert Daten in strukturierten Tabellen mit Zeilen und Spalten sowie Informationen zu verknüpften Daten über mehrere Tabellen hinweg. 

Beispielsweise könnte eine Privatkundenbank eine Tabelle mit Zeilen zu Kundendaten haben, wobei jede Zeile Namen, Telefonnummer und Adresse des Kunden als Spalten enthält. Möglicherweise gibt es eine zweite Tabelle, in der Informationen zu Transaktionen gespeichert sind. Eine relationale Datenbank verknüpft Zeilen zwischen den beiden Tabellen, sodass die Bank verfolgen kann, welcher Kunde welche Transaktionen durchgeführt hat. 

PostgreSQL-Grundlagen

Eine „Abfrage“ ist ein einzelner Vorgang, mit dem Informationen aus der Datenbank angefordert werden. Eine „Transaktion“ ist eine Abfolge von Vorgängen, die Daten in der Datenbank verändern können. Die grundlegenden Speichervorgänge werden allgemein als CRUD-Vorgänge bezeichnet: Erstellen, Lesen, Aktualisieren, Löschen (Create, Read, Update, Delete).

Um den Abruf von Informationen aus der Datenbank zu optimieren, nutzt PostgreSQL Indexe – Kopien eines Teils einer Tabelle, die für eine schnellere Suche neu angeordnet werden. Sie ähneln konzeptionell einem Index am Ende eines Buchs, mit dem Sie ein Element schnell finden können, ohne das gesamte Buch durchgehen zu müssen.

Als relationale Datenbank verwendet PostgreSQL formelle Beschreibungen, sogenannte „Schemas“, um die Struktur der enthaltenen Daten zu beschreiben. Genauer ist ein Schema eine Sammlung von Tabellen, Indexen und Funktionen in der Datenbank. PostgreSQL unterstützt mehrere Schemas.

Datenbankfachleute sind dafür verantwortlich, ein Schema und einen Index-Satz zu entwerfen, um die Daten und ihre Verwendung durch Anwendungsnutzer ideal darzustellen. Sie sind auch für Wartungs- und Betriebsaufgaben verantwortlich, die für die Sicherheit der Daten und den reibungslosen Betrieb der Datenbank sorgen.

PostgreSQL ist eine Open-Source-Datenbank

Seit seiner Entwicklung bei Berkeley ist PostgreSQL Open Source geblieben. Das bedeutet, dass der Code vollständig zur Anzeige, Änderung und Verteilung verfügbar ist.

Entwickler können Open-Source-Datenbanken für ihre Anwendungen ohne Lizenzkosten nutzen und voll flexibel Bereitstellen, da diese Datenbanken auf einer Vielzahl von Cloud- und Nicht-Cloud-Plattformen ausgeführt werden können. Eine Entwickler-Community trägt zur Verbesserung und Wartung der Software bei und steigert so Sicherheit und Zuverlässigkeit.

Vorteile von PostgreSQL

Die Beliebtheit von PostgreSQL hat in den letzten Jahren zugenommen und ist damit eine der am häufigsten verwendeten Datenbanken weltweit. Es bietet eine Reihe von Vorteilen:

  • Zuverlässig und sicher. PostgreSQL ist äußerst fehlertolerant, sorgt für die Langlebigkeit von Daten und maximiert die Betriebszeit. Es unterstützt ein starkes Authentifizierungs- und Autorisierungsmodell sowie verschiedene Verschlüsselungsmethoden, darunter die Ende-zu-Ende-Datenverschlüsselung mit SSL.
  • Leistungsstark. PostgreSQL speichert Daten auf strukturierte Weise, sodass Daten effizient eingefügt, gelöscht und geändert werden können. Es arbeitet auch bei Lookups und Joins effizient. Darüber hinaus kann PostgreSQL mit mehreren CPUs parallel skaliert werden, was Abfragen weiter beschleunigt. 
  • Konformität. Aufgrund der hohen Konformität mit dem SQL-Standard sind PostgreSQL-Datenbanken sowohl für das Erstellen von Anwendungen als auch für die Migration vorhandener Datenbanken einfach zu nutzen. Außerdem sind sie ACID-konform, was bedeutet, dass Ihre Daten auch bei Hardware-, Software- oder Netzwerkstörungen gültig sind.
  • Hochgradig erweiterbar. PostgreSQL unterstützt eine breite Palette von Datentypen (einschließlich erweiterter und benutzererstellte Typen), mehrere Programmiersprachen und die Möglichkeit, benutzerdefinierte Funktionen zu schreiben. Es verfügt weiter über einen Erweiterungsmechanismus zum Hinzufügen neuer Funktionen.
  • Einfaches Monitoring. PostgreSQL bietet verschiedene Statistiken, um die Erfassung und Berichterstellung zu Serveraktivitäten zu unterstützen. Es stehen verschiedene externe Tools zur Überwachung der Datenbankaktivität und zur Leistungsanalyse zur Verfügung.

Wofür wird PostgreSQL verwendet?

PostgreSQL wird aufgrund von Flexibilität, Zuverlässigkeit und robusten Features für eine Vielzahl von Anwendungen verwendet. Hier einige häufige Anwendungsfälle:

Für hochsichere Anwendungen bewährt und für Überprüfbarkeit, Compliance und Datenschutz bekannt.

PostgreSQL kann Abfragen über Milliarden von Zeilen hinweg verarbeiten und wird häufig verwendet, um Data Warehouses und andere Analysesysteme mit Betriebsdaten in Echtzeit zu erweitern. Tatsächlich entstanden mehrere beliebte Data-Warehouse-Produkte aus PostgreSQL.

PostgreSQL ist skalierbar, robust und in der Lage, hohes Traffic-Aufkommen zu bewältigen. Bei mobilen, Web-, Social-Media- und anderen Anwendungen mit hohem Volumen wird auf PostgreSQL gesetzt.

PostgreSQL unterstützt geografische Daten, sodass Anwendungen die Entfernung zwischen Punkten berechnen und räumliche Berechnungen für Navigations-, Logistik- und Agraranwendungen durchführen können.

PostgreSQL bietet eine leistungsstarke Vektorsuche und wird häufig verwendet, um Eingaben für Large Language Models (LLMs) bereitzustellen. Diese Modelle werden häufig durch Retrieval-Augmented Generation (RAG) erweitert. Entwickler entscheiden sich oft für PostgreSQL

PostgreSQL wird häufig von Organisationen verwendet, um Legacy-Anwendungen auf eine moderne Open-Source-Plattform zu heben.

PostgreSQL-Vergleiche

Die folgenden Abschnitte bieten tiefere Einblicke in die PostgreSQL-Umgebung. Hier finden Sie Vergleiche mit AlloyDB und Aurora, SQL Server, MySQL und Oracle. Abschließend lernen Sie die Unterschiede zwischen vollständig verwalteten und selbstverwalteten PostgreSQL-Datenbanken kennen.

Es sind mehrere kommerzielle Produkte mit unterschiedlicher Kompatibilität zu PostgreSQL auf dem Markt. Zwei der beliebtesten sind AlloyDB von Google Cloud und Aurora von AWS. 

AlloyDB läuft auf jeder Plattform und in jeder Cloud, während Aurora nur auf Amazon Web Services (AWS) ausgeführt werden kann. AlloyDB konzentriert sich auf PostgreSQL, während Aurora sowohl PostgreSQL- als auch MySQL-Engines bietet.

AlloyDB ist inzwischen eine beliebte Wahl für Unternehmen, weil es:

  • Mehrere Caching-Ebenen im gesamten Stack nutzt, einschließlich eines ultraschnellen Cache auf Datenbankebene.
  • Über eine eingebaute spaltenbasierte Engine verfügt, die analytische Abfragen beschleunigt
  • ML-fähige Systeme nutzt, um Verwaltungsaufgaben wie das Bereinigung, Speicherung und Speicherverwaltung zu vereinfachen
  • AlloyDB AI beinhaltet, eine Plattform zum Erstellen von generativen KI-Anwendungen mit leistungsstarker Vektorsuche, Vektoreinbettungen und Unterstützung natürlicher Sprache innerhalb der Datenbank
  • Eine transparente und vorhersehbare Preisgestaltung mit „Pay as you go“-Speicher und ohne E/A-Gebühren bietet

PostgreSQL ist eine Open-Source-Datenbank, die auf den meisten Betriebssystemen ausgeführt werden kann, während SQL Server ein kommerzielles Produkt ist, das unter Microsoft Windows und Linux ausgeführt wird. Beide sind als verwaltete Cloud-Dienste von vielen Anbietern erhältlich.

Beide Systeme teilen viele Kernfunktionen, aber es gibt eine Reihe von Unterschieden. Ein wichtiger Vorteil von PostgreSQL besteht darin, dass es für die gleichzeitige Verarbeitung die Multi-Version Concurrency Control (MVCC) verwendet und so hohe Transaktionsraten praktisch ohne Deadlock verarbeiten kann. SQL Server ist für hohe Leistung und In-Memory-Datenbankfunktionen bekannt, die auch von AlloyDB bereitgestellt werden.

Einen vollständigen Vergleich finden Sie unter PostgreSQL versus SQL Server.

MySQL ist eine SQL-basierte relationale Datenbank, während PostgreSQL eine objektrelationale Datenbank ist. Obwohl beide Lösungen Open Source sind, folgt PostgreSQL einem Lizenzierungsmodell, das eine kommerzielle Verteilung ermöglicht. Das Open-Source-Projekt MySQL wird von Oracle gesponsert.

PostgreSQL skaliert durch Hinzufügen von Prozessen, was ein annerkannterweise guter Ansatz für zuverlässige Anwendungen ist. Der Erweiterungsmechanismus von PostgreSQL macht die Plattform zu einer allgemein beliebteren Plattform für Communitybeiträge.

MySQL wird durch Hinzufügen von Threads skaliert, was in der Regel für kleine Anwendungen mit wenigen Ressourcen geeignet ist.

Die Entscheidung hängt oft von der persönlichen Präferenz und den Kenntnissen verfügbarer Entwickler ab.

Einige technische Unterschiede zwischen PostgreSQL und MySQL: 

PostgreSQL

  • Unterstützt komplexe Datentypen und einen Erweiterungsmechanismus
  • Unterstützt MVCC, sodass Daten fast ohne Deadlock geändert werden können
  • Unterstützt eine Vielzahl sehr erweiterbarer Datentypen
  • Unterstützt eine Vielzahl von Indextypen, einschließlich B-Tree, HASH, GiST und GIN
  • Implementiert einen VACUUM-Prozess für die automatische Speicherbereinigung

MySQL

  • Schwerpunkt auf herkömmlichen relationalen Datenbankkonzepten
  • Unterstützt (je nach Speicher-Engine) MVCC
  • Unterstützt einen Standardsatz von Datentypen
  • Bietet eine begrenzte Anzahl von Indexen
  • Verwendet dedizierte Threads zum dauerhaften Löschen

PostgreSQL und Oracle sind beliebte relationale Datenbanken, die SQL unterstützen und vergleichbare prozedurale Sprachen (im Fall von Oracle, PL/SQL) verwenden. Beide werden wegen ihrer Skalierbarkeit und Sicherheit geschätzt. 

Oracle wird von Unternehmen jeder Größe für geschäftskritische Anwendungen verwendet und ist für die Verfügbarkeit und Unterstützung erweiterter Features wie Clustering bekannt. 

PostgreSQL bietet ähnliche Funktionen und Funktionalitäten wie Oracle – einschließlich Notfallwiederherstellung, Hochleistung und integrierter Replikation. Unternehmen nutzen auch PostgreSQL, eine offenere, kostengünstigere Alternative zu Oracle.

Wie bei allen Datenbanken erfordert die Selbstverwaltung technische Kenntnisse innerhalb Ihres Teams. Dazu gehören Kenntnisse über die Konfiguration und Wartung von Architektur und Skalierungsjobs sowie allgemeine Fähigkeiten in Sachen Datenbankverwaltung, darunter Upgrades, Sicherungen, Sicherheitswartung, Notfallwiederherstellung und die Installation von Patches. Entwicklungsteams bevorzugen zunehmend eine vollständig verwaltete Datenbank, damit sie sich auf ihre Anwendungen konzentrieren können.

Vollständig verwaltete Datenbanken:

  • Sind einfach zu testen und zu verwenden
  • Sind einfach oder sogar automatisch skalierbar
  • Bieten automatische Sicherungen und Upgrades an
  • Bieten integrierte Hochverfügbarkeit und Notfallwiederherstellung

Wenn Sie jedoch aufgrund besonderer Anwendungsanforderungen die vollständige Kontrolle über Ihre Datenbankumgebung benötigen, ist eine selbstverwaltete Datenbank die richtige Wahl.

Unterstützung von PostgreSQL-Erweiterungen

Mit Erweiterungen können Sie die Funktionalität Ihrer Datenbank erweitern und an Ihre spezifischen Anforderungen anpassen. PostgreSQL bietet umfassende Unterstützung für Erweiterungen, wobei sich Erweiterungen wie integrierte Funktionen – auch solche, die extern entwickelt wurden – verhalten.

Zu den am häufigsten verwendeten Erweiterungen gehören:

  • PostGIS. Unterstützt das Speichern, Indexieren und Abfragen von Geodaten. Wird für eine Vielzahl von raumbezogenen Anwendungen, einschließlich Navigation, verwendet.
  • pgvector.Ermöglicht das Speichern, Indexieren und Abfragen von Vektoren sowie das Ausführen von Suchen nach Vektorähnlichkeiten. Wird für generative KI und Natural Language Processing verwendet.
  • pglogical. Repliziert Daten stabil mithilfe logischer Replikation. Wird für die Replikation zwischen PostgreSQL-Datenbanken verwendet und unterstützt eine detaillierte Replikation auf Tabellenebene.

PostgreSQL-Datentypen

PostgreSQL unterstützt sowohl einfache als auch erweiterte Datentypen, die in anderen Datenbanken häufig nicht zu finden sind, einschließlich boolescher Werte, Zahlen, Ganzzahlen, Zeitstempel, Arrays und mehr. Entwickler können auch eigene Datentypen erstellen.

Welche Sprachen unterstützt PostgreSQL?

Die prozedurale Standardsprache ist eine Erweiterung von pgSQL (PL/pgSQL), wobei die Erweiterungen Tcl, Perl und Python in der Standardverteilung enthalten sind (geschrieben in PL/Tcl, PL/Perl und PL/Python). Dank dieser ladbaren prozeduralen Sprachen können mit dieser Programmiersprache Funktionen erstellt und Verfahren ausgelöst werden. 

Viele weitere Sprachen werden durch Erweiterungen unterstützt, darunter Java, Ruby, C, C++, Delphi und JavaScript.

Mit PostgreSQL können Sie in mehreren Sprachen programmieren, ohne die Datenbank neu kompilieren zu müssen – ein entscheidender Vorteil für Entwickler.

Ist PostgreSQL ACID-konform?

Ja, PostgreSQL ist seit 2001 ACID-konform.

ACID (Atomarität, Konsistenz, Isolation, Langlebigkeit) umfasst eine Reihe von Attributen, die beschreiben, wie transaktionale Datenbanken für die Gültigkeit von Daten sorgen. Die ACID-Compliance sorgt auch bei einem Netzwerkausfall oder Hardwarefehler für Datenqualität und ermöglicht gleichzeitiges Lesen und Schreiben ohne Datenverlust oder ‑beschädigung. Diese Prinzipien sind für Anwendungen in vielen Branchen, einschließlich des Finanzwesens und des Gesundheitswesens, von entscheidender Bedeutung.

Angenommen, eine Bankanwendung überträgt ein Guthaben zwischen zwei Konten in der Datenbank. Wenn mitten in der Transaktion ein Ausfall oder Fehler auftritt, sorgt eine ACID-kompatible Datenbank dafür, dass das Geld nicht einfach verschwindet oder mehrfach gutgeschrieben wird. Die Kontostände bleiben immer gültig.

Gleich loslegen

Profitieren Sie von einem Guthaben über 300 $, um Google Cloud und mehr als 20 „Immer kostenlos“-Produkte kennenzulernen.

Google Cloud