Quels sont les avantages & inconvénients de l'utilisation de XML de la base de données?
Je suis tombé sur un CMS connu comme GetSimple. Il utilise le langage XML pour stocker toutes ses données internes. Dans un sens, c'est l'utilisation de XML comme base de données. Maintenant, quelqu'un pourrait-il m'expliquer les avantages & inconvénients de l'utilisation de XML comme base de données.
Merci à l'Avance.
Tanmoy
OriginalL'auteur 0xFaCeB00c | 2009-09-23
Vous devez vous connecter pour publier un commentaire.
À l'aide de XML en tant que votre base de données fonctionne très bien tant que vos ensembles de données séjour relativement faible. Meaining, il peut s'inscrivent dans la mémoire et y séjourner confortablement. Une fois que vos données se développe au point où elle ne pourra pas tenir dans la mémoire, vous aurez probablement commencer à voir grave dégradation des performances.
Honnêtement, vous allez commencer à voir les requêtes inefficaces à long avant de remplir votre mémoire. De nombreux XML ou un fichier plat DBs va commencer à ralentir quand ils sont plus de 20 ou 30 mégas, en fonction de la structure de vos données.
MarkLogic serveur (Native XML, base de données) peut gérer des centaines de téraoctets, et existent (open source native XML, base de données de plusieurs centaines de giga-octets à un téraoctet. La taille du fichier n'est pas important puisque toutes les xml est indexés et stockés dans un persistant DOM. Si une requête XQuery sur des centaines de giga-octets peuvent être facilement sous deuxième les requêtes.
OriginalL'auteur baldy
Certaines informations, Cité à partir de ce site:
Si votre application nécessite le déplacement de données entre les entreprises, XML est une bonne solution. XML vous permet d'envoyer des données à travers l'Internet et à travers les pare-feu en utilisant le protocole HTTP standard. XML est également un bon choix si votre application a besoin de déplacer des données entre le matériel ou le logiciel plates-formes (OSs). XML n'est pas à la machine ou du système d'exploitation spécifique. Enfin, XML est un bon choix si vous voulez simplement vous assurer que votre application ou de la source de données est solide, même si les données les modifications de schéma. XML permet à votre application d'être extensible parce que vous avez accès au format XML des données en utilisant des noms d'élément et attribut au lieu de décalages, qui a structuré les langages de programmation à utiliser. Notez que l'utilisation de noms d'élément et attribut d'accéder à des données en XML est similaire à accéder à des champs par leur nom dans une table SQL Server. Si vous avez un ou plusieurs de ces exigences de l'application, puis XML est une bonne solution pour vous.
Ensuite, vous devez déterminer le meilleur endroit pour produire ou consommer XML au sein de votre application, qui est une décision importante car à l'aide de XML subit une surcharge de traitement. Cette surcharge se manifeste de différentes manières, selon que vous êtes de consommer ou de produire du XML. Pour XML consommateurs, vous needat minimuma méthode permettant d'analyser le fichier XML. Vous aurez probablement aussi besoin d'un modèle objet pour accéder à l'analyse de données. XML pour les producteurs, la conversion de données native XML, encourt des frais généraux. Sur le niveau intermédiaire, la surcharge de traitement est cruciale. Si votre niveau intermédiaire du programme manipule, effectue des calculs sur, ou reformate les données et de votre base de données est à l'intérieur du pare-feu, XML ne devrait pas être votre premier choix. Dans ce cas, la demande d'un résultat normal défini à partir de la base de données et l'utilisation traditionnelle d'accès aux données méthodologies d'effectuer de traitement de la demande sera la plus efficace. Une fois le traitement terminé, le milieu de la couche application peut générer le XML de sortie. À l'aide de données traditionnelles-l'accès des méthodologies évite la surcharge de générer un document XML dans la base de données ainsi que les frais généraux de l'analyse du XML et la construction d'un modèle d'objet sur la couche intermédiaire. Le seul avantage potentiel de générer un document XML sur le niveau intermédiaire, c'est que vous pouvez vaguement couple au milieu de la couche d'application et de votre base de données, mais le coût est important.
Maintenant, nous allons appliquer ces directives d'utilisation pour le scénario que vous décrivez dans votre question. Vous ne semblez pas avoir l'obligation de déplacer des données entre les entreprises, au travers de l'Internet, ou à travers les pare-feu. Donc, sauf si vous essayez de rendre vos applications plus extensible, XML n'est pas un bon choix pour votre scénario. Traditionnelle technologies d'accès aux données sera répondre à vos besoins. Mais pour démontrer la valeur de XML, supposons que vous avez besoin pour faire votre demande extensible. Vous pouvez mettre à niveau vers SQL Server 2000 et l'utilisation de son intégré le support de XML. C'est votre meilleure option, car elle offre une plus grande souplesse. Si vous devez accéder à vos données à partir de SQL Server 7.0 ou 6.5, puis vérifier le Serveur SQL XML aperçu de la technologie à http://msdn.microsoft.com/downloads/samples/internet/xml/sqlxml/default.asp. Cet aperçu fournit des fonctionnalités similaires à la prise en charge de XML dans SQL Server 2000, mais la prévisualisation fonctionne avec SQL Server 7.0 et 6.5. (Pour plus d'informations sur les différences entre SQL Server 2000 de l'intégration XML et Microsoft XML aperçu de la technologie, voir Bob Beauchemin, "Les Fichiers XML", septembre 2000.)
J'ai mis en caractères gras les points principaux, et aussi j'ai collé uniquement les informations pertinentes. L'-1 a été très, très inutile.
il n'y a rien de mal à y compris les parties pertinentes de ressources externes, même s'ils sont moyennement longue. Il est correctement attribué et clair.
Salut Kyle, merci pour la réponse détaillée. Il a été vraiment utile. Mais savez-vous tout article qui a été écrit par l'Open Source Technologue.
Salut Tanmoy, je suis désolé, mais je ne comprends vraiment pas pourquoi cela ferait une différence? L'article a été écrit pour le bien-fondé d'une base de données contre plat-fichier XML. Même si MSSQL est nommé comme alternative, il est encore juste une comparaison entre XML vs DB.
OriginalL'auteur Kyle Rozendo
Un bref coup d'œil dans les réseaux trouvé cet article sur XML.com
La tête est : " à la Suite d'une récente XML-DEV discussion sur la façon de choisir le plus approprié de la base de données pour votre application de XML, XML Déviant capte les indicateurs qui permettront de vous permettre de vous rapprocher d'une décision.'
L'article parle de la distinction de "données" et "document".
OriginalL'auteur lexu
En fait des documents XML sont des bases de données déjà, quoi que vous fassiez avec DOM, SAX, Pull ou VTD-XML, vous avez encore besoin de faire, après le stockage dans une base de données... c'est plus ou moins un point de vue changement de mon point de vue
OP du choix... peut-être vous demandez-vous à ce que la case à cocher?
pourquoi ne pas le wiki de la communauté? Je ne sais pas vraiment ce que c'est à la première place
OriginalL'auteur
Je pense que ça dépend aussi de la complexité de vos requêtes. Si vous êtes raisonnablement à l'aise pour écrire des requêtes XPath, alors même si vous avez d'interroger les données à travers un couple de "dimensions" vous êtes toujours à gauche avec raisonnablement pas horrible du code XPath.
Toutefois, si vous parlez d'un modèle de données qui nécessiterait rejoint sur 3 ou 4 tables en SQL, vous êtes probablement déjà à proximité du point de XPath qui s'arrête de mise à l'échelle si bien. Je ne peux pas vraiment dire comment cela fonctionne avec d'autres langages de requête comme une requête XQuery ou XLinq - peut-être le compromis est dans un endroit différent.
OriginalL'auteur Dominic Cronin
Aussi, voir http://www.joelonsoftware.com/articles/fog0000000319.html pour un exlanation de pourquoi "vous ne pouvez pas mettre en œuvre l'instruction SQL SELECT auteur DE livres vite si vos données sont stockées en XML."
("fast" est le mot clé ici)
OriginalL'auteur anonymous