J'ai un système qui génère un grand nombre de documents XML tous les jours (de l'ordre de 1 million) et je voudrais pouvoir les stocker et les indexer afin de pouvoir, par exemple, rechercher tous les documents avec un certain champ défini à une valeur donnée. Je comprends qu'il existe fondamentalement deux types de bases de données XML, celles qui fournissent un support XML au-dessus d'une base de données relationnelle conventionnelle et celles qui sont des bases de données XML "natives". Étant donné que je suis ouvert à l'un ou l'autre, que recommanderiez-vous?Quelle base de données a le meilleur support XML?
Répondre
Je ne peux pas vous donner un bon candidat, mais si vous voulez éviter d'en choisir un mauvais, évitez Oracle XmlDB. C'est lent et buggy comme l'enfer. L'une des pires extensions d'Oracle à son SGBD.
Selon les personnes qui ont travaillé dessus monetDB est tout à fait capable de gérer xml. Fondamentalement, quand vous voulez faire xquery sur le contenu, vous voulez avoir quelque chose qui peut le faire correctement. La structure d'un document XML très flexible et de longueur indéterminée est fondamentalement différente de celle d'un rdbms. Cela signifie que les choses doivent être stockées et indexées intelligemment. Pour les systèmes dbms traditionnels, il s'agit d'un raccourci facile pour stocker le fichier XML en tant que BLOB (objet binaire). Mais les BLOB ne sont généralement pas indexés et vivent principalement en dehors du magasin de données principal. Pour analyser xml correctement, le système doit aller dans le xml lors du stockage. MonetDB le fait apparemment.
Microsoft SQL Server prend en charge les colonnes XML. C'est plus qu'un simple support BLOB/TEXT.
Vous pouvez utiliser des colonnes XML de manière non structurée, où SQL Server s'assurera simplement qu'elles sont correctes. Cela permet de stocker des documents XML arbitraires dans SQL Server, tout en vous assurant que vous avez affaire à du XML et pas seulement à des octets/caractères arbitraires. SQL Server vous permet de lancer une requête en utilisant XQuery.
Vous pouvez également créer des colonnes XML conformes à un schéma à l'aide de XSD. Plus intéressant, SQL Server permet l'indexation du code XML afin que vos requêtes XPath puissent fonctionner correctement. Pour plus d'informations, voir «What's New for XML in SQL Server 2008» pour plus d'informations. (Bien que la plupart du support XML existe dans SQL Server 2005.)
Essayez sans aucun doute MS-SQL, Oracle et d'autres systèmes existants qui prennent en charge XQuery. Mais, si les requêtes XML dont vous avez besoin sont connues à l'avance, il peut être plus simple de stocker le XML dans un BLOB et d'ajouter un ou deux champs indexés avec une copie de l'élément XML concerné (s).
DB2 9.x avec le support PureXML est une possibilité.
Vous pouvez également commander MarkLogic Server ou eXist.
Si vous avez une quantité modérée de contenu (quelques Go), eXist fera l'affaire. Au-delà de cela, vous voudrez probablement regarder dans MarkLogic.
Vous pouvez télécharger et vérifier les deux, car eXist est gratuit et MarkLogic a une licence communautaire pour vous permettre de jouer avec.
Si vous êtes à la recherche d'un XML db natif, je vous suggère certainement Sedna. Brillant soutien aux développeurs ainsi. À partir de DB2 Viper, IBM DB2 a commencé à fournir un support natif pour le stockage de données XML ainsi que l'interrogation de données XML à partir de la base de données
DB2 est conçu pour optimiser l'accès aux données XML et relationnelles. Ces fonctionnalités sont disponibles pour C++, .NET, COBOL, Java et PHP.
XQuery est une nouvelle langue utilisée pour l'interrogation des données XML dans DB2
demo requête:
create table person(name varchar(20), data xml);
insert into person values('bane', XMLPARSE(DOCUMENT '
<person>
<first-name>Tom</first-name>
<last-name>Hardy</last-name>
<mobile>89898989</mobile>
</person>
' STRIP WHITESPACE))
some simple xQueries
SELECT *
FROM googolplex.person
WHERE xmlexists('$s[person/first-name="bane"]' PASSING person AS "s");
- 1. Quelle base de données gratuite avec support de réplication?
- 2. Meilleur système pour le support de plusieurs langues en PHP?
- 3. Filtrage XML et base de données à partir de Silverlight: Dynamic LINQ? Y a-t-il un meilleur moyen?
- 4. Quelle est la meilleure colonne pour stocker du XML dans une base de données Oracle?
- 5. Quel est le meilleur moyen de valider XML contre XML Schema, de l'analyser et de le stocker dans la base de données MySQL à l'aide de Perl?
- 6. Quelle est la qualité du support de mots Apache POI?
- 7. Meilleur moyen de rechercher base de données sqlite
- 8. NHibernate mappage des données XML à la base de données
- 9. Meilleur endroit pour commencer Qt Interface de base de données
- 10. Quelle est la meilleure façon d'interroger le nombre de lignes à partir des données de base?
- 11. Quelle base de données utiliser pour le stockage et la manipulation de gros volumes de données?
- 12. Est-ce que jQuery a intégré le support JSON?
- 13. chargement des données xml dans la base de données à l'aide de données
- 14. Quelle est la meilleure façon de dire à un framework quelle base de données utiliser?
- 15. Meilleur moyen de récupérer des données hiérarchiques à partir de la base de données
- 16. cross support Unicode support
- 17. En C#, quel est le meilleur moyen de déterminer si une base de données est opérationnelle?
- 18. Quel est le meilleur système de construction pour construire une base de données?
- 19. Le meilleur moyen de mettre en cache des pages dans une base de données?
- 20. PHP - Où est le meilleur endroit pour initier une classe de base de données?
- 21. Delphi 7, gestion XML avec support Unicode
- 22. Quel est le meilleur moyen de copier une base de données?
- 23. Meilleur moyen de câbler le menu piloté par base de données dans ASP.NET MVC
- 24. Comment modifier le propriétaire d'une base de données SQL Server?
- 25. Meilleur logiciel de gestion de mot de passe pour le groupe de développement - recherche de suggestions
- 26. Quel est le meilleur moyen d'ajouter des utilisateurs à plusieurs groupes dans une base de données?
- 27. Meilleur juge en ligne avec un bon support Java?
- 28. base de données MS Access au format XML, .NET
- 29. Existe-t-il un langage XML pour définir/créer des schémas de base de données SQL?
- 30. Meilleur format XML binaire pour JavaME
Merci, je viens de regarder dedans. –