PostgreSQL

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 15. November 2010 um 11:35 Uhr durch SieBot (Diskussion | Beiträge) (Bot: Ergänze: ta:போஸ்கிரெஸ்குயெல்). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Zur Navigation springen Zur Suche springen
PostgreSQL

PostgreSQL-Maskottchen
Basisdaten

Entwickler PostgreSQL-Team
Erscheinungsjahr 8. Juli 1996[1]
Aktuelle Version 9.0.1
(4. Oktober 2010)
Betriebssystem Unix-Derivate, Linux, Windows
Programmiersprache C
Kategorie Datenbanksystem, Server
Lizenz BSD-Lizenz
deutschsprachig nein
postgresql.org

PostgreSQL (engl. [poːst ɡɹɛs kjuː ɛl] Hörbeispiel, 5,6 kB MP3) 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 ANSI-SQL 92, d. h. alle geforderten Funktionen sind verfügbar und verhalten sich wie definiert. Weiter erfüllt es bereits einen sehr großen Teil der verpflichtenden Merkmale des aktuellen SQL:2008 Standards[2] und eine Reihe von optionalen Merkmalen.

Geschichte

PostgreSQL, auch einmal 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ückkehrte, 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 Performance 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. Die Entwicklung von PostgreSQL wurde 1996, zusammen mit dem Wechsel auf den heutigen Namen, begonnen. Die erste veröffentlichte Version unter diesem Namen ist 6.0. Seitdem wurde PostgreSQL fortlaufend weiterentwickelt.

Eigenschaften

  • Umfassendes Transaktionskonzept, das Multiversion Concurrency Control (MVCC) unterstützt.
  • Ermöglicht komplexe Abfragen mit Unterabfragen (Subselects), auch geschachtelt.
  • Referenzielle Integrität (u. a. Constraints, Fremdschlüssel).
  • Mengenoperationen.
  • 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/Tcl, PL/Perl, PL/Python, PL/Java, PL/PHP, PL/Ruby, PL/R, PL/sh, PL/Scheme).
  • Schnittstellen zu vielen Programmiersprachen, u. a. C, Delphi, C++, Java/JDBC, Tcl, PHP, Perl, Python, Ruby sowie zu ODBC und .NET.
  • Lauffähig auf vielen Unix-Plattformen, ab Version 8.0 auch nativ unter Microsoft Windows.
  • Export und Import sowohl von Daten als auch von Datenbankstrukturen (Schemata).
  • Erweiterbarkeit durch Funktionen, selbstdefinierbare Datentypen und Operatoren.

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.

Limits

In diesem Abschnitt werden einige Einschränkungen der aktuellen Version beschrieben. Wenn zukünftige Releases bereitgestellt werden, könnten einige dieser Einschränkungen weggefallen sein.

Die hier beschriebenen Einschränkungen betreffen die Version 8.3.[3]

  • Maximale Größe einer Tabelle: 32 TB
  • Maximale Größe eines Datensatzes: 1,6 TB
  • Maximale Größe einer Zelle: 1 GB
  • VARCHAR- und TEXT-Spalten können nicht länger 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

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.

Neuere Versionen liefern ein Werkzeug namens pg_upgrade[4] mit, welches das Datenverzeichnis ohne das vorher notwendige Sichern und Wiedereinspielen der Datenbank aktualisieren kann.

Aktuell

Seit der Version 8.0 unterstützt PostgreSQL auch nativ (d. h. ohne eine Zwischenschicht wie z. B. Cygwin) Betriebssysteme, die auf Windows NT basieren wie etwa Windows 2000, Windows XP oder Windows Server 2003. Frühere Versionen werden nicht unterstützt, da sie die Anforderungen von PostgreSQL nicht erfüllen.

Dies dient dazu, die z. B. im Vergleich zu MySQL höhere Einstiegshürde bei PostgreSQL abzubauen. Es ist jetzt möglich, die Datenbank wie jedes andere Programm zu installieren. Bei praktisch allen Linux-Distributionen ist PostgreSQL im Lieferumfang vorhanden.

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 Performance-Verbesserungen 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 am 20. September 2010 veröffentlicht und brachte Funktionen für Replikation und Hot-Standby und Verbesserungen bei Sicherheit, Monitoring und speziellen Datentypen.[5]

Softwarewerkzeuge

Neben der kommandozeilenorientierten Bedienung mit psql gibt es weitere GUI-orientierte Werkzeuge zur Bedienung und Verwaltung der Datenbank: Freie Produkte sind etwa PgAdmin III und phpPgAdmin. Daneben werden eine Vielzahl von kommerziellen Werkzeugen angeboten, die auch grafische CASE-Modellierung, Im- und Export-Funktionen oder DB-Monitoring bieten.

Literatur

  • Andreas Scherbaum: PostgreSQL. Datenbankpraxis für Anwender, Administratoren und Entwickler. Open Source Press 08/2009, ISBN 978-3-937514-69-7

Weblinks

Produkt und Community

Werkzeuge und Erläuterungen

Distributionen

  • Postgres Plus (englisch) – Eine auf PostgreSQL basierende optimierte Datenbank mit Erweiterungen um Oracle-Kompatibilität und professionellem Support (ehemals EnterpriseDB)
  • PostgreSQL Portable – Ein angepasstes PostgreSQL für USB Sticks (nur lauffähig unter Microsoft Windows).

Einzelnachweise

  1. www.postgresql.org. (abgerufen am 9. Juni 2017).
  2. PostgreSQL: Documentation: Manuals: PostgreSQL 9-0: SQL Conformance (englisch) – Seite bei PostgreSQL.org; Stand: 29. September 2010
  3. Über PostgreSQL
  4. PostgreSQL: Documentation: Manuals: PostgreSQL 9-0: pg_upgrade (englisch) – Seite bei PostgreSQL.org; Stand: 29. September 2010
  5. PostgreSQL 9.0 mit eingebauter Replikation – Artikel bei heise online, vom 20. September 2010