我想知道是否有最佳实践来决定何时应该使用XML建模系统以及何时应该使用关系数据库进行建模(我知道您可以将XML存储在数据库中,但建模系统之间存在巨大差异使用规范化的db表并使用XML-Schema对系统建模.为了具体起见,假设你在健身房锻炼身体."卧推"实际上是一系列的练习,而不是单一的练习.你可以躺在长凳上或球上.你可以强迫你退缩或允许作弊.您可以使用哑铃,杠铃,电缆或通用机器.如果您正在使用哑铃,您可以交替使用手臂或同时推动.您可以倾斜,倾斜或平坦的表面.我的想法是,由于复杂性(以及我尚未想到的可能的复杂性),最好使用xml建模.这是一个很好的评估吗?还应考虑其他哪些重要因素?
附录:当我说XML时,我脑子里想到的一种技术是RDF(虽然我不想将讨论局限于此),与在数据库中实现设计相比,这似乎有利有弊.表.我不确定一些用户对XML的一般反感是否会一直扩展到RDF(可能如此),但这可能会有助于集中谈话.
小智 12
在20世纪60年代,数据管理系统被发明/构思/阐述,这些系统都基于数据可以按层次组织的想法.IMS就是其中之一.这些系统的谬误/缺陷/缺点立即变得清晰,任何人都在密集使用它们(例如,它们往往导致'查询偏见':在分层系统中,通常很容易查询给定客户存在哪些合同,以及同时几乎不可能查询哪个客户参与给定的合同).
所有这些缺陷最终导致了关系模型的发明.
因此,如果您想知道XML是否适合作为任何数据管理问题的解决方案,请问自己:"XML本质上是否是分层的?".
XML在市场上的成功只能证明观察的正确性是"那些不了解历史的人注定要重复它".
小智 4
您的练习示例可以通过多种方式建模。有关 xml 分层模型何时显示优势这一问题的一些经验和智慧,请阅读 Ron Burrett:
http://www.rpbourret.com/xml/XMLAndDatabases.htm
在某些情况下,当要存储的内容是半结构化时,本机 xml DB 会显示出 RDB 的巨大优势。@Smout,es 将客户-合同-客户数据存储在 RDB 中更容易、更安全——但是当您还必须存储合同时会发生什么?
RDF 与关系模型和 xml 模型形成对比。RDF 是为数据的“开放世界”表示而设计的,在这种表示中您永远无法确定您在必须计算时了解所有内容。RDF 可以用 xml 表示这一事实很方便,但也是偶然的。它还有其他表达方式。
还可以阅读 EMC XML Technologies 和 MarkLogic。