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,它使用的解析器等等。