• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    如何在數據庫保存大量XML文檔

    發布: 2008-4-18 11:05 | 作者: 網絡轉載 | 來源: 中程在線 | 查看: 78次 | 進入軟件測試論壇討論

    領測軟件測試網

    在關系數據庫中存儲大量XML文檔會導致很多問題。解決這些問題的首要步驟是深刻理解XML文檔中的參數。然后正確設計合適的解決方法。解決方法可以包括:一系列的結構表將XML文檔分割為小塊,或者直接捆綁到數據庫中的BLOB域。

        大量文檔的潛在問題

        當在關系數據庫中保存XML文檔,尤其是保存大量的XML文檔時,由于采用方法的原因,可能會產生很多問題。

        有什么可能使得一個XML文檔變得非常巨大呢?經過測試發現,一個XML文檔變得很大的跡象是文檔不能正常啟動。這可能是因為以下潛在問題造成的。

        首先是原始空間(raw space)的問題。出現的問題與XML文檔的使用頻率和存放空間相關,并不是因為文檔大于通常情況下的狀態,而是由于頻繁地使用它們造成的問題。使用者必須有一個適當大小的數據分區或數據庫來存放這些文檔。

        在關系數據庫中保存大量XML文檔的解決辦法

        其次,運行數據庫可能會產生錯誤。有時候XML文檔會分成多個部分,存放在代表XML文檔結構的不連續的表中。但通常情況下,XML文檔存放在BLOB域、文本域或者VARCHAR域中。

        除了在數據庫設計上的缺欠之外,使用者還有可能碰到與數據庫通信的界面方面的問題。例如,絕大多數SQL執行都限制數據為4096字節――這就意味著,當使用SQL向數據庫發送10KB文檔的時候,該文檔將會遇到問題。在數據庫存儲程序中也存在類似的限制。如果沒有意識到這些限制以及文檔是否超出范圍的,使用者在使用過程中難免會碰到這些問題。

        數據庫設計

        開發人員和數據庫管理人員必須清楚地理解XML文檔中將要產生的操作,這樣才有可能正確地設計數據庫。理解將如何使用數據庫也同樣是相當重要的。

        如果以整塊方式存儲整個文檔,這時有多種選擇。對于非連續數據,使用者應該設計出代表XML結構的表,并將數據分開存放到獨立的表中。將數據分開存放的優點是在于可索引性和可查詢性,以后進行查詢操作時不需要再對整個文檔進行操作。

        BLOB(Binary Large Objects,大型二進制對象)域被用于存儲大型的二進制格式的數據。例如,加密文件通常都用于BLOB域。BLOB域非常適合存放XML文件。不過,BLOB域不具備可索引性和可查詢性,而且它不能通過標準的SQL與BLOB交換大量的數據。

        兩種解決方法

        一個解決SQL限制的方法是將XML文檔分割成為4KB或更小的塊,這些小塊再存放在表中,然后使用ID域將這些小塊聯系起來。

        在存儲這些文檔時,使用者應該將它們分割成為小塊并存放在表中。當返回文檔時,使用者通過特定的ID選擇所有的塊,然后以合適的順序對它們進行集合。雖然比較麻煩,但這一方法對于多數據庫非常有用。

        使用BLOB域可以在不分割的情況下存放大量XML文檔,但是BLOB域的問題在于不能使用SQL存儲和獲得數據。近年來,數據庫廠商都有了自己的存儲和獲得大型對象的方法。

        為了在一個BLOB域中存儲大量的XML文檔,使用者必須使用捆綁(binding)。捆綁是將程序代碼中的數據與數據庫中的域相互聯系的過程。使用這一方法后,當改變數據庫的時候,會有可能影響數據庫的其他功能。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: 數據庫


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>