PRATIQUE ALGO/METHODES 
Quand utiliser une base de données... ou pas
 
Le débat entre bases relationnelles et systèmes de fichiers existe depuis de nombreuses années. Quelques éléments à considérer avant de choisir la méthode de stockage d'une application. (17/05/2006)
  Forum

Réagissez dans les forums de JDN Développeurs

La nécessité de stocker durablement des données, et de les récupérer efficacement, a mis en avant les divers systèmes de bases de données actuels : Oracle, MySQL, SQL Server sont quelques-uns des nombreux systèmes de gestion de données relationnelles, utilisés tant pour des applications de bureau que pour des sites Web. Ceux-ci ont tendance à faire de l'ombre au stockage par base fichier ("flat file database").

Les bases par fichier diffèrent des bases relationnelles par plusieurs points importants. Tout d'abord, elles sont universelles : à partir du moment où l'on peut créer un fichier, on peut créer une base fichier, sans faire appel à un logiciel serveur. Ensuite, elles sont simples à mettre en place : pas de logiciel à installer ou de base à configurer. Enfin, elles prennent moins d'espace disque.
Une base fichier est conçue autour d'une table unique par fichier, avec un enregistrement par ligne de texte. Les champs de l'enregistrement sont différenciés le plus souvent à l'aide du format CSV, c'est-à-dire séparés par une virgule (ou un point-virgule).

D'un autre côté, les bases de données relationnelles ont prouvé leur valeur : elles sont extrêmement sécurisées, disposent d'un langage de traitement très fonctionnel (SQL) qui leur autorise le croisement de données complexes, négocient efficacement les accès multi-utilisateurs, et peuvent lancer des tâches automatisées.

Il s'agit donc de décider, lors du lancement d'un projet, laquelle de ces deux possibilités est la mieux adaptée. Pour un projet Web, on pourra utiliser un stockage fichier chez n'importe quel hébergeur - mais tous les hébergeurs proposent aujourd'hui au moins un système de base de données.

Le consensus à l'heure actuelle est que le stockage par fichier perd de son intérêt quand le projet atteint une taille conséquente, ou que les données à traiter deviennent particulièrement complexes. Cependant, certains langages, comme Perl, sont passés maîtres dans l'utilisation de bases fichier, au point de pouvoir efficacement se substituer au langage SQL des bases relationnelles. De leurs côtés, en hébergement dédié, les bases relationnelles demandent toute l'attention de leur administrateur pour maintenir une charge optimale.

La décision finale revient donc à considérer les usages réels et à long terme de l'application créée. Ainsi, la scalabilité et les évolutions de la puissance des serveurs sont des points forts des bases relationnelles, tandis que la portabilité et la rapidité de lecture sont des avantages des fichiers.

L'idéal reste alors d'utiliser chaque technologie a son avantage, par exemple stocker les informations purement relationnelles (comptes utilisateurs, adresses...) dans une base de données, et le contenu bidimensionnel dans des fichiers.

Il est à noter que certains systèmes de base de données offrent les avantages de SQL et du stockage fichier : SQLite, intégré à PHP 5, en est un exemple.
 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page