1986年,隨著SQL標(biāo)準(zhǔn)被美國國家標(biāo)準(zhǔn)學(xué)會(ANSI)接受,美" />
時間:2022-11-07 16:30:02 | 來源:信息時代
時間:2022-11-07 16:30:02 來源:信息時代
SQL符合性測試 : 測試數(shù)據(jù)庫管理系統(tǒng)的SQL實現(xiàn)與SQL標(biāo)準(zhǔn)的符合程度。SQL標(biāo)準(zhǔn)本質(zhì)上規(guī)定了數(shù)據(jù)庫產(chǎn)品的符合性,而非數(shù)據(jù)庫實現(xiàn)細節(jié)。
1986年,隨著SQL標(biāo)準(zhǔn)被美國國家標(biāo)準(zhǔn)學(xué)會(ANSI)接受,美國商務(wù)部國家標(biāo)準(zhǔn)與技術(shù)研究所(NIST)開始SQL標(biāo)準(zhǔn)符合性測試工作,促進了SQL標(biāo)準(zhǔn)的貫徹實施; 1996年NIST由于預(yù)算問題停止了SQL符合性測試套件開發(fā),該決定在一定程度影響了SQL新標(biāo)準(zhǔn)在數(shù)據(jù)庫產(chǎn)品中的實現(xiàn)。
SQL86標(biāo)準(zhǔn)中定義了兩級符合性,即入門級(entry level)和完全級(full level); SQL89標(biāo)準(zhǔn)中仍然將符合性分為兩級,入門級與完全級,入門級覆蓋了SQL86的主要內(nèi)容,完全級增加了參照完整性的內(nèi)容;SQL92標(biāo)準(zhǔn)(也稱為SQL2)定義了三級符合性,即入門級(entry level)、中間級(intermediate level)和完全級(full level)。
SQL99標(biāo)準(zhǔn)(也稱為SQL3)將符合性總體上分為核心SQL-99級(core SQL-99)和擴展SQL-99級(enhanced SQL-99)。核心SQL-99級由ISO/IEC9075-2: Foundation定義,規(guī)定了SQL語法結(jié)構(gòu)和SQL語句執(zhí)行效果; 擴展SQL-99級由SQL99標(biāo)準(zhǔn)其他部分(ISO/IEC9075-n)定義。
作為SQL99標(biāo)準(zhǔn)的組成部分,SQLJ定義了SQL語言和Java編程語言之間交互的擴展,由三部分組成。第0部分: 在Java中嵌入SQL;第1部分: 用Java開發(fā)SQL程序,主要指數(shù)據(jù)庫存儲過程; 第2部分: 將Java類定義為SQL中的數(shù)據(jù)類型。
SQL符合性測試采用黑盒測試方法。SQL標(biāo)準(zhǔn)符合性測試過程包括: 設(shè)計測試場景、編寫測試用例、運行測試工具、分析和提交測試結(jié)果等方面。根據(jù)SQL標(biāo)準(zhǔn)文本中的語法規(guī)則和一般規(guī)則提出測試場景,設(shè)計測試用例。一個測試場景可能從一個和多個一般規(guī)則或語法規(guī)則中導(dǎo)出,而每個規(guī)則可說明多個測試場景。測試場景與一般規(guī)則之間存在著多對多的關(guān)系,每個測試場景刻畫SQL符合性實現(xiàn)的行為特性,所有測試場景組成SQL標(biāo)準(zhǔn)符合性測試集。
目前SQL92標(biāo)準(zhǔn)在關(guān)系數(shù)據(jù)庫產(chǎn)品中得到了廣泛的實現(xiàn)。SQL92入門級符合性規(guī)定的主要內(nèi)容包括:
(1)基本語言元素: 包括字符、字值、記號、數(shù)據(jù)類型、值說明和目標(biāo)說明等。
(2)數(shù)據(jù)定義語言: 規(guī)定了各種模式(域、表、索引、視圖等)操作的符合性,以及相關(guān)安全機制。
(3)基本數(shù)據(jù)操縱語言:規(guī)定了查詢、插入、修改和刪除等基本操作的符合性,包括數(shù)據(jù)訪問、空值處理等規(guī)則。
(4)復(fù)雜數(shù)據(jù)操縱語言: 規(guī)定了SQL子句中含謂詞、聚集函數(shù)、子查詢、空值等的符合性,也規(guī)定了各種關(guān)系連接、復(fù)雜條件、分組限制等的符合性。
(5)數(shù)據(jù)完整性:規(guī)定了實體完整性、引用完整性和用戶完整性。
(6)存取控制:規(guī)定了用戶的權(quán)限授權(quán)管理和存取控制管理。
(7)并發(fā)事務(wù):規(guī)定了測試事務(wù)封鎖機制和事務(wù)隔離級別的支持。
(8)數(shù)據(jù)庫尺寸:規(guī)定了屬性個數(shù)、字符串長度、查詢嵌套層次、最大排序個數(shù)等方面的符合性。
(9) SQL語句返回值: 規(guī)定了表明SQL語句執(zhí)行情況的SQL返回碼(SQLCODE)。
(10)嵌入式SQL語句: 規(guī)定了將SQL嵌入COBOL、FORTRAN、C等宿主語言中的符合性。
SQL92中間級和完全級還規(guī)定了斷言(assertion)、連接管理(connection management)、日期時間(date time)、域(domain)、動態(tài)SQL(dynamic SQL)、成組操作(grouped operation)、信息模式(information schema)、多模塊支持(multiple module support)、國家字符集(national character set)、自然連接(natural join)、CHECK子句中子查詢(subqueries in check clause)、臨時表(temporary table)、集合并交操作(union and intersect)等方面的符合性。
微信公眾號
版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。