MDA之路

          MDA,UML,XML,Eclipse及Java相關(guān)的Blog
          posts - 53, comments - 494, trackbacks - 0, articles - 2
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          XML和數(shù)據(jù)庫之比較

          Posted on 2005-01-25 22:20 wxb_nudt 閱讀(2159) 評(píng)論(1)  編輯  收藏 所屬分類: 技術(shù)雜談

          靈感來自于中國(guó)XML論壇,看到某篇文章的隨想。

          XML與數(shù)據(jù)庫相比,處理能力當(dāng)然不能比。但是一個(gè)小型的Web應(yīng)用,是不是非要大動(dòng)干戈的動(dòng)用數(shù)據(jù)庫呢?一旦用上了數(shù)據(jù)庫,就需要建表、配置、寫JDBC代碼。對(duì)于小型的數(shù)據(jù),例如不大于10M的數(shù)據(jù)來說,使用XML作為存儲(chǔ)機(jī)制不見得就比數(shù)據(jù)庫差。而且熟悉XML的人可以很快用DOM/SAX存取XML中的數(shù)據(jù),這些數(shù)據(jù)還可以用DTD/Schema來維護(hù)其有效性。非數(shù)據(jù)庫的XML Web應(yīng)用,應(yīng)該可以在原型系統(tǒng)中發(fā)揮很好的作用。
          這里將XML和數(shù)據(jù)庫做一下比較:
          1.事務(wù)處理:XML沒有,或者需要手動(dòng)編碼;數(shù)據(jù)庫有事務(wù)處理能力;
          2.主鍵:XML可以用Schema設(shè)定,數(shù)據(jù)庫可以直接設(shè)定,相當(dāng);
          3.數(shù)據(jù)有效性:XML可以用Schema設(shè)定數(shù)據(jù)的有效性,還包括數(shù)據(jù)結(jié)構(gòu)的有效性;數(shù)據(jù)庫可以對(duì)每個(gè)數(shù)據(jù)進(jìn)行有效性檢測(cè),但是數(shù)據(jù)庫只能維持表格這一種結(jié)構(gòu),能力好像還不及XML;
          4.效率:小型數(shù)據(jù),XML有優(yōu)勢(shì),因?yàn)橹皇俏募x寫,數(shù)據(jù)量少幾乎只剩下打開文件的時(shí)間;數(shù)據(jù)庫要建立連接再讀數(shù)據(jù),在處理小型數(shù)據(jù)時(shí)反而效率低。不過數(shù)據(jù)量越大數(shù)據(jù)庫越有優(yōu)勢(shì),對(duì)于海量數(shù)據(jù),用XML簡(jiǎn)直是開玩笑;
          5.開發(fā)難易度:?jiǎn)渭円源嫒?shù)據(jù)而言,XML程序是非常容易寫的,而數(shù)據(jù)庫需要的背景知識(shí)和代碼就要多很多,不過也可以用SQL語言一招吃遍天。但是數(shù)據(jù)庫的配置等等也是比較復(fù)雜的。總的來說XML要容易;
          6.平臺(tái)無關(guān)性:這個(gè)XML就占了大便宜了,XML是完全徹底的平臺(tái)無關(guān),比JAVA靠虛擬機(jī)來達(dá)到平臺(tái)無關(guān)不知道高尚了多少倍。而數(shù)據(jù)庫哪怕是經(jīng)過ODBC,JDBC一串的轉(zhuǎn)換,恐怕還是和平臺(tái)有很大的關(guān)系,一旦需要移植,不可避免的傷筋動(dòng)骨。

          做個(gè)小總結(jié),在數(shù)據(jù)量不超過一個(gè)“臨界值”的時(shí)候,還是用XML作為數(shù)據(jù)存儲(chǔ)方式要合算,但是一旦涉及海量數(shù)據(jù),數(shù)據(jù)庫是唯一的選擇了。
          這個(gè)臨界值是多少?我認(rèn)為一是要看程序?qū)?shí)時(shí)性的要求強(qiáng)不強(qiáng),二是要看具體的XML程序本身,它的Schema,它使用的解析器等等。


          評(píng)論

          # re: XML和數(shù)據(jù)庫之比較  回復(fù)  更多評(píng)論   

          2007-08-23 15:33 by 天天看海
          好文章,支持一下,如果能想寫SQL語句那樣讀取XML文件內(nèi)容,就更方便了,似乎有這樣的技術(shù)了吧
          主站蜘蛛池模板: 泰宁县| 宜宾市| 临夏县| 新建县| 团风县| 山阴县| 浠水县| 凤山市| 桐庐县| 连平县| 宾阳县| 华阴市| 内江市| 宁南县| 通山县| 荥阳市| 德昌县| 泌阳县| 松阳县| 甘孜| 石林| 拉萨市| 阳山县| 伊金霍洛旗| 金山区| 张北县| 洞口县| 额尔古纳市| 蕉岭县| 永定县| 金堂县| 西乌| 崇义县| 四川省| 苗栗县| 射阳县| 获嘉县| 津市市| 江门市| 潮州市| 莱芜市|