有了"数据库"为什么还要用"xml" ?
2015-11-17 21:15
381 查看
有了数据库为什么还要用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与数据库配合使用,将让他们相互配合利用各自发挥出威力,也提高也我们信息产品的灵活性。
来自:http://blog.csdn.net/e_forrest/article/details/6098813
我只说说自己的体会:
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与数据库配合使用,将让他们相互配合利用各自发挥出威力,也提高也我们信息产品的灵活性。
来自:http://blog.csdn.net/e_forrest/article/details/6098813
相关文章推荐
- 第五篇 Getting Started with ORACLE EBS(开始学习ORACLE EBS)
- ios数据库之fmdb 使用
- Mysql int(11) 和 int(1)
- "ORACLE数据字典视图的种类分别为:USER,ALL 和 DBA.
- Kettle 连接失败 Oracle 数据库报 ora-12505 的解决方法
- mysql的一些基本知识
- mysql外键约束
- SQL中的锁:NOLOCK、HOLDLOCK、UPDLOCK、TABLOCK、TABLOCKX
- SQL秘笈 : NOLOCK、ROWLOCK、UPDLOCK的使用!
- SQL server 语言基础
- 写给MongoDB开发者的50条建议
- SQL基础知识1
- SQL竞锁机制 NOLOCK和ROWLOCK的秘密
- Sql Server--通过生成脚本文件实现低版本“向上兼容”
- MySQL主从复制原理图
- 第三篇 从EXCEL电子表格到数据库
- Oracle EBS 客制键弹性域编译失败
- mysql多次join同一张表的处理
- Azure SQL 数据库与新的数据库吞吐量单位DTU
- 报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost