MDA之路

MDA,UML,XML,Eclipse及Java相关的Blog
posts - 53, comments - 494, trackbacks - 0, articles - 2
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

XML和数据库之比较

Posted on 2005-01-25 22:20 wxb_nudt 阅读(2149) 评论(1)  编辑  收藏 所属分类: 技术杂谈

灵感来自于中国XML论坛,看到某篇文章的随想。

XML与数据库相比,处理能力当然不能比。但是一个小型的Web应用,是不是非要大动干戈的动用数据库呢?一旦用上了数据库,就需要建表、配置、写JDBC代码。对于小型的数据,例如不大于10M的数据来说,使用XML作为存储机制不见得就比数据库差。而且熟悉XML的人可以很快用DOM/SAX存取XML中的数据,这些数据还可以用DTD/Schema来维护其有效性。非数据库的XML Web应用,应该可以在原型系统中发挥很好的作用。
这里将XML和数据库做一下比较:
1.事务处理:XML没有,或者需要手动编码;数据库有事务处理能力;
2.主键:XML可以用Schema设定,数据库可以直接设定,相当;
3.数据有效性:XML可以用Schema设定数据的有效性,还包括数据结构的有效性;数据库可以对每个数据进行有效性检测,但是数据库只能维持表格这一种结构,能力好像还不及XML;
4.效率:小型数据,XML有优势,因为只是文件读写,数据量少几乎只剩下打开文件的时间;数据库要建立连接再读数据,在处理小型数据时反而效率低。不过数据量越大数据库越有优势,对于海量数据,用XML简直是开玩笑;
5.开发难易度:单纯以存取数据而言,XML程序是非常容易写的,而数据库需要的背景知识和代码就要多很多,不过也可以用SQL语言一招吃遍天。但是数据库的配置等等也是比较复杂的。总的来说XML要容易;
6.平台无关性:这个XML就占了大便宜了,XML是完全彻底的平台无关,比JAVA靠虚拟机来达到平台无关不知道高尚了多少倍。而数据库哪怕是经过ODBC,JDBC一串的转换,恐怕还是和平台有很大的关系,一旦需要移植,不可避免的伤筋动骨。

做个小总结,在数据量不超过一个“临界值”的时候,还是用XML作为数据存储方式要合算,但是一旦涉及海量数据,数据库是唯一的选择了。
这个临界值是多少?我认为一是要看程序对实时性的要求强不强,二是要看具体的XML程序本身,它的Schema,它使用的解析器等等。


评论

# re: XML和数据库之比较  回复  更多评论   

2007-08-23 15:33 by 天天看海
好文章,支持一下,如果能想写SQL语句那样读取XML文件内容,就更方便了,似乎有这样的技术了吧

只有注册用户登录后才能发表评论。


网站导航: