《數(shù)據(jù)庫技術(shù)與應(yīng)用》電子課件
《數(shù)據(jù)庫技術(shù)與應(yīng)用》電子課件,數(shù)據(jù)庫技術(shù)與應(yīng)用,數(shù)據(jù)庫技術(shù),應(yīng)用,電子,課件
第10章 查詢處理和優(yōu)化本章學(xué)習(xí)目標(biāo)l了解并掌握查詢處理的過程。了解并掌握查詢處理的過程。l了解查詢處理代價的度量方法。了解查詢處理代價的度量方法。l了解查詢優(yōu)化在關(guān)系數(shù)據(jù)庫系統(tǒng)中的必要性和可行性。了解查詢優(yōu)化在關(guān)系數(shù)據(jù)庫系統(tǒng)中的必要性和可行性。l掌握查詢優(yōu)化的一般策略。掌握查詢優(yōu)化的一般策略。l理解并掌握代數(shù)優(yōu)化的思想和算法。理解并掌握代數(shù)優(yōu)化的思想和算法。l理解物理優(yōu)化的基本思想和方法。理解物理優(yōu)化的基本思想和方法。本章概述本本章章主主要要討討論論關(guān)關(guān)系系數(shù)數(shù)據(jù)據(jù)庫庫的的查查詢詢優(yōu)優(yōu)化化技技術(shù)術(shù)。查查詢詢處處理理是是關(guān)關(guān)系系數(shù)數(shù)據(jù)據(jù)庫庫系系統(tǒng)統(tǒng)最最主主要要的的功功能能。關(guān)關(guān)系系數(shù)數(shù)據(jù)據(jù)庫庫的的查查詢詢一一般般都都使使用用SQLSQL語語句句實實現(xiàn)現(xiàn)。對對于于同同一一個個用用SQLSQL表表達達的的查查詢詢要要求求,通通常??煽梢砸詫?yīng)應(yīng)于于多多個個不不同同形形式式但但相相互互“等等價價”的的關(guān)關(guān)系系代代數(shù)數(shù)表表達達式式。對對于于描描述述同同一一查查詢詢要要求求但但具具有有不不同同形形式式的的關(guān)關(guān)系系代代數(shù)數(shù)表表達達式式來來說說,由由于于存存取取路路徑徑可可以以不不同同,相相同同的的查查詢詢,其其效效率率就就會會產(chǎn)產(chǎn)生生差差異異,有有時時這這種種差差異異會會相相當(dāng)當(dāng)巨巨大大。在在關(guān)關(guān)系系數(shù)數(shù)據(jù)據(jù)庫庫中中,查查詢詢優(yōu)優(yōu)化化是是查查詢詢處處理理中中一一項項重重要要和和必必要要的的工工作作,查查詢詢優(yōu)優(yōu)化化通通過過尋尋求求好好的的查查詢詢路路徑徑或或好好的等價代數(shù)表達式來提高查詢效率,通常包括代數(shù)優(yōu)化和物理優(yōu)化技術(shù)。的等價代數(shù)表達式來提高查詢效率,通常包括代數(shù)優(yōu)化和物理優(yōu)化技術(shù)。主要內(nèi)容10.1 查詢處理10.3 代數(shù)優(yōu)化10.4 物理優(yōu)化10.2 查詢優(yōu)化10.5實際應(yīng)用中的查詢優(yōu)化主要內(nèi)容10.1 查詢處理10.3 代數(shù)優(yōu)化10.4 物理優(yōu)化10.2 查詢優(yōu)化10.5實際應(yīng)用中的查詢優(yōu)化10.1 查詢處理 10.1.1 查詢處理步驟1.1.查詢分析查詢分析首先,對查詢語句進行掃描、詞法分析和語法分析。從查詢語句中識首先,對查詢語句進行掃描、詞法分析和語法分析。從查詢語句中識別出語言符號,如別出語言符號,如SQLSQL關(guān)鍵字,關(guān)系名和屬性名等,并進行語法檢查關(guān)鍵字,關(guān)系名和屬性名等,并進行語法檢查和分析,即判斷查詢語句是否符合和分析,即判斷查詢語句是否符合SQLSQL語法規(guī)則。語法規(guī)則。2.2.查詢檢查查詢檢查查詢檢查首先根據(jù)數(shù)據(jù)字典對合法的查詢語句進行語義檢查,檢查語查詢檢查首先根據(jù)數(shù)據(jù)字典對合法的查詢語句進行語義檢查,檢查語句中的數(shù)據(jù)庫對象句中的數(shù)據(jù)庫對象(如關(guān)系名、屬性名如關(guān)系名、屬性名)是否存在和是否有效。然后,是否存在和是否有效。然后,根據(jù)數(shù)據(jù)字典中的用戶權(quán)限和完整性約束定義對用戶的存取權(quán)限進根據(jù)數(shù)據(jù)字典中的用戶權(quán)限和完整性約束定義對用戶的存取權(quán)限進行檢查,如果用戶沒有相應(yīng)的訪問權(quán)限或違反了完整性約束原則,行檢查,如果用戶沒有相應(yīng)的訪問權(quán)限或違反了完整性約束原則,就拒絕執(zhí)行該查詢。檢查通過后,把查詢語句轉(zhuǎn)換成等價的關(guān)系代就拒絕執(zhí)行該查詢。檢查通過后,把查詢語句轉(zhuǎn)換成等價的關(guān)系代數(shù)表達式。數(shù)表達式。RDBMSRDBMS一般都用查詢樹一般都用查詢樹(query tree)(query tree),也稱為語法分析樹,也稱為語法分析樹(syntax tree)(syntax tree),來表示擴展的關(guān)系代數(shù)表達式。這個過程就是把數(shù),來表示擴展的關(guān)系代數(shù)表達式。這個過程就是把數(shù)據(jù)庫對象的外部名稱換為內(nèi)部表示。據(jù)庫對象的外部名稱換為內(nèi)部表示。10.1 查詢處理 3.3.查詢優(yōu)化查詢優(yōu)化每個查詢都會有很多可供選擇的執(zhí)行策略和操作算法,查詢優(yōu)化是指每個查詢都會有很多可供選擇的執(zhí)行策略和操作算法,查詢優(yōu)化是指選擇一個高效執(zhí)行的查詢處理策略。選擇一個高效執(zhí)行的查詢處理策略。DBMSDBMS會調(diào)用系統(tǒng)的優(yōu)化處理器會調(diào)用系統(tǒng)的優(yōu)化處理器制定一個執(zhí)行策略,由此產(chǎn)生一個查詢計劃。對關(guān)系型數(shù)據(jù)庫來說,制定一個執(zhí)行策略,由此產(chǎn)生一個查詢計劃。對關(guān)系型數(shù)據(jù)庫來說,查詢優(yōu)化過程是由查詢優(yōu)化過程是由RDBMSRDBMS系統(tǒng)自動完成的,它與用戶提交的查詢語句系統(tǒng)自動完成的,它與用戶提交的查詢語句無關(guān)。無關(guān)。10.1 查詢處理 查詢優(yōu)化有多種方法。按照優(yōu)化的層次一般可分為代數(shù)優(yōu)化和物理優(yōu)化。查詢優(yōu)化有多種方法。按照優(yōu)化的層次一般可分為代數(shù)優(yōu)化和物理優(yōu)化。(1)(1)代數(shù)優(yōu)化:指關(guān)系代數(shù)表達式的優(yōu)化,即按照一定的啟發(fā)式規(guī)則,改變代數(shù)優(yōu)化:指關(guān)系代數(shù)表達式的優(yōu)化,即按照一定的啟發(fā)式規(guī)則,改變代數(shù)表達式中操作的次序和組合,使查詢執(zhí)行得更高效。例如代數(shù)表達式中操作的次序和組合,使查詢執(zhí)行得更高效。例如“優(yōu)先選擇、優(yōu)先選擇、投影而后連接投影而后連接”等就可完成優(yōu)化。等就可完成優(yōu)化。(2)(2)物理優(yōu)化:物理優(yōu)化:指存取路徑和底層操作算法的選擇。選擇的依據(jù)可以是基指存取路徑和底層操作算法的選擇。選擇的依據(jù)可以是基于語義的,也可以是基于代價的,還可以是基于規(guī)則的。于語義的,也可以是基于代價的,還可以是基于規(guī)則的。實際優(yōu)化過程都綜合運用了這些優(yōu)化技術(shù),以獲得最好的查詢優(yōu)化效果。實際優(yōu)化過程都綜合運用了這些優(yōu)化技術(shù),以獲得最好的查詢優(yōu)化效果。4.4.查詢執(zhí)行查詢執(zhí)行 依據(jù)查詢優(yōu)化器得到的查詢計劃,由代碼生成器生成執(zhí)行這個查詢計劃依據(jù)查詢優(yōu)化器得到的查詢計劃,由代碼生成器生成執(zhí)行這個查詢計劃的可執(zhí)行代碼。的可執(zhí)行代碼。10.1 查詢處理 查詢優(yōu)化有多種方法。按照優(yōu)化的層次一般可分為代數(shù)優(yōu)化和物理優(yōu)化。查詢優(yōu)化有多種方法。按照優(yōu)化的層次一般可分為代數(shù)優(yōu)化和物理優(yōu)化。(1)(1)代數(shù)優(yōu)化:指關(guān)系代數(shù)表達式的優(yōu)化,即按照一定的啟發(fā)式規(guī)則,改變代數(shù)優(yōu)化:指關(guān)系代數(shù)表達式的優(yōu)化,即按照一定的啟發(fā)式規(guī)則,改變代數(shù)表達式中操作的次序和組合,使查詢執(zhí)行得更高效。例如代數(shù)表達式中操作的次序和組合,使查詢執(zhí)行得更高效。例如“優(yōu)先選擇、優(yōu)先選擇、投影而后連接投影而后連接”等就可完成優(yōu)化。等就可完成優(yōu)化。(2)(2)物理優(yōu)化:物理優(yōu)化:指存取路徑和底層操作算法的選擇。選擇的依據(jù)可以是基指存取路徑和底層操作算法的選擇。選擇的依據(jù)可以是基于語義的,也可以是基于代價的,還可以是基于規(guī)則的。于語義的,也可以是基于代價的,還可以是基于規(guī)則的。實際優(yōu)化過程都綜合運用了這些優(yōu)化技術(shù),以獲得最好的查詢優(yōu)化效果。實際優(yōu)化過程都綜合運用了這些優(yōu)化技術(shù),以獲得最好的查詢優(yōu)化效果。4.4.查詢執(zhí)行查詢執(zhí)行 依據(jù)查詢優(yōu)化器得到的查詢計劃,由代碼生成器生成執(zhí)行這個查詢計劃依據(jù)查詢優(yōu)化器得到的查詢計劃,由代碼生成器生成執(zhí)行這個查詢計劃的可執(zhí)行代碼。的可執(zhí)行代碼。10.1 查詢處理 目前目前DBMSDBMS通過某種代價模型計算出各種查詢執(zhí)行策略的執(zhí)行代價,然后選取通過某種代價模型計算出各種查詢執(zhí)行策略的執(zhí)行代價,然后選取代價最小的執(zhí)行方案。代價最小的執(zhí)行方案。查詢執(zhí)行代價可以通過查詢對各種資源的使用情況進行度量。在集中式數(shù)據(jù)查詢執(zhí)行代價可以通過查詢對各種資源的使用情況進行度量。在集中式數(shù)據(jù)庫中,查詢的執(zhí)行開銷主要包括磁盤存取時間庫中,查詢的執(zhí)行開銷主要包括磁盤存取時間(I/O(I/O代價代價),處理器時間,處理器時間(CPU(CPU代價代價),查詢的內(nèi)存時間。在并行,查詢的內(nèi)存時間。在并行/分布式數(shù)據(jù)庫系統(tǒng)中還要加上通信分布式數(shù)據(jù)庫系統(tǒng)中還要加上通信代價,即:代價,即:查詢執(zhí)行總代價查詢執(zhí)行總代價=I/O=I/O代價代價+CPU+CPU代價代價+內(nèi)存代價內(nèi)存代價+通信代價。通信代價。10.1.2 查詢執(zhí)行代價度量主要內(nèi)容10.1 查詢處理10.3 代數(shù)優(yōu)化10.4 物理優(yōu)化10.2 查詢優(yōu)化10.5實際應(yīng)用中的查詢優(yōu)化10.2 查詢優(yōu)化 10.2.1 查詢優(yōu)化的必要性還可以寫出其他等價的關(guān)系代數(shù)表達式,但分析這三種就足以說明問題了。還可以寫出其他等價的關(guān)系代數(shù)表達式,但分析這三種就足以說明問題了。下面我們計算這下面我們計算這3 3種表達式查詢所需時間,可以發(fā)現(xiàn)由于查詢執(zhí)行策略的種表達式查詢所需時間,可以發(fā)現(xiàn)由于查詢執(zhí)行策略的不同,使得查詢時間有很大的差異。在計算之前做以下統(tǒng)一約定。不同,使得查詢時間有很大的差異。在計算之前做以下統(tǒng)一約定。10.2 查詢優(yōu)化 設(shè)設(shè)StudentStudent有有10001000個元組,個元組,SCSC有有1000010000個元組,其中選修個元組,其中選修“C003”C003”號課程的元號課程的元組數(shù)為組數(shù)為5050個。個。設(shè)一個物理塊能裝設(shè)一個物理塊能裝1010個個StudentStudent元組或元組或100100個個SCSC元組。元組。內(nèi)存有內(nèi)存有6 6個塊的緩沖區(qū),其中個塊的緩沖區(qū),其中5 5塊存放塊存放StudentStudent元組,元組,1 1塊存放塊存放SCSC元組。元組。讀讀/寫磁盤一物理塊的時間為寫磁盤一物理塊的時間為1/20s1/20s,即,即1s1s讀寫讀寫2020個磁盤塊。個磁盤塊。為簡化起見,所有內(nèi)存操作所花時間可以忽略不計。為簡化起見,所有內(nèi)存操作所花時間可以忽略不計。10.2 查詢優(yōu)化 10.2.2 查詢優(yōu)化的可行性 關(guān)系數(shù)據(jù)庫系統(tǒng)查詢語句表示查詢操作基于集合運算,稱之為關(guān)系代數(shù)。關(guān)系數(shù)據(jù)庫系統(tǒng)查詢語句表示查詢操作基于集合運算,稱之為關(guān)系代數(shù)。關(guān)系代數(shù)具有關(guān)系代數(shù)具有5 5種基本運算,這些運算間滿足一定的運算定律,如結(jié)合律、種基本運算,這些運算間滿足一定的運算定律,如結(jié)合律、交換律、分配律和串接律等,這就表示不同的關(guān)系代數(shù)表達式可以得到相交換律、分配律和串接律等,這就表示不同的關(guān)系代數(shù)表達式可以得到相同的結(jié)果,因此用關(guān)系代數(shù)語言進行查詢時可以進行必要的優(yōu)化,以獲取同的結(jié)果,因此用關(guān)系代數(shù)語言進行查詢時可以進行必要的優(yōu)化,以獲取較優(yōu)的查詢性能。較優(yōu)的查詢性能。由于關(guān)系查詢語言的特點,能夠找到有效的算法,使得查詢優(yōu)化過程在由于關(guān)系查詢語言的特點,能夠找到有效的算法,使得查詢優(yōu)化過程在DBMSDBMS內(nèi)部自動完成,向用戶屏蔽優(yōu)化的細節(jié)實現(xiàn)。因此,用戶只需向內(nèi)部自動完成,向用戶屏蔽優(yōu)化的細節(jié)實現(xiàn)。因此,用戶只需向DBMSDBMS提出提出“做什么做什么”,而不必指出,而不必指出“如何做如何做”,這樣用戶在編程時只需表示出,這樣用戶在編程時只需表示出所想要的結(jié)果,無需給出獲得結(jié)果的具體步驟,這一切由所想要的結(jié)果,無需給出獲得結(jié)果的具體步驟,這一切由DBMSDBMS完成。完成。查詢優(yōu)化一般可分為代數(shù)優(yōu)化和物理優(yōu)化。代數(shù)優(yōu)化是指關(guān)系代數(shù)表達式查詢優(yōu)化一般可分為代數(shù)優(yōu)化和物理優(yōu)化。代數(shù)優(yōu)化是指關(guān)系代數(shù)表達式的優(yōu)化;物理優(yōu)化是指存儲路徑和底層操作算法的優(yōu)化。的優(yōu)化;物理優(yōu)化是指存儲路徑和底層操作算法的優(yōu)化。主要內(nèi)容10.1 查詢處理10.3 代數(shù)優(yōu)化10.4 物理優(yōu)化10.2 查詢優(yōu)化10.5實際應(yīng)用中的查詢優(yōu)化10.3 代數(shù)優(yōu)化所謂關(guān)系代數(shù)表達式的等價是指用相同的關(guān)系代入兩個關(guān)系表達式中所得到所謂關(guān)系代數(shù)表達式的等價是指用相同的關(guān)系代入兩個關(guān)系表達式中所得到的結(jié)果是相同的。兩個關(guān)系表達式的結(jié)果是相同的。兩個關(guān)系表達式E1E1和和E2E2是等價的,可記作是等價的,可記作E1E2E1E2。常用的代數(shù)表達式的等價變換規(guī)則主要有以下幾類,證明從略。常用的代數(shù)表達式的等價變換規(guī)則主要有以下幾類,證明從略。(1)(1)連接、笛卡爾積的交換律連接、笛卡爾積的交換律設(shè)設(shè)E1E1和和E2E2是關(guān)系代數(shù)表達式,是關(guān)系代數(shù)表達式,F(xiàn) F是連接運算的條件,則下列等價公式成立。是連接運算的條件,則下列等價公式成立。10.3.1 關(guān)系代數(shù)表達式等價交換規(guī)則10.3 代數(shù)優(yōu)化(2)(2)連接、笛卡爾積的結(jié)合律連接、笛卡爾積的結(jié)合律設(shè)設(shè)E1E1、E2E2和和E3E3是關(guān)系代數(shù)表達式,是關(guān)系代數(shù)表達式,F(xiàn)1F1和和F2F2是連接運算條件,則下列等價公式是連接運算條件,則下列等價公式成立。成立。10.3 代數(shù)優(yōu)化(3)(3)投影的串接定律投影的串接定律設(shè)設(shè)E E是關(guān)系代數(shù)表達式,是關(guān)系代數(shù)表達式,Ai(i=1Ai(i=1,2 2,n)n),Bj(j=1Bj(j=1,2 2,m)m)是是E E中的某中的某些屬性名,且些屬性名,且 構(gòu)成構(gòu)成 的子集,則下列等價的子集,則下列等價公式成立。公式成立。(4)(4)選擇的串接定律選擇的串接定律設(shè)設(shè)E E是關(guān)系代數(shù)表達式,、是選擇條件,則下列等價公式成立。是關(guān)系代數(shù)表達式,、是選擇條件,則下列等價公式成立。10.3 代數(shù)優(yōu)化10.3 代數(shù)優(yōu)化(7)(7)選擇與并運算的分配律選擇與并運算的分配律設(shè)設(shè)E1E1和和E2E2是兩個關(guān)系代數(shù)表達式,并且是兩個關(guān)系代數(shù)表達式,并且E1E1和和E2E2具有相同的屬性名,具有相同的屬性名,F(xiàn) F是選擇是選擇條件,則下列等價公式成立。條件,則下列等價公式成立。(8)(8)選擇與差運算的分配律選擇與差運算的分配律設(shè)設(shè)E1E1和和E2E2是兩個關(guān)系代數(shù)表達式,并且是兩個關(guān)系代數(shù)表達式,并且E1E1和和E2E2具有相同的屬性名,具有相同的屬性名,F(xiàn) F是選擇是選擇條件,則下列等價公式成立。條件,則下列等價公式成立。10.3 代數(shù)優(yōu)化10.3 代數(shù)優(yōu)化關(guān)系代數(shù)表達式的查詢優(yōu)化是由關(guān)系代數(shù)表達式的查詢優(yōu)化是由RBMSRBMS的的DMLDML編譯器自動完成的。因此,查詢編譯器自動完成的。因此,查詢優(yōu)化的基本前提是需要將關(guān)系代數(shù)表達式轉(zhuǎn)換為某種內(nèi)部表示,常用的內(nèi)優(yōu)化的基本前提是需要將關(guān)系代數(shù)表達式轉(zhuǎn)換為某種內(nèi)部表示,常用的內(nèi)部表示就是所謂的關(guān)系代數(shù)語法樹,簡稱為語法樹。其實現(xiàn)的過程是先對部表示就是所謂的關(guān)系代數(shù)語法樹,簡稱為語法樹。其實現(xiàn)的過程是先對一個關(guān)系代數(shù)表達式進行語法分析,將分析結(jié)果用樹的形式表達出來,此一個關(guān)系代數(shù)表達式進行語法分析,將分析結(jié)果用樹的形式表達出來,此時的樹就稱之為語法樹。語法樹具有如下特征:時的樹就稱之為語法樹。語法樹具有如下特征:(1)(1)樹中的葉節(jié)點表示關(guān)系。樹中的葉節(jié)點表示關(guān)系。(2)(2)樹中的非葉子結(jié)點表示操作。樹中的非葉子結(jié)點表示操作。例例10-2 10-2 下面給出下面給出 例例10-110-1中中SQLSQL語句的關(guān)系代數(shù)語法樹示例。語句的關(guān)系代數(shù)語法樹示例。10.3.2 語法樹10.3 代數(shù)優(yōu)化1.1.選擇運算優(yōu)先原則選擇運算優(yōu)先原則盡可能早地先做選擇運算。在優(yōu)化策略中這是最重要、最基本的一條,因為盡可能早地先做選擇運算。在優(yōu)化策略中這是最重要、最基本的一條,因為選擇運算往往會使關(guān)系運算中間結(jié)果的記錄數(shù)量大大減少,從而可以成數(shù)選擇運算往往會使關(guān)系運算中間結(jié)果的記錄數(shù)量大大減少,從而可以成數(shù)量級地減少執(zhí)行時間和存取磁盤次數(shù)。例如:同時執(zhí)行一串選擇運算或一量級地減少執(zhí)行時間和存取磁盤次數(shù)。例如:同時執(zhí)行一串選擇運算或一串連接運算。這樣可避免分開執(zhí)行時,造成多次掃描關(guān)系記錄的情況。串連接運算。這樣可避免分開執(zhí)行時,造成多次掃描關(guān)系記錄的情況。2.2.投影運算優(yōu)先原則投影運算優(yōu)先原則把投影運算同其前或其后的雙目運算結(jié)合起來,以避免對關(guān)系的重復(fù)掃描。把投影運算同其前或其后的雙目運算結(jié)合起來,以避免對關(guān)系的重復(fù)掃描。如有若干投影和選擇運算,并且它們都對同一個關(guān)系操作,則可以在掃描如有若干投影和選擇運算,并且它們都對同一個關(guān)系操作,則可以在掃描此關(guān)系的同時完成所有的這些運算以避免重復(fù)掃描關(guān)系。此關(guān)系的同時完成所有的這些運算以避免重復(fù)掃描關(guān)系。10.3.3 關(guān)系代數(shù)表達式優(yōu)化算法10.3 代數(shù)優(yōu)化5.5.必要的預(yù)處理必要的預(yù)處理在執(zhí)行連接在執(zhí)行連接(或乘積后跟選擇或乘積后跟選擇)運算之前,先對關(guān)系文件作一些預(yù)處理,比如排運算之前,先對關(guān)系文件作一些預(yù)處理,比如排序和建立索引,這樣會使兩個關(guān)系的連接效率高一些。序和建立索引,這樣會使兩個關(guān)系的連接效率高一些。下面根據(jù)上述的啟發(fā)式優(yōu)化策略以及關(guān)系表達式的等價交換規(guī)則,可以得到關(guān)下面根據(jù)上述的啟發(fā)式優(yōu)化策略以及關(guān)系表達式的等價交換規(guī)則,可以得到關(guān)系代數(shù)表達式的優(yōu)化算法。系代數(shù)表達式的優(yōu)化算法。算法:關(guān)系表達式的優(yōu)化。算法:關(guān)系表達式的優(yōu)化。輸入:一個關(guān)系表達式的查詢樹。輸入:一個關(guān)系表達式的查詢樹。輸出:優(yōu)化的查詢樹。輸出:優(yōu)化的查詢樹。方法:方法:(1)(1)利用選擇運算合取條件分解定律,把形如利用選擇運算合取條件分解定律,把形如 的表達式進行分解,的表達式進行分解,轉(zhuǎn)換為轉(zhuǎn)換為 。10.3 代數(shù)優(yōu)化(2)(2)對每一個選擇,利用等價交換規(guī)則盡可能把它移到樹的葉端。對每一個選擇,利用等價交換規(guī)則盡可能把它移到樹的葉端。(3)(3)對每一個投影,利用等價交換規(guī)則盡可能把它移向樹的葉端。其中,利用投對每一個投影,利用等價交換規(guī)則盡可能把它移向樹的葉端。其中,利用投影的串接定律使一些投影消失,而利用選擇與投影的交換律可把一個投影分裂影的串接定律使一些投影消失,而利用選擇與投影的交換律可把一個投影分裂為兩個,其中一個有可能被移向樹的葉端。為兩個,其中一個有可能被移向樹的葉端。(4)(4)利用等價轉(zhuǎn)換的各個規(guī)則把選擇和投影的串接合并成單個選擇,單個投影或利用等價轉(zhuǎn)換的各個規(guī)則把選擇和投影的串接合并成單個選擇,單個投影或一個選擇后跟一個投影。使多個選擇或投影能同時執(zhí)行,或在一次掃描中全部一個選擇后跟一個投影。使多個選擇或投影能同時執(zhí)行,或在一次掃描中全部完成,盡管這種交換似乎違背完成,盡管這種交換似乎違背“投影運算優(yōu)先原則投影運算優(yōu)先原則”,但這樣做效率更高。,但這樣做效率更高。(5)(5)把上述得到的語法樹的內(nèi)節(jié)點分組。每一雙目運算和它所有的直接祖先為一把上述得到的語法樹的內(nèi)節(jié)點分組。每一雙目運算和它所有的直接祖先為一組組(這些直接祖先是這些直接祖先是(運算運算);如果其后代直到葉子全是單目運算,則也將它們并;如果其后代直到葉子全是單目運算,則也將它們并進該組。但當(dāng)雙目運算是笛卡爾積,而且后面不是與它組成等值連接的選擇時,進該組。但當(dāng)雙目運算是笛卡爾積,而且后面不是與它組成等值連接的選擇時,則不能把選擇與這個雙目運算組成同一組,應(yīng)當(dāng)把選擇條件單獨分為一組。則不能把選擇與這個雙目運算組成同一組,應(yīng)當(dāng)把選擇條件單獨分為一組。主要內(nèi)容10.1 查詢處理10.3 代數(shù)優(yōu)化10.4 物理優(yōu)化10.2 查詢優(yōu)化10.5實際應(yīng)用中的查詢優(yōu)化10.4 物理優(yōu)化1.1.選擇操作的啟發(fā)式規(guī)則選擇操作的啟發(fā)式規(guī)則 (1)(1)對于小關(guān)系,使用全表順序掃描方法,即使選擇列上有索引。對于小關(guān)系,使用全表順序掃描方法,即使選擇列上有索引。對于大關(guān)系,可以采用的啟發(fā)式規(guī)則如下:對于大關(guān)系,可以采用的啟發(fā)式規(guī)則如下:(2)(2)對于選擇條件是對于選擇條件是“主碼主碼=值值”的查詢,查詢結(jié)果最多是一個元組,的查詢,查詢結(jié)果最多是一個元組,可以選擇主碼索引。一般的可以選擇主碼索引。一般的RDBMSRDBMS會自動建立主碼索引。會自動建立主碼索引。(3)(3)對于選擇條件是對于選擇條件是“非主屬性非主屬性=值值”的查詢,并且選擇列上有索引,的查詢,并且選擇列上有索引,此時需要估算查詢結(jié)果的元組數(shù)目。如果比例較小此時需要估算查詢結(jié)果的元組數(shù)目。如果比例較小(10%)(10%),可以使用索引,可以使用索引掃描方法,否則使用全表順序掃描。掃描方法,否則使用全表順序掃描。(4)(4)對于選擇條件是屬性上的非等值查詢或者范圍查詢,并且選擇列上對于選擇條件是屬性上的非等值查詢或者范圍查詢,并且選擇列上有索引,同樣要估算查詢結(jié)果的元組數(shù)目,如果比例較小有索引,同樣要估算查詢結(jié)果的元組數(shù)目,如果比例較小(10%)(62.5SELECT*FROM SC WHERE Grade 62.5 在這條語句中,如果在這條語句中,如果GradeGrade字段是字段是intint型的,則優(yōu)化器很難對其進行優(yōu)化,型的,則優(yōu)化器很難對其進行優(yōu)化,因為因為62.562.5是個是個floatfloat型的數(shù)據(jù),應(yīng)該在編程時將浮點型轉(zhuǎn)化為整型,而不是等型的數(shù)據(jù),應(yīng)該在編程時將浮點型轉(zhuǎn)化為整型,而不是等到運行時再轉(zhuǎn)化。到運行時再轉(zhuǎn)化。3.避免相關(guān)子查詢相關(guān)查詢效率不高。如果在主查詢和WHERE子句中的查詢出現(xiàn)了同一個列表簽,就會造成主查詢的列值改變后,子查詢也必須重新進行一次查詢。查詢的嵌套層次越多,查詢的效率就會越低,所以應(yīng)該避免子查詢。如果子查詢不可避免,那么就要在查詢的過程中過濾掉盡可能多的行 本章小結(jié) 查查詢詢處處理理是是數(shù)數(shù)據(jù)據(jù)庫庫管管理理的的核核心心,而而查查詢詢優(yōu)優(yōu)化化又又是是查查詢詢處處理理的的關(guān)關(guān)鍵鍵技技術(shù)術(shù)。查查詢詢優(yōu)優(yōu)化化包包括括代代數(shù)數(shù)優(yōu)優(yōu)化化技技術(shù)術(shù)和和物物理理優(yōu)優(yōu)化化技技術(shù)術(shù),而而物物理理優(yōu)優(yōu)化化又又包包括括基基于于存存取取路路徑徑的的優(yōu)優(yōu)化化技技術(shù)術(shù)和和基基于于代代價價估估算算的的優(yōu)優(yōu)化化方方法法。實實際際系系統(tǒng)統(tǒng)的的查查詢詢優(yōu)優(yōu)化化要要綜綜合合運運用用這這些些技技術(shù)。術(shù)。代代數(shù)數(shù)優(yōu)優(yōu)化化是是指指對對關(guān)關(guān)系系代代數(shù)數(shù)表表達達式式的的優(yōu)優(yōu)化化,即即按按照照一一定定的的規(guī)規(guī)則則,改改變變代代數(shù)數(shù)表表達達式式中中操操作作的的次次序序和和組組合合,從從而而提提高高查查詢詢執(zhí)執(zhí)行行的的效效率率。關(guān)關(guān)系系代代數(shù)數(shù)表表達達式式優(yōu)優(yōu)化化規(guī)規(guī)則則主主要要有有“優(yōu)優(yōu)先先執(zhí)執(zhí)行行選選擇擇”、“優(yōu)優(yōu)先先執(zhí)執(zhí)行行投投影影”、“笛笛卡卡爾爾積積合合并并”和和“提提取取公公共共表表達達式式”等等?;谟诖娲嫒∪÷仿窂綇降牡膬?yōu)優(yōu)化化是是指指存存取取路路徑徑和和底底層層操操作作算算法法的的選選擇擇和和優(yōu)優(yōu)化化?;谟趩l(fā)發(fā)式式規(guī)規(guī)則則的的存存取取路路徑徑優(yōu)優(yōu)化化是是定定性性的的選選擇擇,適適合合解解釋釋系系統(tǒng)統(tǒng)的的執(zhí)執(zhí)行行。代代價價估估算算的的優(yōu)優(yōu)化化是是對對多多個個查查詢詢策策略略的的優(yōu)優(yōu)化化選選擇擇,代代價價估估算算優(yōu)優(yōu)化化開開銷銷較較大大,而而且且產(chǎn)產(chǎn)生生所所有有的的執(zhí)執(zhí)行行策策略略也也是是不不可可能能的的,因因此此將將產(chǎn)產(chǎn)生生的的執(zhí)執(zhí)行行策策略略的的數(shù)數(shù)目目保保持持在在一一定定范范圍圍內(nèi)內(nèi)才才是是較較合合理理的的。在在編編譯譯模模式式下下查查詢詢優(yōu)優(yōu)化化后后,執(zhí)執(zhí)行行查查詢詢的的代代碼碼被被存存儲儲起起來來,稍稍后后運運行行。使使用用代代價價估估算算優(yōu)優(yōu)化化方方法法需需要要能能夠夠準準確確地地估估算算查查詢詢代代價價才才能能比比較較不不同同的的查查詢詢策策略略,比比較較適適合合在在編編譯譯模模式式下下使使用用。查查詢詢優(yōu)優(yōu)化化器器應(yīng)應(yīng)該該綜綜合合各各種種因因素素來來確確定最適合最合理的優(yōu)化方案。定最適合最合理的優(yōu)化方案。思 考 練 習(xí)l1.1.試述查詢優(yōu)化在關(guān)系數(shù)據(jù)庫系統(tǒng)中的必要性和可行性。試述查詢優(yōu)化在關(guān)系數(shù)據(jù)庫系統(tǒng)中的必要性和可行性。l2.2.試述查詢優(yōu)化的一般準則。試述查詢優(yōu)化的一般準則。l3.3.試述查詢優(yōu)化的一般步驟。試述查詢優(yōu)化的一般步驟。l4.4.在數(shù)據(jù)庫在數(shù)據(jù)庫(Student(Student,SCSC,Course)Course),用戶需要查詢,用戶需要查詢“女同學(xué)選修課女同學(xué)選修課程的課程名稱和授課教師名程的課程名稱和授課教師名”l 試寫出該查詢的關(guān)系代數(shù)表達式。試寫出該查詢的關(guān)系代數(shù)表達式。l 試畫出作為查詢表達式的語法樹。試畫出作為查詢表達式的語法樹。l 對語法樹進行優(yōu)化,并畫出優(yōu)化后的語法樹。對語法樹進行優(yōu)化,并畫出優(yōu)化后的語法樹。l5.5.適用于選擇操作的啟發(fā)式規(guī)則有哪些?適用于選擇操作的啟發(fā)式規(guī)則有哪些?l6.6.總結(jié)適用于連接操作的啟發(fā)式原則??偨Y(jié)適用于連接操作的啟發(fā)式原則。l7.7.試述影響代價估算的因素有哪些?試述影響代價估算的因素有哪些?第11章數(shù)據(jù)庫管理系統(tǒng)本章學(xué)習(xí)目標(biāo)l理解數(shù)據(jù)庫管理系統(tǒng)的作用及基本功能。理解數(shù)據(jù)庫管理系統(tǒng)的作用及基本功能。l理解數(shù)據(jù)庫管理系統(tǒng)的層次結(jié)構(gòu),了解各層的作用和主要理解數(shù)據(jù)庫管理系統(tǒng)的層次結(jié)構(gòu),了解各層的作用和主要任務(wù)。任務(wù)。l了解數(shù)據(jù)庫管理系統(tǒng)的執(zhí)行過程。了解數(shù)據(jù)庫管理系統(tǒng)的執(zhí)行過程。l了解幾款主流商用數(shù)據(jù)庫管理系統(tǒng)。了解幾款主流商用數(shù)據(jù)庫管理系統(tǒng)。本章概述數(shù)據(jù)庫管理系統(tǒng)是一種功能強大的用于操縱和管理數(shù)據(jù)的軟件。數(shù)據(jù)庫管理系統(tǒng)是一種功能強大的用于操縱和管理數(shù)據(jù)的軟件。本章將進一步詳細討論數(shù)據(jù)庫管理系統(tǒng)的功能,介紹數(shù)據(jù)庫管理系統(tǒng)本章將進一步詳細討論數(shù)據(jù)庫管理系統(tǒng)的功能,介紹數(shù)據(jù)庫管理系統(tǒng)的層次結(jié)構(gòu),包括應(yīng)用層、語言翻譯處理層、數(shù)據(jù)存取層、數(shù)據(jù)存儲的層次結(jié)構(gòu),包括應(yīng)用層、語言翻譯處理層、數(shù)據(jù)存取層、數(shù)據(jù)存儲層、操作系統(tǒng)層,討論各個層次的主要任務(wù)和功能,舉例說明數(shù)據(jù)庫層、操作系統(tǒng)層,討論各個層次的主要任務(wù)和功能,舉例說明數(shù)據(jù)庫管理系統(tǒng)的執(zhí)行過程。最后簡單介紹幾款目前主流商用數(shù)據(jù)庫管理系管理系統(tǒng)的執(zhí)行過程。最后簡單介紹幾款目前主流商用數(shù)據(jù)庫管理系統(tǒng)。統(tǒng)。主要內(nèi)容11.1 DBMS的基本功能11.3 主流商用DBMS介紹11.2 DBMS的系統(tǒng)結(jié)構(gòu)主要內(nèi)容11.1 DBMS的基本功能11.3 主流商用DBMS介紹11.2 DBMS的系統(tǒng)結(jié)構(gòu)11.1 DBMS的基本功能不同的數(shù)據(jù)庫管理系統(tǒng)在功能和性能上有一定的差異,但一般擁有以下不同的數(shù)據(jù)庫管理系統(tǒng)在功能和性能上有一定的差異,但一般擁有以下基本的功能?;镜墓δ堋數(shù)據(jù)庫的定義和創(chuàng)建數(shù)據(jù)庫的定義和創(chuàng)建DBMSDBMS提供數(shù)據(jù)定義語言提供數(shù)據(jù)定義語言(DDL)(DDL)定義和創(chuàng)建數(shù)據(jù)庫模式、外模式、內(nèi)模式等定義和創(chuàng)建數(shù)據(jù)庫模式、外模式、內(nèi)模式等數(shù)據(jù)庫對象。在關(guān)系數(shù)據(jù)庫中就是建立數(shù)據(jù)庫數(shù)據(jù)庫對象。在關(guān)系數(shù)據(jù)庫中就是建立數(shù)據(jù)庫(或或Schema)Schema)、表、視圖、索、表、視圖、索引等。另外還創(chuàng)建用戶、安全保密定義引等。另外還創(chuàng)建用戶、安全保密定義(如用戶口令、級別、角色、存取權(quán)如用戶口令、級別、角色、存取權(quán)限限)、數(shù)據(jù)庫的完整性定義。關(guān)于數(shù)據(jù)庫的定義存儲在數(shù)據(jù)字典中,是、數(shù)據(jù)庫的完整性定義。關(guān)于數(shù)據(jù)庫的定義存儲在數(shù)據(jù)字典中,是DBMSDBMS運行的基本依據(jù)。運行的基本依據(jù)。數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(Database Management System)(Database Management System)是一種建立在操是一種建立在操作系統(tǒng)之上,位于用戶和操作系統(tǒng)之間,用于操縱和管理數(shù)據(jù)庫的作系統(tǒng)之上,位于用戶和操作系統(tǒng)之間,用于操縱和管理數(shù)據(jù)庫的大型軟件,簡稱大型軟件,簡稱DBMSDBMS。它對數(shù)據(jù)庫進行統(tǒng)一的管理和控制,以保證。它對數(shù)據(jù)庫進行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫的安全性和完整性。它提供了數(shù)據(jù)庫系統(tǒng)的用戶接口,用戶數(shù)據(jù)庫的安全性和完整性。它提供了數(shù)據(jù)庫系統(tǒng)的用戶接口,用戶通過它訪問數(shù)據(jù)庫中的數(shù)據(jù),數(shù)據(jù)庫管理員也通過它進行數(shù)據(jù)庫的通過它訪問數(shù)據(jù)庫中的數(shù)據(jù),數(shù)據(jù)庫管理員也通過它進行數(shù)據(jù)庫的維護工作。維護工作。11.1 DBMS的基本功能l數(shù)據(jù)組織、存儲和管理數(shù)據(jù)組織、存儲和管理DBMSDBMS要分類組織、存儲和管理各種數(shù)據(jù),包括數(shù)據(jù)字典、用戶數(shù)據(jù)、存取路徑要分類組織、存儲和管理各種數(shù)據(jù),包括數(shù)據(jù)字典、用戶數(shù)據(jù)、存取路徑等。等。DBMSDBMS要確定以何種文件結(jié)構(gòu)和存取方式在存儲器上組織這些數(shù)據(jù),如何實現(xiàn)要確定以何種文件結(jié)構(gòu)和存取方式在存儲器上組織這些數(shù)據(jù),如何實現(xiàn)數(shù)據(jù)之間的聯(lián)系。數(shù)據(jù)組織和存儲的基本目標(biāo)是提高存儲空間利用率和方便存取,數(shù)據(jù)之間的聯(lián)系。數(shù)據(jù)組織和存儲的基本目標(biāo)是提高存儲空間利用率和方便存取,提供多種存取方法提供多種存取方法(如索引查找、如索引查找、HashHash查找、順序查找等查找、順序查找等)提高存取效率。提高存取效率。l數(shù)據(jù)庫的操作數(shù)據(jù)庫的操作DBMSDBMS提供數(shù)據(jù)操縱語言提供數(shù)據(jù)操縱語言(DML)(DML)實現(xiàn)對數(shù)據(jù)的操作,包括:查詢、插入、刪除和更實現(xiàn)對數(shù)據(jù)的操作,包括:查詢、插入、刪除和更新。一個好的新。一個好的DBMSDBMS應(yīng)提供功能強大易學(xué)易用的應(yīng)提供功能強大易學(xué)易用的DMLDML、便捷的操作方式和高效的數(shù)據(jù)、便捷的操作方式和高效的數(shù)據(jù)存取機制。存取機制。l數(shù)據(jù)庫的保護功能數(shù)據(jù)庫的保護功能DBMSDBMS對數(shù)據(jù)庫的保護主要通過四個方面實現(xiàn):對數(shù)據(jù)庫的保護主要通過四個方面實現(xiàn):1)1)數(shù)據(jù)庫的恢復(fù)。在數(shù)據(jù)庫被破數(shù)據(jù)庫的恢復(fù)。在數(shù)據(jù)庫被破壞或數(shù)據(jù)不正確時,系統(tǒng)有能力把數(shù)據(jù)庫恢復(fù)到正確的狀態(tài)。壞或數(shù)據(jù)不正確時,系統(tǒng)有能力把數(shù)據(jù)庫恢復(fù)到正確的狀態(tài)。2)2)數(shù)據(jù)庫的并發(fā)控數(shù)據(jù)庫的并發(fā)控制。在多個用戶同時對同一個數(shù)據(jù)進行操作時,系統(tǒng)應(yīng)能加以控制,防止破壞制。在多個用戶同時對同一個數(shù)據(jù)進行操作時,系統(tǒng)應(yīng)能加以控制,防止破壞DBDB中的數(shù)據(jù)。中的數(shù)據(jù)。3)3)數(shù)據(jù)完整性控制。保證數(shù)據(jù)庫中數(shù)據(jù)及語義的正確性和有效性,防數(shù)據(jù)完整性控制。保證數(shù)據(jù)庫中數(shù)據(jù)及語義的正確性和有效性,防止任何對數(shù)據(jù)造成錯誤的操作。止任何對數(shù)據(jù)造成錯誤的操作。4)4)數(shù)據(jù)安全性控制。防止未經(jīng)授權(quán)的用戶存取數(shù)數(shù)據(jù)安全性控制。防止未經(jīng)授權(quán)的用戶存取數(shù)據(jù)庫中的數(shù)據(jù),以避免數(shù)據(jù)的泄露、更改或破壞。據(jù)庫中的數(shù)據(jù),以避免數(shù)據(jù)的泄露、更改或破壞。11.1 DBMS的基本功能l數(shù)據(jù)庫的維護數(shù)據(jù)庫的維護數(shù)據(jù)庫的維護包括數(shù)據(jù)庫的數(shù)據(jù)載入和轉(zhuǎn)換、數(shù)據(jù)庫的轉(zhuǎn)儲和恢復(fù)、數(shù)據(jù)庫的數(shù)據(jù)庫的維護包括數(shù)據(jù)庫的數(shù)據(jù)載入和轉(zhuǎn)換、數(shù)據(jù)庫的轉(zhuǎn)儲和恢復(fù)、數(shù)據(jù)庫的改組以及性能監(jiān)控等功能。改組以及性能監(jiān)控等功能。l其他功能其他功能首先包括首先包括DBMSDBMS與網(wǎng)絡(luò)中其他軟件系統(tǒng)的通信功能。例如與網(wǎng)絡(luò)中其他軟件系統(tǒng)的通信功能。例如DBMSDBMS之間或之間或DBMSDBMS和文件和文件系統(tǒng)之間的數(shù)據(jù)轉(zhuǎn)換功能,異構(gòu)數(shù)據(jù)庫之間的互訪和互操作功能等。此外,系統(tǒng)之間的數(shù)據(jù)轉(zhuǎn)換功能,異構(gòu)數(shù)據(jù)庫之間的互訪和互操作功能等。此外,DBMSDBMS要不斷發(fā)展新的數(shù)據(jù)管理技術(shù),例如要不斷發(fā)展新的數(shù)據(jù)管理技術(shù),例如XMLXML數(shù)據(jù)、流數(shù)據(jù)、空間數(shù)據(jù)、多媒體數(shù)據(jù)等。數(shù)據(jù)、流數(shù)據(jù)、空間數(shù)據(jù)、多媒體數(shù)據(jù)等。與操作系統(tǒng)、編譯系統(tǒng)等系統(tǒng)軟件相比,與操作系統(tǒng)、編譯系統(tǒng)等系統(tǒng)軟件相比,DBMSDBMS跨度大、功能多,從最底層的存跨度大、功能多,從最底層的存儲管理、緩沖區(qū)管理、數(shù)據(jù)存取操作、語言處理到最外層的用戶接口、數(shù)據(jù)表示、儲管理、緩沖區(qū)管理、數(shù)據(jù)存取操作、語言處理到最外層的用戶接口、數(shù)據(jù)表示、開發(fā)環(huán)境的支持都是開發(fā)環(huán)境的支持都是DBMSDBMS要實現(xiàn)的功能。因此,要實現(xiàn)的功能。因此,DBMSDBMS的實現(xiàn),既要充分利用計算的實現(xiàn),既要充分利用計算機硬件、操作系統(tǒng)、編譯系統(tǒng)和網(wǎng)絡(luò)通信等技術(shù),又要強調(diào)對海量數(shù)據(jù)存儲、管機硬件、操作系統(tǒng)、編譯系統(tǒng)和網(wǎng)絡(luò)通信等技術(shù),又要強調(diào)對海量數(shù)據(jù)存儲、管理和處理的支持,并保證數(shù)據(jù)存取和事務(wù)運行的高效率。理和處理的支持,并保證數(shù)據(jù)存取和事務(wù)運行的高效率。主要內(nèi)容11.1 DBMS的基本功能11.2 DBMS的系統(tǒng)結(jié)構(gòu)11.3 主流商用DBMS介紹11.2 DBMS的系統(tǒng)結(jié)構(gòu)11.2.1 DBMS11.2.1 DBMS的層次結(jié)構(gòu)的層次結(jié)構(gòu)同操作系統(tǒng)一樣,可以將同操作系統(tǒng)一樣,可以將DBMSDBMS劃分為若干層次,以便更清晰地了解劃分為若干層次,以便更清晰地了解DBMSDBMS,有助,有助于于DBMSDBMS的設(shè)計和維護。根據(jù)處理對象的不同,數(shù)據(jù)庫管理系統(tǒng)的層次結(jié)構(gòu)如圖的設(shè)計和維護。根據(jù)處理對象的不同,數(shù)據(jù)庫管理系統(tǒng)的層次結(jié)構(gòu)如圖11-11-1 1所示,由高級到低級依次為應(yīng)用層、語言處理層、數(shù)據(jù)存取層和數(shù)據(jù)存儲層。下所示,由高級到低級依次為應(yīng)用層、語言處理層、數(shù)據(jù)存取層和數(shù)據(jù)存儲層。下面依次介紹各層的主要任務(wù)。面依次介紹各層的主要任務(wù)。1.1.應(yīng)用層應(yīng)用層應(yīng)用層是應(yīng)用層是DBMSDBMS與終端用戶和應(yīng)用程序的界面層,位于與終端用戶和應(yīng)用程序的界面層,位于DBMSDBMS核心之外,處理各種核心之外,處理各種數(shù)據(jù)庫應(yīng)用。例如用戶通過應(yīng)用接口發(fā)出的查詢要求、事務(wù)請求等。數(shù)據(jù)庫應(yīng)用。例如用戶通過應(yīng)用接口發(fā)出的查詢要求、事務(wù)請求等。2.2.語言處理層語言處理層語言處理層主要是處理數(shù)據(jù)庫語言,如語言處理層主要是處理數(shù)據(jù)庫語言,如SQLSQL。語言處理層對數(shù)據(jù)庫語言的各類語。語言處理層對數(shù)據(jù)庫語言的各類語句進行語法分析、視圖轉(zhuǎn)換、安全性檢查、完整性檢查、查詢優(yōu)化等,通過對下句進行語法分析、視圖轉(zhuǎn)換、安全性檢查、完整性檢查、查詢優(yōu)化等,通過對下層基本模塊的調(diào)用,生成可執(zhí)行代碼。該層涉及的主要數(shù)據(jù)結(jié)構(gòu)為元組、關(guān)系、層基本模塊的調(diào)用,生成可執(zhí)行代碼。該層涉及的主要數(shù)據(jù)結(jié)構(gòu)為元組、關(guān)系、視圖等邏輯數(shù)據(jù)結(jié)構(gòu)。視圖等邏輯數(shù)據(jù)結(jié)構(gòu)。11.2 DBMS的系統(tǒng)結(jié)構(gòu)RDBMSRDBMS支持用戶采用多種形式的語言編寫數(shù)據(jù)庫語句,例如交互式語言支持用戶采用多種形式的語言編寫數(shù)據(jù)庫語句,例如交互式語言(如如SQL)SQL)、嵌入式語言、嵌入式語言(如如ESQL)ESQL)、過程化語言、過程化語言(如如PL/SQLPL/SQL和存儲過程和存儲過程)。語言處理層的任務(wù)。語言處理層的任務(wù)就是將用戶以不同形式提交的數(shù)據(jù)庫語句轉(zhuǎn)換成對就是將用戶以不同形式提交的數(shù)據(jù)庫語句轉(zhuǎn)換成對RDBMSRDBMS內(nèi)存可執(zhí)行的基本存取模內(nèi)存可執(zhí)行的基本存取模塊的調(diào)用序列。塊的調(diào)用序列。11.2 DBMS的系統(tǒng)結(jié)構(gòu)通常,數(shù)據(jù)庫語言由通常,數(shù)據(jù)庫語言由DDL(Data Definition Language)DDL(Data Definition Language)、DCL(Data Control DCL(Data Control Language)Language)和和DML(Data Manipulation Language)DML(Data Manipulation Language)三部分語句組成。三部分語句組成。DBMSDBMS對不同語對不同語句的處理方式也不同。句的處理方式也不同。DDLDDL負責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取模式。對于負責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取模式。對于DDLDDL語句的處理相對簡單,語句的處理相對簡單,首先首先DDLDDL語句翻譯成內(nèi)部表示,然后存儲在數(shù)據(jù)字典中。其中,數(shù)據(jù)字典是數(shù)據(jù)庫語句翻譯成內(nèi)部表示,然后存儲在數(shù)據(jù)字典中。其中,數(shù)據(jù)字典是數(shù)據(jù)庫的重要組成部分,它包括用戶表、屬性表、試圖表、用戶權(quán)限表等重要內(nèi)容,是的重要組成部分,它包括用戶表、屬性表、試圖表、用戶權(quán)限表等重要內(nèi)容,是執(zhí)行處理執(zhí)行處理DMLDML語句、數(shù)據(jù)庫管理系統(tǒng)運行管理的基本依據(jù)。語句、數(shù)據(jù)庫管理系統(tǒng)運行管理的基本依據(jù)。DCLDCL負責(zé)數(shù)據(jù)完整性和安全性的定義與檢查,同時完成并發(fā)控制和故障恢復(fù)等職負責(zé)數(shù)據(jù)完整性和安全性的定義與檢查,同時完成并發(fā)控制和故障恢復(fù)等職能。對于能。對于DCLDCL語句,如完整性約束的定義、用戶存取權(quán)限的定義等的處理與語句,如完整性約束的定義、用戶存取權(quán)限的定義等的處理與DDLDDL一一致。致。DMLDML負責(zé)數(shù)據(jù)的操縱處理,例如增加、刪除、查詢和修改等。對負責(zé)數(shù)據(jù)的操縱處理,例如增加、刪除、查詢和修改等。對DMLDML語句的處理語句的處理過程比較復(fù)雜。首先,通過對過程比較復(fù)雜。首先,通過對DMLDML語句的語法和詞法分析,將便于用戶記憶和使用語句的語法和詞法分析,將便于用戶記憶和使用的外部關(guān)系名、屬性名轉(zhuǎn)換為整齊劃一的內(nèi)部名,符號名轉(zhuǎn)換時需存取數(shù)據(jù)字典。的外部關(guān)系名、屬性名轉(zhuǎn)換為整齊劃一的內(nèi)部名,符號名轉(zhuǎn)換時需存取數(shù)據(jù)字典。詞法和語法分析通過后生成語法分析樹,然后根據(jù)數(shù)據(jù)字典中的內(nèi)容進行查詢檢詞法和語法分析通過后生成語法分析樹,然后根據(jù)數(shù)據(jù)字典中的內(nèi)容進行查詢檢查和查詢優(yōu)化,審核用戶的存取權(quán)限和完整性檢查。查和查詢優(yōu)化,審核用戶的存取權(quán)限和完整性檢查。11.2 DBMS的系統(tǒng)結(jié)構(gòu)3.3.數(shù)據(jù)存取層數(shù)據(jù)存取層數(shù)據(jù)存取層處理單個元組,將上層集合操作轉(zhuǎn)換成單元組操作。完成掃描、排數(shù)據(jù)存取層處理單個元組,將上層集合操作轉(zhuǎn)換成單元組操作。完成掃描、排序、元組的查找、插入、更新、刪除等基本操作,同時包括數(shù)據(jù)記錄的存取、封序、元組的查找、插入、更新、刪除等基本操作,同時包括數(shù)據(jù)記錄的存取、封鎖、存取路徑維護、并發(fā)控制、事務(wù)管理和恢復(fù)等工作。該層主要涉及的數(shù)據(jù)結(jié)鎖、存取路徑維護、并發(fā)控制、事務(wù)管理和恢復(fù)等工作。該層主要涉及的數(shù)據(jù)結(jié)構(gòu)為邏輯數(shù)據(jù)記錄、邏輯塊、邏輯存取路徑。構(gòu)為邏輯數(shù)據(jù)記錄、邏輯塊、邏輯存取路徑。在實際的在實際的DBMSDBMS中,數(shù)據(jù)存取層功能是由多個功能子系統(tǒng)來完成的。它主要包括中,數(shù)據(jù)存取層功能是由多個功能子系統(tǒng)來完成的。它主要包括以下功能子系統(tǒng)。以下功能子系統(tǒng)。l存儲子系統(tǒng),用于保存數(shù)據(jù)的存取原語。存儲子系統(tǒng),用于保存數(shù)據(jù)的存取原語。l事物管理子系統(tǒng),提供定義和控制事物的操作。事物管理子系統(tǒng),提供定義和控制事物的操作。l信息控制管理子系統(tǒng),提供對數(shù)據(jù)字典中說明信息的讀取、增加、修改和刪除信息控制管理子系統(tǒng),提供對數(shù)據(jù)字典中說明信息的讀取、增加、修改和刪除操作。操作。l排序排序/合并子系統(tǒng),根據(jù)用戶要求輸出有序結(jié)果、刪除重復(fù)值、加速關(guān)系運算的合并子系統(tǒng),根據(jù)用戶要求輸出有序結(jié)果、刪除重復(fù)值、加速關(guān)系運算的處理過程,通常要對元組進行重新排序和合并。處理過程,通常要對元組進行重新排序和合并。l存取路徑維護子系統(tǒng),提供數(shù)據(jù)執(zhí)行插入、刪除、修改操作時對相應(yīng)存儲路徑存取路徑維護子系統(tǒng),提供數(shù)據(jù)執(zhí)行插入、刪除、修改操作時對相應(yīng)存儲路徑的維護。的維護。l封鎖子系統(tǒng),用于完成并發(fā)控制功能。封鎖子系統(tǒng),用于完成并發(fā)控制功能。l日志管理子系統(tǒng),除了記錄系統(tǒng)運行日志外,還和事務(wù)管理子系統(tǒng)配合來執(zhí)行日志管理子系統(tǒng),除了記錄系統(tǒng)運行日志外,還和事務(wù)管理子系統(tǒng)配合來執(zhí)行恢復(fù)任務(wù),完成事務(wù)和數(shù)據(jù)庫的恢復(fù)工作?;謴?fù)任務(wù),完成事務(wù)和數(shù)據(jù)庫的恢復(fù)工作。11.2 DBMS的系統(tǒng)結(jié)構(gòu)4.4.數(shù)據(jù)存儲層數(shù)據(jù)存儲層數(shù)據(jù)存儲層的處理對象是數(shù)據(jù)頁和系統(tǒng)緩沖區(qū),執(zhí)行文件的邏輯打開、關(guān)閉、數(shù)據(jù)存儲層的處理對象是數(shù)據(jù)頁和系統(tǒng)緩沖區(qū),執(zhí)行文件的邏輯打開、關(guān)閉、讀頁、寫頁、緩沖區(qū)讀和寫、頁面淘汰等操作,包括緩沖區(qū)管理、內(nèi)外存交換、讀頁、寫頁、緩沖區(qū)讀和寫、頁面淘汰等操作,包括緩沖區(qū)管理、內(nèi)外存交換、外存的數(shù)據(jù)管理等。該層涉及的數(shù)據(jù)結(jié)構(gòu)為存儲記錄、塊、塊組成的系統(tǒng)緩沖區(qū)。外存的數(shù)據(jù)管理等。該層涉及的數(shù)據(jù)結(jié)構(gòu)為存儲記錄、塊、塊組成的系統(tǒng)緩沖區(qū)。數(shù)據(jù)存儲層中系統(tǒng)緩沖區(qū)的管理十分重要,系統(tǒng)緩沖區(qū)具有兩方面的作用。首數(shù)據(jù)存儲層中系統(tǒng)緩沖區(qū)的管理十分重要,系統(tǒng)緩沖區(qū)具有兩方面的作用。首先,提供設(shè)備獨立性。它把存儲層以上各系統(tǒng)成分和真實的外存設(shè)備隔離,因此先,提供設(shè)備獨立性。它把存儲層以上各系統(tǒng)成分和真實的外存設(shè)備隔離,因此外存設(shè)備的變化不會影響其他系統(tǒng)成分。其次,提高存取效率。外存設(shè)備的變化不會影響其他系統(tǒng)成分。其次,提高存取效率。RDBMSRDBMS利用緩沖區(qū)利用緩沖區(qū)存儲數(shù)據(jù),當(dāng)存取層讀取數(shù)據(jù)時存儲子系統(tǒng)首先在系統(tǒng)緩沖區(qū)中查找,當(dāng)數(shù)據(jù)不存儲數(shù)據(jù),當(dāng)存取層讀取數(shù)據(jù)時存儲子系統(tǒng)首先在系統(tǒng)緩沖區(qū)中查找,當(dāng)數(shù)據(jù)不在緩沖區(qū)時才從外存讀取該數(shù)據(jù)所在的頁面,這樣就減少內(nèi)外存數(shù)據(jù)頁交換次數(shù),在緩沖區(qū)時才從外存讀取該數(shù)據(jù)所在的頁面,這樣就減少內(nèi)外存數(shù)據(jù)頁交換次數(shù),提高存取效率。提高存取效率。操作系統(tǒng)是操作系統(tǒng)是DBMSDBMS的基礎(chǔ),它處理的對象是數(shù)據(jù)文件的物理塊。執(zhí)行物理文件的的基礎(chǔ),它處理的對象是數(shù)據(jù)文件的物理塊。執(zhí)行物理文件的讀寫操作,保證讀寫操作,保證DBMSDBMS對數(shù)據(jù)邏輯上的讀寫真實地映射到物理文件上。操作系統(tǒng)提對數(shù)據(jù)邏輯上的讀寫真實地映射到物理文件上。操作系統(tǒng)提供的存取原語和基本的存取方法通常作為和供的存取原語和基本的存取方法通常作為和DBMSDBMS存儲層的接口。存儲層的接口。上述的上述的DBMSDBMS層次結(jié)構(gòu)劃分的思想具有普遍性。當(dāng)然具體系統(tǒng)在劃分細節(jié)上會是層次結(jié)構(gòu)劃分的思想具有普遍性。當(dāng)然具體系統(tǒng)在劃分細節(jié)上會是多種多樣。多種多樣。11.2 DBMS的系統(tǒng)結(jié)構(gòu)11.2.2 DBMS11.2.2 DBMS的運行過程的運行過程DBMSDBMS是一個復(fù)雜有序的系統(tǒng),下面介紹用戶是一個復(fù)雜有序的系統(tǒng),下面介紹用戶/應(yīng)用程序通過應(yīng)用程序通過DBMSDBMS來讀取數(shù)據(jù)庫中來讀取數(shù)據(jù)庫中數(shù)據(jù)的過程。圖數(shù)據(jù)的過程。圖11-211-2展示了展示了DBMSDBMS執(zhí)行查詢的過程。執(zhí)行查詢的過程。11.2 DBMS的系統(tǒng)結(jié)構(gòu)(1)(1)用戶通過應(yīng)用程序向用戶通過應(yīng)用程序向DBMSDBMS發(fā)出調(diào)用數(shù)據(jù)庫數(shù)據(jù)的命令,如發(fā)出調(diào)用數(shù)據(jù)庫數(shù)據(jù)的命令,如SELECTSELECT命令。命令。(2)DBMS(2)DBMS對命令進行語法檢查、語義檢查、用戶存取權(quán)限檢查,決定是否執(zhí)行對命令進行語法檢查、語義檢查、用戶存取權(quán)限檢查,決定是否執(zhí)行該命令。具體的過程是:該命令。具體的過程是:DBMSDBMS讀取數(shù)據(jù)字典,檢查是否存在該關(guān)系及相應(yīng)的字段,讀取數(shù)據(jù)字典,檢查是否存在該關(guān)系及相應(yīng)的字段,該用戶是否能讀取它們,是否擁有讀取它們的權(quán)限。確認語義正確、存取權(quán)限合該用戶是否能讀取它們,是否擁有讀取它們的權(quán)限。確認語義正確、存取權(quán)限合法后才執(zhí)行該命令,否則拒絕執(zhí)行,并返回錯誤信息。法后才執(zhí)行該命令,否則拒絕執(zhí)行,并返回錯誤信息。(3)DBMS(3)DBMS執(zhí)行查詢優(yōu)化。優(yōu)化器根據(jù)數(shù)據(jù)字典中的信息進行優(yōu)化,并把命令轉(zhuǎn)執(zhí)行查詢優(yōu)化。優(yōu)化器根據(jù)數(shù)據(jù)字典中的信息進行優(yōu)化,并把命令轉(zhuǎn)換為一串單記錄的存取操作序列。換為一串單記錄的存取操作序列。(4)DBMS(4)DBMS執(zhí)行存取操作序列執(zhí)行存取操作序列(反復(fù)執(zhí)行以下各步,直至結(jié)束反復(fù)執(zhí)行以下各步,直至結(jié)束)。(5)DBMS(5)DBMS首先在緩沖區(qū)內(nèi)查找記錄,若找到滿足要求的記錄就轉(zhuǎn)到首先在緩沖區(qū)內(nèi)查找記錄,若找到滿足要求的記錄就轉(zhuǎn)到1010,否則轉(zhuǎn),否則轉(zhuǎn)到到6 6。(6)DBMS(6)DBMS查看存儲模式,決定從哪個文件、采取什么方式讀取哪個物理記錄。查看存儲模式,決定從哪個文件、采取什么方式讀取哪個物理記錄。(7)DBMS(7)DBMS根據(jù)根據(jù)6 6的結(jié)果,向操作系統(tǒng)發(fā)出讀取記錄的命令。的結(jié)果,向操作系統(tǒng)發(fā)出讀取記錄的命令。(8)(8)操作系統(tǒng)執(zhí)行讀取數(shù)據(jù)的命令。操作系統(tǒng)執(zhí)行讀取數(shù)據(jù)的命令。(9)(9)操作系統(tǒng)將數(shù)據(jù)從數(shù)據(jù)庫的存儲區(qū)送到系統(tǒng)緩沖區(qū)。操作系統(tǒng)將數(shù)據(jù)從數(shù)據(jù)庫的存儲區(qū)送到系統(tǒng)緩沖區(qū)。(10)DBMS(10)DBMS根據(jù)用戶命令和數(shù)據(jù)字典的內(nèi)容導(dǎo)出用戶所要讀取的數(shù)據(jù)格式。根據(jù)用戶命令和數(shù)據(jù)字典的內(nèi)容導(dǎo)出用戶所要讀取的數(shù)據(jù)格式。(11)DBMS(11)DBMS將數(shù)據(jù)記錄從系統(tǒng)緩沖區(qū)傳送到應(yīng)用程序的用戶工作區(qū)。將數(shù)據(jù)記錄從系統(tǒng)緩沖區(qū)傳送到應(yīng)用程序的用戶工作區(qū)。(12)DBMS(12)DBMS將執(zhí)行狀態(tài)信息,如成功讀取或失敗的錯誤提示、例外狀態(tài)信息等返將執(zhí)行狀態(tài)信息,如成功讀取或失敗的錯誤提示、例外狀態(tài)信息等返回給應(yīng)用程序?;亟o應(yīng)用程序。11.2 DBMS的系統(tǒng)結(jié)構(gòu)對照在對照在11.2.111.2.1節(jié)中給出的節(jié)中給出的DBMSDBMS層次結(jié)構(gòu),可以將以上步驟做如下對應(yīng):層次結(jié)構(gòu),可以將以上步驟做如下對應(yīng):應(yīng)用層執(zhí)行第應(yīng)用層執(zhí)行第(1)(1)步。步。語言處理層執(zhí)行第語言處理層執(zhí)行第(2)(2)、(3)(3)步驟。步驟。數(shù)據(jù)存取層執(zhí)行第數(shù)據(jù)存取層執(zhí)行第(4)(4)、(10)(10)、(11)(11)、(12)(12)步驟。步驟。數(shù)據(jù)存儲層執(zhí)行第數(shù)據(jù)存儲層執(zhí)行第(5)(5)、(6)(6)、(7)(7)步驟。步驟。操作系統(tǒng)執(zhí)行第操作系統(tǒng)執(zhí)行第(8)(8)、(9)(9)步驟。步驟。對其他一些操作,如插入、刪除、修改,其過程和上述讀一個記錄是類似的。對其他一些操作,如插入、刪除、修改,其過程和上述讀一個記錄是類似的。DBMSDBMS根據(jù)用戶要求完成對數(shù)據(jù)庫的操作,需要整個根據(jù)用戶要求完成對數(shù)據(jù)庫的操作,需要整個DBMSDBMS各層模塊的互相配合來各層模塊的互相配合來共同完成。共同完成。主要內(nèi)容11.1 DBMS的基本功能11.3 主流商用DBMS介紹11.2 DBMS的系統(tǒng)結(jié)構(gòu)11.3 主流商用DBMS介紹目前主流的數(shù)據(jù)庫管理系統(tǒng)都是關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由于其數(shù)據(jù)結(jié)構(gòu)簡單,目前主流的數(shù)據(jù)庫管理系統(tǒng)都是關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由于其數(shù)據(jù)結(jié)構(gòu)簡單,提供了非過程化的查詢語言,并且有一套理論支持關(guān)系數(shù)據(jù)庫的設(shè)計,所以得到了提供了非過程化的查詢語言,并且有一套理論支持關(guān)系數(shù)據(jù)庫的設(shè)計,所以得到了廣泛的應(yīng)用。下面介紹幾種目前主流的數(shù)據(jù)庫管理系統(tǒng)。廣泛的應(yīng)用。下面介紹幾種目前主流的數(shù)據(jù)庫管理系統(tǒng)。11.3.1 Oracle11.3.1 OracleOracleOracle是由專門從事研究、開發(fā)關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的是由專門從事研究、開發(fā)關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的OracleOracle公司推出的公司推出的DBMSDBMS。OracleOracle可在幾十種機型可在幾十種機型(包括大、小、微機包括大、小、微機)、多種操作系統(tǒng)、多種操作系統(tǒng)(如如MVSMVS、VMSVMS、UNIXUNIX、LINUXLINUX、MacintoshMacintosh、DOSDOS等等)下工作。下工作。OracleOracle作為一個最早商品化的關(guān)系型作為一個最早商品化的關(guān)系型DBMSDBMS,是比較典型的完整系統(tǒng),具有能存儲大量數(shù)據(jù)、定義和操縱數(shù)據(jù)、并發(fā)控制、安全是比較典型的完整系統(tǒng),具有能存儲大量數(shù)據(jù)、定義和操縱數(shù)據(jù)、并發(fā)控制、安全性控制、完整性控制、故障恢復(fù)、與高級語言的接口等功能。性控制、完整性控制、故障恢復(fù)、與高級語言的接口等功能。OracleOracle還是一個分布還是一個分布式式 DBMS DBMS,支持各種分布式功能,如支持,支持各種分布式功能,如支持WebWeb數(shù)據(jù)庫等。數(shù)據(jù)庫等。OracleOracle使用使用PL/SQLPL/SQL語言執(zhí)行語言執(zhí)行各種操作。另外,各種操作。另外,OracleOracle還提供了許多數(shù)據(jù)庫開發(fā)工具,使用戶擁有良好的應(yīng)用開還提供了許多數(shù)據(jù)庫開發(fā)工具,使用戶擁有良好的應(yīng)用開發(fā)環(huán)境。發(fā)環(huán)境。OracleOracle也提供了對數(shù)據(jù)庫的深層次應(yīng)用的支持,如聯(lián)機分析處理也提供了對數(shù)據(jù)庫的深層次應(yīng)用的支持,如聯(lián)機分析處理OLAP(On-OLAP(On-Line Analytical Processing)Line Analytical Processing)及數(shù)據(jù)倉庫及數(shù)據(jù)倉庫DW(Data Warehouse)DW(Data Warehouse)等。在等。在OracleOracle中,中,還支持面向?qū)ο蟮墓δ?,使其成為一種對象還支持面向?qū)ο蟮墓δ?,使其成為一種對象/關(guān)系型關(guān)系型DBMSDBMS。在國內(nèi)金融行業(yè)使用。在國內(nèi)金融行業(yè)使用OracleOracle的較多,目前的較多,目前OracleOracle關(guān)系數(shù)據(jù)庫產(chǎn)品的市場占有率名列前茅。關(guān)系數(shù)據(jù)庫產(chǎn)品的市場占有率名列前茅。11.3 主流商用DBMS介紹1.Oracle1.Oracle發(fā)展歷程發(fā)展歷程Oracle Oracle 公司前身叫公司前身叫SDLSDL,由,由Larry Ellison Larry Ellison、Bob MinerBob Miner和和Ed OatesEd Oates在在19771977創(chuàng)辦,創(chuàng)辦,1979 1979 年,年,OracleOracle公司引入了第一個商用公司引入了第一個商用SQL SQL 關(guān)系數(shù)據(jù)庫管理系統(tǒng)。關(guān)系數(shù)據(jù)庫管理系統(tǒng)。19791979年,年,SDLSDL更更名為關(guān)系軟件有限公司名為關(guān)系軟件有限公司(Relational Software Inc.(Relational Software Inc.,RSI)RSI)。19791979年年7 7月,月,RSIRSI發(fā)布了發(fā)布了OracleOracle第二版。第二版。19831983年年3 3月,月,RSIRSI發(fā)布了發(fā)布了OracleOracle第三版,增加了一個關(guān)鍵的特性:可移植性。而且第三版,增加了一個關(guān)鍵的特性:可移植性。而且在這一年,為了突出公司的核心產(chǎn)品,在這一年,為了突出公司的核心產(chǎn)品,RSIRSI再次更名為再次更名為OracleOracle。19841984年年1010月,月,OracleOracle發(fā)布了第發(fā)布了第4 4版產(chǎn)品,這一版增加了讀一致性這個重要特性。版產(chǎn)品,這一版增加了讀一致性這個重要特性。19851985年,年,OracleOracle發(fā)布了發(fā)布了5.05.0版,這個版本算得上是版,這個版本算得上是OracleOracle的一個穩(wěn)定版本。這也的一個穩(wěn)定版本。這也是首批可以在是首批可以在C/SC/S模式下運行的模式下運行的RDBMSRDBMS產(chǎn)品。產(chǎn)品。19861986年,年,OracleOracle發(fā)布了發(fā)布了5.15.1版,該版本支持分布式查詢,允許通過一次性查詢訪版,該版本支持分布式查詢,允許通過一次性查詢訪問存儲在多個位置的數(shù)據(jù)。問存儲在多個位置的數(shù)據(jù)。19881988年,年,OracleOracle發(fā)布了第發(fā)布了第6 6版,該版本引入了行級鎖特性,同時還引入了聯(lián)機熱版,該版本引入了行級鎖特性,同時還引入了聯(lián)機熱備份功能。備份功能。19921992年年6 6月,月,OracleOracle發(fā)布了第發(fā)布了第7 7版,該版本增加了分布式事務(wù)處理功能、增強的管版,該版本增加了分布式事務(wù)處理功能、增強的管理功能、用于應(yīng)用程序開發(fā)的新工具以及安全性方法。理功能、用于應(yīng)用程序開發(fā)的新工具以及安全性方法。19971997年年6 6月,月,OracleOracle第第8 8版發(fā)布,該版本支持面向?qū)ο蟮拈_發(fā)及新的多媒體應(yīng)用,版發(fā)布,該版本支持面向?qū)ο蟮拈_發(fā)及新的多媒體應(yīng)用,該版本也為支持該版本也為支持InternetInternet、網(wǎng)絡(luò)計算等奠定了基礎(chǔ)。、網(wǎng)絡(luò)計算等奠定了基礎(chǔ)。11.3 主流商用DBMS介紹19981998年年9 9月,月,OracleOracle公司正式發(fā)布公司正式發(fā)布Oracle 8iOracle 8i,i i就是就是internet/intranetinternet/intranet,表示網(wǎng),表示網(wǎng)絡(luò)型數(shù)據(jù)庫,這一版本中添加了大量為支持絡(luò)型數(shù)據(jù)庫,這一版本中添加了大量為支持InternetInternet而設(shè)計的特性,同時該版本為而設(shè)計的特性,同時該版本為數(shù)據(jù)庫用戶提供了全方位的數(shù)據(jù)庫用戶提供了全方位的JavaJava支持。支持。20012001年年6 6月,月,OracleOracle發(fā)布了發(fā)布了Oracle 9iOracle 9i,在,在Oracle 9iOracle 9i的諸多新特性中,最重要的的諸多新特性中,最重要的就是就是Real Application Clusters(RAC)Real Application Clusters(RAC)。20032003年年9 9月,月,OracleOracle發(fā)布了發(fā)布了Oracle 10gOracle 10g,g g即即gridgrid,表示網(wǎng)格數(shù)據(jù)庫,該版本最大,表示網(wǎng)格數(shù)據(jù)庫,該版本最大的特性就是加入了網(wǎng)格計算的功能。的特性就是加入了網(wǎng)格計算的功能。20072007年年7 7月,月,OracleOracle發(fā)布了發(fā)布了Oracle 11gOracle 11g,Oracle 11g Oracle 11g是甲骨文公司是甲骨文公司3030年來發(fā)布的年來發(fā)布的最重要的數(shù)據(jù)庫版本,根據(jù)用戶的需求實現(xiàn)了信息生命周期管理最重要的數(shù)據(jù)庫版本,根據(jù)用戶的需求實現(xiàn)了信息生命周期管理(Information(Information Life cycle Management)Life cycle Management)等多項創(chuàng)新。等多項創(chuàng)新。2.Oracle 2.Oracle 特點特點(1)(1)對象對象/關(guān)系模型。關(guān)系模型。OracleOracle使用了對象使用了對象/關(guān)系模型,也就是在完全支持傳統(tǒng)關(guān)系關(guān)系模型,也就是在完全支持傳統(tǒng)關(guān)系模型的基礎(chǔ)上,為對象機制提供了有限的支持。模型的基礎(chǔ)上,為對象機制提供了有限的支持。OracleOracle不僅能夠處理傳統(tǒng)的表結(jié)構(gòu)不僅能夠處理傳統(tǒng)的表結(jié)構(gòu)信息,而且能夠管理由信息,而且能夠管理由C+C+、Smalltalk Smalltalk 以及其他開發(fā)工具生成的多媒體數(shù)據(jù)類型,以及其他開發(fā)工具生成的多媒體數(shù)據(jù)類型,如文本、視頻、圖形和空間對象等。該機制允許現(xiàn)有軟件開發(fā)產(chǎn)品與工具軟件及如文本、視頻、圖形和空間對象等。該機制允許現(xiàn)有軟件開發(fā)產(chǎn)品與工具軟件及OracleOracle應(yīng)用軟件共存,保護了客戶的投資。應(yīng)用軟件共存,保護了客戶的投資。11.3 主流商用DBMS介紹(2)(2)動態(tài)可伸縮性。動態(tài)可伸縮性。OracleOracle引入了連接存儲池和多路復(fù)用機制,提供了對大型對引入了連接存儲池和多路復(fù)用機制,提供了對大型對象的支持,當(dāng)需要支持一些特殊數(shù)據(jù)類型時,用戶可以創(chuàng)建軟件插件來實現(xiàn)。象的支持,當(dāng)需要支持一些特殊數(shù)據(jù)類型時,用戶可以創(chuàng)建軟件插件來實現(xiàn)。Oracle Oracle 采用了高級網(wǎng)絡(luò)技術(shù),提高共享池和連接管理器來提高系統(tǒng)的可擴展性,采用了高級網(wǎng)絡(luò)技術(shù),提高共享池和連接管理器來提高系統(tǒng)的可擴展性,容量可從幾容量可從幾GBGB到幾百到幾百TBTB,可允許,可允許1010萬用戶同時并行訪問,萬用戶同時并行訪問,OracleOracle的數(shù)據(jù)庫中每個表的數(shù)據(jù)庫中每個表可以容納可以容納10001000列,能滿足目前數(shù)據(jù)庫及數(shù)據(jù)倉庫應(yīng)用的需要。列,能滿足目前數(shù)據(jù)庫及數(shù)據(jù)倉庫應(yīng)用的需要。(3)(3)可用性和易用性。可用性和易用性。OracleOracle提供了靈活多樣的數(shù)據(jù)分區(qū)功能,一個分區(qū)可以是提供了靈活多樣的數(shù)據(jù)分區(qū)功能,一個分區(qū)可以是一個大型表,也可以是索引和易于管理的小塊??梢愿鶕?jù)數(shù)據(jù)的取值分區(qū),有效地一個大型表,也可以是索引和易于管理的小塊。可以根據(jù)數(shù)據(jù)的取值分區(qū),有效地提高了系統(tǒng)操作能力及數(shù)據(jù)可用性,減少提高了系統(tǒng)操作能力及數(shù)據(jù)可用性,減少I/OI/O瓶頸。瓶頸。OracleOracle還對并行處理進行了改還對并行處理進行了改進,將位圖索引、查詢、排序、連接和一般索引掃描等操作引入并行處理,提高了進,將位圖索引、查詢、排序、連接和一般索引掃描等操作引入并行處理,提高了單個查詢的并行度。單個查詢的并行度。(4)(4)可管理性和數(shù)據(jù)安全功能??晒芾硇院蛿?shù)據(jù)安全功能。OracleOracle提供了自動備份和恢復(fù)功能,改進了對大提供了自動備份和恢復(fù)功能,改進了對大規(guī)模和更加細化的分布式操作系統(tǒng)的支持,加強了規(guī)模和更加細化的分布式操作系統(tǒng)的支持,加強了SQLSQL操作復(fù)制的并行性。為了幫操作復(fù)制的并行性。為了幫助客戶有效地管理整個數(shù)據(jù)庫和應(yīng)用系統(tǒng),助客戶有效地管理整個數(shù)據(jù)庫和應(yīng)用系統(tǒng),OracleOracle還提供了企業(yè)管理系統(tǒng)。數(shù)據(jù)庫還提供了企業(yè)管理系統(tǒng)。數(shù)據(jù)庫管理員可以從一個集中控制臺,通過拖放式圖形用戶界面管理管理員可以從一個集中控制臺,通過拖放式圖形用戶界面管理OracleOracle的系統(tǒng)環(huán)境。的系統(tǒng)環(huán)境。(5)(5)對多平臺的支持與開放性。網(wǎng)絡(luò)結(jié)構(gòu)往往含有多個平臺,對多平臺的支持與開放性。網(wǎng)絡(luò)結(jié)構(gòu)往往含有多個平臺,OracleOracle可以運行于可以運行于目前所有主流平臺上,如目前所有主流平臺上,如SUN SolariseSUN Solarise、Sequent Dynix/PTXSequent Dynix/PTX、Intel NTIntel NT、HPHP11.3 主流商用DBMS介紹UXUX、DEC UNIXDEC UNIX、IBM AIXIBM AIX等。等。OracleOracle的異構(gòu)服務(wù)為同其他數(shù)據(jù)源以及使用的異構(gòu)服務(wù)為同其他數(shù)據(jù)源以及使用SQLSQL和和PL/SQLPL/SQL的服務(wù)進行通信提供了必要的基礎(chǔ)設(shè)施。的服務(wù)進行通信提供了必要的基礎(chǔ)設(shè)施。(6)(6)提供基于角色的權(quán)限管理模式。通過角色管理,大大加強了數(shù)據(jù)庫的安全性。提供基于角色的權(quán)限管理模式。通過角色管理,大大加強了數(shù)據(jù)庫的安全性。同時,也為同時,也為DBADBA提供更加方便快捷的管理用戶和權(quán)限的途徑。提供更加方便快捷的管理用戶和權(quán)限的途徑。(7)(7)支持大量多媒體數(shù)據(jù)??奢^好地支持大數(shù)據(jù)存儲格式,如圖形、音頻、視頻、支持大量多媒體數(shù)據(jù)??奢^好地支持大數(shù)據(jù)存儲格式,如圖形、音頻、視頻、動畫等媒體格式。動畫等媒體格式。(8)(8)提供良好的分布式管理功能。提供良好的分布式管理功能。OracleOracle提供完善的分布式數(shù)據(jù)庫功能,可以讓提供完善的分布式數(shù)據(jù)庫功能,可以讓客戶通過網(wǎng)絡(luò)比較方便地讀寫遠端數(shù)據(jù)庫里的數(shù)據(jù),并提供對稱復(fù)制的技術(shù),使得客戶通過網(wǎng)絡(luò)比較方便地讀寫遠端數(shù)據(jù)庫里的數(shù)據(jù),并提供對稱復(fù)制的技術(shù),使得用戶可以很輕松地實現(xiàn)多數(shù)據(jù)庫的協(xié)調(diào)工作。用戶可以很輕松地實現(xiàn)多數(shù)據(jù)庫的協(xié)調(diào)工作。(9)(9)提出了獨創(chuàng)性的表空間理念。在數(shù)據(jù)模型方面,提出了獨創(chuàng)性的表空間理念。在數(shù)據(jù)模型方面,OracleOracle有著區(qū)別于其他數(shù)據(jù)有著區(qū)別于其他數(shù)據(jù)庫的表空間概念。使數(shù)據(jù)在邏輯上劃分得更加清晰,而且具有更大的靈活性。庫的表空間概念。使數(shù)據(jù)在邏輯上劃分得更加清晰,而且具有更大的靈活性。(10)PL/SQL(10)PL/SQL語言語言O(shè)racle PL/SQLOracle PL/SQL語言語言(Procedural Language/SQL)(Procedural Language/SQL)是結(jié)合了結(jié)構(gòu)化查詢與是結(jié)合了結(jié)構(gòu)化查詢與OracleOracle自自身過程控制為一體的強大語言,身過程控制為一體的強大語言,PL/SQLPL/SQL不但支持更多的數(shù)據(jù)類型,擁有自身的變量不但支持更多的數(shù)據(jù)類型,擁有自身的變量聲明、賦值語句,而且還有條件、循環(huán)等流程控制語句。過程控制結(jié)構(gòu)與聲明、賦值語句,而且還有條件、循環(huán)等流程控制語句。過程控制結(jié)構(gòu)與SQLSQL數(shù)據(jù)數(shù)據(jù)處理能力無縫的結(jié)合形成了強大的編程語言,可以創(chuàng)建過程和函數(shù)以及程序包。處理能力無縫的結(jié)合形成了強大的編程語言,可以創(chuàng)建過程和函數(shù)以及程序包。11.3 主流商用DBMS介紹PL/SQLPL/SQL是一種塊結(jié)構(gòu)的語言,它將一組語句放在一個塊中,一次性發(fā)送給服務(wù)器,是一種塊結(jié)構(gòu)的語言,它將一組語句放在一個塊中,一次性發(fā)送給服務(wù)器,PL/SQLPL/SQL引擎分析收到引擎分析收到PL/SQLPL/SQL語句塊中的內(nèi)容,把其中的過程控制語句由語句塊中的內(nèi)容,把其中的過程控制語句由PL/SQLPL/SQL引擎引擎自身去執(zhí)行,把自身去執(zhí)行,把PL/SQLPL/SQL塊中的塊中的SQLSQL語句交給服務(wù)器的語句交給服務(wù)器的SQLSQL語句執(zhí)行器執(zhí)行。語句執(zhí)行器執(zhí)行。3.Oracle3.Oracle開發(fā)工具開發(fā)工具OracleOracle產(chǎn)品主要包括數(shù)據(jù)庫服務(wù)器、開發(fā)工具和連接產(chǎn)品三類,并提供了多種開產(chǎn)品主要包括數(shù)據(jù)庫服務(wù)器、開發(fā)工具和連接產(chǎn)品三類,并提供了多種開發(fā)工具,為用戶進行進一步開發(fā)提供了方便。發(fā)工具,為用戶進行進一步開發(fā)提供了方便。(1)Oracle(1)Oracle提供的開發(fā)工具包提供的開發(fā)工具包OracleOracle提供的開發(fā)工具包是提供的開發(fā)工具包是DeveloperDeveloper、DesignerDesigner、DiscoverDiscover、Oracle OfficeOracle Office等,等,它涵蓋了從建模、分析、設(shè)計到具體實現(xiàn)的各個環(huán)節(jié)。它涵蓋了從建模、分析、設(shè)計到具體實現(xiàn)的各個環(huán)節(jié)。DeveloperDeveloper:包括以下幾個工具:包括以下幾個工具:Oracle FormsOracle Forms用于快速生成基于屏幕的復(fù)雜應(yīng)用于快速生成基于屏幕的復(fù)雜應(yīng)用,具有用,具有GUIGUI界面和多媒體功能,主要用于操縱數(shù)據(jù)和查詢;界面和多媒體功能,主要用于操縱數(shù)據(jù)和查詢;Oracle ReportsOracle Reports是快是快速生成報表的工具。能生成各種復(fù)雜的報表,同樣能處理多媒體信息;速生成報表的工具。能生成各種復(fù)雜的報表,同樣能處理多媒體信息;Oracle Oracle GraphicsGraphics用于生成各種圖形應(yīng)用;用于生成各種圖形應(yīng)用;Oracle BooksOracle Books用于生成聯(lián)機文檔。用于生成聯(lián)機文檔。11.3 主流商用DBMS介紹DesignerDesigner:是:是OracleOracle提供的提供的CASECASE工具。該工具能夠幫助用戶對復(fù)雜系統(tǒng)進行建模、工具。該工具能夠幫助用戶對復(fù)雜系統(tǒng)進行建模、分析和設(shè)計。還可以幫助用戶繪制分析和設(shè)計。還可以幫助用戶繪制ERER圖、功能分層圖、數(shù)據(jù)流圖和方陣圖。圖、功能分層圖、數(shù)據(jù)流圖和方陣圖。DiscoverDiscover:是一個查詢、報告、分析以及:是一個查詢、報告、分析以及WebWeb發(fā)行的工具。它能夠讓用戶訪問專發(fā)行的工具。它能夠讓用戶訪問專用數(shù)據(jù)棧、數(shù)據(jù)倉庫、在線事務(wù)處理系統(tǒng)和用數(shù)據(jù)棧、數(shù)據(jù)倉庫、在線事務(wù)處理系統(tǒng)和E-BusinessE-Business套件。它包括給關(guān)系型數(shù)據(jù)套件。它包括給關(guān)系型數(shù)據(jù)以及多維數(shù)據(jù)以及多維數(shù)據(jù)(OLAP)(OLAP)提供綜合報告和分析界面。它主要用于支持數(shù)據(jù)倉庫應(yīng)用,可提供綜合報告和分析界面。它主要用于支持數(shù)據(jù)倉庫應(yīng)用,可以對歷史數(shù)據(jù)進行挖掘,以找到發(fā)展趨勢,對不同層次的概況數(shù)據(jù)進行分析,以便以對歷史數(shù)據(jù)進行挖掘,以找到發(fā)展趨勢,對不同層次的概況數(shù)據(jù)進行分析,以便發(fā)現(xiàn)有關(guān)業(yè)務(wù)的詳細信息。發(fā)現(xiàn)有關(guān)業(yè)務(wù)的詳細信息。Oracle OfficeOracle Office:適用于辦公自動化,能完成企業(yè)范圍內(nèi)的消息接收與發(fā)送、日:適用于辦公自動化,能完成企業(yè)范圍內(nèi)的消息接收與發(fā)送、日程安排、日歷管理、目錄管理以及拼寫檢查。程安排、日歷管理、目錄管理以及拼寫檢查。(2)Oracle SQL Developer(2)Oracle SQL Developer Oracle SQL Developer Oracle SQL Developer 是一個免費的圖形化數(shù)據(jù)庫開發(fā)工具。使用是一個免費的圖形化數(shù)據(jù)庫開發(fā)工具。使用 SQL SQL DeveloperDeveloper,開發(fā)人員可以瀏覽數(shù)據(jù)庫對象、運行,開發(fā)人員可以瀏覽數(shù)據(jù)庫對象、運行 SQL SQL 語句和語句和 SQL SQL 腳本,并且還腳本,并且還可以編輯和調(diào)試可以編輯和調(diào)試 PL/SQL PL/SQL 語句。開發(fā)人員還可以運行所提供的任何數(shù)量的報表,以語句。開發(fā)人員還可以運行所提供的任何數(shù)量的報表,以及創(chuàng)建和保存自己的報表。及創(chuàng)建和保存自己的報表。SQL Developer SQL Developer 可以提高工作效率并簡化數(shù)據(jù)庫開發(fā)任可以提高工作效率并簡化數(shù)據(jù)庫開發(fā)任務(wù)。務(wù)。SQL Developer SQL Developer 可以連接到任何可以連接到任何 9.2.0.1 9.2.0.1 版和更高版本的版和更高版本的 Oracle Oracle 數(shù)據(jù)庫,數(shù)據(jù)庫,并且可以在并且可以在 Windows Windows、Linux Linux 和和 Mac OSX Mac OSX 上運行。上運行。11.3 主流商用DBMS介紹SQL Developer SQL Developer 包括了移植工作臺,它是一個重新開發(fā)并集成的工具,擴展了原包括了移植工作臺,它是一個重新開發(fā)并集成的工具,擴展了原有有 Oracle Oracle 移植工作臺的功能和可用性。通過與移植工作臺的功能和可用性。通過與 SQL Developer SQL Developer 緊密集成,使用緊密集成,使用戶在一個地方就可以瀏覽第三方數(shù)據(jù)庫中的數(shù)據(jù)庫對象和數(shù)據(jù),以及將這些數(shù)據(jù)庫戶在一個地方就可以瀏覽第三方數(shù)據(jù)庫中的數(shù)據(jù)庫對象和數(shù)據(jù),以及將這些數(shù)據(jù)庫移植到移植到 Oracle Oracle。(3)Oracle APEX(3)Oracle APEXOracle Application Express(Oracle APEX)Oracle Application Express(Oracle APEX)以前稱為以前稱為 HTML DB HTML DB,是一個用于,是一個用于 Oracle Oracle 數(shù)據(jù)庫的快速數(shù)據(jù)庫的快速 Web Web 應(yīng)用程序開發(fā)工具。僅使用應(yīng)用程序開發(fā)工具。僅使用 Web Web 瀏覽器以及有限的編瀏覽器以及有限的編程經(jīng)驗,數(shù)據(jù)庫開發(fā)人員就可以開發(fā)和部署具有快速、安全的專業(yè)應(yīng)用程序。程經(jīng)驗,數(shù)據(jù)庫開發(fā)人員就可以開發(fā)和部署具有快速、安全的專業(yè)應(yīng)用程序。Oracle Application Express Oracle Application Express 結(jié)合了個人數(shù)據(jù)庫的質(zhì)量,企業(yè)數(shù)據(jù)庫的生產(chǎn)效率、結(jié)合了個人數(shù)據(jù)庫的質(zhì)量,企業(yè)數(shù)據(jù)庫的生產(chǎn)效率、易用性和靈活性,以及易用性和靈活性,以及 Web Web 的安全性、集成性、可伸縮性和可用性。的安全性、集成性、可伸縮性和可用性。Application Application Express Express 是一個構(gòu)建基于是一個構(gòu)建基于 Web Web 的應(yīng)用程序的工具,應(yīng)用程序開發(fā)環(huán)境也基于的應(yīng)用程序的工具,應(yīng)用程序開發(fā)環(huán)境也基于 Web Web,非常方便。,非常方便。開發(fā)、部署或運行開發(fā)、部署或運行 Application Express Application Express 應(yīng)用程序無需客戶端軟件。應(yīng)用程序無需客戶端軟件。Application Express Application Express 提供三大工具:提供三大工具:1)1)應(yīng)用程序構(gòu)建器:創(chuàng)建動態(tài)數(shù)據(jù)庫驅(qū)動應(yīng)用程序構(gòu)建器:創(chuàng)建動態(tài)數(shù)據(jù)庫驅(qū)動的的 Web Web 應(yīng)用程序;應(yīng)用程序;2)SQL Workshop2)SQL Workshop:瀏覽數(shù)據(jù)庫對象,運行即時:瀏覽數(shù)據(jù)庫對象,運行即時 SQL SQL 查詢以及查詢以及圖形查詢構(gòu)建器;圖形查詢構(gòu)建器;3)3)實用程序:允許從純文本和電子表格上傳和下載數(shù)據(jù)。實用程序:允許從純文本和電子表格上傳和下載數(shù)據(jù)。11.3 主流商用DBMS介紹11.3.2 Microsoft SQL Server11.3.2 Microsoft SQL ServerMicrosoft SQL ServerMicrosoft SQL Server是微軟是微軟(Microsoft)(Microsoft)公司推出的關(guān)系型的數(shù)據(jù)庫管理系統(tǒng)公司推出的關(guān)系型的數(shù)據(jù)庫管理系統(tǒng)軟件。軟件。Microsoft SQL ServerMicrosoft SQL Server是一個支持客戶機服務(wù)器的是一個支持客戶機服務(wù)器的DBMSDBMS,它使用,它使用Transact-SQLTransact-SQL在客戶機和服務(wù)器之間傳送請求和回應(yīng)。在客戶機和服務(wù)器之間傳送請求和回應(yīng)。Microsoft SQL ServerMicrosoft SQL Server是一是一個高性能的個高性能的DBMSDBMS,具有較高的性價比,使用廣泛。,具有較高的性價比,使用廣泛。1.SQL Server1.SQL Server發(fā)展歷程發(fā)展歷程SQL ServerSQL Server從從20 20 世紀世紀8080年代后期開始開發(fā),最早起源于年代后期開始開發(fā),最早起源于19871987年的年的Sybase SQL Sybase SQL ServerServer。SQL ServerSQL Server最初是由最初是由MicrosoftMicrosoft、Sybase Sybase 和和Ashton-TateAshton-Tate三家公司共同開三家公司共同開發(fā),發(fā),19881988年,年,MicrosoftMicrosoft公司、公司、SybaseSybase公司和公司和Aston-TateAston-Tate公司把該產(chǎn)品移植到公司把該產(chǎn)品移植到OS/2OS/2上。后來上。后來Aston-TateAston-Tate公司退出了該產(chǎn)品的開發(fā),而公司退出了該產(chǎn)品的開發(fā),而MicrosoftMicrosoft公司、公司、SybaseSybase公司則公司則簽署了一項共同開發(fā)協(xié)議,這兩家公司的共同開發(fā)結(jié)果是發(fā)布了用于簽署了一項共同開發(fā)協(xié)議,這兩家公司的共同開發(fā)結(jié)果是發(fā)布了用于Windows NTWindows NT操操作系統(tǒng)的作系統(tǒng)的SQL ServerSQL Server,19921992年,年,SQL Server SQL Server被移植到了被移植到了Windows NTWindows NT平臺上。平臺上。19931993年,年,SQL Server 4.2 SQL Server 4.2 面世,它是一個桌面數(shù)據(jù)庫系統(tǒng),雖然其功能相對有面世,它是一個桌面數(shù)據(jù)庫系統(tǒng),雖然其功能相對有限,但是采用限,但是采用Windows GUIWindows GUI,向用戶提供了易于使用的用戶界面。,向用戶提供了易于使用的用戶界面。11.3 主流商用DBMS介紹P8LP8L在在SQL Server 4SQL Server 4版本發(fā)行以后,版本發(fā)行以后,MicrosoftMicrosoft公司和公司和SybaseSybase公司在公司在SQL ServerSQL Server的的開發(fā)方面分道揚鑣,取消了合同,各自開發(fā)自己的開發(fā)方面分道揚鑣,取消了合同,各自開發(fā)自己的SQL ServerSQL Server。MicrosoftMicrosoft公司專公司專注于注于Windows NTWindows NT平臺上的平臺上的SQL ServerSQL Server開發(fā),重寫了核心的數(shù)據(jù)庫系統(tǒng),并于開發(fā),重寫了核心的數(shù)據(jù)庫系統(tǒng),并于19951995年年發(fā)布了發(fā)布了SQL Server 6.05SQL Server 6.05,該版本提供了一個廉價的可以滿足眾多小型商業(yè)應(yīng)用的,該版本提供了一個廉價的可以滿足眾多小型商業(yè)應(yīng)用的數(shù)據(jù)庫方案,而數(shù)據(jù)庫方案,而SybaseSybase公司則致力于公司則致力于UNIXUNIX平臺上的平臺上的SQL ServerSQL Server的開發(fā)。的開發(fā)。SQL Server 6.0SQL Server 6.0版是第一個完全由版是第一個完全由MicrosoftMicrosoft公司開發(fā)的版本。公司開發(fā)的版本。19961996年,年,MicrosoftMicrosoft公司推出了公司推出了SQL Server 6.5SQL Server 6.5版本,由于受到舊有結(jié)構(gòu)的限制,微軟再次版本,由于受到舊有結(jié)構(gòu)的限制,微軟再次重寫重寫SQL ServerSQL Server的核心數(shù)據(jù)庫引擎,并于的核心數(shù)據(jù)庫引擎,并于19981998年發(fā)布年發(fā)布 SQL Server 7.0 SQL Server 7.0。這一版本。這一版本在數(shù)據(jù)存儲和數(shù)據(jù)庫引擎方面發(fā)生了根本性的變化,提供了面向中、小型商業(yè)應(yīng)用在數(shù)據(jù)存儲和數(shù)據(jù)庫引擎方面發(fā)生了根本性的變化,提供了面向中、小型商業(yè)應(yīng)用數(shù)據(jù)庫功能支持。為了適應(yīng)技術(shù)的發(fā)展,還包括了一些數(shù)據(jù)庫功能支持。為了適應(yīng)技術(shù)的發(fā)展,還包括了一些WebWeb功能。此外,微軟的開功能。此外,微軟的開發(fā)工具發(fā)工具Visual Studio 6Visual Studio 6也對其提供了非常不錯的支持。也對其提供了非常不錯的支持。SQL Server 7.0SQL Server 7.0是該家族是該家族第一個得到了廣泛應(yīng)用的成員。第一個得到了廣泛應(yīng)用的成員。20002000年,微軟發(fā)布了其第一個企業(yè)級數(shù)據(jù)庫系統(tǒng)年,微軟發(fā)布了其第一個企業(yè)級數(shù)據(jù)庫系統(tǒng)SQL Server 2000SQL Server 2000,其中包,其中包括企業(yè)版、標(biāo)準版、開發(fā)版、個人版四個版本,同時包括關(guān)系型數(shù)據(jù)庫、分析服務(wù)括企業(yè)版、標(biāo)準版、開發(fā)版、個人版四個版本,同時包括關(guān)系型數(shù)據(jù)庫、分析服務(wù)和和English QueryEnglish Query工具三個重要組件。此外,它還提供豐富的管理工具,對開發(fā)工工具三個重要組件。此外,它還提供豐富的管理工具,對開發(fā)工具提供全面的支持,對于具提供全面的支持,對于InternetInternet
收藏
編號:48760729
類型:共享資源
大?。?span id="ievbyqtbdd" class="font-tahoma">10.02MB
格式:ZIP
上傳時間:2022-01-14
30
積分
- 關(guān) 鍵 詞:
-
數(shù)據(jù)庫技術(shù)與應(yīng)用
數(shù)據(jù)庫技術(shù)
應(yīng)用
電子
課件
- 資源描述:
-
《數(shù)據(jù)庫技術(shù)與應(yīng)用》電子課件,數(shù)據(jù)庫技術(shù)與應(yīng)用,數(shù)據(jù)庫技術(shù),應(yīng)用,電子,課件
展開閱讀全文
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。