| PostgreSQL: Das Offizielle Handbuch | ||||
|---|---|---|---|---|
| Zurück | Schnell zurück | Einleitung | Schnell nach vorne | Nach vorne |
Das heutzutage als PostgreSQL bekannte objektrelationale Datenbankverwaltungssystem stammt vom POSTGRES-Paket der Universität von Kalifornien in Berkeley ab. Nach mehr als einem Jahrzehnt Entwicklungsarbeit ist es jetzt das fortschrittlichste Open-Source-Datenbanksystem.
Das POSTGRES-Projekt, unter Anleitung von Professor Michael Stonebraker, wurde gesponsert von der Defense Advanced Research Projects Agency (DARPA), dem Army Research Office (ARO), der National Science Foundation (NSF) und ESL, Inc. Die Implementierung von POSTGRES begann 1986. Die anfänglichen Konzepte wurden in Stonebraker & Rowe 1986 vorgestellt und die Definition des Datenmodells erschien in Rowe & Stonebraker 1987. Der Entwurf des Regelnsystems zu dieser Zeit wurde in Stonebraker, Hanson, Hong 1987 beschrieben. Die Architektur des Storagemanagers wurde in Stonebraker 1987 beschrieben.
Seit dem hat POSTGRES mehrere Hauptversionen erlebt. Das erste „Demoware“-System war 1987 einsatzbereit und wurde 1988 auf der ACM-SIGMOD-Konferenz gezeigt. Version 1, beschrieben in Stonebraker, Rowe, Hirohama 1990, wurde im Juni 1989 einigen externen Benutzern zugänglich gemacht. Als Reaktion auf eine Kritik des ersten Regelnsystems (Stonebraker, Hearst, Potamianos 1989) wurde das Regelnsystem neu entworfen (Stonebraker, Jhingran, Goh 1990) und im Juni 1990 wurde Version 2 mit dem neuen Regelnsystem freigegeben. Version 3 erschien 1991 mit Unterstützung für mehrere Storagemanager, einem verbesserten Anfrage-Executor und einem neu geschriebenen Umschreiberegelnsystem. Die folgenden Versionen bis Postgres95 (siehe unten) haben sich dann hauptsächlich auf Portierbarkeit und Zuverlässigkeit konzentriert.
POSTGRES wurde für die Implementierung von vielen verschiedenen Forschungs- und Produktionsanwendungen verwendet. Unter anderem: ein System zur Analyse von finanziellen Daten, ein Paket zur Überwachung der Leistung von Düsentriebwerken, eine Datenbank zur Verfolgung von Asteroiden und eine medizinische Informationsdatenbank. POSTGRES wurde auch als Lehrwerkzeug an mehreren Universitäten verwendet. Schließlich hat Illustra Information Technologies (später fusioniert mit Informix, was jetzt zu IBM gehört) den Code genommen und kommerzialisiert. Im Jahr 1992 wurde POSTGRES der primäre Datenmanager des wissenschaftlichen Computing-Projekts Sequoia 2000.
Im Verlauf des Jahres 1993 hatte sich die Größe der externen Benutzergemeinde nahezu verdoppelt. Es wurde zunehmend klar, dass die Wartung des Prototypcodes und der Support eine Menge Zeit in Anspruch nahmen, die eigentlich der Datenbankforschung gewidmet werden sollte. Um diese Last zu verringern wurde das POSTGRES-Projekt in Berkeley mit Version 4.2 offiziell eingestellt.
Im Jahr 1994 bauten Andrew Yu und Jolly Chen einen SQL-Interpreter in POSTGRES ein. Unter neuem Namen wurde Postgres95 im Web freigegeben um seinen eigenen Weg als Open-Source-Nachfolger des ursprünglichen POSTGRES-Codes zu finden.
Der Postgres95-Code war komplett in ANSI C und die Größe wurde um 25% reduziert. Viele interne Veränderungen haben die Leistung und die Wartungsfreundlichkeit des Codes verbessert. Postgres95 Version 1.0.x war in der Wisconsin Benchmark etwa 30-50% schneller als POSTGRES, Version 4.2. Neben berichtigten Fehlern waren dies die bedeutenden Verbesserungen:
Die Anfragesprache PostQUEL wurde durch SQL ersetzt (im Server implementiert). Unteranfragen wurden erst in PostgreSQL (siehe unten) unterstützt, aber sie konnten in Postgres95 mit benutzerdefinierten SQL-Funktionen nachgeahmt werden. Aggregatfunktionen wurden neu implementiert. Unterstützung für die Anfrageklausel GROUP BY wurde ebenfalls hinzugefügt.
Neben dem „Monitor“-Programm wurde ein neues Programm (psql) für interaktive SQL-Anfragen angeboten, welches GNU Readline verwendete.
Eine neue Clientbibliothek, libpgtcl, unterstützte Clients auf Tcl-Basis. Eine Beispiel-Shell, pgtclsh, bot neue Tcl-Befehle, um von Tcl-Programmen aus auf den Postgres95-Server zugreifen zu können.
Die Large-Object-Schnittstelle wurde überholt. Die Inversion-Large-Objects waren jetzt der einzige Mechanismus für Large Objects. (Das Inversion-Dateisystem wurde entfernt.)
Das Regelnsystem auf Instanzebene wurde entfernt. Regeln waren immer noch als Umschreiberegeln verfügbar.
Ein kurzes Tutorial mit einer Einführung in SQL und Postgres95 wurde mit dem Quellcode verteilt.
GNU Make (anstatt BSD Make) wurde für die Compilierung verwendet. Außerdem konnte Postgres95 mit einem ungepatchten GCC kompiliert werden (Datenausrichtung von double-Werten wurde repariert).
Als es 1996 war wurde klar, dass der Name „Postgres95“ dem Test der Zeit nicht standhalten würde. Also haben wir einen neuen Namen, PostgreSQL, ausgewählt, der das Verhältnis zwischen dem ursprünglichen POSTGRES und den neueren Versionen mit SQL-Unterstützung wiederspiegelt. Gleichzeitig wurde die Versionsnummer auf 6.0 gesetzt, wodurch die Nummern die in Berkeley begonnene Reihe fortsetzen.
Während der Entwicklung von Postgres95 lag die Betonung auf dem Verstehen von bestehenden Problemen in Servercode. Mit PostgreSQL verschob sich die Konzentration auf neue Features und Fähigkeiten, obwohl die Arbeit in allen Bereichen weitergeht.
Was sich seither in PostgreSQL im Einzelnen getan hat, können Sie in Anhang D sehen.
| Zurück | Zum Anfang | Nach vorne |
| Einleitung | Nach oben | Über diese Ausgabe |