有了"数据库"为什么还要用"xml" ?

来源:互联网 发布:甩棍淘宝挑选 编辑:程序博客网 时间:2024/04/29 19:39

有了数据库为什么还要用XML?XML与数据库各自的特点、他们的应用与区别我想你从Google上可以查到一大堆,那么在这里
我只说说自己的体会:
1:尽管XML和数据库都可以定义数据模型并存储数据,然而,XML更加通用、更加标准化,前些年我们公司的软件要与其他公司软件做接口传输数据时,采用了最简单的接口数据库方式,开发最容易,带来了些问题:
  一是这个接口数据库是某种数据库产品(DB2/MSSQL/MYSQL),接口代码在更换了数据库产品(我们公司的软件要经常面对不同厂商的应用系统)后需要修改或重写;
  二是如果接口需求变动的话,可能要改动数据库结构,导致还要改接口代码,这是致命的。
  三是接口的稳定取决于这个数据库管理系统本身要稳定,你得考虑维护管理(自动化日志清理等)问题;
  四是为了穿过防火墙(电信、网通公司可能会关闭某些端口)及安全性考虑,你不能直接通过TCP/IP去访问远程接口机器上的数据库,需要将数据再编码发布(比如之前的Remoting或现在的WCF)
  那么现在我们改用XML来做程序接口,我们给其他公司的是一些XML Schema、Web Serivce的URI、业务流程说明,我们不再需要一个接口电脑、接口数据库等,现在上述的四个问题不再困扰我们。

2:我们之前的业务数据库大概有二百多张表,一年左右会因需求变动对表结构做些调整,当然也影响到了应用程序代码的调整,现在我们的业务数据库大概有不到五十张表,因为一些容易发生需求变动的表和一些半结构化、非结构化的数据被存储为数据库表内的XML字段,需求变动仅影响我们去修改一下Schema,不用去动数据库结构,这对已经部署到用户那边的系统来说是非常重要的改进。不仅如此,表数量的减少对开发人员、业务人员、数据库管理人员非常有益。

3:说了两点XML的好处,那么我再说说它作为数据存储方面目前无法替代 数据库的地方:
  XML缺少数据库具备的特性:高效的存储(即使是数据库内XML字段还是没有传统字段的速度快)、索引和数据修改机制(DB2等数据库产品对XML内的元素和属性可以加索引,内建在数据库中的XML字段享受了数据库带来的一些好处);严格的数据安全访问控制;完整的事务和数据一致性控制;多用户访问机制;触发器、完善的并发控制等因此,用户量大、数据集成度高以及性能要求高的数据环境中还是需要数据库来完成任务,IBM的DB2工程师也在讨论时建议我们统计类数据还是用传统字段为好。

  总之,现在XML对数据库是一个很好的补充,大的数据库厂商都在数据库产品里内置了对XML的支持,这样将XML与数据库配合使用,将让他们相互配合利用各自发挥出威力,也提高也我们信息产品的灵活性。