許 波
(天津市軟件評測中心,天津 300384)
隨著XML 相關標準的推廣和應用,各行各業都以XML作為元語言來制定各自領域特定的子語言,用于存儲和共享該領域所涉及的數據。純XML 數據管理系統以及集成純XML 數據管理引擎的數據庫系統亦成為解決XML 數據管理問題的重要工具。
純XML 數據管理引擎近幾年才逐漸興起,其目標是實現對XML 數據的高效率訪問操作,并提供類似數據庫的存儲管理、事務管理、備份恢復等一整套管理機制。純XML引擎的關鍵技術主要包括XML 存儲方案、XML 查詢處理與查詢優化、XML 數據更新、XML 關鍵字檢索等。另一方面,如何在傳統的關系數據庫上融合XML 數據處理能力,使其做到真正的無縫連接,使用戶獲得更加自然的應用體驗,同時內部處理機制使用純XML 引擎技術,這些都是純XML 數據管理引擎的重要研究課題。
該項目針對已有解決方案存在的不足,提出無縫集成關系型數據的純XML 引擎設計方案并進行研制。其中心思想是借助有效的編碼方案在底層存儲上使用系統存儲表保存XML 節點數據,并在此基礎上實現對關系數據庫其他模塊的無縫集成與重用,這既不同于DB2 中完全獨立的存儲方案,也不同于“XML 使能”方式的表映射。該方案最大限度地利用了關系數據庫已有的底層存儲機制對XML 數據進行存儲管理,并且大幅度重用了關系數據庫已有的模塊,例如緩沖區管理、事務管理、鎖管理、備份恢復管理等模塊。在XML 存儲管理層之上,研究XML 文檔特有的索引結構,建立包括XML 結構摘要、XML 值索引、XML全文索引在內的一系列XML 專用索引結構。針對XML 設計查詢引擎,并同時支持SQL 查詢、XPath/XQuery 查詢、XML 數據更新、關鍵字檢索等功能。
該系統具有XML 數據存儲功能模塊、XML 數據查詢功能模塊、XML 關鍵字檢索功能模塊、XML 數據更新與驗證功能模塊4 個功能模塊。
2.1.1 XML數據存儲功能模塊
XML 數據存儲功能模塊提供存儲XML 數據的方案,數據存儲不僅需要將各種規模的文檔高效地存儲到系統中,還需要為數據查詢、更新以及檢索提供各種便利的條件,比如存儲更新驗證所需的XML 模式,實現XML 存儲方案與關系存儲后端的無縫集成,不破壞存儲管理器中關系的概念。重用底層文件管理、緩存管理、并發控制和備份恢復等機制。
該模塊有3 個具體功能。1)在數據庫中裝載XML 文檔。根據實際對XML 數據的需求,文檔規模不超過2 GB。2)在數據庫中裝載XML 模式。XML 模式可以為數據更新提供有效性驗證,因此,需要在存儲功能模塊中裝載XML模式的存儲功能。3)對數據庫中存儲的XML 文檔進行重構,以良構的形式顯示給用戶。
2.1.2 XML數據查詢功能模塊
XML 數據查詢模塊可以幫助用戶精確查詢XML 數據。查詢XML 數據使用擴展后的SQL 語言,實現最新的SQL:2006 國際標準中規定的SQL/XML 擴展。在關系數據庫查詢語言SQL 中添加XML 管理功能,利用SQL/XML 標準,將XQuery 1.0 標準融入SQL 語法中。利用SQL/XML 標準對XML 數據進行查詢,查詢結果仍然以XML 格式顯示給用戶。
查詢執行器為查詢優化器提供包括XML 結構連接、Twig 模式匹配、基于索引的路徑表達式求值、聚合函數計算、節點排序等在內的一系列算法。并通過構造XML 查詢模型并進行優化處理,實現XML 查詢優化。
2.1.3 XML關鍵字檢索功能模塊
該系統同時支持關系數據和XML 數據的關鍵字檢索功能,并在存儲層上建立統一的索引模型,向查詢執行引擎提供統一的訪問接口。關鍵字檢索功能模塊提供具有IR模型支持的XML 與關系數據上的關鍵字檢索功能。支持漢語、英語等語言的全文索引,并允許用戶擴充語言處理單元。隨著信息檢索技術的發展,尤其是搜索引擎和桌面搜索服務的日益普及,信息檢索的應用需求是越來越多的數據庫用戶所渴望的。用戶希望數據庫引擎能夠直接支持內容全文索引和信息檢索模型,自動計算查詢與文檔之間的相似程度,并據此返回排序的結果。
2.1.4 XML數據更新與驗證功能模塊
為了有效地支持XML數據上的聯機事務處理過程(OLTP),DBMS(數據庫管理系統)在進行XML 查詢處理操作的同時,還必須能夠執行各種XML 數據的更新操作。在傳統的關系數據庫中,數據更新始終離不開事務這一重要概念。通過事務管理器和鎖管理器組成的并發控制模塊與數據庫底層存儲進行通信,從而保證了多個事務同時更新數據時的邏輯正確性,同時,數據更新還會涉及日志記錄和數據恢復機制。
對該系統進行項目驗收測試,監測系統是否遵循GB/T 25000.51—2016《系統與軟件工程 系統與軟件質量要求和評價(SQuaRE) 第51 部分:就緒可用軟件產品(RUSP)的質量要求和測試細則》[1]以及GB/T 25000.10—2016《系統與軟件工程 系統與軟件質量要求和評價(SQuaRE) 第10 部分:系統與軟件質量模型》[2]的質量特性要求。
測試時,實際運行被測軟件完成全部測試用例,以驗證其功能性、可靠性、易用性等相關特性,并逐項驗證被測軟件在產品文檔、程序和數據有關要求方面的符合性。測試分為功能性、可靠性和易用性測試。
基本功能和可靠性測試部分主要是驗證基本功能的實現情況是否與測試文檔中描述的相符,以及程序對一些錯誤輸入的糾錯處理情況。
通過與客戶的多次溝通,明確測試范圍和測試方法,修改測試用例,準備測試腳本和數據。該軟件的運行環境為CentOS 5.5,具體操作過程是以參照測試用例,輸入相應語句,返回結果,判斷是否正確實現程序功能的方法進行測試。
考慮到該軟件全部功能均需要用戶以命令行的形式輸入相應命令完成功能操作,并無友好界面,所以需要客戶在測試前提交全部的程序語法格式以及參數設置規則,根據相關功能要求,編寫測試用例,確定輸入項內容,并明確輸出結果。測試用例中的可靠性用例設計角度為輸入不符合語法規則的內容時,觀察軟件的輸出結果和糾錯能力。
XML 存儲方案研究方面的技術指標支持“以數據為中心”和“以文檔為中心”2 種類型XML 文檔的存儲。其既能存儲合成數據集(例如XMark),也能存儲真實數據集(例如DBLP、Treebank 等)。能夠存儲的單個XML文檔大小超過2 GB。我們首先通過功能性測試用例判斷“軟件支持‘以數據為中心’,‘以文檔為中心’2 種類型XML 文檔的存儲”,再通過事先準備好的測試數據來驗證“既能存儲合成數據集(例如XMark),也能存儲真實數據集(例如SIGMOD),并且軟件能夠存儲大小為2.05 GB 的單個XML 文檔。”就是通過在測試前與客戶進行前期溝通,對準備好的測試數據進行功能測試檢驗來完成的。
XML 關鍵字檢索方面的技術指標是在XML 標準查詢語言的最新版本XQuery 1.0 和XPath 2.0 的基礎上,實現XML 關鍵字檢索功能擴展。擴展語法符合W3C 的《XQuery and XPath Full Text 1.0》標準,通過與W3C 的《XQuery and XPath Full Text 1.0》標準文檔進行對比來驗證擴展語法是否與其相符[3]。
在XML 數據查詢與更新方面的技術指標中有以下3 項重點測試內容。1)驗證軟件是否實現了最新的SQL:2006國際標準中規定的SQL/XML 擴展,是否在關系數據庫查詢語言SQL 中添加了XML 管理功能,軟件中的語法點覆蓋率是否達到90%以上。2)驗證軟件是否實現了XML 標準查詢語言的最新版本XQuery 1.0 和XPath 2.0,是否開發完成了2 種語言的語法解析器和語義生成器,軟件中的語法點覆蓋率是否達到90%以上。3)驗證軟件是否實現了XML標準更新語言的最新版本“XQuery Update Facility 1.0”,是否將XML 查詢語言和XML 更新語言融為一體。在此基礎上,是否實現了進一步添加支持增量驗證和自動糾錯的語法功能,軟件中的語法點覆蓋率是否達到90%以上。
這3 項因為涉及語法點覆蓋率,所以測試方法選用功能結合文檔共同驗證的形式,首先通過測試用例確定軟件實現的語法點都有哪些,再與文檔中描述的全部語法點進行對比,計算得出語法點覆蓋率。
通過對測試文檔進行檢查,發現部分文檔存在缺陷,需要開發方完善系統的使用手冊,以便用戶能夠更加準確地了解系統的使用方法。并且完善了DiReX:與關系數據庫系統無縫集成的純XML 引擎的部分研究文檔內容。測試使系統的功能性、可靠性、易用性以及文檔方面更加完善,達到了測試的目的。