99 votes

Quand j’ai utiliser XML au lieu de SQL ?

J'ai travaillé sur les bases de données des applications web depuis maintenant quelques années et a récemment pris sur un projet impliquant un CMS qui est XML-capable. Cela m'a conduit à réfléchir à l'utilisation de XML/XSLT, en général, et dans quelles situations il serait plus utile que l'approche que j'ai toujours utilisé, qui est le stockage de l'ensemble de mes données dans un (My)SQL base de données, puis à l'aide de PHP/Python/etc. pour travailler avec elle sur le web en tant que de besoin.

Il y a évidemment quelque chose que je ne suis pas "arriver" ici.. quelqu'un pourrait-il me donner des exemples d'applications où stocker les données dans des fichiers XML au lieu de dans une base de données serait préférable?

97voto

Pour citer Ce Livre (en vigueur XML: 50 Moyens Spécifiques pour Améliorer Votre XML):

"XML n'est pas une base de données. Il n'a jamais été destiné à être une base de données. Il n'est jamais va être une base de données. Relationnel les bases de données sont une technologie éprouvée avec plus de 20 années de mise en œuvre l'expérience. Ils sont solides, stables, des produits utiles. Ils ne vont pas loin. XML est une technologie très utile pour déplacer des données entre les différents les bases de données ou des bases de données et d'autres programmes. Cependant, il n'est pas lui-même une base de données. Ne l'utilisez pas comme ".

Je pense que cela résume, si un peu plus franchement. XML est un format d'échange de données. On peut avoir des bibliothèques d'analyse XML qui permet d'interroger un DOM avec des expressions XPath mais ce n'est pas la même chose qu'un SGBD. Vous pouvez construire un SGBD avec un DOM/XPath de l'interface, mais pour obtenir les propriétés ACID ou l'échelle de grands ensembles de données, vous devez mettre en œuvre un SGBD moteur et un format de données avec les index, l'exploitation forestière et d'autres artefacts d'un SGBD - qui (par définition) en fait quelque chose d'autre que XML.

21voto

Veynom Points 1625

XML permet de créer des fichiers qui doivent être envoyées à d’autres applications. XML est plus adapté comme format d’échange de données que dans le format de stockage de données.

Le lien suivant n’est pas mauvais pour décrire lors de l’utilisation de XML : Pourquoi utiliser XML ?

14voto

James Curran Points 55356

SQL est bonnes données tabulaires--qui s’adapte facilement dans les lignes et colonnes. XML est bon pour les données hiérarchiques--qui a plusieurs niveaux de différentes tailles.

SQL est bon pour le stockage et la recherche. XML est bon pour la transmission & mise en forme.

10voto

Dave Markle Points 44637

1) Lorsque vous avez pour échanger vos données avec les autres. XML est la "lingua franca" de la Web-à peu près tout le monde peut lire et de l'interpréter, à la différence d'un fichier de base de données.

2) Lorsque le volume de vos données est petit et que vous n'avez pas à faire des requêtes complexes contre elle. Les fichiers XML sont bonnes pour des choses comme le stockage de la configuration ou des modèles de document.

3) Lorsque vous n'avez pas beaucoup d'écrivains d'essayer d'accéder aux mêmes données. Les bases de données SQL ont impliqué la simultanéité des mécanismes qui sont à l'œuvre derrière les coulisses pour vous. Les bases de données SQL peut soutenir des index pour la recherche d'informations sur de grands ensembles de données rapide...

5voto

Robert Rossney Points 43767

Choses que je vais utiliser XML pour:

  • La persistance d'une hiérarchie d'objets.
  • Déplacer les données d'un processus ou d'une machine à l'autre.
  • Les données qui changent rarement, voire pas du tout; les paramètres de configuration et la comme.
  • Comme l'entrée de transformations XSLT: d'une manière générale, si l'un de mes programmes émet HTML, c'est à l'aide de XSLT pour le faire, et si la source de données va représentés en XML à certains
  • Balisage de texte. (N'oublions pas que!)

Il n'y a pas beaucoup de chevauchement entre les cas d'utilisation les cas d'utilisation d'une base de données. Certains, mais pas beaucoup.

Ironiquement, où je suis en train de faire ma plus lourde utilisation de XML pour le moment est dans une application de bureau qui construit une mémoire ADO jeu de données et utilise le jeu de données WriteXml et ReadXml méthodes de persister et de le récupérer. Je suis à l'aide d'ADO parce que c'est beaucoup plus facile à construire, de façon dynamique un modèle de données défini par la métainformation à l'aide d'ADO qu'elle serait de mettre en place mon propre modèle d'objet de la tâche.

Voici donc une affaire qui regarde comme je suis en utilisant le format XML comme une base de données. Mais je ne suis vraiment pas. Je suis à l'aide d'un modèle d'objet qui arrive à implémenter un nombre de base de données-comme la fonctionnalité, et je suis à l'aide de XML comme format de persistance.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X