您有多少人实际使用纯XML数据库而不是RDBM?前者似乎正在获得动力,但我不明白其优势。有人在乎解释吗?
答案 0 :(得分:16)
建议XML的条件不是一个疯狂的想法
如果您的数据看起来像一个文档集合。例如,小说具有结构,例如,章节,段落,句子,单词。您可能希望以编程方式访问结构,但是很难创建支持该结构的关系模式。
需要令人难以置信的数量的字段和表格,几乎所有字段和表格都是可选的。例如,并非所有小说都有恶棍,但是反派属性或标签很容易添加到xml文档中。
如果您的数据量相当少。
数据具有很强的层次性。查询组织结构图的XML文档比在具有链接到自身的管理列的员工表上执行类似查询更容易。
示例 - 使用plain ole xml作为数据存储区的DasBlog。
表明关系模型更好的条件
您的大多数数据非常适合表格和列,相当少的字段,大多数字段都是必需的。
有很多数据。关系世界的性能优化比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中导出复杂结构,然后在其中操作和查询记忆。还有其他选项,例如ODBMS和ORM,它们提供了许多相同的优势(以及更多优势),但却带来了知识或性能开销。
答案 3 :(得分:1)
看看this article我猜它可能对你有帮助。
答案 4 :(得分:1)
我没有看到在没有上下文的情况下在关系数据库上使用XML的真正好处。
关系数据库通常很笨拙,即使您可以轻松地查询它们的任何要求。如果您不需要对数据进行查询,那么RDBM就没有任何实际用途。你看到有多少张照片被包装到关系数据库中?在jpeg或png中存储照片不是更方便吗?另一方面,你喜欢用XML存储图像像素吗?