在哪些情况下将数据存储为 XML 比 RDBMS 更可取,为什么?
你能打个比方吗?
最佳答案
总结
如果您没有太多数据并且可以完全控制它(没有依赖第 3 方),那么 XML 是一个不错的选择。否则,RDBMS - 更多原因见下文。
类比
如果 RDBMS 是一个文件柜(按某些索引组织的相同大小的记录的抽屉),那么 XML 是一个背包(不必要组织的随机大小的记录袋,可能会在角落突出)。
XML 的原因
1)灵 active
如果您的模式非常松散或随时间变化,则 XML 更可取,因为一旦其中包含数据,版本控制 RDMS 就很困难。根据我的经验,XML 序列化、XSLT 和 XPath 查询对 XML 模式的变化具有弹性,并且可以继续为新老客户工作。例如,您可以将一些新元素添加到文档中,而读取该文档的旧 EXE 将忽略这些元素。执行“SELECT * FROM 表”的 RDBMS 查询(您刚刚添加的列)将产生未定义的结果。
2)部署
简单 - 只需发送您的 EXE。
3) 可调试性
易于“调试”数据——XML 已经是人类可读的;如果不是,XSLT 可能会使其更具可读性。
4)互操作性
您可以将 XML 交给其他系统而不关心它们使用什么平台/技术。
RDBMS 的原因
1)性能
如果您有大量数据,那么 RDBMS 的索引功能将为您提供最佳性能。如果您基本上只是想查找 ID=123 的记录,那么读取大型 XML(> 1000 条记录)的成本很高,而 RDBMS 可以快速完成。存储过程会让这变得更好。
2)安全
您可以通过权限保护部分 RDBMS - 例如向各种用户授予/拒绝 SELECT 访问权限。
3) 商业工具
有许多 RDBMS 工具可用于 OLAP 和报告等。
关于xml - 将数据存储为 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1339747/