sql - 什么时候使用 XML 而不是 SQL?

标签 sql xml

<分区>

几年来,我一直致力于数据库驱动的 Web 应用程序,最近接手了一个涉及支持 XML 的 CMS 的项目。这让我开始思考 XML/XSLT 的一般用法,以及在什么情况下它会比我一直使用的方法更有用,这种方法将我的所有数据存储在 (My)SQL 数据库中,然后使用PHP/Python/等。根据需要在网络上使用它。

这里显然有些东西我没有“得到”。任何人都可以给我一些应用程序示例,在这些应用程序中,将数据存储在 XML 文件而不是数据库中会更好吗?

最佳答案

引用This Book (有效的 XML:改进 XML 的 50 种具体方法):

“XML is not a database. It was never meant to be a database. It is never going to be a database. Relational databases are proven technology with more than 20 years of implementation experience. They are solid, stable, useful products. They are not going away. XML is a very useful technology for moving data between different databases or between databases and other programs. However, it is not itself a database. Don't use it like one.“

我认为这总结起来有点直白。 XML 是一种数据交换格式。可以拥有可以使用 XPath 表达式查询 DOM 的 XML 解析库,但这与 DBMS 不同。您可以使用 DOM/XPath 接口(interface)构建 DBMS,但要获得 ACID 属性或扩展到大型数据集,您需要实现 DBMS 引擎和具有索引、日志记录和 DBMS 其他工件的数据格式——这(根据定义)使得它不是 XML。

关于sql - 什么时候使用 XML 而不是 SQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/201568/

相关文章:

mysql - 使用子查询和连接改进大型查询

mysql - 遍历 SQL 表,对满足条件的每一行执行查询

php - 使用php替换xml中的特定节点值

java - 使用 xstream 将键值 xml 对映射到 java 映射

c# - 如何反序列化 SOAP 响应?

sql - 销售人员每个客户的最高价格汇总

MySQL 按同级表中的匹配项数量排序

sql - 如何在选择查询中使用变量表名(Advantage Data Architect)

java - jackson 坚持绘制未知属性(property)的 map

javascript - 从字符串中清除 CDATA