Fiche technique | |
---|---|
Type de produit : | Base de données |
Auteur : | Michael Stonebraker |
Date de publication : | 1996 à maintenant |
Introduction
La base de données PostgreSQL est une base de données SGBDRO (soit de type relationnel et objet) ou ORDBMS (Object-Relational Database Management System). Il fut développé à partir de 1995 par Michael Stonebraker. Cette base de données est réputée comme étant très stable, suivant de très près les normes SQL et très proche dans sa philosophie de fonctionnement d'Oracle Database SQL, avec cependant une charge souvent 40% inférieur à ses concurrents. La base de données peut fonctionner sous les systèmes d'exploitation Solaris (SunOS), Mac OS X, HP-UX, AIX, Linux, IRIX, Digital Unix, BSD, NetBSD, FreeBSD, OpenBSD, NeXTSTEP, UnixWare, Unix et Windows.
Le PostgreSQL est un système de gestion de base de données relationnelle objet (SGBDRO ou ORDBMS) basé sur POSTGRES, version 4.2, développé à l'Université de Californie à Berkeley Computer Science Department. Le POSTGRES a été le pionnier de nombreux concepts n'étant devenus disponibles dans certains systèmes de bases de données commerciaux que bien plus tard. Le PostgreSQL est un descendant open-source de ce code original de Berkeley. Il supporte une grande partie du standard SQL et offre de nombreuses fonctionnalités modernes :
- Requêtes complexes
- Clefs étrangères
- Déclencheurs
- Vues pouvant être mises à jour
- Intégrité transactionnelle
- Contrôle de concurrence multiversion
De plus, PostgreSQL peut être étendu par l'utilisateur de plusieurs manières, par exemple en ajoutant de nouveaux :
- Types de données
- Les fonctions
- Les opérateurs
- Fonctions d'agrégation
- Méthodes d'indexation
- Langages procéduraux
Et en raison de la licence libérale, PostgreSQL peut être utilisé, modifié et distribué par n'importe qui gratuitement à n'importe quelle fin, qu'elle soit privée, commerciale ou académique.
Historique
Le système de gestion de base de données relationnelle objet maintenant connu sous le nom de PostgreSQL est dérivé du paquet POSTGRES écrit à l'Université de Californie à Berkeley. Avec plus de deux décennies de développement derrière elle, le PostgreSQL est la base de données open source la plus avancée disponible n'importe où.
Le projet POSTGRES, dirigé par le professeur Michael Stonebraker, a été parrainé par la DARPA (Defense Advanced Research Projects Agency), l'ARO (Army Research Office), la NSF (National Science Foundation) et ESL, Inc. La mise en oeuvre de POSTGRES a commencé 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 est apparue dans [rowe87]. La conception du système de règles à cette époque a été décrite dans [ston87a]. La logique et l'architecture du gestionnaire d'entreposage ont été détaillées dans [ston87b].
Le POSTGRES a connu plusieurs versions majeures depuis lors. Le premier système «demoware» est devenu opérationnel en 1987 et a été présenté à la conférence ACM-SIGMOD de 1988. La version 1, décrite dans [ston90a], a été distribuée à quelques utilisateurs externes en juin 1989. En réponse à une critique du premier système de règles ([ston89]), le système de règles a été repensé ([ston90b]), et la version 2 a été publié en juin 1990 avec le nouveau système de règles. La version 3 est apparue en 1991 et a ajouté la prise en charge de plusieurs gestionnaires de stockage, un exécuteur de requête amélioré et un système de règles réécrit. Pour la plupart, les versions ultérieures jusqu'à Postgres95 se sont concentrées sur la portabilité et la fiabilité. Le POSTGRES a été utilisé pour mettre en oeuvre de nombreuses applications de recherche et de production différentes. Il s'agit notamment d'un système d'analyse de données financières, d'un progiciel de surveillance des performances des moteurs à réaction, d'une base de données de suivi des astéroïdes, d'une base de données d'informations médicales et de plusieurs systèmes d'information géographique. Le POSTGRES a également été utilisé comme outil pédagogique dans plusieurs universités. Enfin, Illustra Information Technologies (plus tard fusionné dans Informix, appartenant maintenant à IBM) a récupéré le code et l'a commercialisé. Fin 1992, POSTGRES devient le principal gestionnaire de données du projet de calcul scientifique Sequoia 2000.
La taille de la communauté d'utilisateurs externes a presque doublé en 1993. Il est devenu de plus en plus évident que la maintenance du code prototype et le support prenaient beaucoup de temps ayant dû être consacré à la recherche de bases de données. Dans un effort pour réduire cette charge de support, le projet Berkeley POSTGRES a officiellement pris fin avec la version 4.2.
Postgres95
En 1994, Andrew Yu et Jolly Chen ont ajouté un interpréteur de langage SQL à POSTGRES. Sous un nouveau nom, Postgres95 a ensuite été publié sur le Web pour trouver sa propre voie dans le monde en tant que descendant open source du code Berkeley POSTGRES original. Le code Postgres95 était complètement ANSI C et sa taille a été réduite de 25 %. De nombreux changements internes ont amélioré les performances et la maintenabilité. La version 1.0.x de Postgres95 a fonctionné environ 30 à 50 % plus rapidement sur le Wisconsin Benchmark par rapport à POSTGRES, version 4.2. Outre les corrections de bogues, les améliorations majeures suivantes ont été apportées :
- Le langage de requête PostQUEL a été remplacé par SQL (implémenté dans le serveur). (La bibliothèque d'interface libpq a été nommée d'après PostQUEL.) Les sous-requêtes n'étaient pas supportées jusqu'à PostgreSQL, mais elles pouvaient être imitées dans Postgres95 avec des fonctions SQL définies par l'utilisateur. Les fonctions d'agrégat ont été réimplémentées. La prise en charge de la clause de requête GROUP BY a également été ajoutée.
- Un nouveau programme (psql) a été fourni pour les requêtes SQL interactives, utilisant GNU Readline. Cela a largement remplacé l'ancien programme de surveillance.
- Une nouvelle bibliothèque frontale, libpgtcl, prend en charge les clients basés sur Tcl. Un exemple d'interpréteur de commande, pgtclsh, a fourni de nouvelles commandes Tcl pour interfacer les programmes Tcl avec le serveur Postgres95.
- L'interface des grands objets a été remaniée. L'inversion des gros objets était le seul mécanisme de stockage des gros objets. (Le système de fichiers d'inversion a été supprimé.)
- Le système de règles au niveau de l'instance a été supprimé. Les règles étaient toujours disponibles en tant que règles de réécriture.
- Un court tutoriel présentant les fonctionnalités SQL habituelles ainsi que celles de Postgres95 a été distribué avec le code source.
- Le GNU make (au lieu de BSD make) a été utilisé pour la construction. De plus, Postgres95 pourrait être compilé avec un GCC non corrigé (l'alignement des données des doubles a été corrigé).
PostgreSQL
En 1996, il est devenu clair que le nom «Postgres95» ne résisterait pas à l'épreuve du temps. On lui a choisi un nouveau nom, PostgreSQL, pour refléter la relation entre le POSTGRES d'origine et les versions plus récentes avec capacité SQL. Dans le même temps, nous avons défini la numérotation des versions pour commencer à 6.0, remettant les numéros dans la séquence commencée à l'origine par le projet Berkeley POSTGRES.
Beaucoup de gens continuent de se référer à PostgreSQL comme «Postgres» (maintenant rarement en majuscules) en raison de la tradition ou parce qu'il est plus facile à prononcer. Cet usage est largement accepté comme surnom ou alias.
Liste des versions
Version | Date de publication |
---|---|
Postgres95 | Mai 1995 |
PostgreSQL 1 | Septembre 1995 |
PostgreSQL 6.0 | Janvier 1997 |
PostgreSQL 6.1 | Juin 1997 |
PostgreSQL 6.2 | Octobre 1997 |
PostgreSQL 6.3 | Mars 1998 |
PostgreSQL 6.4 | Octobre 1998 |
PostgreSQL 6.5 | Juin 1999 |
PostgreSQL 7.0 | Mai 2000 |
PostgreSQL 7.1 | Avril 2001 |
PostgreSQL 7.2 | Février 2002 |
PostgreSQL 7.3 | Novembre 2002 |
PostgreSQL 7.4 | Mars 2003 |
PostgreSQL 8.0 | Janvier 2005 |
PostgreSQL 8.1 | Novembre 2005 |
PostgreSQL 8.2 | Décembre 2006 |
PostgreSQL 8.3 | Février 2008 |
PostgreSQL 8.4 | Juillet 2009 |
PostgreSQL 9.0 | Septembre 2010 |
PostgreSQL 9.1 | Septembre 2011 |
PostgreSQL 9.2 | Septembre 2012 |
PostgreSQL 9.3 | Septembre 2013 |
PostgreSQL 9.4 | Décembre 2014 |
PostgreSQL 9.5 | Janvier 2016 |
PostgreSQL 9.6 | Septembre 2016 |
PostgreSQL 10 | Octobre 2017 |
PostgreSQL 11 | Octobre 2018 |
PostgreSQL 12 | Octobre 2019 |
PostgreSQL 13 | Septembre 2020 |
PostgreSQL 14 | Septembre 2021 |
Programmation
Le port réseau qu'utilise par défaut la base de données PostgreSQL est le 5432. Au niveau des fonctions intégrés disponibles, on constate un très grand nombre de fonctions dédié à la géométrie, ce qui en fait une base de données très intéressante pour des applications de géolocalisation.