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