Pourquoi nous utilisons PostgreSQL pour le développement d'applications WEB Introduction Ce document répond à la question posée par quelques uns de nos clients : "Pourquoi utilisez-vous PostgreSQL (par opposition à MySQL, Oracle, MS-Access, FoxPro, etc...) pour le développement d'application web?" Pour le développement des sites web, PostgreSQL est le système de gestion de base de données relationnelle (SGBDR) préféré de Summersault comme composant pour la gestion en arrière-plan des données. Comme il existe d'autres choix possibles, il est bon d'expliciter ce choix particulier. Tout d'abord, il convient de noter que le choix de SGBDR dépend souvent fortement des paramètres et des besoins propres à chaque projet. Aussi, si nous exprimons ici notre préférence pour PostgreSQL dans le cadre spécifique de Summersault, nous ne voulons nullement sous-entendre que PostgreSQL est le bon choix quelques soit le projet. Quelles bases de données prendre en compte? Nous comparerons PostgreSQL aux autres progiciels de serveurs de base de données courants qui sont des choix possibles pour le développement d'application web: MySQL, Oracle et Microsoft SQL Server. Il existe également un certain nombre de progiciels de base de données pour les ordinateurs de bureau (http://databases.about.com/library/weekly/aa051301a.htm) utilisés parfois pour le développement d'applications web : Access(http://office.microsoft.com/access), FoxPro(http://msdn.microsoft.com/vfoxpro/), FileMaker Pro(http://www.filemaker.com/), et d'autres. Ces applications sont souvent peu coûteuses et faciles à utiliser pour la gestion de simples base de données personnelles ou de groupes de travail. , mais elles conviennent rarement au déploiement d'applications serveur. Les principales raisons de cette restriction sont exposés dans les points suivants, adaptés d'About.com (http://databases.about.com/library/weekly/aa051301a.htm): ·Ces applications généralement tolèrent seulement un seul ou un nombre restreint d'utilisateurs simultanés. Ceci les rend inutilisables pour des applications web où de multiples connexions simultanées sont nécessaires. ·Ces applications ont généralement un faible niveau de sécurité. La plupart des applications web exigent des systèmes de sécurité beaucoup plus robustes que ceux proposés par ces progiciels pour ordinateurs de bureau. ·Ces applications ne sont généralement pas conçues pour le déploiement d'applications web ou d'autres services gérés en réseau. Leur architecture, leur modularité et leurs performances globales sont rarement optimisées pour l'usage dans une application Internet, ce qui leur donne un handicap pour le développement sérieux de sites web reposant sur une base de données. Etant donné ce qui précède, nous n'inclurons pas les systèmes pour ordinateurs de bureau dans notre évaluation, car ils ne sont généralement pas considérés comme des options appropriées par les professionnels de notre industrie, et l'expérience que nous en avons confirme cette tendance. Choix de PostgreSQL Nous aborderons quelques facteurs clé à examiner lors du choix d'un SGBDR pour une application web de classe production, et nous indiquerons pourquoi nous pensons que PostgreSQL se trouve en première position pour les besoins spécifiques de nos applications: 1. Avantages Généraux 2. Caractéristiques 3. Performances 4. Support Commercial 5. Reconnaissance industrielle/Utilisation Répandue 6. Notre histoire et notre expertise avec PostgreSQL 1. Les avantages généraux Les avantages principaux pour l'emploi de PostgreSQL sont : 1. PostgreSQL est un logiciel libre Open Source (http://www.opensource.org/). 2. PostgreSQL a d'excellentes options pour le support commercial et par la communauté open-source 3. PostgreSQL possède une fiabilité et une stabilité légendaire 4. PostgreSQL est très modulaire et extensible 5. PostgreSQL est multi plate-forme 6. PostgreSQL est conçu pour les environnements à forts volumes de données 7. PostgreSQL est facile à administrer 2. Les caractéristiques Voici est une liste plus détaillée des caractéristiques offertes par ces progiciels SGBDR: Feature SQL Server Oracle MySQL PostgreSQL Open Source X X Libre/ Pas de coût de licence X X Conformité ACID X X Conformité ANSI SQL X X X Intégrité référentielle X X X Réplication X X X X Règles X X X Vues X X X Déclencheurs (triggers) X X X Unicode X X X Séquences X X X Héritage X X Jointures externes X X X X Sub select X X X API Open source X X Procédures stockées X X X Support natif SSL X X X X Langages procéduraux X X X Index X X X X Ces informations sont réputées être actualisées à la date de cette parution (13/01/2004), mais leur précision n'est pas garantie. Les sources incluent: http://advocacy.postgresql.org/advantages / http://www.microsoft.com/sql/evaluation / http://www.mysql.com/products/mysql/index.html / La plupart des caractéristiques ci-dessus sont des points clé du développement d'applications web robustes et modulaires, et de ce point de vue, PostgreSQL fournit manifestement d'excellentes prestations. 3. Performances PostgreSQL, comme ses compagnons, exigera toujours un réglage et une optimisation particulière pour chaque application. De ce fait, chacun des systèmes - SQL Server, Oracle, MySQL et PostgreSQL - aura d'emblée des domaines de d'exécution particuliers où il excellera. PostgreSQL est généralement optimisé et plus rapide que d'autres pour des scénarios impliquant des charges transactionnelles élevées, un nombre important d'utilisateurs (particulièrement dans les applications non read-only), et les requêtes complexes. D'autres caractéristiques associées -- comme les vues, la conformité ACID, etc... -- contribuent également au fonctionnement global de PostgreSQL. Peu de données sont disponibles au niveau industriel dans le domaine des benchmarks de bases de données, ceci dépendant encore en grande partie du niveau de possibilité de réglage de chaque système de bases de données en fonction des performances attendues. 4. Appui commercial Il existe un large réseau de compagnies et d'individus offrant conseil et support commercial pour PostgreSQL. Une liste est disponible à http://techdocs.postgresql.org/companies.php/ Il s'agit là d'une différence notoire avec les contrats de maintenance propriétaires requis pour des systèmes comme SQL Server et Oracle. En plus des circuits formels d'assistance, il existe une grande variété de listes de courriel, des groupes de support, et d'autres collaborations en ligne auprès desquels on trouvera appui et consultation. Notre expérience nous montre que toutes les questions avancées de PostgreSQL peuvent habituellement être résolues très rapidement à peu ou pas de frais. 4. Reconnaissance industrielle/diffusion Pour n'importe quelle application critique, il est important de s'assurer que les technologies en usage sont bien établies dans leur secteur industriel et jugées dignes de confiances par les autre. En plus du grand réseau de support commercial de PostgreSQL (voir ci-dessus), il bénéficie d'une utilisation significative par beaucoup d'organismes notables l'utilisant pour des missions critiques ou des applications à grande échelle. Une liste partielle de ces organismes est disponible à http://techdocs.postgresql.org/techdocs/supportcontracts.php/ 5. Notre histoire et expertise avec PostgreSQL Un des facteurs les plus importants dans le choix d'un système de base de données pour un projet est le niveau d'expertise du développeur d'application avec ce système; même le meilleur système de base de données peut montrer de faibles performances s'il n'est pas utilisé correctement. Sous une forme ou une autres, Summersault a travaillé avec PostgreSQL depuis 1996. Outre un emploi intensif du logiciel, nous avons aussi contribué à sa croissance, en incluant les interfaces de logiciel, les activités d'assistance aux utilisateurs, et autres. Nous avons déployés avec succès et géré le logiciel PostgreSQL sur des plate-formes variées, et avons conduit avec succès des projets de migration de données et de mise à niveau logicielle dans des contextes variété, liés en particulier au développement d'application web. En bref, nous avons l'expertise et l'expérience qui nous permet d'employer efficacement PostgreSQL pour nos clients, en économisant du temps et des dépenses, et en optimisant les performances. Conclusion Nous l'avons dit, PostgreSQL n'est pas le bon choix pour chaque projet, mais nous savons que ses caractéristiques avancées, son coût extrêmement bas de déploiement, et le support de la communauté open source en font chez Summersault le choix le plus approprié pour le développement de sites web associés à une base de données. Pour n'importe quelles questions ou commentaires sur ce document, contactez nous par l'intermédiaire du E-mail: info@summersault.com. Ce travail est sous licence Creative Common License (http://creativecommons.org/licenses/by-sa/2.0/)