Postgre SQL

PostgreSQL, häufig einfach Postgres, ist ein mit dem Gegenstandverwandtschaftsdatenbankverwaltungssystem (ORDBMS), der für viele Plattformen einschließlich Linux, FreeBSD, Solaris, Windows von Microsoft und Mac OS X verfügbar ist. Es wird laut der Lizenz von PostgreSQL veröffentlicht, die eine MIT-artige Lizenz ist, und so freie und offene Quellsoftware ist. PostgreSQL wird von PostgreSQL Global Development Group entwickelt, aus einer Hand voll Freiwillige bestehend, die angestellt und von Gesellschaften wie Roter Hut und EnterpriseDB beaufsichtigt sind. Es führt die Mehrheit des Standards durch, ist SAUER-ENTGEGENKOMMEND, ist völlig transactional (einschließlich aller DDL Behauptungen), hat ausziehbare Datentypen, Maschinenbediener, Index-Methoden, Funktionen, Anhäufungen, Verfahrenssprachen, und hat eine Vielzahl von von Dritten geschriebenen Erweiterungen.

Die große Mehrheit des Vertriebs von Linux hat in gelieferten Paketen verfügbaren PostgreSQL. Mac OS X, mit dem Löwen anfangend, hat Server von PostgreSQL als seine Standardverzug-Datenbank in der Server-Ausgabe und Kundenwerkzeuge von PostgreSQL in der Tischausgabe.

Produktname

Die Mischkapitalisierung des Namens von PostgreSQL kann einige Menschen auf der ersten Betrachtung verwirren. Die mehreren Artikulationen von "SQL" können zu dieser Verwirrung beitragen. Die Entwickler von PostgreSQL sprechen es aus; (Audioprobe, 5.6k MP3). Es wird als "Postgres", sein eigentlicher Name abgekürzt. Wegen der allgegenwärtigen Unterstützung für unter den meisten Verwandtschaftsdatenbanken hat die Gemeinschaft gedacht, den Namen zurück zu Postgres zu ändern. Jedoch hat die Kernmannschaft von PostgreSQL 2007 bekannt gegeben, dass das Produkt fortsetzen würde, den Namen PostgreSQL zu verwenden. Der Name kennzeichnet die Ursprünge des Projektes als eine Datenbank "von post-Ingres", eine Entwicklung von der Universität Ingres DBMS (Ingres seiend, der eine Abkürzung für das Interaktive Grafikwiederauffindungssystem ist).

Geschichte

PostgreSQL hat sich aus dem Projekt von Ingres an der Universität Kaliforniens, Berkeley entwickelt. 1982 hat der Projektführer, Michael Stonebraker, Berkeley verlassen, um eine Eigentumsversion von Ingres zu machen. Er ist zu Berkeley 1985 zurückgekehrt und hat ein Projekt von post-Ingres angefangen, die Probleme mit zeitgenössischen Datenbanksystemen zu richten, die immer klarer während des Anfangs der 1980er Jahre geworden waren. Das neue Projekt, POSTGRES, hat zum Ziel gehabt hinzuzufügen, dass wenigste Eigenschaften Typen völlig unterstützen mussten. Diese Eigenschaften haben die Fähigkeit eingeschlossen, Typen zu definieren und Beziehungen - etwas Verwendetes weit vorher, aber aufrechterhalten völlig vom Benutzer völlig zu beschreiben. In Postgres hat die Datenbank Beziehungen "verstanden", und konnte Information in zusammenhängenden Tischen in einer natürlichen Weise wiederbekommen, Regeln zu verwenden. Postgres hat viele der Ideen von Ingres, aber nicht seinen Code verwendet.

1986 anfangend, hat die Mannschaft mehrere Papiere veröffentlicht, die die Basis des Systems beschreiben, und vor 1988 hatte eine Prototyp-Version. Die Mannschaft hat Version 1 zu einer kleinen Anzahl von Benutzern im Juni 1989, dann Version 2 mit einem umgeschriebenen Regel-System im Juni 1990 veröffentlicht. Version 3, veröffentlicht 1991, hat wieder das Regel-System umgeschrieben, und hat Unterstützung für vielfache Lagerungsbetriebsleiter und einen verbesserten Anfragenmotor hinzugefügt. Vor 1993 hat die große Zahl von Benutzern begonnen, das Projekt mit Bitten um die Unterstützung und Eigenschaften zu überwältigen. Nach der Ausgabe der Version 4 — in erster Linie einer Reinigung — hat das Projekt geendet.

Aber Entwickler der offenen Quelle konnten Kopien erhalten und das System weiter entwickeln, weil Berkeley Postgres laut einer MIT-artigen Lizenz befreit hatte. 1994 haben Studenten im Aufbaustudium von Berkeley Andrew Yu und Lustiger Chen den mit Sitz in Ingres QUEL-Anfragensprachdolmetscher durch einen für die SQL-Anfragensprache ersetzt, Postgres95 schaffend. Der Code wurde im Web veröffentlicht.

Im Juli 1996 hat Marc Fournier an Hub.Org Networking Services den ersten Nichtuniversitätsentwicklungsserver für den Entwicklungsaufwand der offenen Quelle zur Verfügung gestellt. Zusammen mit Bruce Momjian und Vadim B. Mikheev hat Arbeit begonnen, den von Berkeley geerbten Code zu stabilisieren. Die erste Version der offenen Quelle wurde am 1. August 1996 veröffentlicht.

1996 wurde das Projekt zu PostgreSQL umbenannt, um seine Unterstützung für SQL zu widerspiegeln. Erste PostgreSQL veröffentlichen gebildete Version 6.0 im Januar 1997. Seitdem ist die Software von einer Gruppe von Datenbankentwicklern und Freiwilligen um die Welt aufrechterhalten worden, über das Internet koordinierend.

Das Projekt von PostgreSQL setzt fort, Hauptausgaben (ungefähr jährlich) und geringe "Bugfix"-Ausgaben, alle verfügbar laut derselben Lizenz zu machen. Code kommt aus Beiträgen von Eigentumsverkäufern, Unterstützungsgesellschaften und Programmierern der offenen Quelle auf freiem Fuß.

Hauptausgaben

Plattformen

Architekturen

PostgreSQL arbeitet an einigen der folgenden Architekturen: x86, x86_64, IA64, PowerPC, PowerPC 64, S/390, S/390x, Sparc, Sparc 64, Alpha, ARM, MIPS, MIPSel, M68K und PAPA-RISC. Wie man auch bekannt, arbeitet es an M32R, NS32K und VAX. Zusätzlich zu diesen ist es möglich, PostgreSQL für eine ununterstützte Zentraleinheit zu bauen, indem es spinlocks unbrauchbar gemacht wird.

Das Funktionieren von Systemen

PostgreSQL ist für die folgenden Betriebssysteme verfügbar: Linux (der ganze neue Vertrieb), Windows (Win2000 SP4 und später), FreeBSD, OpenBSD, NetBSD, Mac OS X, AIX, BSD/OS, HP-UX, IRIX, OpenIndiana, OpenSolaris, SCO OpenServer, SCO UnixWare, Solaris und Tru64 Unix. Die meisten anderen Unix ähnlichen Systeme sollten auch arbeiten.

Eigenschaften

Verfahrenssprachen

Verfahrenssprachen (häufig genannt versorgte Verfahren) erlauben Blöcken des Codes, durch den Datenbankserver durchgeführt zu werden, und können auf Programmiersprachen außer SQL und C geschrieben werden. Verfahrenssprachen können verwendet werden, um benutzerbestimmte Funktionen (Unterprogramm, Abzug, Anhäufungen und Fensterfunktionen) zu schaffen, und können auch im ad-hoc-verwendet werden "TUN" Blöcke. Die folgenden vier Verfahrenssprachen werden durch eine Standardinstallation von PostgreSQL zur Verfügung gestellt:

  • PL/pgSQL, eine eingebaute Sprache, die der PL/SQL Verfahrenssprache des Orakels ähnelt
  • PL/Tcl, stellt Tcl zur Verfügung
  • PL/Perl, stellt Perl zur Verfügung
  • PL/Python, stellt Pythonschlange, jede Version 2 oder 3 zur Verfügung

Andere Sonderverfahrenssprachen, die außerhalb des Kernvertriebs entwickelt worden sind, schließen ein (aber werden auf nicht beschränkt):

Indizes

PostgreSQL schließt eingebaute Unterstützung für B +-tree, Kuddelmuddel, verallgemeinerte Suchbäume (HAUPTINHALT) ein und hat umgekehrte Indizes (GIN) verallgemeinert. Außerdem können benutzerbestimmte Index-Methoden geschaffen werden, obwohl das ganz ein beteiligter Prozess ist. Indizes in PostgreSQL unterstützen auch die folgenden Eigenschaften:

  • Ausdruck-Indizes können mit einem Index des Ergebnisses eines Ausdrucks oder Funktion statt einfach des Werts einer Säule geschaffen werden.
  • Teilweise Indizes, der nur Index-Teil eines Tisches, können durch das Hinzufügen einer Klausel zum Ende der Behauptung geschaffen werden. Das erlaubt einem kleineren Index, geschaffen zu werden.
  • Der Planer ist dazu fähig, vielfache Indizes zusammen zu verwenden, um komplizierte Abfragen mit vorläufigen bitmap Index-Operationen im Gedächtnis zu befriedigen.
  • Bezüglich PostgreSQL 9.1 K-Nearest-Neighbour (auch verwiesen auf den KNN-HAUPTINHALT) stellt das Indexieren effiziente Suche "nächster Werte" dazu zur Verfügung, das angegeben, für die Entdeckung ähnlicher Wörter nützlich ist, oder protestiert nahe oder Positionen mit geospatial Daten. Das wird ohne das erschöpfende Zusammenbringen von Werten erreicht.

Abzüge

Abzüge sind Ereignisse, die durch die Handlung von SQL DML Behauptungen ausgelöst sind. Zum Beispiel könnte eine EINSATZ-Behauptung einen Abzug aktivieren, der überprüft, ob die Werte der Behauptung gültig sind. Die meisten Abzüge werden nur entweder durch den EINSATZ aktiviert oder AKTUALISIEREN Behauptungen.

Abzüge werden völlig unterstützt und können Tischen beigefügt werden. In PostgreSQL 9.0 und oben können Abzüge pro Säule und in dieser AKTUALISIERUNG bedingt sein Abzüge können spezifische Säulen eines Tisches ins Visier nehmen, und Abzüge können gesagt werden, unter einer Reihe von Bedingungen, wie angegeben, im Abzug WO Klausel durchzuführen. Bezüglich PostgreSQL 9.1 können Abzüge Ansichten durch das Verwenden STATT der Bedingung beigefügt werden. Ansichten in Versionen vor 9.1 können Regeln haben, dennoch. Vielfache Abzüge werden in alphabetischer Reihenfolge angezündet. Zusätzlich zum Benennen von im heimischen PL/PgSQL geschriebenen Funktionen können Abzüge auch Funktionen anrufen, die auf anderen Sprachen wie PL/Python oder PL/Perl geschrieben sind.

Diagramme

In PostgreSQL werden alle Gegenstände (mit Ausnahme von Rollen und tablespaces) innerhalb eines Diagramms gehalten. Diagramme handeln effektiv wie namespaces, Gegenständen desselben Namens erlaubend, in derselben Datenbank zu koexistieren. Diagramme sind Verzeichnissen in einem Dateisystem analog, außer dass sie nicht verschachtelt werden können, noch es möglich ist, eine "symbolische Verbindung" zu schaffen, zu einem anderen Diagramm oder Gegenstand hinweisend.

Standardmäßig werden Datenbanken mit dem "öffentlichen" Diagramm geschaffen, aber irgendwelche zusätzlichen Diagramme können hinzugefügt werden, und das öffentliche Diagramm ist nicht obligatorisch. Ein "search_path" bestimmt die Ordnung, in der Diagramme auf unqualifizierten Gegenständen überprüft werden (diejenigen ohne ein vorfestes Diagramm), der auf einer Datenbank oder Rolle-Niveau konfiguriert werden kann. Der Suchweg enthält standardmäßig den speziellen Diagramm-Namen von "$user", der zuerst nach einem nach dem verbundenen Datenbankbenutzer genannten Diagramm sucht (z.B, wenn der Benutzer "dave" verbunden würde, würde es zuerst nach einem Diagramm suchen auch hat "dave" genannt, als man sich auf irgendwelche Gegenstände bezogen hat). Wenn solch ein Diagramm nicht gefunden wird, geht es dann zum folgenden Diagramm weiter. Neue Gegenstände werden darin geschaffen, welch auch immer gültiges Diagramm (dasjenige, das jetzt besteht) zuerst im Suchweg verzeichnet wird.

MVCC

PostgreSQL führt Parallelität durch ein System, das als Mehrversionsparallelitätskontrolle (MVCC) bekannt ist, der jeder Transaktion einen "Schnellschuss" der Datenbank gibt, Änderungen erlaubend, gemacht zu werden, ohne zu anderen Transaktionen sichtbar zu sein, bis die Änderungen begangen werden. Das beseitigt größtenteils das Bedürfnis nach gelesenen Schlössern und stellt sicher, dass die Datenbank die SÄURE (atomicity, Konsistenz, Isolierung, Beständigkeit) Grundsätze auf eine effiziente Weise aufrechterhält.

Regeln

Regeln erlauben dem "Anfragenbaum" einer eingehenden Abfrage, umgeschrieben zu werden. Ein allgemeiner Gebrauch soll Ansichten einschließlich Updatable-Ansichten durchführen. Regeln, oder richtiger, "Schreibt Abfrage Regeln Um", werden einem Tisch/Klasse beigefügt und "Schreiben" den eingehenden DML "Um" (ausgesucht, Einsatz, Aktualisierung, und/oder löschen Sie) in eine oder mehr Abfragen, die, entweder die ursprüngliche DML Behauptung zu ersetzen, oder zusätzlich dazu durchführen. Abfrage schreibt Um kommt nach der DML Behauptungssyntaxanalyse, aber vor der Anfragenplanung vor.

Datentypen

Ein großes Angebot an heimischen Datentypen wird unterstützt, einschließlich:

  • Boolean
  • Willkürliche Präzision numerics
  • Charakter (Text, varchar, Rotforelle)
  • Binärer
  • Datum/Zeit (Zeitstempel/Zeit mit/ohne timezone, Datum, Zwischenraum)
  • Geld
  • Enum
  • Bit spannt
  • Textsuchtyp
  • Zusammensetzung
  • Reihe (variable Länge und kann von jedem Datentyp, einschließlich des Textes und der zerlegbaren Typen sein), das bis zu 1 GB in der Gesamtlagerungsgröße.
  • Geometrische Primitive
  • IPv4 und IPv6 richten
  • CIDR Blöcke und MAC richten
  • XML, der XPath Abfragen (bezüglich 8.3) unterstützt
  • UUID (bezüglich 8.3)

Außerdem können Benutzer ihre eigenen Datentypen schaffen, die gewöhnlich völlig indexable über die Infrastruktur von GiST von PostgreSQL gemacht werden können. Beispiele von diesen schließen die Datentypen des geografischen Informationssystems (GIS) aus dem Projekt von PostGIS für PostgreSQL ein.

Es gibt auch einen Datentyp genannt ein "Gebiet", das dasselbe als jeder andere Datentyp, aber mit fakultativen vom Schöpfer dieses Gebiets definierten Einschränkungen ist. Das bedeutet, dass irgendwelche Daten in eine Säule mit dem Gebiet eingetreten sind, wird sich dem anpassen müssen, welch auch immer Einschränkungen als ein Teil des Gebiets definiert wurden.

Benutzerbestimmte Gegenstände

Neue Typen fast aller Gegenstände innerhalb der Datenbank können geschaffen werden, einschließlich:

  • Würfe
  • Konvertierungen
  • Datentypen
  • Gebiete
  • Funktionen, einschließlich gesamter Funktionen und Fensters fungieren
  • Indizes einschließlich kundenspezifischer Indizes für kundenspezifische Typen
  • Maschinenbediener (können vorhandene überladen werden)
  • Verfahrenssprachen

Erbe

Tische können gedeckt werden, um ihre Eigenschaften von einem "Elternteil"-Tisch zu erben. Daten in Kindertischen werden scheinen, in den Elternteiltischen zu bestehen, wenn Daten vom Elternteiltisch mit dem EINZIGEN Schlüsselwort, d. h. dem Hinzufügen nicht ausgewählt werden, dass eine Säule im Elternteiltisch diese Säule veranlassen wird, im Kindertisch zu erscheinen.

Erbe kann verwendet werden, um das Tabellenverteilen, mit entweder Abzügen oder Regeln durchzuführen, Einsätze zum Elternteiltisch in die richtigen Kindertische zu leiten.

diese Eigenschaft wird noch nicht völlig unterstützt — insbesondere Tabelleneinschränkungen sind nicht zurzeit erblich. Bezüglich der 8.4 Ausgabe, aller Kontrolle-Einschränkungen und nicht - werden ungültige Einschränkungen auf einen Elternteiltisch von seinen Kindern automatisch geerbt. Andere Typen von Einschränkungen (einzigartiger, primärer Schlüssel und Auslandsschlüsseleinschränkungen) werden nicht geerbt.

Erbe stellt eine Weise zur Verfügung, die Eigenschaften von Generalisationshierarchien kartografisch darzustellen, die in Entity Relationship Diagrams (ERD) direkt in die Datenbank von PostgreSQL gezeichnet sind.

Erwiderung

PostgreSQL, von der Version 9.0 beginnend, schließt eingebaute binäre Erwiderung ein, die auf dem Verschiffen der Änderungen (Klotz des Schreibens vorn) zu Sklavensystemen asynchron gestützt ist.

Version 9.0 hat auch die Fähigkeit eingeführt, Read-Only-Abfragen gegen diese wiederholten Sklaven zu führen, wo frühere Versionen nur dem nach der Förderung von ihnen erlauben würden, ein neuer Master zu sein. Das erlaubt, gelesenen Verkehr unter vielfachen Knoten effizient zu spalten. Frühere Erwiderungssoftware, die ähnliches gelesenes Schuppen normalerweise erlaubt hat, hat sich auf das Hinzufügen von Erwiderungsabzügen dem Master verlassen, zusätzliche Last darauf einführend.

Von der Version 9.1 beginnend, schließt PostgreSQL auch eingebaute gleichzeitige Erwiderung ein, die sicherstellt, dass, für jeden Transaktion schreiben, wartet der Master, bis mindestens ein Sklavenknoten die Daten seinem Transaktionsklotz geschrieben hat. Verschieden von anderen Datenbanksystemen kann die Beständigkeit einer Transaktion (ob es asynchron oder gleichzeitig ist) pro Datenbank pro Benutzer pro Sitzung oder sogar pro Transaktion angegeben werden. Das kann für Arbeitspensen nützlich sein, die solche Garantien nicht verlangen, und für alle Daten nicht gewollt werden dürfen, weil es eine negative Wirkung auf die Leistung wegen der Voraussetzung der Bestätigung der Transaktion haben wird, die die gleichzeitige Reserve erreicht.

Es kann eine Mischung von gleichzeitigen und asynchronen Hilfsservern geben. Eine Liste von gleichzeitigen Hilfsservern kann in der Konfiguration angegeben werden, die bestimmt, welche Server Kandidaten für die gleichzeitige Erwiderung sind. Das erste in der Liste, die zurzeit verbunden wird und aktiv Einteilung, ist dasjenige, das als der aktuelle gleichzeitige Server verwendet wird. Wenn das scheitert, fällt es zum folgenden in der Linie.

Es gibt auch mehrere asynchrone Abzug-basierte Erwiderungspakete für PostgreSQL. Diese bleiben nützlich sogar nach der Einführung der ausgebreiteten Kernfähigkeiten für Situationen, wo die binäre Erwiderung einer kompletten Datenbanktraube nicht die passende Annäherung ist:

  • Slony-I
  • Der Londiste des Skypes (ein Teil von SkyTools)
  • Backcountry.com's Bucardo (Mehrmaster-Erwiderung)

Vertretung (middleware) Werkzeuge ermöglicht Erwiderung, failover oder Lastmanagement und für PostgreSQL balancierend:

  • PGPool-II
  • Continuent Sequoia, die auch für andere Datenbanksoftware verfügbar
ist

Asynchrone Ankündigungen

PostgreSQL stellt ein asynchrones Nachrichtenübermittlungssystem zur Verfügung, auf das durch das BENACHRICHTIGEN zugegriffen wird, HÖREN SIE und UNLISTEN-Befehle. Eine Sitzung kann Problem a, Befehl, zusammen mit dem benutzerangegebenen Kanal und einer fakultativen Nutzlast BEKANNT GEBEN, ein besonderes Ereignis-Auftreten zu kennzeichnen. Andere Sitzungen sind im Stande, diese Ereignisse durch die Ausgabe eines HÖREN Befehls zu entdecken, der einem besonderen Kanal zuhören kann. Diese Funktionalität kann für ein großes Angebot an Zwecken, wie das Mitteilen anderer Sitzungen verwendet werden, als ein Tisch aktualisiert hat oder für getrennte Anwendungen, um zu entdecken, als eine besondere Handlung durchgeführt worden ist. Solch ein System verhindert das Bedürfnis nach der dauernden Stimmabgabe durch Anwendungen zu sehen, ob sich irgendetwas noch, und das Reduzieren unnötig oben geändert hat. Ankündigungen sind völlig transactional, darin Nachrichten werden nicht gesandt, bis die Transaktion, von der ihnen gesandt wurde, begangen wird. Das beseitigt das Problem von Nachrichten, die für eine Handlung senden werden, die wird durchführt, der dann wiederholt wird.

Viele der Stecker für PostgreSQL stellen Unterstützung für dieses Ankündigungssystem zur Verfügung (einschließlich libpq, JDBC, Npgsql, psycopg und node.js), so kann es durch Außenanwendungen verwendet werden.

Sicherheit

Inner

Die Sicherheit innerhalb der Datenbank wird auf "pro Rolle-Basis" geführt. Eine Rolle wird allgemein betrachtet, um ein Benutzer zu sein (eine Rolle, die in loggen kann), oder eine Gruppe (eine Rolle, die andere Rollen Mitglieder sind). Erlaubnis kann gewährt oder auf jedem Gegenstand unten zum Säulenniveau widerrufen werden, und kann auch die Entwicklung von neuen Gegenständen an der Datenbank, dem Diagramm oder den Tabellenniveaus erlauben/verhindern.

Die sepgsql Erweiterung (versorgt mit PostgreSQL bezüglich der Version 9.1) stellt eine zusätzliche Schicht der Sicherheit durch die Integrierung mit SELinux zur Verfügung. Das verwertet die SICHERHEITSETIKETT-Eigenschaft von PostgreSQL.

Äußerlich

PostgreSQL unterstützt heimisch eine breite Zahl von Beglaubigungsmechanismen einschließlich:

  • Vertrauen (keine Erzwingung)
  • Kennwort (entweder MD5 oder Klartext)
  • GSSAPI
  • SSPI
  • Kerberos
  • ident (stellt O/S Benutzernamen gemäß einem ident Server zum Datenbankbenutzernamen kartografisch dar)
  • Gleicher (stellt lokalen Benutzernamen zum Datenbankbenutzernamen kartografisch dar)
  • LDAP
  • RADIUS
  • Zertifikat
  • PAM

Der GSSAPI, SSPI, Kerberos, Gleicher, ident und die Zertifikat-Methoden können auch eine angegebene "Karte"-Datei verwenden, die Schlagseite hat, welchen durch dieses Beglaubigungssystem verglichenen Benutzern erlaubt wird, als ein spezifischer Datenbankbenutzer in Verbindung zu stehen.

Diese Methoden werden in der Gastgeber-basierten Beglaubigungskonfigurationsdatei der Traube (pg_hba.conf) angegeben, der bestimmt, was Verbindungen erlaubt wird. Das erlaubt Kontrolle, über die Benutzer in Verbindung stehen kann, zu der Datenbank wo sie davon in Verbindung stehen können (IP address/IP Adressbereich / Bereichssteckdose), welches Beglaubigungssystem beachtet wird, und ob die Verbindung SSL verwenden muss.

Contrib Module

PostgreSQL kommt mit zusätzlichen Erweiterungen, Bibliotheken und Werkzeugen, die contrib Module genannt werden.

Erweiterungen werden in Datenbanken standardmäßig nicht installiert, aber sie können auf einer Basis pro Datenbank installiert werden, um zusätzliche Funktionalität und Eigenschaften zur Verfügung zu stellen. In PostgreSQL 9.1 und später können diese über den SCHAFFEN ERWEITERUNGS-Befehl installiert werden. Ältere Versionen führen eine SQL Schrift in der Datenbank durch, in der sie installiert werden sollen.

Bibliotheken fügen weites System Funktionalität aber nicht pro Datenbank hinzu. Diese können in individuelle Sitzungen geladen oder konfiguriert werden, um in den Server vorgeladen zu werden, der automatisch verfügbar für alle Sitzungen zu machen ist.

Werkzeuge sind Anwendungen verwendet außerhalb der Datenbank und stellen verschiedene Dienstprogramm-Funktionen zur Verfügung.

Es gibt viele andere außerhalb des Kernvertriebs verfügbare Erweiterungen. PGXN (Erweiterungsnetz von PostgreSQL) ist eine Quelle von Erweiterungen, aber viele andere sind von Quellen wie GitHub und SourceForge verfügbar.

Ausländische Datenstreifbänder

Bezüglich der Version 9.1 kann sich PostgreSQL zu anderen Systemen verbinden, um Daten über Ausländische Datenstreifbänder (FDWs) wiederzubekommen. Diese können die Form jeder Datenquelle, wie ein Dateisystem, ein anderer RDBMS oder ein Webdienst annehmen. Das bedeutet, dass regelmäßige Datenbankabfragen diese Datenquellen wie regelmäßige Tische verwenden, und sich sogar vielfachen Datenquellen zusammen anschließen können. Außer der file_fdw in der contrib Modul-Liste gezeigten Kernerweiterung gibt es viele andere verfügbar:

  • oracle_fdw - steht zu Orakel-Datenbanken in Verbindung.
  • mysql_fdw - steht zu Datenbanken von MySQL in Verbindung.
  • tds_fdw - steht zu Datenbanken von Sybase und Microsoft SQL Server in Verbindung.
  • odbc_fdw - steht zu jeder ODBC Quelle in Verbindung.
  • couchdb_fdw - steht zu Datenbanken von CouchDB in Verbindung.
  • redis_fdw - steht zu Datenbanken von Redis in Verbindung.
  • twitter_fdw - holt Nachrichten vom Gezwitscher herbei.
  • ldap_fdw - fragt LDAP Server.
  • file_fixed_length_record_fdw - liest flache Dateien mit Säulen der festen Breite.
  • PGStrom - verwendet GPU Geräte, um folgendes Ansehen auf dem massiven Betrag von Aufzeichnungen mit komplizierten Qualifikators zu beschleunigen.
  • s3_fdw - liest Dateien, die im Amazonas S3 gelegen sind.
  • www_fdw - Zugriffswebdienste als eine Datenquelle.

Mehrgetreide

Mehrgetreide ist eine Erweiterung, die Ausländischen Datenstreifbändern ermöglicht, in der Pythonschlange geschrieben zu werden. Es gibt mehrere ausländische Datenstreifbänder, die es als Standard zur Verfügung stellt:

  • multicorn.sqlalchemyfdw - hat gepflegt, auf Daten zuzugreifen, die in jeder Datenbank versorgt sind, die durch das sqlalchemy Pythonschlange-Werkzeug, wie MySQL, SQLite, Orakel, Microsoft SQL Server und viele andere unterstützt ist.
  • multicorn.fsfdw - hat gepflegt, auf Daten zuzugreifen, die in verschiedenen Dateien in einem filesystem versorgt sind.
  • multicorn.csvfdw - hat gepflegt, auf in CSV Dateien versorgte Daten zuzugreifen.
  • multicorn.rssfdw - hat gepflegt, auf Sachen von einem RSS-Futter zuzugreifen.

Verfügbare zusätzliche ein sind:

  • forcefdw - hat gepflegt, auf Daten auf database.com/force.com zuzugreifen.

Andere Eigenschaften

  • Verweisungsintegritätseinschränkungen einschließlich Auslandsschlüsseleinschränkungen, Säuleneinschränkungen und Reihe überprüfen
  • Ansichten. Obwohl Ansichten standardmäßig nicht updatable sind, können sie so gemacht werden, indem sie "Einsatz", "Aktualisierung" schaffen, und/oder Abfrage "löschen" Schreiben Regeln auf der Ansicht Um.
  • Inner, Außen-(voll, verlassen und Recht), und Kreuz schließt sich an
  • Wählt subaus
  • Aufeinander bezogene Subabfragen
  • Transaktionen
  • Unterstützungen die meisten Haupteigenschaften des Standards
  • Verbindungen von Encrypted über SSL
  • Binäre und textliche Lagerung des großen Gegenstands
  • Online-Unterstützung
  • Steigungen im Platz mit pg_upgrade (verfügbar, um zu neuen Hauptversionen von 8.3 aufwärts zu befördern)
,
  • Gebiete
  • Tablespaces
  • Savepoints
  • Wiederherstellung des Punkts rechtzeitig, das durchgeführte Verwenden-Schreiben vorn, das loggt
  • Zweiphasig begehen
  • TOAST (Die Lagerungstechnik des Übergroßen Attributes) wird verwendet, um große Tabellenattribute (wie große PANTOMIME-Verhaftungen oder XML Nachrichten) in einem getrennten Gebiet mit der automatischen Kompression durchsichtig zu versorgen.
  • Regelmäßige Ausdrücke
  • Allgemeine Tabellenausdrücke und writable allgemeine Tabellenausdrücke
  • Eingebetteter SQL wird mit dem Vorverarbeiter durchgeführt. SQL Code wird zuerst eingebettet in den C-Code geschrieben. Dann wird Code ECPG Vorverarbeiter durchbohrt, der SQL durch Anrufe ersetzt, Bibliothek zu codieren. Dann kann Code mit einem C Bearbeiter kompiliert werden. Wenn es Arbeiten auch mit C ++ einbettet, aber es erkennt den ganzen C ++ Konstruktionen nicht an.
  • Volle Textsuche
  • Vergleichung pro Säule (von 9.1)

Erweiterungen

  • MADlib - eine offene Quellanalytik-Bibliothek für PostgreSQL, der mathematische, statistische und maschinenerfahrende Methoden für strukturierte und unstrukturierte Daten zur Verfügung stellt.
  • Wanderungszauberer von MySQL - eingeschlossen mit dem Monteur von PostgreSQL von EnterpriseDB. (Quellcode auch verfügbar)
  • Leistungszauberer - eingeschlossen mit dem Monteur von PostgreSQL von EnterpriseDB. (Quellcode auch verfügbar)
  • pgRouting - hat PostGIS erweitert, um geospatial Routenplanungsfunktionalität (GNU GPL) zur Verfügung zu stellen
  • PostGIS - eine äußerst populäre Erweiterung, die Unterstützung für das geografische Gegenstand-GNU GPL zur Verfügung stellt.
  • Postgres Unternehmensbetriebsleiter - ein nichtfreies Werkzeug, das aus einem Dienst, vielfachen Agenten und einem GUI besteht, der entfernte Überwachung, Management, Bericht, Kapazitätsplanung und Einstimmung zur Verfügung stellt.
  • ST-Verbindungen SpatialKit - Erweiterung, um zu Raumdatenbanken direkt in Verbindung zu stehen.

Kommende Eigenschaften

Die folgenden Eigenschaften sind erwartet, in der 9.2 Ausgabe von PostgreSQL zu erscheinen:

  • Fallend, Erwiderung verströmend
  • Index-Only-Ansehen (Bedeckung von Indizes)
  • Reihe-Typen
  • Raumverteilte Indizes von GiST
  • JSON Datentyp
  • Pseudotyp Smallserial
  • Ausgelöste Änderungsankündigungskernerweiterung
  • Pg_receivexlog-Werkzeug (Ströme lebende Klotz-Daten des Schreibens vorn zu einem Archiv-Verzeichnis)
  • Viel verbesserte Behauptungsstatistik. Aufgemöbelter pg_stat_statements, der dazu fähig ist, von allen Abfragen Fingerabdrücke zu machen, hat nicht nur vorbereitet.

Schnittstellen

PostgreSQL hat mehrere Formen der Schnittstelle verfügbar und wird auch unter Programmiersprache-Bibliotheken weit unterstützt. Diese schließen ein:

Eingebaut

  • libpq - der Beamte von PostgreSQL C Anwendungsschnittstelle
  • ECPG - Ein eingebettetes C System

Äußerlich

Datenbankregierung

Offene Quellvorderenden und Werkzeuge

psql

Das primäre Vorderende für PostgreSQL ist das Programm der Befehl-Linie, das verwendet werden, um in SQL-Abfragen direkt einzugehen, oder sie von einer Datei durchführen kann. Außerdem stellt psql mehrere Meta-Befehle und verschiedene einer Schale ähnliche Eigenschaften zur Verfügung, um Schreiben-Schriften und das Automatisieren eines großen Angebotes an Aufgaben zu erleichtern; zum Beispiel Etikett-Vollziehung von Gegenstand-Namen und SQL Syntax.

pgAdmin

Das pgAdmin Paket ist eine freie und offene Quelle grafisches Benutzerschnittstelle-Regierungswerkzeug für PostgreSQL, der auf vielen Computerplattformen unterstützt wird. Das Programm ist auf mehr als einem Dutzend Sprachen verfügbar. Der erste Prototyp, genannt pgManager, wurde für PostgreSQL 6.3.2 von 1998 geschrieben, und umgeschrieben und als pgAdmin laut der GPL-Lizenz in späteren Monaten veröffentlicht. Die zweite Verkörperung (hat pgAdmin II genannt), war ein ganzer, schreiben zuerst veröffentlicht am 16. Januar 2002 um. Die dritte Version, pgAdmin III, wurde laut der Künstlerischen Lizenz ursprünglich veröffentlicht und dann laut derselben Lizenz wie PostgreSQL veröffentlicht. Verschieden von vorherigen Versionen, die im Visuellen Grundlegend, pgAdmin III geschrieben wurden, wird in C ++ mit dem wxWidgets Fachwerk geschrieben, das es erlaubt, auf allgemeinsten Betriebssystemen zu laufen.

phpPgAdmin

phpPgAdmin ist ein webbasiertes Regierungswerkzeug für PostgreSQL, der in PHP geschrieben ist und auf der populären für die Regierung von MySQL ursprünglich geschriebenen PhpMyAdmin-Schnittstelle gestützt ist.

OpenOffice.org Basis

OpenOffice.org kann Basis als ein Vorderende für PostgreSQL verwendet werden.

DaDaBIK

DaDaBIK eine Software, die in PHP geschrieben ist, der einem anpassbaren Web CRUD/front-end einer Datenbank zur Verfügung stellt.

pgFouine

PgFouine PostgreSQL loggen Analysator erzeugt ausführlich berichtete Berichte von einer Protokolldatei von PostgreSQL und stellt VAKUUM-Analyse zur Verfügung.

Eigentumsvorderenden und Werkzeuge

Mehrere Gesellschaften bieten Eigentumswerkzeuge für PostgreSQL an. Sie bestehen häufig aus einem universalen Kern, der an verschiedene spezifische Datenbankprodukte angepasst wird. Diese Werkzeuge teilen größtenteils die Regierungseigenschaften mit den offenen Quellwerkzeugen, aber Angebot-Verbesserungen im Datenmodellieren, Importieren, Exportieren oder Bericht.

Abrisspunkte und Leistung

Viele informelle Leistungsstudien von PostgreSQL sind getan worden. Leistungsverbesserungen haben darauf gezielt sich zu verbessern Skalierbarkeit hat schwer mit der Version 8.1 angefangen. Einfache Abrisspunkte zwischen Version 8.0 und Version 8.4 haben gezeigt, dass der Letztere auf Read-Only-Arbeitspensen und mindestens 7.5mal schneller sowohl auf gelesenem mehr als 10mal schneller war als auch schreiben Sie Arbeitspensen.

Der erste industrienormale und vom Gleichem gültig gemachte Abrisspunkt wurde im Juni 2007 mit der Sonne javanischer Systemanwendungsserver (Eigentumsversion von GlassFish) 9.0 Plattform-Ausgabe vollendet, UltraSPARC hat Sonne-Feuerserver und Postgres 8.2 T1-basiert. Dieses Ergebnis von 778.14 SPECjAppServer2004 vergleicht sich JOPS@Standard vorteilhaft mit den 874 JOPS@Standard mit dem Orakel 10 auf einem mit Sitz in Itanium System des HP-UX.

Im August 2007 hat Sonne eine verbesserte Abrisspunkt-Kerbe von 813.73 SPECjAppServer2004 JOPS@Standard vorgelegt. Mit dem System unter dem Test zu einem reduzierten Preis hat sich der Preis/Leistung vom $US 84.98/JOPS zum $US 70.57/JOPS verbessert.

Die Verzug-Konfiguration von PostgreSQL verwendet nur einen kleinen Betrag des hingebungsvollen Gedächtnisses zu gegenüber der Leistung kritischen Zwecken wie das Verstecken von Datenbankblöcken und Sortieren. Diese Beschränkung ist in erster Linie, weil ältere Betriebssysteme verlangt haben, dass sich Kern ändert, um zu erlauben, große Blöcke des geteilten Gedächtnisses zuzuteilen. PostgreSQL.org stellt Rat über die grundlegende empfohlene Leistungspraxis in einem wiki zur Verfügung.

Im April 2012 hat Robert Haas von EnterpriseDB PostgreSQL 9.2's geradlinige Zentraleinheitsskalierbarkeit mit einem Server mit 64 Kernen demonstriert.

Prominente Benutzer

  • Yahoo! für den Webbenutzer Verhaltensanalyse, zwei petabytes versorgend, und hat behauptet, das größte Datenlager mit einer schwer modifizierten Version von PostgreSQL mit einer völlig verschiedenen säulenbasierten Lagerung verschiedene und Motoranfragenverarbeitungsschicht zu sein. Während für die Leistung, Lagerung, und Anfragenzwecke die Datenbank wenig Ähnlichkeit mit PostgreSQL hat, erhält das Vorderende Vereinbarkeit aufrecht, so dass Yahoo viele Standardwerkzeuge verwenden kann, die bereits geschrieben sind, um mit PostgreSQL aufeinander zu wirken.
  • 2009, soziale Netzwerkanschlusswebsite MySpace hat die nCluster Datenbank von Systemen von Daten der Aster für die Datenlagerung verwendet, auf die auf unmodifiziertem PostgreSQL gebaut wurde.
  • Geni.com Gebrauch PostgreSQL für ihre Hauptgenealogie-Datenbank.
  • OpenStreetMap, ein zusammenarbeitendes Projekt, eine freie editable Karte der Welt zu schaffen.
  • Afilias, Bereichsregistrierungen für.org.info und andere.
  • Sony Online-Mehrfachabspiellaufwerk Online-Spiele.
  • BASF, Plattform für ihr Agrarindustrie-Portal einkaufend.
  • Reddit soziale Nachrichtenwebsite.
  • Skype Anwendung von VoIP, Hauptgeschäftsdatenbanken.
  • Sonne xVM, die Virtualisierung der Sonne und datacenter Automationsgefolge.
  • MusicBrainz, offene Online-Musik-Enzyklopädie.
  • Internationale Raumstation, um Telemetrie-Daten in der Bahn zu sammeln und es zum Boden zu wiederholen.
  • MyYearbook soziale Netzwerkanschlussseite.
  • Heroku, eine Wolke Versorger-Angebot von PaaS PostgreSQL als ein Dienst.
  • Instagram, ein populäres bewegliches Foto, das Dienst teilt

Preise

PostgreSQL hat die folgenden Preise erhalten:

  • Auserlesener 1999-Redakteur-Preis von LinuxWorld für die Beste Datenbank
  • 2000 Linux auserlesene Zeitschriftenredakteur-Preise für die Beste Datenbank
  • 2002-Linux Neue Mediaredakteure auserlesener Preis für die Beste Datenbank
  • 2003 Linux auserlesene Zeitschriftenredakteur-Preise für die Beste Datenbank
  • 2004 Linux Neuer Mediapreis Für die Beste Datenbank
  • 2004 Linux auserlesene Zeitschriftenredakteur-Preise für die Beste Datenbank
  • 2004 ArsTechnica Bester Server-Anwendungspreis
  • 2005 Linux auserlesene Zeitschriftenredakteur-Preise für die Beste Datenbank
  • 2006 Linux auserlesene Zeitschriftenredakteur-Preise für die Beste Datenbank
  • 2008 Developer.com Produkt des Jahres, Datenbankwerkzeug
  • 2012 Linux Neuer Mediapreis für die Beste Datenbank des Open Sources

Eigentumsableitungen und Unterstützung

Obwohl die Lizenz auf Postgres gestützte Eigentumsprodukte erlaubt hat, hat sich der Code im Eigentumsraum zuerst nicht entwickelt. Der erste Hauptspross ist entstanden, als Paula Hawthorn (ein ursprüngliches Gruppenmitglied von Ingres, das sich von Ingres bewegt hat) und Michael Stonebraker Illustra Information Technologies gebildet hat, um ein Eigentumsprodukt gestützt auf Postgres zu machen.

2000 haben ehemalige Rote Hut-Kapitalanleger die Gesellschaft die Great Bridge geschaffen, um ein Eigentumsprodukt gestützt auf PostgreSQL zu machen und sich gegen Eigentumsdatenbankverkäufer zu bewerben. Die Great Bridge hat mehrere Entwickler von PostgreSQL gesponsert und hat viele Mittel zurück der Gemeinschaft geschenkt, aber bis zum Ende 2001 hat wegen der zähen Konkurrenz von Gesellschaften wie Roter Hut und zu schlechten Marktbedingungen geschlossen.

2001 hat Command Prompt, Inc. Mammut PostgreSQL, ein auf PostgreSQL gestütztes Eigentumsprodukt befreit. 2008 hat Command Prompt, Inc. die Quelle laut der ursprünglichen Lizenz befreit. Command Prompt, Inc. setzt fort, die Gemeinschaft von PostgreSQL aktiv durch Entwickler-Bürgschaften und Projekte einschließlich PL/Perl, PL/php zu unterstützen, und die Bewirtung von Gemeinschaftsprojekten wie PostgreSQL Baut Farm.

Im Januar 2005 hat PostgreSQL Unterstützung durch den Datenbankverkäufer Durchdringende Software erhalten, die für sein Produkt von Btrieve bekannt ist, das auf der Novell Plattform von NetWare allgegenwärtig war. Durchdringende bekannt gegebene kommerzielle Unterstützung und Gemeinschaftsteilnahme und erreicht etwas Erfolg. Im Juli 2006, Durchdringend hat den Unterstützungsmarkt von PostgreSQL verlassen.

Mitte 2005 haben zwei andere Gesellschaften bekannt gegeben, dass sich Pläne, Eigentumsprodukte gestützt auf PostgreSQL damit zu machen, auf getrennte Nische-Märkte konzentrieren. EnterpriseDB hat Funktionalität hinzugefügt, um Anwendungen zu erlauben, die geschrieben sind, mit dem mit PostgreSQL mehr sogleich zu führenden Orakel zu arbeiten. Greenplum hat Erhöhungen beigetragen, die am Datenlager und den Geschäftsnachrichtendienstanwendungen einschließlich des Projektes von BizGres geleitet sind.

Im Oktober 2005 hat John Loiacono, der Exekutivvizepräsident der Software an Sonne-Mikrosystemen, kommentiert: "Wir gehen zum OEM Microsoft nicht, aber wir schauen auf PostgreSQL in diesem Augenblick," obwohl keine Details damals veröffentlicht wurden. Vor dem November 2005 hatte Sonne Unterstützung für PostgreSQL bekannt gegeben. Vor dem Juni 2006 Sonne hat sich Solaris 10 (6/06 Ausgabe) mit PostgreSQL eingeschifft.

Im August 2007 hat EnterpriseDB das Postgres Quellenzentrum und EnterpriseDB Postgres, entworfen als ein völlig konfigurierter Vertrieb von PostgreSQL einschließlich vieler contrib Module und Erweiterungsbestandteile bekannt gegeben. EnterpriseDB Postgres wurde zu Postgres Plus im März 2008 umbenannt. Postgres Plus ist in zwei Versionen verfügbar: Postgres Plus der Lösungssatz (das Enthalten von in einem GUI einem Klick geliefertem PostgreSQL installieren plus Lösungssatz-Bestandteile, die einschließen; Postgres Unternehmensbetriebsleiter, Aktualisierungsmonitor, xDB Erwiderungsserver, SQL Profiler, Schützen SQL, Wanderungswerkzeug und PL/Secure), und Postgres Plus der Fortgeschrittene Server, der alle Eigenschaften von Postgres Plus der Lösungssatz plus die Orakel-Vereinbarkeit hat, Leistung zeigt nicht verfügbar in PostgreSQL, sowie fortgeschrittene Sicherheit zeigt nicht verfügbar in PostgreSQL. Beide Versionen sind für das Download ohne Kosten verfügbar und werden völlig unterstützt. Die Lösungssatz-Bestandteile und der Fortgeschrittene Server werden durch einen "beschränkten Gebrauch" Lizenz zu Einschätzungszwecken, nur wenn nicht gekauft, obwohl ein Abonnement eingeschränkt. 2011 hat EnterpriseDB Postgres Plus die Wolkendatenbank, der leicht Bestimmungen PostgreSQL und Postgres Plus Fortgeschrittene Server-Datenbanken (mit der Orakel-Vereinbarkeit) in einzelnen Beispielen, hohen Verfügbarkeitstrauben oder Entwicklungssandkästen für die Datenbank als ein Dienst Umgebungen bekannt gegeben.

2011, 2ndQuadrant ist ein Platin-Förderer von PostgreSQL, als Anerkennung für ihre langjährigen Beiträge und Entwickler-Bürgschaft geworden. 2ndQuadrant stellen eine der größten Mannschaften von Mitwirkenden von PostgreSQL an und stellen Berufsunterstützung für die offene Quelle PostgreSQL zur Verfügung.

Im Januar 2012 hat EnterpriseDB eine Wolkenversion sowohl von PostgreSQL als auch von ihrem eigenen Eigentumspostgres Plus der Fortgeschrittene Server damit veröffentlicht, für failover, Erwiderung, Lastausgleichen und Schuppen automatisiert mit Nachschub zu versorgen. Das läuft auf Webdiensten von Amazonas.

Viele andere Gesellschaften haben PostgreSQL als die Basis für ihre Eigentumsdatenbankprojekte verwendet. z.B. Truviso, Netezza, ParAccel. In vielen Fällen sind die Produkte so viel erhöht worden, dass die Software, obwohl mit einigen von späteren Ausgaben kirschaufgepickten Eigenschaften gegabelt worden ist.

Siehe auch

  • Vergleich von Verwandtschaftsdatenbankverwaltungssystemen
  • Vergleich von Datenbankwerkzeugen
  • PostGIS
  • PhpPgAdmin

Weiterführende Literatur

PostgreSQL 9

PostgreSQL 8

  • 896 Seiten.
  • 664 Seiten.
664 Seiten.

PostgreSQL 7

  • 636 Seiten.

Links

  • PGXN (Erweiterungsnetz von PostgreSQL)

Source is a modification of the Wikipedia article PostgreSQL, licensed under CC-BY-SA. Full list of contributors here.
Princetown / Papst Adrian II
Impressum & Datenschutz