Documentation PostgreSQL 7.4.29 | ||||
---|---|---|---|---|
Précédent | Arrière rapide | Préface | Avance rapide | Suivant |
Le système de bases de données relationnel objet PostgreSQL est issu de POSTGRES, programme écrit à l'université de Californie à Berkeley. Avec plus d'une dizaine d'années de développement, PostgreSQL est la plus avancée des bases de données libres.
Le projet POSTGRES, mené par le professeur Michael Stonebraker, était sponsorisé par l'agence des projets avancés de la Défense (DARPA, acronyme de Advanced Research Projects Agency), le bureau des recherches de l'armée (ARO, acronyme de Army Research Office), le NSF (acronyme de National Science Foundation) ainsi que ESL, Inc. L'implémentation de POSTGRES a commencé en 1986. Les concepts initiaux du système ont été présenté dans The design of POSTGRES et la définition du modèle de données initial est apparu dans The POSTGRES data model. Le concept du système de règles à ce moment était décrit dans The design of the POSTGRES rules system. L'architecture du gestionnaire de stockage était détaillée dans The design of the POSTGRES storage system.
Postgres a connu plusieurs versions majeures depuis. La première << démo >> devint opérationnel en 1987 et fut présenté en 1988 à la conférence ACM-SIGMOD. La version 1, décrite dans The implementation of POSTGRES, fut livrée à quelques utilisateurs externes en juin 1989. En réponse à une critique du premier mécanisme de règles (A commentary on the POSTGRES rules system), celui-ci fut réécrit (On Rules, Procedures, Caching and Views in Database Systems) dans la version 2, présentée en juin 1990. La version 3 apparut en 1991. Elle ajoutait le support de plusieurs gestionnaires de stockage, un exécuteur de requêtes amélioré et un gestionnaire de règles réécrit. La plupart des versions suivantes jusqu'à Postgres95 (voir plus loin) portèrent sur la portabilité et la fiabilité.
POSTGRES fut utilisé pour réaliser différentes applications de recherche et de production. 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 outil de formation dans plusieurs universités. Enfin, Illustra Information Technologies (devenu Informix, maintenant détenu par IBM) a repris le code et l'a commercialisé. Fin 1992, POSTGRES devint le gestionnaire de données principal du projet de calcul scientifique Sequoia 2000 fin 1992.
La taille de la communauté d'utilisateurs doubla pratiquement durant l'année 1993. Il devint de plus en plus évident que la maintenance du code et le support nécessitaient de plus en plus de temps et d'énergie, qui auraient dûs être employés à des recherches sur les bases de données. Afin de réduire le poids du 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 un nouveau nom, Postgres95 fut par la suite publié sur le Web, afin de devenir un descendant libre (open-source) du code source initial de POSTGRES, version Berkeley.
Le code de Postgres95 était complètement compatible avec le C ANSI et 25% moins gros. De nombreux changements internes amélioraient les performances et la maintenabilité. Les versions 1.0.x de Postgres95 étaient 30 à 50% plus rapides que POSTGRES, version 4.2, pour le test Wisconsin Benchmark. Mis à part les corrections de bogues, les principales améliorations étaient :
Le langage PostQUEL était remplacé par SQL (exécuté côté serveur). Les requêtes imbriquées ne furent pas supportées avant PostgreSQL (voir plus loin) mais elles pouvaient être imitées dans Postgres95 avec des fonctions SQL définies par l'utilisateur. Les agrégats furent reprogrammés, l'utilisation de la clause GROUP BY ajouté.
En plus du moniteur de programme, un nouveau programme (psql) permettait d'exécuter des requêtes SQL interactives, en utilisant GNU Readline.
Une nouvelle bibliothèque cliente, libpgtcl, supportait les programmes écrits en Tcl. Un shell exemple, pgtclsh, fournissait de nouvelles commandes Tcl pour créer une interface les applications Tcl avec le serveur Postgres95.
L'interface pour les gros objets était révisée. Les objets de grande taille Inversion étaient le seul mécanisme pour stocker de tels objets, le système de fichiers Inversion étant supprimé.
Le système de règles de niveau instance était supprimé. Les règles étaient toujours disponibles en tant que règles de réécriture.
Un bref tutoriel présentant les possibilités SQL ainsi que celles spécifiques à Postgres95 était distribué avec le code source.
La version GNU de make (au lieu de la version BSD) était utilisée pour la construction. Par ailleurs, Postgres95 pouvait être compilé avec GCC sans correctif (l'alignement des nombres doubles était corrigé).
En 1996, il devint évident que le nom << Postgres95 >> vieillissait mal. Nous avons choisi un nouveau nom, PostgreSQL, pour mettre en avant la relation entre le POSTGRES original et les capacités SQL des versions plus récentes. En même temps, nous avons positionné le numéro de version à 6.0, pour reprendre la numérotation originale du projet POSTGRES de Berkeley.
Durant le développement de Postgres95, un effort particulier avait été fourni pour identifier et comprendre les problèmes existants dans le code. Avec PostgreSQL, la priorité put être mise sur l'augmentation des caractéristiques et des possibilités, même si le travail a continué dans tous les domaines.
Les détails sur ce qui est arrivé à PostgreSQL à partir de ce moment est disponible dans l'Annexe E.
Précédent | Sommaire | Suivant |
Préface | Niveau supérieur | Conventions |