为什么人们使用纯XML数据库而不是普通的RDBM?

时间:2009-05-09 20:53:09

标签: xml database

您有多少人实际使用纯XML数据库而不是RDBM?前者似乎正在获得动力,但我不明白其优势。有人在乎解释吗?

5 个答案:

答案 0 :(得分:16)

建议XML的条件不是一个疯狂的想法

  • 如果您的数据看起来像一个文档集合。例如,小说具有结构,例如,章节,段落,句子,单词。您可能希望以编程方式访问结构,但是很难创建支持该结构的关系模式。

  • 需要令人难以置信的数量的字段和表格,几乎所有字段和表格都是可选的。例如,并非所有小说都有恶棍,但是反派属性或标签很容易添加到xml文档中。

  • 如果您的数据量相当少。

  • 数据具有很强的层次性。查询组织结构图的XML文档比在具有链接到自身的管理列的员工表上执行类似查询更容易。

示例 - 使用plain ole xml作为数据存储区的DasBlog。

表明关系模型更好的条件

  • 您的大多数数据非常适合表格和列,相当少的字段,大多数字段都是必需的。

  • 有很多数据。关系世界的性能优化比XML数据库世界更长。

你可以双管齐下

  • 大多数现代关系数据库都支持xml作为第一类数据类型。

答案 1 :(得分:5)

未提及的一个优点是,如果数据应该可供公众使用(通过RSS或其他),则更容易。如果数据的主要用途是针对某种公共API,或者如果以后要将其格式化为XML,那么为什么不呢?假设您想存储一些HTML模板。将存储它作为HTML不是更容易吗?您还可以节省RDBMS的开销并将数据处理为XML。

如果几乎​​所有的阅读和非常少的写作,XML也是可以的,尽管像JSON这样的简单格式可能会更有效,这取决于你正在做什么。

在任何其他情况下,特别是如果涉及大量数据操作,真正的数据库(无论是关系数据库,面向对象,面向文档,还是其他)都将更加高效,因为它们是为此而构建的。 XML不适用于100,000,000行数据。

我认为一些数据库使用XML的原因是因为它是一种广泛使用的格式,特别是对于像RSS源这样的东西。就像我之前说的那样,如果你的数据最终需要是XML,那么为什么不将它存储为XML并让你的生活更轻松呢?

答案 2 :(得分:2)

作为一个大量使用XML数据库的开源产品的人,我发现XML数据源非常宝贵,因为它们是程序中使用的纯数据结构的表示。

XML允许我在代码中对复杂结构进行建模,然后将其直接序列化为XML,以便在其他地方或以后读取,或者在我的情况下,我在XML中导出复杂结构,然后在其中操作和查询记忆。还有其他选项,例如ODBMSORM,它们提供了许多相同的优势(以及更多优势),但却带来了知识或性能开销。

答案 3 :(得分:1)

看看this article我猜它可能对你有帮助。

答案 4 :(得分:1)

我没有看到在没有上下文的情况下在关系数据库上使用XML的真正好处。

关系数据库通常很笨拙,即使您可以轻松地查询它们的任何要求。如果您不需要对数据进行查询,那么RDBM就没有任何实际用途。你看到有多少张照片被包装到关系数据库中?在jpeg或png中存储照片不是更方便吗?另一方面,你喜欢用XML存储图像像素吗?