IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Décisions SGBD Discussion :

Quand utiliser un fichier xml au lieu d'une base de données?


Sujet :

Décisions SGBD

  1. #1
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 177
    Points : 73
    Points
    73
    Par défaut Quand utiliser un fichier xml au lieu d'une base de données?
    Bonjour,

    Je m'interroge de plus en plus sur l'utilisation d'un fichier XML à la place d'une base de données.

    J'aimerai créer une fonctionnalité permettant à l'administrateur d'un site d'ajouter des page de contenu textuel (un peu comme dans les CMS).
    La solution la plus "simple" serait de créer une table stockant les informations saisies (titre, contenu, ...), et de les ressortir via une requête chaque fois qu'une page est affichée. Cependant, en cas de problème au niveau de la base de données (indisponibilité, saturation, ...) l'ensemble des pages seraient indisponibles... Je suppose qu'un système de cache règlerait le problème, mais je me demande s'il ne serait pas plus simple d'utiliser uniquement un fichier textuel genre XML...
    Je pensais entre autre créer un fichier différent pour chaque page ne contenant que les informations s'y rapportant. Je ne pense pas que cela pose des problèmes en cas de modification du contenu, et ça m'éviterait de passer par une base de données. Cependant, j'ai du mal à cerner dans quel cas une base de données est plus adaptée. J'ai cru comprendre qu'il était déconseillé d'utiliser un fichier texte lorsqu'il y a un risque d'accès simultané en écriture sur le même fichier, ou un besoin de faire de trier ou d'accéder à certaines informations uniquement (l'équivalent de SELECT avec des conditions voir des jointures), mais à part ça, ça reste flou pour moi.

    L'utilisation d'un fichier textuel peut-il poser des problèmes en cas de fort trafic (par exemple que se passe-t'il si 10 personnes cherchent à lire le même fichier en même temps?)?
    Plus généralement, dans quel cas un fichier textuel est-il plus adapté qu'une base de données et à l'inverse quand est-il déconseillé d'utiliser ce type de fichier?

    Merci d'avance.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 737
    Points
    52 737
    Billets dans le blog
    5
    Par défaut
    Question déjà posée
    http://www.developpez.net/forums/d90...oisir-xml-bdd/
    Un fichier ne peut pas être mis à jour par plus d'une personne à la fois...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 177
    Points : 73
    Points
    73
    Par défaut
    Merci pour ta réponse aussi courtoise que constructive... En lisant un peu plus attentivement ma question, tu aurais lu :
    J'ai cru comprendre qu'il était déconseillé d'utiliser un fichier texte lorsqu'il y a un risque d'accès simultané en écriture sur le même fichier,[...]
    Heureusement, tu m'as fait remarqué que "Un fichier ne peut pas être mis à jour par plus d'une personne à la fois..."!

    D'autre part, l'autre post que tu cites n'a rien à voir avec mon problème : je ne désire pas remplacer ma BDD par un fichier XML pour l'ensemble d'un site, je me demande juste si je l'utilisation d'un fichier XML serait adaptée pour le cas que je décrit (où j'ai justement précisé qu'il n'y aurait pas de soucis pour la modification, puisque seul l'administrateur pourrait le modifier...).

    Et pour citer une fois de plus mon premier post, que tu n'as manifestement pas lu en entier :
    L'utilisation d'un fichier textuel peut-il poser des problèmes en cas de fort trafic (par exemple que se passe-t'il si 10 personnes cherchent à lire le même fichier en même temps?)?
    Plus généralement, dans quel cas un fichier textuel est-il plus adapté qu'une base de données et à l'inverse quand est-il déconseillé d'utiliser ce type de fichier?
    Je pensais que les modérateurs devaient montrer l'exemple en terme de courtoisie et de réponse constructive, mais manifestement j'ai du mon tromper!

  4. #4
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    Pour le fond, le principal problème qu'on peut voire c'est le cache de données. Or de question de lire à chaque fois le fichier et de faire un accès lecture. Cependant, l'OS garde en cache les données, peut-être est-ce suffisant. Après mettre trop de fichiers dans un répertoire est pénalisant sous certains système de fichiers.

    Ce que vous voulez est très proche du NoSQL, mais en gardant une base de données (peut-être une secondaire?).

    Une solution serait aussi de conserver une copie dans la base de données et une copie en fichier directement formaté pour la lecture (html) sur le serveur web.

  5. #5
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 177
    Points : 73
    Points
    73
    Par défaut
    Merci de ta réponse Jester.

    Concernant la quantité de fichiers, je ne pense pas être confronté à un soucis, puisqu'il y aurait 1 seul fichier xml par page de contenu. Or il est rare qu'un site ait plus de 10 ou 20 pages de contenu (du moins dans mon cas).

    Ce qui me fait hésiter, c'est qu'en passant par une base de données (sans cache), je devrais faire une requête à chaque fois que quelqu'un visualise une page afin de pouvoir connaître le titre de la page, la description, et le contenu. Autrement dit si j'ai 1000 visites sur 1h, j'aurais 1000 requêtes identiques exécutées. C'est un peu dommage.
    De plus , je ne pense pas qu'une base de données m'apporte grand chose dans ce cas :
    - je n'ai pas besoin de faire des requêtes autres que de retourner une ligne à partir de son identifiant;
    - le contenu ne sera pas mis à jour régulièrement, et une seule personne le pourra;
    - l'affichage de ma page dépendra de la disponibilité du serveur SQL (donc plus de risque d'inaccessibilité, sur un hébergement mutualisé)

    Et utiliser un système de cache revient à créer un fichier contenant le contenu, ce qui ressemble fortement à mon fichier XML.

    Cependant, n'ayant jamais utilisé de fichier XML pour ce genre dde chose, je ne connais pas bien les retombées que ça aura. J'aurais tendance à me dire que les fichiers PHP ou HTML sont eux aussi des fichiers texte, et qu'il n'y a pas de soucis d'accès même en cas de fort trafic. Cependant, je préfère m'en assurer plutôt que de m'en rendre compte par moi même une fois le site en ligne et fréquenté régulièrement...

Discussions similaires

  1. Réponses: 8
    Dernier message: 15/02/2011, 09h15
  2. Réponses: 0
    Dernier message: 26/10/2009, 11h44
  3. Réponses: 2
    Dernier message: 21/03/2008, 20h51
  4. Réponses: 1
    Dernier message: 30/12/2007, 14h51
  5. [XML] XML en natif dans une base de données relationnelle
    Par evlad dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 05/04/2007, 09h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo