| 1 |
<!-- |
|---|
| 2 |
$Header: /var/lib/cvs/pgsql-fr/sgml/history.sgml,v 1.7.2.1 2005/07/15 06:33:39 guillaume Exp $ |
|---|
| 3 |
--> |
|---|
| 4 |
|
|---|
| 5 |
<sect1 id="history"> |
|---|
| 6 |
<title>Bref historique de <productname>PostgreSQL</productname></title> |
|---|
| 7 |
|
|---|
| 8 |
<indexterm zone="history"> |
|---|
| 9 |
<primary>historique</primary> |
|---|
| 10 |
<secondary>de PostgreSQL</secondary> |
|---|
| 11 |
</indexterm> |
|---|
| 12 |
|
|---|
| 13 |
<para> |
|---|
| 14 |
Le système de bases de données relationnel objet |
|---|
| 15 |
<productname>PostgreSQL</productname> est issu de |
|---|
| 16 |
<productname>POSTGRES</productname>, programme écrit à l'université de |
|---|
| 17 |
Californie à Berkeley. Avec plus d'une dizaine d'années de développement, |
|---|
| 18 |
<productname>PostgreSQL</productname> est la plus avancée des bases de données |
|---|
| 19 |
libres. |
|---|
| 20 |
</para> |
|---|
| 21 |
|
|---|
| 22 |
<sect2 id="history-berkeley"> |
|---|
| 23 |
<title>Le projet <productname>POSTGRES</productname> de Berkeley</title> |
|---|
| 24 |
|
|---|
| 25 |
<para> |
|---|
| 26 |
Le projet <productname>POSTGRES</productname>, mené par le professeur |
|---|
| 27 |
Michael Stonebraker, était sponsorisé par l'agence des projets avancés de la |
|---|
| 28 |
Défense (<acronym>DARPA</acronym>, acronyme de <foreignphrase>Advanced |
|---|
| 29 |
Research Projects Agency</foreignphrase>), le bureau des recherches de |
|---|
| 30 |
l'armée (<acronym>ARO</acronym>, acronyme de <foreignphrase>Army Research |
|---|
| 31 |
Office</foreignphrase>), le <acronym>NSF</acronym> (acronyme de National |
|---|
| 32 |
Science Foundation) ainsi que ESL, Inc. L'implémentation de |
|---|
| 33 |
<productname>POSTGRES</productname> a commencé en 1986. Les concepts |
|---|
| 34 |
initiaux du système ont été présenté dans <xref linkend="STON86"> |
|---|
| 35 |
et la définition du modèle de données initial est apparu dans <xref |
|---|
| 36 |
linkend="ROWE87">. Le concept du système de règles à ce moment était décrit |
|---|
| 37 |
dans <xref linkend="STON87a">. L'architecture du gestionnaire de stockage |
|---|
| 38 |
était détaillée dans <xref linkend="STON87b">. |
|---|
| 39 |
</para> |
|---|
| 40 |
|
|---|
| 41 |
<para> |
|---|
| 42 |
<productname>Postgres</productname> a connu plusieurs versions majeures depuis. |
|---|
| 43 |
La première <quote>démo</quote> devint opérationnel en 1987 et fut présenté en |
|---|
| 44 |
1988 à la conférence <acronym>ACM-SIGMOD</acronym>. La version 1, décrite dans |
|---|
| 45 |
<xref linkend="STON90a">, fut livrée à quelques utilisateurs externes en juin |
|---|
| 46 |
1989. En réponse à une critique du premier mécanisme de règles |
|---|
| 47 |
(<xref linkend="STON89">), celui-ci fut réécrit (<xref linkend="STON90b">) dans |
|---|
| 48 |
la version 2, présentée en juin 1990. La version 3 apparut en 1991. Elle ajoutait |
|---|
| 49 |
le support de plusieurs gestionnaires de stockage, un exécuteur de requêtes |
|---|
| 50 |
amélioré et un gestionnaire de règles réécrit. La plupart des versions suivantes |
|---|
| 51 |
jusqu'à <productname>Postgres95</productname> (voir plus loin) portèrent sur la |
|---|
| 52 |
portabilité et la fiabilité. |
|---|
| 53 |
</para> |
|---|
| 54 |
|
|---|
| 55 |
<para> |
|---|
| 56 |
<productname>POSTGRES</productname> fut utilisé pour réaliser différentes |
|---|
| 57 |
applications de recherche et de production. Par exemple : un système |
|---|
| 58 |
d'analyse de données financières, un programme de suivi des performances d'un |
|---|
| 59 |
moteur à réaction, une base de données de suivi d'astéroïdes, une base de |
|---|
| 60 |
données médicale et plusieurs systèmes d'informations géographiques. |
|---|
| 61 |
<productname>POSTGRES</productname> a aussi été utilisé comme outil de |
|---|
| 62 |
formation dans plusieurs universités. Enfin, Illustra Information |
|---|
| 63 |
Technologies (devenu <ulink |
|---|
| 64 |
url="http://www.informix.com/"><productname>Informix</productname></ulink>, |
|---|
| 65 |
maintenant détenu par <ulink url="http://www.ibm.com/">IBM</ulink>) a repris le |
|---|
| 66 |
code et l'a commercialisé. Fin 1992, <productname>POSTGRES</productname> devint le |
|---|
| 67 |
gestionnaire de données principal du projet de calcul scientifique |
|---|
| 68 |
<ulink url="http://meteora.ucsd.edu/s2k/s2k_home.html">Sequoia 2000</ulink> |
|---|
| 69 |
fin 1992. |
|---|
| 70 |
</para> |
|---|
| 71 |
|
|---|
| 72 |
<para> |
|---|
| 73 |
La taille de la communauté d'utilisateurs doubla pratiquement durant |
|---|
| 74 |
l'année 1993. Il devint de plus en plus évident que la maintenance du code et |
|---|
| 75 |
le support nécessitaient de plus en plus de temps et d'énergie, qui auraient |
|---|
| 76 |
dûs être employés à des recherches sur les bases de données. Afin de réduire |
|---|
| 77 |
le poids du support, le projet <productname>POSTGRES</productname> de |
|---|
| 78 |
Berkeley se termina officiellement avec la version 4.2. |
|---|
| 79 |
</para> |
|---|
| 80 |
</sect2> |
|---|
| 81 |
|
|---|
| 82 |
<sect2 id="history-postgres95"> |
|---|
| 83 |
<title><productname>Postgres95</productname></title> |
|---|
| 84 |
|
|---|
| 85 |
<para> |
|---|
| 86 |
En 1994, Andrew Yu et Jolly Chen ajoutèrent un interpréteur de langage SQL à |
|---|
| 87 |
<productname>POSTGRES</productname>. Sous un nouveau nom, |
|---|
| 88 |
<productname>Postgres95</productname> fut par |
|---|
| 89 |
la suite publié sur le Web, afin de devenir un descendant libre (open-source) du |
|---|
| 90 |
code source initial de <productname>POSTGRES</productname>, version Berkeley. |
|---|
| 91 |
</para> |
|---|
| 92 |
|
|---|
| 93 |
<para> |
|---|
| 94 |
Le code de <productname>Postgres95</productname> était complètement compatible |
|---|
| 95 |
avec le C ANSI et 25% moins gros. De nombreux changements internes |
|---|
| 96 |
amélioraient les performances et la maintenabilité. Les versions 1.0.x de |
|---|
| 97 |
<productname>Postgres95</productname> étaient 30 à 50% plus rapides que |
|---|
| 98 |
<productname>POSTGRES</productname>, version 4.2, pour le test Wisconsin |
|---|
| 99 |
Benchmark. Mis à part les corrections de bogues, les principales améliorations |
|---|
| 100 |
étaient : |
|---|
| 101 |
|
|---|
| 102 |
<itemizedlist> |
|---|
| 103 |
<listitem> |
|---|
| 104 |
<para> |
|---|
| 105 |
Le langage PostQUEL était remplacé par <acronym>SQL</acronym> (exécuté côté |
|---|
| 106 |
serveur). Les requêtes imbriquées ne furent pas supportées avant |
|---|
| 107 |
<productname>PostgreSQL</productname> (voir plus loin) mais elles pouvaient |
|---|
| 108 |
être imitées dans <productname>Postgres95</productname> avec des fonctions |
|---|
| 109 |
<acronym>SQL</acronym> définies par l'utilisateur. Les agrégats furent |
|---|
| 110 |
reprogrammés, l'utilisation de la clause GROUP BY ajouté. |
|---|
| 111 |
</para> |
|---|
| 112 |
</listitem> |
|---|
| 113 |
|
|---|
| 114 |
<listitem> |
|---|
| 115 |
<para> |
|---|
| 116 |
En plus du moniteur de programme, un nouveau programme |
|---|
| 117 |
(<application>psql</application>) permettait d'exécuter des requêtes SQL |
|---|
| 118 |
interactives, en utilisant <acronym>GNU</acronym> |
|---|
| 119 |
<application>Readline</application>. |
|---|
| 120 |
</para> |
|---|
| 121 |
</listitem> |
|---|
| 122 |
|
|---|
| 123 |
<listitem> |
|---|
| 124 |
<para> |
|---|
| 125 |
Une nouvelle bibliothèque cliente, <filename>libpgtcl</filename>, supportait |
|---|
| 126 |
les programmes écrits en <acronym>Tcl</acronym>. Un shell exemple, |
|---|
| 127 |
<command>pgtclsh</command>, fournissait de nouvelles commandes Tcl pour |
|---|
| 128 |
créer une interface les applications <application>Tcl</application> avec le serveur |
|---|
| 129 |
<productname>Postgres95</productname>. |
|---|
| 130 |
</para> |
|---|
| 131 |
</listitem> |
|---|
| 132 |
|
|---|
| 133 |
<listitem> |
|---|
| 134 |
<para> |
|---|
| 135 |
L'interface pour les gros objets était révisée. Les objets de |
|---|
| 136 |
grande taille Inversion étaient le seul mécanisme pour stocker de tels |
|---|
| 137 |
objets, le système de fichiers Inversion étant supprimé. |
|---|
| 138 |
</para> |
|---|
| 139 |
</listitem> |
|---|
| 140 |
|
|---|
| 141 |
<listitem> |
|---|
| 142 |
<para> |
|---|
| 143 |
Le système de règles de niveau instance était supprimé. Les règles |
|---|
| 144 |
étaient toujours disponibles en tant que règles de réécriture. |
|---|
| 145 |
</para> |
|---|
| 146 |
</listitem> |
|---|
| 147 |
|
|---|
| 148 |
<listitem> |
|---|
| 149 |
<para> |
|---|
| 150 |
Un bref tutoriel présentant les possibilités <acronym>SQL</acronym> ainsi que |
|---|
| 151 |
celles spécifiques à <productname>Postgres95</productname> était distribué |
|---|
| 152 |
avec le code source. |
|---|
| 153 |
</para> |
|---|
| 154 |
</listitem> |
|---|
| 155 |
|
|---|
| 156 |
<listitem> |
|---|
| 157 |
<para> |
|---|
| 158 |
La version <acronym>GNU</acronym> de make (au lieu de la version |
|---|
| 159 |
<acronym>BSD</acronym>) était utilisée pour la construction. Par ailleurs, |
|---|
| 160 |
<productname>Postgres95</productname> pouvait être compilé avec |
|---|
| 161 |
<productname>GCC</productname> sans correctif (l'alignement des nombres |
|---|
| 162 |
doubles était corrigé). |
|---|
| 163 |
</para> |
|---|
| 164 |
</listitem> |
|---|
| 165 |
</itemizedlist> |
|---|
| 166 |
</para> |
|---|
| 167 |
</sect2> |
|---|
| 168 |
|
|---|
| 169 |
<sect2> |
|---|
| 170 |
<title><productname>PostgreSQL</productname></title> |
|---|
| 171 |
|
|---|
| 172 |
<para> |
|---|
| 173 |
En 1996, il devint évident que le nom <quote>Postgres95</quote> vieillissait mal. |
|---|
| 174 |
Nous avons choisi un nouveau nom, <productname>PostgreSQL</productname>, |
|---|
| 175 |
pour mettre en avant la relation entre le <productname>POSTGRES</productname> |
|---|
| 176 |
original et les capacités <acronym>SQL</acronym> des versions plus récentes. |
|---|
| 177 |
En même temps, nous avons positionné le numéro de version à 6.0, pour reprendre |
|---|
| 178 |
la numérotation originale du projet <productname>POSTGRES</productname> de |
|---|
| 179 |
Berkeley. |
|---|
| 180 |
</para> |
|---|
| 181 |
|
|---|
| 182 |
<para> |
|---|
| 183 |
Durant le développement de <productname>Postgres95</productname>, un effort |
|---|
| 184 |
particulier avait été fourni pour identifier et comprendre les problèmes |
|---|
| 185 |
existants dans le code. Avec <productname>PostgreSQL</productname>, la priorité |
|---|
| 186 |
put être mise sur l'augmentation des caractéristiques et des possibilités, même |
|---|
| 187 |
si le travail a continué dans tous les domaines. |
|---|
| 188 |
</para> |
|---|
| 189 |
|
|---|
| 190 |
<para> |
|---|
| 191 |
Les détails sur ce qui est arrivé à <productname>PostgreSQL</> à partir de ce |
|---|
| 192 |
moment est disponible dans l'<xref linkend="release">. |
|---|
| 193 |
</para> |
|---|
| 194 |
</sect2> |
|---|
| 195 |
</sect1> |
|---|
| 196 |
|
|---|
| 197 |
<!-- Keep this comment at the end of the file |
|---|
| 198 |
Local variables: |
|---|
| 199 |
mode:sgml |
|---|
| 200 |
sgml-omittag:nil |
|---|
| 201 |
sgml-shorttag:t |
|---|
| 202 |
sgml-minimize-attributes:nil |
|---|
| 203 |
sgml-always-quote-attributes:t |
|---|
| 204 |
sgml-indent-step:1 |
|---|
| 205 |
sgml-indent-data:t |
|---|
| 206 |
sgml-parent-document:nil |
|---|
| 207 |
sgml-default-dtd-file:"./reference.ced" |
|---|
| 208 |
sgml-exposed-tags:nil |
|---|
| 209 |
sgml-local-catalogs:("/usr/lib/sgml/catalog") |
|---|
| 210 |
sgml-local-ecat-files:nil |
|---|
| 211 |
End: |
|---|
| 212 |
--> |
|---|