PostgreSQL est un SGBD Relationnel-Objet (ORDBMS). Il est aujourd’hui reconnu comme la base de donnée Open Source la plus complète et la plus robuste sur le marché. PostgreSQL a eu longtemps la réputation d'être le challenger de MySQL :
plus robuste, plus riche en fonctionnalités, mais aussi plus complexe
et moins rapide. Cette réputation n'est plus du tout justifiée
aujourd'hui : les deux bases disposent de fonctionnalités et de
performances comparables. PostgreSQL dispose en outre de nombreux
avantages techniques.
UTILISATEURS
PostgreSQL est déployée dans des milliers d'entreprises dans le monde, y compris pour des applications critiques de production. Quelques exemples d'utilisateurs sont présentés ici > et des cas utilisateurs sont présentés là >
COMMUNAUTE
PostgreSQL est développé par une communauté internationale de développeurs et d'entreprises (parmi lesquelles Fujitsu, Pervasive Software, Bull ou Sun). L'histoire de PostgreSQL remonte à la base de données Ingres, développée à Berkeley par Michael Stonebraker. Lorsque ce dernier décida en 1985 de recommencer le développement de zéro, il nomma le logiciel Postgres, comme raccourci de post-Ingres. Lors de l'ajout des fonctionnalités SQL en 1995, Postgres fut renommé Postgres95. Ce nom fut changé à la fin de 1996 en PostgreSQL. La communauté compte une cinquantaine de développeurs et contributeurs occasionnels actifs.
FONCTIONNALITES
PostgreSQL est une base de données de classe entreprise. Sa version 8 dispose de la plupart des fonctionnalités présentes dans les bases de données commerciales (transactions, triggers, views, foreign key referential integrity, rules and sophisticated locking, write concurrent access….). PostgreSQL supporte aussi les types de données définies par les utilisateurs, l’héritage, etc. Enfin, la base dispose de nombreux outils d’administration. Son approche très modulaire permet par ailleurs de lui adjoindre de nombreuses fonctionnalités (cartouche spatiale PostGIS par exemple).
L'approche est extrêmement rigoureuse et l'ensemble des fonctionnalités est très cohérent et la qualité homogène. A ce titre, PostgreSQL est est une bonne alternative aux bases Oracles, que ce soit pour les nouvelles applications, ou pour migrer des bases de données existantes. PostgreSQL est accessibles en utilisant les langages de programmation C, C++, Perl, Python, TCL, Java, etc.
ROBUSTESSE
PostgreSQL est une base extrêmement robuste et fiable. C'est clairement une des priorités numéro un du projet. Le Write-Ahead Log est un modèle du genre, et permet de faire revenir
la base de données en arrière dans le temps, au prix de quelques
manipulations techniques ; il permet aussi, dans un schéma de haute
disponibilité, de faire une reprise à chaud fiable.
PERFORMANCE
PostgreSQL propose une excellente scalabilité en fonction du nombre de requêtes simultanées et du nombre de cores.
La base a fait des bonds significatifs en terme de performances ces
dernières années et sa flexibilité permet souvent d'obtenir des
performances excellentes dans des situations complexes (planificateur
de requêtes extrêmement performants, types d'index avancés qui
permettent d'indexer des types de données non standards, etc.). Le process de développement extrêmement maîtrisé permet de bénéficier
des améliorations apportées en terme de performances régulièrement (1
nouvelle version majeure par an).
PostgreSQL reste cependant très dépendant des développeurs et il peut arriver
qu'elle devienne incontrôlable lorsque la configuration du serveur est
mal optimisée, que de nombreuses transactions sont en cours ou qu'une très
grande quantité de données sont traitées via une seule requête (
UPDATE et VACCUM par exemple ). PostGreSQL paie aussi le coût de son modèle MVCC (qui permet d'avoir
plusieurs versions d'une même ligne) sur certains types de requêtes
(notamment les classiques COUNT(*)).
Toutefois, les performances PostgreSQL sont stables dans la durée malgré un volume de connexions et un de données élevé. Pour des applications complexes et ou à fortes volumétries, de
bonnes performances requièrent des phases d’optimisation.
DOCUMENTATION
Il existe une documentation anglaise très claire et détaillée, bien séparée par version avec des commentaires utilisateurs. Par ailleurs, chaque patch intègre sa documentation : la documentation
de développement est donc également toujours à jour : très utile pour
évaluer les futures fonctionnalités et tester les futures versions. Un wiki a également été mis à disposition également pour échanger des informations de manière moins contrainte. La communauté française a son propre site >
FACILITE D’EMPLOI
PostgreSQL est considérée comme aussi simple à déployer, à administrer et à configurer que les bases de données commerciales équivalentes (Oracle, etc.). Il existe un outil d'administration graphique pgadmin >. De manière générale, le fichier de
configuration est très clair, la gestion des accès est relativement
simple. De nombreux outils de diagnostic permettent de détecter les éventuels problèmes de performances (requêtes lentes par exemple). La nécessité de faire un dump/reload pour une mise
à jour de version majeure peut être très contraignante sur des
bases de taille conséquente.
A noter que EnterpriseDB propose une version commerciale de base de donnée compatible Oracle, basée sur PostgreSQL.
Contributeurs à cette fiche : Eric Fosse (Logica), Jose Guerreiro
(Bull), Gérald Laurent (Bull), Jerome Petazzoni (Pilot Systems), Guillaume Smets (OpenWide),
Vincent Vignolle (Solinux/AlterWay).