Choix du SGBD

Objectif :

Le but de cette documentation est de définir le SGBD que nous allons utiliser au cours de ce projet tout en tenant compte du cahier des charges.

Cahier des charges :

Le SGBD doit être libre, gratuit, compatible avec le framework web2py, supporter la gestion des utilisateurs et des droits, gérer l’intégrité référentielle, utilisable en ligne de commande et via interface Web.

Compatibiliter avec le framework :

Dans la documentation de web2py, une page est dédié au SGBD qui sont compatibles avec ce framework ( http://goo.gl/L0WIda ). En voici la liste : SQLite MySQL postgreSQL

Comparatif des SGBD :

Nous retiendrons donc de ces SGBD compatible seulement les SGDB libre et gratuit. Nous ne gardons bien évidement pas SQLite puisqu’on veut migrer de celui-ci vers un nouveau SGBD.

Pourquoi ne plus utiliser SQLite ?

Il faut savoir que SQLite stocke la totalité des données dans un seul et unique fichier. Bien qu’il y est la plupart des fonctionnalités présentes, certaines sont absentes et pas des moindres. ALTER TABLE, par exemple, est inaccessible : la base tenant dans un seul fichier, SQLite n’autorise pas de le modifier. Il faut alors effacer puis recréer la structure de la table. De la même manière, GRANT et REVOKE ne sont pas disponibles : la gestion des droits d'accès à la base se limite à l'accès au fichier lui-même .

Tableau comparatif :

Nom	Avantages	Inconvénients	Gestions utilisateurs / droits	Intégrité référentielle*	Ligne de commande / Interface web
MySQL	Supporte plus d’OS; gratuit; facilité de déploiement et de prise en main.	Support incomplet des triggers et procédures stockées.	Les deux	Suite à nos recherches, seul le moteur InnoDB propose cette fonctionnalité.	Les deux
postgreSQL	OpenSource et gratuit; simple d'utilisation et d'administration; richesse des fonctionnalités	Système de sauvegarde peu évoluer	Les deux	Proposée	Oui / Pas de service web

*Intégrité référentielle : respecter l’intégrité des contraintes dans la base de donnée.

Notre choix :

Pour conclure nous choisissons donc d’installer le SGBD MySQL avec le moteur InnoDB de sa gratuité, de sa facilité d’installation et de configuration. Il est certes moins puissant que oracle sur certains points mais les coûts engendrés par la configuration requise de ce SGBD nous oriente donc vers ce choix.