„PostgreSQL" – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Versionsgeschichte interaktiv durchsuchen
[gesichtete Version] [gesichtete Version]
← Zum vorherigen Versionsunterschied Zum nächsten Versionsunterschied →
Inhalt gelöscht Inhalt hinzugefügt
Zeile 99: Zeile 99:


Version 12 wurde am 3.&nbsp;Oktober 2019 veröffentlicht<ref>{{Internetquelle |url=https://www.postgresql.org/docs/12/release-12.html |titel=PostgreSQL: Documentation: 12: E.1.&nbsp;Release 12 |abruf=2019年10月13日}}</ref>.
Version 12 wurde am 3.&nbsp;Oktober 2019 veröffentlicht<ref>{{Internetquelle |url=https://www.postgresql.org/docs/12/release-12.html |titel=PostgreSQL: Documentation: 12: E.1.&nbsp;Release 12 |abruf=2019年10月13日}}</ref>.

Version 13 wurde am 25. September 2020 veröffentlicht<ref>{{Internetquelle| url=https://www.postgresql.org/about/news/2077/| titel=PostgreSQL 13 Released!| abruf=2020年09月25日}}</ref>.


== Softwarewerkzeuge ==
== Softwarewerkzeuge ==

Version vom 25. September 2020, 09:47 Uhr

PostgreSQL
PostgreSQL-Maskottchen
Basisdaten
Entwickler PostgreSQL Global Development Group
Erscheinungsjahr 8. Juli 1996[1]
Aktuelle Version 17.4[2]
(20. Februar 2025)
Aktuelle Vorabversion 9.6 Beta 1
(12. Mai 2016)
Betriebssystem Unix-Derivate, Linux, Windows
Programmier­sprache C
Kategorie Datenbanksystem, Server
Lizenz PostgreSQL Lizenz[3] vergleichbar der BSD-Lizenz oder der MIT-Lizenz
deutschsprachig nein
www.postgresql.org

PostgreSQL (englisch [,pəʊstgɹɛs kjʊ'ɛl ])[4] , oft kurz Postgres genannt[5] , ist ein freies, objektrelationales Datenbankmanagementsystem (ORDBMS). Seine Entwicklung begann in den 1980er Jahren, seit 1997 wird die Software von einer Open-Source-Community weiterentwickelt.

PostgreSQL ist weitgehend konform mit dem SQL-Standard SQL:2011,[6] d. h. der Großteil der Funktionen ist verfügbar und verhält sich wie definiert. PostgreSQL ist vollständig ACID-konform (inklusive der Data Definition Language) und unterstützt erweiterbare Datentypen, Operatoren, Funktionen und Aggregate [7] . Obwohl sich die Entwicklergemeinde sehr eng an den SQL-Standard hält, gibt es dennoch eine Reihe von PostgreSQL-spezifischen Funktionalitäten, wobei in der Dokumentation bei jeder Eigenschaft ein Hinweis erfolgt, ob dies dem SQL-Standard entspricht, oder ob es sich um eine spezifische Erweiterung handelt. Darüber hinaus verfügt PostgreSQL über ein umfangreiches Angebot an Erweiterungen durch Dritthersteller, wie z. B. PostGIS zur Verwaltung von Geodaten.

PostgreSQL ist in den meisten Linux-Distributionen enthalten. Apple liefert von der Version Mac OS X Lion (10.7) an PostgreSQL als Standarddatenbank aus.

Geschichte

PostgreSQL-Zeitleiste

PostgreSQL, zuvor bekannt unter dem Namen Postgres, später Postgres95, entstand aus einer Datenbankentwicklung der University of California in Berkeley. Den Anfang stellte dabei das Ingres-Projekt dar, wobei der Hauptverantwortliche Michael Stonebraker 1982 die Universität verließ, um Ingres kommerziell zu vertreiben. Nachdem Stonebraker 1985 wieder zur Universität zurückgekehrt war, startete er das Post-Ingres-Projekt, um die Probleme der damaligen Datenbankmanagementsysteme auszumerzen. Die Codebasis des ersten Postgres ist dabei eine andere als die von Ingres.

1989 wurde die erste Version von Postgres fertiggestellt.

Im Jahre 1994 wurde Postgres von den Studenten Andrew Yu und Jolly Chen um einen SQL-Interpreter erweitert und die Software als Open Source unter dem Namen Postgres95 freigegeben. Der Postgres95-Code entsprach dem ANSI-C-Standard und wurde um 25 % verkleinert, weiterhin wurden Leistung und Zuverlässigkeit verbessert. Postgres95, Version 1.0.x war im Wisconsin Benchmark 30 bis 50 Prozent schneller als Postgres, Version 4.2.

Im Zuge der Entwicklung des World Wide Web verstärkte sich das Interesse an Datenbanken. 1996 erhielt Postgres seinen neuen Namen PostgreSQL. Die erste unter diesem Namen veröffentlichte Version ist 6.0. Seither wurde PostgreSQL fortlaufend weiterentwickelt.

Eigenschaften

  • Umfassendes Transaktionskonzept, das Multiversion Concurrency Control (MVCC) unterstützt
  • Ermöglicht komplexe Abfragen mit Unterabfragen (Subselects), auch geschachtelt
  • Referentielle Integrität (u. a. Constraints, Fremdschlüssel)
  • Mengenoperationen
  • Vererbung von Tabellen
  • Maximale Datenbankgröße nur durch zur Verfügung stehenden Speicher begrenzt
  • Views, die mit Hilfe von Regeln (Rules und Triggers) auch schreibfähig sein können (Updatable Views)
  • Trigger und gespeicherte Prozeduren (stored procedures) sind in verschiedenen Sprachen möglich: PL/pgSQL, PL/c, PL/Tcl, PL/Python, PL/Perl, PL/Java, PL/PHP, PL/Ruby, PL/R, PL/sh, PL/Scheme, PL/Parrot, PL/V8 (derzeit noch experimentell)
  • Schnittstellen zu vielen Programmiersprachen, u. a. C, C++, Object Pascal, Java/JDBC, Tcl, PHP, Perl, Python, Ruby sowie zu ODBC und .NET
  • Lauffähig auf vielen Unix-Plattformen, von Version 8.0 an auch nativ unter Windows
  • Export und Import sowohl von Daten als auch von Datenbankstrukturen (Schemata)
  • Erweiterbarkeit durch Funktionen, selbstdefinierbare Datentypen und Operatoren
  • Asynchrone und synchrone Replikation. Der Vorteil der synchronen Replikation liegt in der Sicherstellung, dass die Transaktion mindestens auf zwei Servern tatsächlich ausgeführt wurde, womit eine vollständige Sicherung jederzeit garantiert werden kann (Hot Standby). Diese Ausfallsicherheit wird naturgemäß durch eine längere Wartezeit auf das Commit erkauft. Daher gibt es auch die Möglichkeit, besonders wichtige Geschäftsprozesse wie finanzielle Transaktionen synchron zu replizieren, und bei weniger wichtigen Transaktionen, wie der Aufzeichnung der Benutzerinteraktionen, die sehr viel schnellere asynchrone Replikation zu nutzen.

Erweiterungen

Eine Reihe von durch den Benutzer zu installierenden Zusatzmodulen steht zur Verfügung, darunter mit GiST (Generalized Search Tree) eine universelle Schnittstelle, um Such- und Sortierverfahren in weiten Grenzen selbst definieren zu können. Eine Anwendung davon ist PostGIS, das geografische Objekte und Datenstrukturen verwalten und damit als Datenbank für Geoinformationssysteme (GIS) dienen kann. Eine andere GiST-Anwendung ist OpenFTS (Open Source Full Text Search), das Volltextsuche in DB-Objekten erlaubt.

Eine Reihe von Erweiterungen beschäftigt sich mit Clustering und Replizierung, dem parallelen Einsatz und Abgleich verteilter DB-Server.

Grenzwerte

In diesem Abschnitt werden einige Beschränkungen einer älteren Version beschrieben. Da inzwischen neuere Releases bereitgestellt wurden, könnten einige davon weggefallen sein.

Die hier beschriebenen Beschränkungen betreffen die Versionen 8.4 bis 9.5:[8]

  • maximale Größe der Datenbank: unbeschränkt
  • maximale Größe einer Tabelle: 32 TB
  • maximale Größe eines Datensatzes: 1,6 TB
  • maximale Größe einer Zelle: 1 GB
  • maximale Anzahl Zeilen pro Tabelle: unbeschränkt
  • VARCHAR- und TEXT-Spalten können nicht größer als 1 GB sein
  • Die maximale Anzahl der Spalten pro Tabelle ist abhängig von den verwendeten Datentypen und liegt zwischen 250 und 1600

Upgrade der Datenbank

Jede Nebenversionsnummer wird von der PostgreSQL-Entwickler-Community fünf Jahre lang weitergepflegt. Revisionen enthalten Leistungsverbesserungen und Fehlerbereinigungen, aber niemals neue Funktionen. Die älteste derzeit noch gepflegte Versionslinie ist 9.5, die im Januar 2016 erschien.

Bei einer Software-Aktualisierung müssen bestehende Datenbanken vorher gesichert, danach in der neuen PostgreSQL-Version neu angelegt und die Daten aus der vorherigen Sicherung eingespielt werden. Dies ist dann erforderlich, wenn sich die zweite oder erste Stelle der Versionsnummer geändert hat, nicht jedoch bei Änderungen der dritten Stelle.

Alle heute unterstützten Versionen liefern ein Werkzeug namens pg_upgrade[9] mit, welches das Datenverzeichnis ohne das vorher notwendige Sichern und Wiedereinspielen der Datenbank aktualisieren kann.

Aktuell

Von der Version 8.0 an unterstützt PostgreSQL Windows. Eine weitere Neuerung ist die Unterstützung von Sicherungspunkten (Savepoints). Mit diesen ist es möglich, eine Transaktion an einem vorher gespeicherten Sicherungspunkt fortzusetzen, falls diese durch einen Fehler abgebrochen wurde.

Version 8.3 wurde im Februar 2008 veröffentlicht und brachte eine Reihe von Leistungsverbesserungen sowie Funktionserweiterungen, darunter:

  • Volltextsuche, die bisher als Zusatzprodukt verfügbar war, ist nun in den Kern der DB integriert.
  • XML-Verarbeitung wird durch einen XML-Datentypen unterstützt, der jeweils ein XML-Dokument enthält; bei Abfragen können nun etwa SQL- mit XPath-Queries in einer Transaktion kombiniert werden. Dieses Verfahren wurde 2006 bei DB2 von IBM vorgestellt.
  • Datentypen ENUM und UUID.

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

Version 9.1 wurde am 12. 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, Einbindung von Erweiterungen sowie eine Reihe weiterer Verbesserungen.[11]

Version 9.2 wurde am 10. September 2012 veröffentlicht und enthält in erster Linie neue Funktionalitäten zur Verbesserung der Performance.[12]

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

Version 9.4 wurde am 18. Dezember 2014 veröffentlicht. Beschleunigte Verarbeitung von JSON-Daten durch das binäre Format JSONB.

Version 9.5 wurde am 7. Januar 2016 veröffentlicht. Row-level security control, Block Range Indexes (BRIN), IMPORT FOREIGN SCHEMA, pg_rewind hinzugefügt.[13]

Version 9.6 wurde am 29. September 2016 veröffentlicht. Die wichtigsten Änderungen betreffen vertikale („scale-up") als auch horizontale („scale-out") Skalierung, parallelisierte Abfragen, Phrasensuche und Verbesserungen bei synchroner Replikation, sowie generelle verbesserte Performance und Benutzerfreundlichkeit.[14]

Version 10 wurde am 5. Oktober 2017 veröffentlicht. Die wichtigsten Änderungen betreffen deklarative Partitionierung, logische Replikation, verbesserte Abfrage-Parallelisierung und bessere Password-Hashes.[15]

Version 11 wurde am 18. Oktober 2018 veröffentlicht,[16] Version 11.3 am 9. Mai 2019[17] . Version 11.4 am 20. Juni 2019[18] . Version 11.5 am 8. August 2019[19]

Version 12 wurde am 3. Oktober 2019 veröffentlicht[20] .

Version 13 wurde am 25. September 2020 veröffentlicht[21] .

Softwarewerkzeuge

PostgreSQL selbst läuft als Hintergrundprozess und kann auf verschiedene Weise interaktiv bedient werden. Für die kommandozeilenorientierte Bedienung wird die Konsolenanwendung psql mit der Installation mitgeliefert. Programme mit grafischer Benutzeroberfläche zur Bedienung und Verwaltung der Datenbank müssen oft gesondert installiert werden: freie Produkte sind etwa PgAdmin [22] und phpPgAdmin. Daneben werden eine Vielzahl von kommerziellen Werkzeugen angeboten, die auch grafische CASE-Modellierung, Im- und Export-Funktionen oder DB-Monitoring bieten. Ein MySQL-Migrationshilfswerkzeug ist in jedem freien PostgreSQL-Downloadpaket von EnterpriseDB[23] enthalten.

Preise und Auszeichnungen

An PostgreSQL wurden in der Vergangenheit zahlreiche Preise vergeben.[24] Zuletzt erhielt das Projekt den „Linux New Media Awards 2012" als die beste Open-Source-Datenbank.[25]

Literatur

Commons: PostgreSQL  – Sammlung von Bildern, Videos und Audiodateien

Produkt

Werkzeuge und Erläuterungen

Distributionen

Einzelnachweise

  1. www.postgresql.org. (abgerufen am 9. Juni 2017).
  2. PostgreSQL 17.4, 16.8, 15.12, 14.17, and 13.20 Released. 20. Februar 2025.
  3. PostgreSQL: License. In: PostgreSQL.org. Abgerufen am 11. April 2012 (englisch). 
  4. Hörbeispiel zur Aussprache von „PostgreSQL" (MP3-Datei; 5,6 kB)
  5. PostgreSQL-FAQ. What is PostgreSQL? How is it pronounced? What is Postgres? In: wiki.postgresql.org. Abgerufen am 27. August 2015 (englisch). 
  6. PostgreSQL: Documentation: 10: Appendix D. SQL Conformance. In: PostgreSQL.org. Abgerufen am 8. November 2017 (englisch). 
  7. PostgreSQL: Feature Matrix. In: PostgreSQL.org. Abgerufen am 19. Mai 2012 (englisch). 
  8. PostgreSQL: About. In: PostgreSQL.org. Abgerufen am 11. April 2012 (englisch). 
  9. PostgreSQL: Documentation: Manuals: PostgreSQL 9-1: pg_upgrade. In: PostgreSQL.org. Abgerufen am 11. April 2012 (englisch). 
  10. PostgreSQL 9.0 mit eingebauter Replikation. In: heise online. 20. September 2010, abgerufen am 11. April 2012. 
  11. PostgreSQL 9.1 erschienen – Artikel bei Golem.de , vom 16. September 2011
  12. PostgreSQL 9.2: Release Notes – PostgreSQL-Online-Dokumentation, vom 10. September 2012
  13. http://www.postgresql.org/docs/9.5/static/release-9-5.html
  14. http://www.postgresql.org/docs/9.6/static/release-9-6.html
  15. PostgreSQL: Documentation: 10: E.1. Release 10. Abgerufen am 9. Oktober 2017 (englisch). 
  16. PostgreSQL: Documentation: 11: E.1. Release 11. Abgerufen am 19. Oktober 2018 (englisch). 
  17. PostgreSQL 11.3, 10.8, 9.6.13, 9.5.17, and 9.4.22 Released! Abgerufen am 17. Juni 2019. 
  18. PostgreSQL 11.4, 10.9, 9.6.14, 9.5.18, 9.4.23, and 12 Beta 2 Released. 20. Juni 2019, abgerufen am 27. Juni 2019 (englisch). 
  19. PostgreSQL: Documentation: 11: E.1. Release 11.5. Abgerufen am 13. Oktober 2019. 
  20. PostgreSQL: Documentation: 12: E.1. Release 12. Abgerufen am 13. Oktober 2019. 
  21. PostgreSQL 13 Released! Abgerufen am 25. September 2020. 
  22. pgadmin.org (englisch)
  23. Downloadseite für PostgreSQL. Abgerufen am 24. September 2011. 
  24. Liste der Auszeichnungen (Memento vom 1. März 2012 im Internet Archive ) auf der Projektseite.
  25. Cebit 2012: Android, Libre Office und Samsung streichen Preise ein, 8. März 2012, linux-magazin.de
  26. enterprisedb.com/ Postgres Plus Server (english). Abgerufen am 27. September 2011. 
Anweisungen und Klauseln

AsCaseCreateDeleteFromHavingInsertJoinMergeNullOrder byPrepareSelectTruncateUnionUpdateWhereWith

Varianten

PL/SQLTransact-SQLOpen SQLEmbedded SQLPostgreSQL

Normdaten (Sachbegriff): GND: 4690455-4 (lobid, OGND , AKS )
Abgerufen von „https://de.wikipedia.org/w/index.php?title=PostgreSQL&oldid=203964057"