專利名稱:用于驗證數據庫系統正確性的方法和裝置的制作方法
技術領域:
本發明涉及數據庫技術領域。更具體地,本發明涉及驗證關系數據庫系統的正確性的技術。
背景技術:
在信息技術(IT)領域中,數據庫尤其是關系型數據庫得到了越來越廣泛的應用。 數據庫用于存儲海量數據,人們通常利用結構化查詢語句(SQL語句)來對關系型數據庫中的數據進行查詢、插入、刪除的操作。以SQL查詢語句(SELECT語句)為例,該語句指示了要查詢什么數據,但是并未告知關系型數據庫管理系統(RDBMS)如何查找這樣的數據,可能存在多種可能的途徑來查找該數據。因此RDBMS需要對SQL語句進行解析,依據各種策略生成最合理的獲取該數據的方式——訪問路徑(Access Path)。訪問路徑即為關于如何獲取想要的數據的具體步驟。RDBMS按照訪問路徑指示的具體步驟來執行SQL語句,從而最終獲得要查找的數據。然而,隨著RDBMS的復雜程度日益增加,經常會出現對SQL語句輸出錯誤結果。導致輸出錯誤結果的原因可能有很多,但主要的原因都可以歸結為RDBMS自身存在缺陷或邏輯錯誤。因此,如何測試并驗證RDBMS的正確性就成了數據庫領域的一個重要問題。目前,存在著一些用于驗證數據庫系統的正確性的技術方案,例如白盒測試法和黑盒測試法。所謂“白盒測試法”,指的是直接根據數據庫的代碼邏輯來設計測試用例。而 “黑盒測試法”是指不深入代碼,而是根據產品功能描述,利用外部接口來寫測試用例,通常是編寫各種各樣的SQL語句。由于數據庫系統本身非常復雜,所以無論是白盒測試還是黑盒測試均很難覆蓋各種情況,無法做到有的放矢地驗證數據庫系統的正確性。而且編寫測試用例是一項比較費時費力的工作,需要測試人員對數據庫系統有著很深入的了解,嚴重影響了測試效率。
發明內容
考慮到上述存在的問題,本發明的目的之一在于提供一種能夠通過接收到的SQL 語句(指令)來自動驗證數據庫系統的正確性的方法和裝置。本發明的又一目的在于提供一種通過擴展SQL語句的訪問路徑(Access path)來有的放矢地驗證數據庫系統的正確性的方法和裝置。根據本發明的一個方面,提供了一種用于驗證數據庫正確性的方法,包括接收結構化查詢SQL指令;擴展所接收到的SQL指令的訪問路徑;利用所述擴展的訪問路徑執行所述SQL指令;以及根據執行所述SQL指令的結果驗證數據庫系統的正確性。根據本發明的一個實施例,其中擴展所接收到的SQL指令的訪問路徑包括獲取組成所述SQL指令的訪問路徑的元素;擴展所述元素;以及組合所述元素的可能取值以生成擴展的訪問路徑。根據本發明的另一方面,提供了一種用于驗證數據庫系統的正確性的裝置,包括接收裝置,用于接收結構化查詢SQL指令;訪問路徑擴展裝置,用于擴展所接收到的SQL指令的訪問路徑;執行裝置,用于利用所述擴展的訪問路徑執行所述SQL指令;以及驗證裝置,用于根據執行所述SQL指令的結果驗證數據庫系統的正確性。通過本發明的方法和系統,可以實現通過自動擴展SQL語句的訪問路徑來驗證數據庫系統的正確性的目的,還可以實現基于由各種數據操作方式(訪問路徑元素的不同取值)引發數據庫自身存在的錯誤或缺陷的比重,科學高效、有的放矢地驗證數據庫系統的正確性的目的。
通過對結合附圖所示出的實施方式進行詳細說明,本發明的上述以及其他特征將更加明顯,本發明附圖中相同的標號表示相同或相似的部件。在附圖中,圖1示出了根據本發明一個實施例的用于驗證數據庫系統的正確性的方法的流程圖;圖2示出了根據本發明又一實施例的用于驗證數據庫系統的正確性的方法的流程圖;圖3示出了根據本發明一個實施例的記錄歷史錯誤信息的示意性餅圖;圖4示出了根據本發明一個實施例的利用蒙特卡洛算法選擇訪問路徑的示意圖;圖5示出了根據本發明一個實施例的用于的驗證數據庫系統的正確性的裝置的框圖;圖6示出了根據本發明又一實施例的用于驗證數據庫系統的正確性的裝置的框圖。
具體實施例方式在下文中,將參考附圖通過實施方式對本發明提供的用于確定要被物化的節點的方法和系統進行詳細地描述。圖1示出了根據本發明一個實施例的用于驗證數據庫系統的正確性的方法的流程圖。圖1所示的方法從步驟101開始。在步驟101中,接收結構化查詢SQL指令。SQL指令又稱SQL語句,是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統。SQL指令包括多種類型,例如INSERT (插入),UPDATE (修改),DELETE (刪除)以及SELECT (查詢)等。數據庫系統通常在接收到一條SQL指令后,會對SQL指令進行解析,然后分析得到最優的訪問路徑以執行該SQL指令,并輸出執行SQL指令的結果。本領域技術人員應當了解,訪問路徑(Access Path)是指數據庫系統對SQL指令的具體執行方法,一條訪問路徑由多個元素組成,對于每個元素而言又有多種可能的取值。例如,訪問路徑的元素包括但不限于訪問方法(Access Method)、表連接方式(Join Method)、是否僅通過索引訪問(Index Only)、訪問的表類型(Table Access)、預取方式prefetch)、并發模式 (Parallelism Mode)等。對于上述示例的訪問路徑的元素,以訪問方法(Access Method)為例,其可能的取值有表掃描(RSCAN)、索引掃描(ISCAN)以及多索引掃描(MISCAN)三種。以表連接方式(Join Method)為例,其可能的取值有排序合并連接(SMJ,Sort Merge Join)、 嵌套循環連接(NLJ,Nested Loop Join)以及混合連接(HYJ,Hybrid Join)三種。優選地,出于驗證數據庫系統正確性的目的,步驟101中接收到的SQL語句是查詢(SELECT)語句, 因為有別于插入(INSERT)、UPDATE (修改)和DELETE (刪除)語句,SELECT語句中可能涉及諸如表連接方式、預取方式等多個訪問路徑的元素,可以對訪問路徑進行擴展。當然,如果一條非SELECT語句中嵌套有SELECT子句,則同樣屬于這里所指的SELECT語句。接下來在步驟102,擴展所接收到的SQL指令的訪問路徑。由于一條SQL指令可能存在多個可能的訪問路徑,而數據庫系統通常在執行一條SQL指令時是選取其所分析出來的一個最優的訪問路徑進行執行,因此在步驟102中進行的“擴展”就是指擴展得到對應于所接收到的SQL指令的多個可能的訪問路徑。根據本發明的一個實施例,在步驟102中進行的擴展是指擴展得到該SQL指令的所有可能的訪問路徑。根據本發明的另一實施方式, 在步驟102中進行的擴展是指有選擇地擴展得到該SQL指令的部分可能的訪問路徑。至于如何有選擇地擴展可以參照在下文針對圖2進行的描述中關于選擇一部分經擴展的訪問路徑的方法執行。關于擴展訪問路徑的具體方法,根據本發明的一個實施例,擴展訪問路徑是通過組合訪問路徑中的元素的可能取值來實現的(將在下文結合圖2具體描述)。當然,本領域技術人員應當理解,通過擴展元素來擴展訪問路徑只是一種可能的擴展方式,無論采用何種擴展方式,只要能夠實現對訪問路徑的擴展,均落入本發明的保護范圍。接下來在步驟103中,利用所擴展的訪問路徑執行所述SQL指令。如上文所述,數據庫對SQL指令的處理是通過執行該SQL指令的訪問路徑實現的。由于在步驟102中已經擴展得到了多條可能的訪問路徑,因此可以在步驟103中分別執行多條可能的對應于同一 SQL語句的訪問路徑。在步驟104中,根據執行所述SQL指令的結果驗證數據庫系統的正確性。由于所執行的多條訪問路徑乃是對應于同一 SQL語句的,因此在數據庫系統本身不存在錯誤或缺陷的情況下,執行所有的經擴展后的訪問路徑應當獲得同樣的輸出結果。所以,根據本發明的一個實施例,根據執行所述SQL指令的結果驗證數據庫系統的正確性是通過判斷在執行多條擴展的訪問路徑后,是否存在不同的輸出結果來實現的。只要有一條訪問路徑經執行后的輸出結果不同于其它訪問路徑執行后的結果,就可以認定數據庫系統中存在錯誤或缺陷。由圖1所示的方法以及上述文字描述可以看出,利用本發明提供的方法可以基于接收到的SQL指令擴展其訪問路徑,并通過檢驗對擴展后的訪問路徑的執行結果來驗證數據庫系統的正確性的技術效果。圖2示出了根據本發明又一實施例的用于驗證數據庫系統的正確性的方法的流程圖。圖2所示的方法從步驟201開始。在步驟201中,接收結構化查詢SQL指令,這類似于圖1所示的方法中的步驟101,在此不再贅述。接下來進行至步驟202,在步驟202中獲取所接收到的SQL指令的訪問路徑的元素。本領域技術人員應當了解,目前的關系數據庫管理系統RDBMS產品均是通過對SQL指令進行解析并生成數據庫引擎所分析得到的最優的訪問路徑,并且執行該訪問路徑以輸出針對SQL指令的結果。數據庫引擎在分析SQL指令的最優訪問路徑的過程中就是通過對組成訪問路徑的各個元素的取值進行逐一確定而實現的。因此,如何獲取SQL指令的訪問路徑中的元素屬于現有技術中的方案,在此不再贅述。在步驟203中,組合在步驟202中所獲取的訪問路徑的元素的可能取值,以生成擴展的訪問路徑。通常,數據庫系統對一條SQL指令的處理是試圖找出一個最優最合理的訪問路徑,也就是唯一地確定訪問路徑中的各個元素的取值,而摒棄其它的可能取值。在本發明中,為了驗證數據庫系統的正確性,我們需要為訪問路徑中的元素賦予更多的可能取值并將這些具有多種可能取值的元素組合起來。舉例而言,假設一條SQL指令的訪問路徑中包括兩個元素訪問方法Access Method和表連接方式Join Method,對于訪問方法元素有三個可能的取值,分別是表掃描、索引掃描和多索引掃描,對于表連接方式也有三個可能的取值,分別是排序合并連接、嵌套循環連接和混合連接。那么按照步驟203和204,最終擴展的訪問路徑就有9條,分別是訪問方法(表掃描)一〉表連接方式(排序合并連接)、 訪問方法(表掃描)一〉表連接方式(嵌套循環連接)、訪問方法(表掃描)一〉表連接方式(混合連接)、訪問方法(索引掃描)一〉表連接方式(排序合并連接)……以此類推。在步驟203中生成擴展的訪問路徑后,在步驟204中計算擴展的訪問路徑的權重值。之所以要計算擴展的訪問路徑的權重值,是因為通常對于一條SQL指令而言,其訪問路徑中可能包含多個元素,而每個元素又有多個可能的取值,這樣一來,擴展得到的訪問路徑的數量就會非常龐大。如果讓數據庫系統在后續的操作中逐一執行所有被擴展的訪問路徑,就會非常耗時、耗資源并且沒有效率。為了能夠選取出那些最有可能體現出數據庫系統存在的錯誤的訪問路徑,在步驟205中計算擴展的訪問路徑的權重值。根據本發明的一個實施方式,根據訪問路徑中的元素的權重值以及歷史錯誤信息來計算所擴展的訪問路徑的權重值。元素的權重值每一個訪問路徑中的元素自身的權重,體現了在數據庫輸出錯誤的 SQL指令結果可能由該元素所導致的比重。例如,訪問方法元素的權重值為0. 1,連接方法元素的權重值為0. 4,就說明連接方法這個元素相對于訪問方法元素更可能導致出現數據庫錯誤的情況。根據本發明的一個實施方式,元素的權重值是在數據庫系統產品發布之后由用戶、產品支持和服務人員定義的。根據本發明的另一實施方式,元素的權重值是在數據庫系統產品發布之前由開發和測試人員預定義的。根據本發明的再一實施例,元素的權重值在數據庫系統產品的生命周期中是可以進行動態調整的。而“歷史錯誤信息”是指在SQL 指令執行出錯的情況下,每個元素中所包含的各個方案(也就是各個可能的取值)所占的比例。通過圖3可以更好地理解“歷史錯誤信息”的含義。圖3示出了 7個餅圖,其中每個餅圖均代表一個訪問路徑的元素,元素的名稱被標識于每個餅圖上方。以第一個餅圖為例,該餅圖代表訪問方法(Access Method)這個訪問路徑中的元素。該餅圖被分為三份,分別對應著該元素的三種可能的取值,即表掃描RSCAN、索弓丨掃描ISCAN以及多索引掃描MISCAN。其中,表掃描RSCAN占20%意味著,訪問方法這個元素在歷史上數據庫系統出錯時有20%的情形取值為表掃描RSCAN,有20%的情形取值為多索引掃描MISCAN,有60%的情形取值為索引掃描ISCAN,其它各個餅圖的含義均可以此類推。需要指出的是,圖3所示的餅圖僅僅是記錄歷史錯誤信息的一種具體方式,本領域技術人員完全可以采用其它方式記錄歷史錯誤信息,例如表格等。根據本發明的一個實施例, 圖3所示的歷史錯誤信息是在數據庫系統運行過程中由系統自動記錄的。還需要強調的是,對于訪問路徑的某些元素而言,無法統計相關的歷史信息。例如,對于連接順序(Joint Sequence)這個元素而言,它的取值與SQL指令所要查詢的具體的表名相關,只能在接收到具體的SQL指令后,通過獲取SQL指令所涉及的數據庫對象(表、索引等)的元信息來獲取該元素的可能取值。例如,如果一條SQL查詢指令涉及表1、表2和表3的連接,那么連接順序的可能取值就是1一>2 — >3、1一>3 — >2等。在步驟204中計算擴展的訪問路徑的權重時既要利用元素本身的權重值,又要利用歷史錯誤信息中記錄的元素的每個可能取值所占的比例,也就是二級分權。下面給出一個計算擴展的訪問路徑的權重的例子。假設擴展出的兩條訪問路徑為(1)訪問方法(表掃描)一〉表連接方式(排序合并連接)以及( 訪問方法(表掃描)一〉表連接方式(嵌套循環連接)。假設訪問方法元素的權重值為0. 1,表連接方式元素的權重值為0. 4,再假設歷史錯誤信息如圖3所示,那么對于第1條訪問路徑其權重值為0. 1X20% +0. 4X35% =0. 16,對于第2條訪問路徑其權重值為0. 1X20% +0.4X58%= 0.252。本領域技術人員應當了解,上述計算過程只是為了示例性地說明一種可能的計算方法,實際上由于訪問路徑的元素數量很多,等式左邊的加號也會很多。接下來圖2所示的方法進行至步驟205。在步驟205中,選擇需要利用的擴展的訪問路徑。根據本發明的一個實施方式,隨機地從擴展的訪問路徑中選取一定數量的訪問路徑。根據本發明的另一實施方式,利用在步驟204中所計算的權重值由高到低選取一定數量的訪問路徑。根據本發明的再一實施方式,利用在步驟204中計算的權重值以及蒙特卡洛算法(Monte-Carlo),選取需要執行的訪問路徑。圖4示出了蒙特卡洛算法的一個示意圖。之所以利用蒙特卡洛算法,是因為即使有些訪問路徑的權重值很低,但是從長期的統計學的觀點來看,總有一定的概率出現,而如果僅僅按照步驟204中計算得到的權重值的高低來選取要執行的訪問路徑,可能會導致漏選一些雖然權重小但是仍然有可能出現的訪問路徑。而蒙特卡洛算法的基本原理就是以類似“輪盤”的方式,為小權重的訪問路徑分配較小的面積,為大權重的訪問路徑分配較大的面積(如圖4所示),然后在選取要執行的訪問路徑時以模擬旋轉圓盤的方式進行。這樣可以使得在選取訪問路徑時更加科學。接下來在步驟206中,利用選擇的訪問路徑執行SQL指令,并且在步驟207中判斷利用該訪問路徑執行SQL指令的輸出結果是否與之前所有執行該SQL指令的其它訪問路徑輸出的結果一致,如果不一致,則在步驟209中判斷數據庫系統存在錯誤。如果一致,則進行至步驟208,進一步判斷是否已經將所有選擇的訪問路徑執行完畢。如果尚未全部執行完畢,則返回至步驟206,重復206至208的執行、判斷步驟,如果已經全部執行完畢,則說明對于所有選擇訪問路徑均輸出了相同的執行該SQL指令的結果,從而在步驟210中確定數據庫系統不存在錯誤。需要強調的是,圖2所示的方法中的步驟204和205并非本發明必須的步驟。因為,本領域技術人員在不考慮效率的情況下,完全可以不對步驟203中擴展的訪問路徑進行選擇,而執行所有的擴展得到的訪問路徑。即使需要對訪問路徑進行選擇,步驟204計算權重值也并非必需的,因為本領域技術人員完全可以采用隨機選擇的方式或者以限定某種條件(例如要求訪問方法元素的取值必須是表掃描)的方式選擇需要執行的訪問路徑。還需要指出的是,在步驟205選擇了需要執行的訪問路徑之后,通常還需要對所選擇的訪問路徑的可行性進行驗證。例如,對于并發模式(PARALLELISM MODE)這個元素而言,有一條訪問路徑中其取值為多子系統級并發(SYSPLEX),但是實際系統并不是一個 SYSPLEX系統,因此這個被擴展得到的訪問路徑實際上就是不可行的。這一驗證可行性的操作并沒有被列入在圖2所示的流程圖中,因為目前數據庫系統在解析SQL指令并生成訪問路徑時也需要執行類似的操作,在此不再贅述。當然,這一驗證訪問路徑可行性的操作既可以在步驟205選擇了需要執行的訪問路徑之后進行,也可以在步驟203生成擴展的訪問路徑時就進行。圖5示出了根據本發明一個實施方式的用于的驗證數據庫系統的正確性的裝置的框圖。圖5所示的系統在總體上由系統500表示。具體地,系統500包括SQL指令接收裝置501,用于接收結構化查詢SQL指令;訪問路徑擴展裝置502,用于擴展所接收到的SQL 指令的訪問路徑;執行裝置503,用于利用所述擴展的訪問路徑執行所述SQL指令;以及驗證裝置504,用于根據執行所述SQL指令的結果驗證數據庫系統的正確性。本領域技術人員應當理解,系統500中的裝置501至504分別對應于圖1所示的方法中的步驟101至104, 在此不再贅述。圖6示出了根據本發明另一實施方式的用于驗證數據庫系統的正確性的裝置的框圖。圖6所示的系統總體上由系統600表示。具體地,系統600包括SQL指令接收裝置 601,用于接收結構化查詢SQL指令;元素獲取裝置602,用于獲取組成SQL指令的訪問路徑的元素;訪問路徑擴展裝置603,用于組合所述元素的可能取值以生成擴展的訪問路徑;訪問路徑選擇裝置604,用于計算擴展的訪問路徑的權重值并選擇需要利用的擴展的訪問路徑;執行裝置605,用于利用選擇的訪問路徑執行SQL指令;第一判斷裝置606,用于判斷執行結果是否與所有已經輸出的執行結果一致,并且在判斷結果為否的情形下,確定數據庫系統存在錯誤;以及第二判斷裝置607,用于判斷是否所有選擇的訪問路徑均執行完畢,并且在判斷結果為否的情況下,繼續執行尚未執行的訪問路徑,以及在判斷結果為是的情況下,確定數據庫系統中不存在錯誤。本領域技術人員應當理解,系統600中的裝置601-603 以及605分別對應于圖2所示的方法中的步驟201-203以及206,系統600中的裝置604對應于圖2所示的方法中的步驟204-205,系統600中的裝置606對應于圖2所示的方法中的步驟207以及209,系統600中的裝置607對應于圖2所示的方法中的步驟208以及210。通過以上對具體實施例的描述,本領域技術人員可以理解,上述的系統、裝置和方法可以使用計算機可執行指令和/或包含在處理器控制代碼中來實現,例如在諸如磁盤、 CD或DVD-ROM的載體介質、諸如只讀存儲器(固件)的可編程的存儲器或者諸如光學或電子信號載體的數據載體上提供了這樣的代碼。本實施例的裝置、服務器及其單元可以由諸如超大規模集成電路或門陣列、諸如邏輯芯片、晶體管等的半導體、或者諸如現場可編程門陣列、可編程邏輯設備等的可編程硬件設備的硬件電路實現,也可以用由各種類型的處理器執行的軟件實現,也可以由上述硬件電路和軟件的結合實現。雖然以上結合具體實例,對本發明的利用遠程應用處理本地文件的系統及方法進行了詳細描述,但本發明并不限于此。本領域普通技術人員能夠在說明書教導之下對本發明進行多種變換、替換和修改而不偏離本發明的精神和范圍。應該理解,所有這樣的變化、 替換、修改仍然落入本發明的保護范圍之內。本發明的保護范圍由所附權利要求來限定。
權利要求
1.一種用于驗證數據庫系統的正確性的方法,包括 接收結構化查詢SQL指令;擴展所接收到的SQL指令的訪問路徑;利用所述擴展的訪問路徑執行所述SQL指令;以及根據執行所述SQL指令的結果驗證數據庫系統的正確性。
2.如權利要求1所述的方法,其中擴展所接收到的SQL指令的訪問路徑包括 獲取組成所述SQL指令的訪問路徑的元素;以及組合所述元素的可能取值以生成擴展的訪問路徑。
3.如權利要求2所述的方法,進一步包括根據訪問路徑中的元素的權重值以及歷史錯誤信息,計算所擴展的訪問路徑的權重值。
4.如權利要求3所述的方法,所述歷史錯誤信息包括在SQL指令執行出錯的情況下, 每個元素的各個可能的取值所占的比例。
5.如權利要求3或4所述的方法,其中利用所述擴展的訪問路徑執行所述SQL指令包括根據所計算得到的所擴展的訪問路徑的權重值,選擇需要利用的所擴展的訪問路徑;以及利用所選擇的訪問路徑執行所述SQL指令。
6.如權利要求5所述的方法,其中根據所計算得到的所擴展的訪問路徑的權重值,選擇需要利用的所擴展的訪問路徑是利用蒙特卡洛算法實現的。
7.如權利要求1-6任一所述的方法,其中根據執行所述SQL指令的結果驗證數據庫系統的正確性包括判斷執行所述SQL指令的結果是否與之前的執行所述SQL指令的結果相同;以及如果結果不同,則確定所述數據庫系統存在錯誤。
8.一種用于驗證數據庫系統的正確性的系統,包括 接收裝置,用于接收結構化查詢SQL指令;訪問路徑擴展裝置,用于擴展所接收到的SQL指令的訪問路徑; 執行裝置,用于利用所述擴展的訪問路徑執行所述SQL指令;以及驗證裝置,用于根據執行所述SQL指令的結果驗證數據庫系統的正確性。
9.如權利要求8所述的系統,其中訪問路徑擴展裝置包括 元素獲取裝置,用于獲取組成所述SQL指令的訪問路徑的元素;以及訪問路徑擴展裝置,用于組合所述元素的可能取值以生成擴展的訪問路徑。
10.如權利要求9所述的系統,進一步包括訪問路徑選擇裝置,用于根據訪問路徑中的元素的權重值以及歷史錯誤信息,計算所擴展的訪問路徑的權重值。
11.如權利要求10所述的系統,所述歷史錯誤信息包括在SQL指令執行出錯的情況下,每個元素的各個可能的取值所占的比例。
12.如權利要求10或11所述的系統,其中執行裝置被進一步配置為根據所計算得到的所擴展的訪問路徑的權重值,選擇需要利用的所擴展的訪問路徑;以及利用所選擇的訪問路徑執行所述SQL指令。
13.如權利要求12所述的系統,其中執行裝置被進一步配置為利用蒙特卡洛算法選擇需要利用的所擴展的訪問路徑。
14.如權利要求8-13任一所述的系統,其中驗證裝置被進一步配置為 判斷執行所述SQL指令的結果是否與之前的執行所述SQL指令的結果相同;以及如果結果不同,則確定所述數據庫系統存在錯誤。
全文摘要
本發明涉及數據庫技術領域。更具體地,本發明涉及驗證關系數據庫系統的正確性的技術。本發明提供了一種用于驗證數據庫系統的正確性的方法,包括接收結構化查詢SQL指令;擴展所接收到的SQL指令的訪問路徑;利用所述擴展的訪問路徑執行所述SQL指令;以及根據執行所述SQL指令的結果驗證數據庫系統的正確性。通過本發明的方法和系統,可以實現通過自動擴展SQL語句的訪問路徑來驗證數據庫系統的正確性的目的,還可以實現基于由各種數據操作方式(訪問路徑元素的不同取值)引發數據庫自身存在的錯誤或缺陷的比重,科學高效、有的放矢地驗證數據庫系統的正確性的目的。
文檔編號G06F17/30GK102541966SQ20101062476
公開日2012年7月4日 申請日期2010年12月30日 優先權日2010年12月30日
發明者劉沭華, 周婧, 周祥, 楊新穎, 賈焱, 陳東升, 魏可偉 申請人:國際商業機器公司