代码之家  ›  专栏  ›  技术社区  ›  John Channing

哪个数据库有最好的XML支持?

  •  5
  • John Channing  · 技术社区  · 17 年前

    我有一个每天生成大量XML文档(大约100万个)的系统,我希望能够存储和索引这些文档,这样我就可以搜索所有字段设置为给定值的文档。

    我知道基本上有两种类型的XML数据库,一种是在传统关系数据库之上提供XML支持的数据库,另一种是“原生”XML数据库。鉴于我愿意使用这两种方法,你有什么建议?

    8 回复  |  直到 17 年前
        1
  •  6
  •   MichaelGG    17 年前

    Microsoft SQL Server支持XML列。这不仅仅是BLOB/TEXT支持。

    您可以以非结构化的方式使用XML列,SQL Server只需确保它们是正确的XML即可。这允许在SQL Server中存储任意XML文档,但仍然可以确保您处理的是XML,而不仅仅是任意字节/字符。SQL Server允许您使用XQuery在此基础上进行查询。

    还可以使用XSD创建符合模式的XML列。更有趣的是,SQL Server允许对XML进行索引,以便XPath查询能够很好地执行。

    看“ What's New for XML in SQL Server 2008 “获取更多信息。(尽管大多数XML支持存在于SQL Server 2005中。)

        2
  •  4
  •       17 年前

    你也可以结账 MarkLogic Server eXist .

    如果你有适量的内容(几GB),那么eXist就可以了。除此之外,你可能还需要研究MarkLogic。

    你可以下载并查看它们,因为eXist是免费的,MarkLogic有一个社区许可证供你使用。

        3
  •  4
  •   JJK    15 年前

    如果您正在寻找原生XML数据库,我绝对建议您使用Sedna。优秀的开发者支持。

        4
  •  3
  •   gizmo    17 年前

    我不能给你一个好的候选人,但如果你想避免选择一个不好的,那就不要选择Oracle XmlDB。车又慢又多。Oracle对其DBMS进行的最糟糕的扩展之一。

        5
  •  3
  •   Jonathan Leffler    17 年前

    DB29。支持PureXML的x是可能的。

        6
  •  1
  •   Paul de Vrieze    17 年前

    据研究人员说 monetDB 非常能够处理xml。基本上,当您想要对内容执行xquery时,您需要能够正确执行该操作的东西。XML文档的结构非常灵活,长度不确定,它与rdbms的结构有根本的不同。这意味着需要智能地存储和索引内容。对于传统的dbms系统,将xml存储为BLOB(二进制对象)是一种简单的快捷方式。但BLOB通常不会被索引,并且主要存在于主数据存储之外。为了正确解析xml,系统必须在存储时进入xml。MonetDB显然就是这么做的。

        7
  •  1
  •   thewhitetulip    13 年前

    从DB2Viper开始,IBMDB2开始为XML数据存储和查询XML数据提供本机支持。

    DB2被设计为优化对XML和关系数据的访问,这些能力对C++是可用的。NET、COBOL、Java和PHP。

    xQuery是一种用于在DB2中查询xml数据的新语言

    演示查询:

    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");
    
        8
  •  0
  •   Javier    17 年前

    一定要试试MS-SQL、Oracle和其他支持XQuery的现有系统。

    但是,如果预先知道需要的基于XML的查询,只需将XML存储在一个BLOB中,并添加一个或两个带有相关XML元素副本的索引字段,可能会更容易。