Cet article a pour objectif de présenter brièvement PostgreSQL aux professionnels de l’informatique amenés à faire le choix d’un SGBD pour leur entreprise ou leur organisation.
PostgreSQL(dit aussi Postgres) est un des principaux SGBD-R (systèmes
de gestion de bases de données relationnelles) du marché.
Il est libre et gratuit.
On prononce Post-Grèss-Q-L.
Le site principal, en Anglais, est http://postgresql.org. Le site de la communauté française est sur http://www.postgresqlfr.org.
PostgreSQL est issu des recherches du professeur Michael Stonebraker à l’université de Californie à Berkeley, menées dès 1986. Depuis 1996, le développement est mené par le PostgreSQL Developpement Group.
Ce groupe de développeurs de haut niveau est indépendant des grandes firmes informatiques. Il est néanmoins financé, entre autres, par Redhat et Fujitsu. Une communauté active contribue aussi à l'enrichissement de PostgreSQL.
PostgreSQL est disponible sous licence BSD. http://www.postgresql.org/licence.html
En substance, cette licence dit : « Nous mettons ce logiciel à votre disposition en l'état. Faites en ce que vous voulez. Vous pouvez le modifier ou le vendre si vous le souhaitez. Nous vous demandons juste de rappeler que nous en sommes les créateurs. »
La licence BSD est moins contraignante que la licence GPL (de Linux par exemple), qui ne permet pas de vendre les programmes, et qui impose que les modifications apportées au programme soient reversées à la communauté.
Si vous êtes éditeur de logiciel, c’est un point important.
A la date de rédaction de cet article, la version courante est la 7.4.6.
La version 8.0 de PostgreSQL devrait être disponible dans quelques semaines.
Elle apporte en particulier 4 fonctions majeures :
Une version Windows native.
Le support des « tablespaces », pour une gestion fine de l’emplacement des données sur les disques durs.
La capacité de faire des sauvegardes incrémentales et des restaurations jusqu’à une date ou une transaction précise. Cette fonctionnalité est appelée PITR pour Point In Time Recovery. Avant la 8.0, il fallait obligatoirement sauvegarder et restaurer des bases complètes. Dans tous les cas, il s’agit de sauvegardes à chaud.
Les transactions imbriquées.
Je vous invite à surveiller la sortie de PostgreSQL 8 sur http://www.postgresqlfr.org !
Déploiement illimité
Vous pouvez déployer PostgreSQL sur autant de serveurs avec autant de CPU que vous le souhaitez.
Non seulement le coût d’investissement est nul, mais il n’y a pas de maintenance annuelle à payer !
Sur le long terme, l'économie est très importante.
Excellent support
Le support assuré par la communauté PostgreSQL est excellent et gratuit. De plus, de nombreuses SSLL peuvent vous offrir un contrat de support formel sur mesure.
Economies significatives sur les coûts de personnel
PostgreSQL nécessite beaucoup moins de maintenance et de paramétrage que les grandes bases de données commerciales, tout en proposant la plupart de leurs fonctionnalités, et surtout la fiabilité et les performances que l'on attend d'un tel produit.
Contrairement à beaucoup de bases de données commerciales, PostgreSQL ne nécessite pas de suivre plusieurs semaines de formation, ni d’avoir un administrateur de bases de données à plein temps. C’est un avantage majeur pour beaucoup de PME.
Fiabilité et stabilité légendaires
Il est très courant que des sociétés rapportent que PostgreSQL n'a jamais crashé, même pendant des années. Pas une seule fois. Tous les SGBDR ne peuvent pas en dire autant. En particulier, PostgreSQL ne craint pas les coupures électriques.
Conçu pour une grande capacité
De par sa conception, PostgreSQL ne craint pas les bases de données de grande taille ou ayant un grand nombre d’utilisateurs simultanés.
Plusieurs organisations l’utilisent pour des bases de données de plus d’un Teraoctet.
Le système mondial d’enregistrement des noms de domaine en « .org » est géré avec une base de données PostgreSQL par Afilias.
Outils graphiques de modélisation et d'administration
Plusieurs outils graphiques existent pour administrer les bases de données. Citons pgadminIII, pgaccess, phppgadmin, …
Très bonne compatibilité SQL
Comme beaucoup d'outils Open Source, PostgreSQL met un point d'honneur à suivre les normes, et en particulier les normes SQL 92 et 99. C'est un gage de pérennité et de portabilité.
Compatibilité très complète avec les standards SQL 92 et 99
Règles.
Vues.
Triggers.
Procédures stockées.
Séquences .
Jointures externes.
Requêtes imbriquées.
Transactions imbriquées.
Intégrité référentielle (foreign keys).
Support pour les requêtes de type UNION, UNION ALL et EXCEPT.
Index partiels et indexes sur les fonctions.
Sauvegardes à chaud, complètes ou incrémentales.
Restaurations complètes ou partielles.
Import et Export de données très simple.
Réplication (solutions commerciales et non commerciales) permettant de dupliquer une base de données maître vers plusieurs machines esclaves : Slony-I et eRserver.
Hot stand-by (solutions commerciales)
Interfaces natives pour ODBC, JDBC, C, C++, PHP, Perl, TCL, ECPG, Python et Ruby.
Langages procéduraux. En particulier, PL/PGSQL est proche du langage PL/SQL d’Oracle.
Gestion de XML.
Parfaitement compatible ACID
Verrouillage à un niveau fin.
Support de Unicode.
Support SSL natif.
Identification Kerberos native
Extensions objet (héritage entre tables).
Possibilité d'ajouter des extensions à volonté : types utilisateur, fonctions utilisateur en C, …
PostgreSQL fonctionne sur les principales plateformes Unix du marché :
Linux (PostgreSQL est en particulier optimisé pour le processeur AMD Opteron 64 bits)
AIX
Solaris
HP-UX
Mac OS X
Free BSD, Open BSD, NetBSD
Irix
Unixware
Pour Windows, à partir de la version 8.0, PostgreSQL est entièrement et nativement disponible sous Windows.
Pour les versions inférieures à la 8.0 :
Le client est disponible nativement pour les différentes versions de Windows.
Le
serveur est disponible en utilisant Cygwin, une émulation
GNU/Linux pour Windows. Cela fonctionne bien mais ce n’est pas
recommandé en production.
Bases de données Open Source :
MySQL : C’est la plus connue des bases de données Open Source. Elle est développée par la société MySQL AB. Elle est disponible selon une licence GPL pour une distribution gratuite, ou selon une licence payante classique pour une intégration dans un progiciel. MySQL a la réputation d’être très rapide pour des requêtes simples, mais d’être fonctionnellement moins complet que PostgreSQL. Lui manquent en particulier par rapport à PostgreSQL : les vues, procédures stockées et triggers, un support complet de la norme SQL. Ces fonctions (présentes depuis des années dans PostgreSQL) sont promises par MySQL AB pour la version 5.0, qui est en version Alpha depuis près d'un an... http://www.mysql.com
SAP DB a fusionné avec MySQL début 2004 sous le nom de MaxDB. Son avenir ne semble pas très clair. http://www.sapdb.org/
Firebird est issu d’Interbase de Inprise/Borland. Firebird semble être un bon produit, mais il a du mal à se faire reconnaître. http://firebird.sourceforge.net/
Il serait néanmoins tout à fait réducteur de limiter les concurrents de PostgreSQL au monde du logiciel libre.
De la même
façon que Linux est aujourd’hui reconnu comme un système
d’exploitation majeur, bien que libre et gratuit, PostgreSQL
doit être comparé aux SGBDR commerciaux comme Oracle,
Sybase, Microsoft SQL Server, IBM DB2).
D’une manière générale, je crois que PostgreSQL offre des fonctionnalités proches de ceux-ci, des performances comparables, et qu’il est plus facile à utiliser et à administrer(*). PostgreSQL est totalement gratuit et bénéficie d’un excellent support, gratuit lui aussi, auprès de la communauté (voir en particulier http://archives.postgresql.org/pgsql-general/) . Un support payant est disponible auprès de nombreuses sociétés de service. Voir par exemple http://www.commandprompt.com , www.pgsql.com . (répétition de ce qui se trouve plus haut?)
Par contre, certaines fonctionnalités avancées, comme la réplication multi maîtres ou le fonctionnement en cluster, manquent encore dans PostgreSQL. Soyons réalistes : les utilisez vous aujourd’hui dans votre SGBD commercial ?
(*) De telles affirmations générales sont évidemment subjectives, évoluent suivant les versions, et méritent que vous vous fassiez votre propre opinion en essayant PostgreSQL.
PostgreSQL dispose bien entendu d'une documentation complète, principalement en anglais. De l'avis de certains, c'était un des points faibles des anciennes versions. La version 7.4 et très bientôt la 8.0 ont beaucoup progressé sur ce point.
La communauté francophone de PostgreSQL travaille actuellement à la traduction. A ce jour, les programmes sont entièrement traduits et la documentation l'est à 50% environ.
En plus de la documentation, de nombreuses informations techniques sont disponibles sur les sites web de la communauté, comme http://techdocs.postgresql.org, ou http://www.varlena.org.
Des traductions et des communautés actives existent dans plusieurs autres langues.
PostgreSQL peut être téléchargé depuis un des sites miroirs: http://www.postgresql.org/mirrors-ftp.html
Des packages sont y disponibles pour les principales distributions de Linux.
Pour Windows, je recommande le programme d’installation pginstaller disponible sur les miroirs ou à l’adresse http://pgfoundry.org/projects/pginstaller/
Avec pginstaller, comme avec les packages linux, vous pouvez installer et démarrer PostgreSQL en 5 minutes, téléchargement compris (environ 15 Mo). Essayez d’en faire autant avec Oracle !
Le code source y est bien sûr disponible. Vous pourrez ainsi, si vous le souhaitez, personnaliser PostgreSQL, ou le compiler sur d’autres plates-formes moins courantes.
PostgreSQL est un SGBDR complet, stable, performant, riche de nombreuses années de développement, en évolution constante, soutenu par une communauté active.
Comme de nombreux logiciels libres (citons Apache, Linux, Tomcat, Open Office), c'est un produit mature, parfaitement à même de remplacer les produits commerciaux en entreprise, sans en avoir le coût, direct ou indirect.
Je vous invite à l'évaluer et à l'inclure dans vos développements et vos appels d'offres.
Vous ne serez pas déçus!
_________________________________
Auteur : Erwan DUROSELLE, erwan_duroselle (chez) hotmail point com
Date : 19 novembre 2004
Si vous avez apprécié ce document, si vous avez relevé des erreurs, si vous traduisez, modifiez, republiez ce document, je serais heureux d'en être informé, afin de maintenir une version unique de ce document.
Ce document est Copyright (c) 2004, Erwan DUROSELLE.
Ce document est fourni "en l'état", sans garantie aucune. L'auteur décline toute responsabilité pour l'usage que vous en faîtes. Vous pouvez utiliser, copier, modifier, traduire, distribuer ce document à votre guise, sans redevance et sans accord écrit. Vous devez néanmoins systématiquement inclure le texte de copyright ci-dessus et ce paragraphe.