MySQL
ou PostgreSQL ? Des arguments pour comprendre
En matière de bases de données Open Source, deux solutions reviennent principalement, l'une étant beaucoup plus populaire que l'autre. Mais... (Lundi
9 février 2004)
La course à la réduction des coûts
IT conduit de plus en plus d'entreprise à étudier la possibilité
de mettre en oeuvre des bases de données Open Source au sein de leur système
d'information. Dans ce domaine, on distingue généralement deux alternatives :
MySQL et PostgeSQL. Chacune présentant ses avantages et ses inconvénients.
Entre MySQL (dernière version de production : 4.0.17) et PostgreSQL (dernière
version de production : 7.4.1), quelle base de données choisir ? Afin
de vous permettre de mieux percevoir les capacités de ces deux outils,
nous vous proposons un comparatif fonctionnel (voir le tableau
ci-dessous).
PostgreSQL:
une technologie plus ancienne Créé en 1996 à l'initiative
de développeurs suédois, MySQL
est une évolution de l'interface d'accès aux données mSQL.
Une petite application conçue pour assurer la connexion à des tables
en exploitant des routines de bas niveau. MySQL est conçue à l'origine
pour assurer le support de sites Web dynamiques. Depuis, son socle fonctionnel
n'a cessé d'évoluer. Ce qui lui permet dès lors de conquérir
de nouveaux domaines d'applications, le champ des environnements de données
critiques notamment.
Issu d'un programme de recherche de l'université de Berkeley remontant
à 1986, PostgeSQL est un système de gestion de bases de données
(SGBD) reposant sur un modèle orienté objet. Une technologie qui
ouvre des horizons beaucoup plus larges qu'un dispositif relationnel classique,
tels que celui de MySQL. Elle permet par exemple de mieux et plus directement
prendre en compte les notions de classes, d'héritage et de surcharge, facilitant
ainsi la programmation de logiques applicatives plus complexes. Autre différence
à noter : aux côtés d'une bibliothèque d'interfaces
de programmation particulièrement riche, PostgeSQL dispose d'un langage
de procédures qui lui est propre.
Fort de cette double caractéristique, cette
infrastructure est comparable à une solution de base de données
haut de gamme, comme celle d'Oracle - qui s'adosse également sur une logique
objet et un langage d'élaboration de procédure particulier. Revers
de la médaille : à la diffrence de MySQL, elle présente
une communauté d'utilisateurs encore assez peu développée.
Dans la dernière version de son guide sur le logiciel libre (voir notre article),
la société de services française IdealX érige PostgeSQL au rang de brique Open
Source "incontournable". Quant à la base MySQL, elle la qualifie seulement de
"solution prometteuse".
Comparatif
fonctionnel des bases de données MySQL et PostgreSQL
Fonctions
MySQL
PostgreSQL
Gestion
de la mémoire
Support du multi-thread.
Support du multi-thread.
API
C, C++, Java, Perl, PHP, Python
et Ruby.
C, C++, Perl, PHP, TLC, ECPG,
Python et Ruby.
Sécurité
Fonction de réplication,
et mécanismes de gestion en environnement critique plus avancés
que PostgreSQL.
Fonction de réplication
(livrée avec la version commerciale), un module de gestion des indexes
en continu est disponible depuis peu.
Connectivité
Interface ODBC
Interfaces ODBC et JDBC.
Système
de types
Système de types de données simple.
Système de types de données extensible,
incluant une bibliothèque par défaut (types numérique, monétaire,
binaire, géométrique, etc.).
Contrôle
de l'intégrité
-
PostgreSQL dispose d'un dispositif
de contrôle de l'intégrité de la structure et de la cohérence
des données
Langage
de procédures
-
PostgreSQL intègre un langage
de procédures (baptisé PL/pgSQL) supportant notamment les boucles et la déclaration
de variables.
Requêtes
SQL, support des procédures
stockées (disponible depuis la version 5.0).
SQL et XML, support des procédures
stockées et les triggers.
OS
Linux, Mac OS X, Unix et Windows.
Linux, Mac OS X, Unix, et Windows.
Les modèles
de licences disponibles pour MySQL et PostgreSQL
F
MySQL
PostgreSQL
Licences
GPL : cette licence
libre autorise la redistribution d'un logiciel à condition que les
sources de ce dernier restent accessibles aux utilisateurs. Une licence commerciale
de MySQL est proposée par MySQL AB. Cette société a été
créée par trois fondateurs du projet MySQL : David Axmark,
Allan Larsson et Michael Monty Widenius. Notons que MySQL AB publie aussi MaxDB
basée sur SAP DB.
BSD : cette licence
Open Source n'impose aucune restriction sur la redistribution. L'auteur demandant
simplement que son nom soit cité au sein des produits dérivés. Une licence
commerciale est proposée par PostgreSQL Inc. Cette société
est issue du projet lancé à l'université de Berkeley.