有效的非完全結構XML查詢
提出了一種易於擴展的基於模式和實體的有意義判斷模型———PE模型;基於PE模型,設計了具體的等價模式和等價查詢項判斷方法,提出了PE索引和I2P倒排索引,設計了一種有效的NFS查詢算法來處理有意義的判斷以及 路徑查詢和關鍵字查詢。實驗表明,方法的查詢質量和效率要優於XSEarch系統和Timber系統。
有意義的查詢結果
給定查詢Q和查詢候選結果R,顯然最有意義的查詢結果是能夠準確反套用戶查詢意圖的結果。但是用戶的查詢意圖是千變萬化的,而所提供的查詢表達式卻可能相同,在這種情況下,準確反應所有用戶的查詢意圖幾乎是不可能的。
問題的根本在於“是否存在一種可實現的方法能夠從系統的角度來準確猜測用戶的意圖”,答案是否定的。對於這個問題,通常的辦法是從系統角度出發,而不是從用戶角度出發,定義一種用戶普遍接受的判斷方法,如信息檢索中廣為採用的關鍵字匹配方法。在判斷有意義的查詢結果時也遵循了這種思想,提出一種基於模式和實體的判斷模型。
有效的NFS查詢
基於判斷模型,著重解決如何有效地執行NFS查詢。首先討論了適用於方法的XML編碼,提出一種具體的等價模式和等價查詢項的判斷方法。然後提出了一種PE索引和增強的倒排索引(Inverted Index w ith Path,I2P),並給出一種具體的判斷方法。最後,利用提出的索引結構和判斷方法,給出一種有效的查詢算法。
等價模式和等價查詢項
對有意義判斷模型而言,關鍵問題是如何定義具體的等價模式和等價查詢項判 斷方法。由於XM L文檔的不完整性,表達方式和組織方式的差異,往往導致同樣類型的實體而模式不同。實際上,在同一個XM L文檔中,組織方式的差異一般不存在,主要考慮了前兩個因素,結合標籤內容和模式結構相似性確定等價模式。
由於等價查詢項往往涉及到用戶的查詢意圖,很難判斷哪些查詢項為等價的,一般需要由用戶直接指定。採用了另一種方法,即利用節點的模式等價性來區分是否為查詢項等價。
語義完整性在查詢最佳化中的套用
分析了語義完整性規則在查詢最佳化中的作用,提出了利用完整性規則改寫查詢,以便為傳統查詢最佳化器創造最佳化機會的思怨。給出了查詢轉換的實現方法,包括約束目標的確定、完整性規則的選擇、約束的推理、約束的合併及等價查詢的生成等。初步試驗表明,採用語義最佳化的方法是非常有效的。
引人 索引
引入索引,即在搜尋條件中增加新的具有可用索引特別是獨一性索引、聚集索引的謂詞。
例1:設有查詢QI:SELECT POSITION FROM BOOKS WHERE BOOKNAME=′ 資料庫系統基礎′;表示查找“資料庫系統基礎” 這本書的擺放位置。
利用規則Rl,可以得到等價的查詢:
QI:SELECT POSITION FROM BOOKS WHERE CATALOG一′TP′ ANDBOOKNAME=′資料庫系統基礎′;
設在屬性CATALOG上建有索引,而在BOOKNAME上未建立索引。利用索引執行查詢時,Ql′和QI的執行效率的差別是不言而喻的。
語義最佳化的設計
在設計一個最佳化程式時,除了考慮最佳化效率外,還要考慮編寫最佳化程式本身的難易程度,以及運行查詢最佳化程式所花費的時間。在設計語義最佳化程式時,採用了簡單、高效、實用和可靠等原則。
一般而言,與某個查詢在語義上等價的查詢有多個。語義最佳化的目標並不是找出所有可能的等價查詢,而是尋求具有更優執行路徑的一個或多個查詢。何種查詢具有較高的執行效率,很大程度上依 賴於關係的存儲結構,依賴於查詢最佳化器的實現方法。若最佳化器是按照某些確定性的原則確定查詢執行路徑,則語義最佳化的目標是尋找出一種滿足某種原則的查詢;若查詢最佳化器是在眾多的可選擇的執行策略中,通過估計各種方案的費用,選擇出最適於當前數據和結構的策略,則可以推導出幾個等價的查詢,供查詢最佳化器選擇。
在自行研製設計的DM一DBMS中,採用了按確定原則確定執行路徑的最佳化方法,這些原則包括:
(l) 使用建立索引的列比使用未建立索引的列的查詢速度快;
(2) 使用獨一索引、聚集索引比使用其它非獨一索引的查詢速度快;
(3 )在表連線查詢中,若參與連線的表無索引可用,則先執行選擇,再使用排序歸併的方法實現連線;
(4) 在表的連線查詢中,如果有一個或者多個屬性上具有可用索引,則根據索引的類型和約束的強弱進行排序,以確定驅動表和被驅動表。對驅動表先執行選擇,再與被驅動表連線。
形成等價的語義查詢
對於一個給定的設查詢,設產生了N個屬性約束,則可以產生2的N次方等價的查詢。在綜合形成等價的語義查詢時,應該考慮從中選擇出具有強列約束的索引級別高的約束,組成新的查詢。