2. Bref historique de PostgreSQL
Le système de bases de données relationnel objet PostgreSQL™ est issu de POSTGRES™, programme écrit à l'université
de Californie à Berkeley. Après plus d'une dizaine d'années de
développement, PostgreSQL™ est
la base de données OpenSource de référence.
2.1. Le projet POSTGRES à Berkeley
Le projet POSTGRES™, mené
par le professeur Michael Stonebraker, était sponsorisé par le
DARPA (acronyme de
Defense Advanced Research
Projects Agency
), l'ARO (acronyme de
Army Research
Office
), la NSF
(acronyme de
National Science Foundation
) et ESL,
Inc. Le développement de POSTGRES™ a débuté en 1986. Les concepts
initiaux du système ont été présentés dans [ston86] et la
définition du modèle de données initial apparut dans [rowe87].
Le système de règles fût décrit dans [ston87a],
l'architecture du gestionnaire de stockage dans [ston87b].
Depuis, plusieurs versions majeures de POSTGRES™ ont vu le jour. La première
« démo » devint opérationnelle
en 1987 et fut présentée en 1988 lors de la conférence
ACM-SIGMOD. La version 1,
décrite dans [ston90a], fut livrée à quelques utilisateurs
externes en juin 1989. Suite à la critique du premier mécanisme de
règles ([ston89]), celui-ci fut réécrit ([ston90b]) pour
la version 2, présentée en juin 1990. La version 3 apparut en 1991.
Elle apporta le support de plusieurs gestionnaires de stockage, un
exécuteur de requêtes amélioré et une réécriture du gestionnaire de
règles. La plupart des versions qui suivirent, jusqu'à Postgres95™ (voir plus loin), portèrent
sur la portabilité et la fiabilité.
POSTGRES™ fut utilisé dans
plusieurs applications, en recherche et en production. On peut
citer, par exemple : un système d'analyse de données financières,
un programme de suivi des performances d'un moteur à réaction, une
base de données de suivi d'astéroïdes, une base de données médicale
et plusieurs systèmes d'informations géographiques. POSTGRES™ a aussi été utilisé comme
support de formation dans plusieurs universités. Illustra
Information Technologies (devenu
Informix™
, maintenant détenu par
IBM
) a repris le code et
l'a commercialisé. Fin 1992, POSTGRES™ est devenu le gestionnaire de
données principal du
projet de calcul
scientifique Sequoia 2000
.
La taille de la communauté d'utilisateurs doubla quasiment au cours
de l'année 1993. De manière évidente, la maintenance du prototype
et le support prenaient un temps considérable, temps qui aurait dû
être employé à la recherche en bases de données. Dans un souci de
réduction du travail de support, le projet POSTGRES™ de Berkeley se termina
officiellement avec la version 4.2.
En 1994, Andrew Yu et Jolly Chen ajoutèrent un interpréteur de
langage SQL à POSTGRES™.
Sous le nouveau nom de Postgres95™, le projet fut publié sur le
Web comme descendant libre (OpenSource) du code source initial de
POSTGRES™, version Berkeley.
Le code de Postgres95™ était
écrit en pur C ANSI et réduit de 25%. De nombreux changements
internes améliorèrent les performances et la maintenabilité. Les
versions 1.0.x de Postgres95™ passèrent le Wisconsin
Benchmark de 30 à 50% plus vite que POSTGRES™, version 4.2. à part les
correctifs de bogues, les principales améliorations furent les
suivantes :
-
le langage PostQUEL est remplacé par SQL (implanté sur le serveur) ; les
requêtes imbriquées n'ont pas été supportées avant
PostgreSQL™ (voir plus
loin) mais elles pouvaient être imitées dans Postgres95™ à l'aide de fonctions
SQL utilisateur ; les
agrégats furent reprogrammés, la clause GROUP BY ajoutée ;
-
un nouveau programme, psql,
qui utilise GNU
Readline, permet l'éxécution
interactive de requêtes SQL ; c'est la fin du programme
monitor ;
-
une nouvelle bibliothèque cliente, libpgtcl, supporte les programmes écrits en
Tcl ; un shell exemple,
pgtclsh
,
fournit de nouvelles commandes Tcl pour interfacer des
programmes Tcl avec
Postgres95™ ;
-
l'interface de gestion des gros objets est réécrite ;
jusque-là, le seul mécanisme de stockage de ces objets
passait par le système de fichier Inversion (« Inversion file
system ») ; ce système est abandonné ;
-
le système de règles d'instance est supprimé ; les règles
sont toujours disponibles en tant que règles de réécriture ;
-
un bref tutoriel présentant les possibilités du
SQL ainsi que celles
spécifiques à Postgres95™ est distribué avec les
sources ;
-
la version GNU de make (à
la place de la version BSD) est utilisée pour la construction ;
Postgres95™ peut
également être compilé avec un GCC™ sans correctif (l'alignement
des doubles est corrigé).
2.3. PostgreSQL
En 1996, le nom « Postgres95 »
commence à mal vieillir. Le nom choisi, PostgreSQL™, souligne le lien entre
POSTGRES™ et les versions
suivantes qui intégrent le SQL.
En parallèle, la version est numérotée 6.0 pour reprendre la
numérotation du projet POSTGRES™ de Berkeley.
Lors du développement de Postgres95™, l'effort était axé sur
l'identification et la compréhension des problèmes dans le code.
Avec PostgreSQL™, l'accent
est mis sur les nouvelles fonctionnalités, sans pour autant
abandonner les autres domaines.
L'historique de PostgreSQL™
à partir de ce moment est disponible dans l'Annexe E, Notes de
version.