數(shù)據(jù)庫(kù)第16講數(shù)據(jù)庫(kù)保護(hù)課件_第1頁(yè)
數(shù)據(jù)庫(kù)第16講數(shù)據(jù)庫(kù)保護(hù)課件_第2頁(yè)
數(shù)據(jù)庫(kù)第16講數(shù)據(jù)庫(kù)保護(hù)課件_第3頁(yè)
數(shù)據(jù)庫(kù)第16講數(shù)據(jù)庫(kù)保護(hù)課件_第4頁(yè)
數(shù)據(jù)庫(kù)第16講數(shù)據(jù)庫(kù)保護(hù)課件_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、返回返回1第第1616講講 數(shù)據(jù)庫(kù)保護(hù)數(shù)據(jù)庫(kù)保護(hù) 教學(xué)目標(biāo):使學(xué)生了解和掌握數(shù)據(jù)庫(kù)的安全和教學(xué)目標(biāo):使學(xué)生了解和掌握數(shù)據(jù)庫(kù)的安全和完整控制的重要性和和可行性完整控制的重要性和和可行性 教學(xué)內(nèi)容:安全性控制的一般方法、完整性約教學(xué)內(nèi)容:安全性控制的一般方法、完整性約束條件和控制機(jī)制束條件和控制機(jī)制 教學(xué)重點(diǎn):存取控制教學(xué)重點(diǎn):存取控制 動(dòng)態(tài)完整性約束動(dòng)態(tài)完整性約束 參照完參照完整性條件整性條件 教學(xué)難點(diǎn):動(dòng)態(tài)完整性約束教學(xué)難點(diǎn):動(dòng)態(tài)完整性約束 參照完整性條件參照完整性條件 教學(xué)方法:多媒體演示教學(xué)方法:多媒體演示 舉例法舉例法 教學(xué)時(shí)間:教學(xué)時(shí)間:2 2學(xué)時(shí)學(xué)時(shí) 教學(xué)過程:教學(xué)過程:返回返回2

2、隨著社會(huì)信息化的不斷深化,各種數(shù)據(jù)庫(kù)的使用也越來越廣泛。隨著社會(huì)信息化的不斷深化,各種數(shù)據(jù)庫(kù)的使用也越來越廣泛。例如,一個(gè)企業(yè)管理信息系統(tǒng)的全部數(shù)據(jù)、國(guó)家機(jī)構(gòu)的事務(wù)管理信息、例如,一個(gè)企業(yè)管理信息系統(tǒng)的全部數(shù)據(jù)、國(guó)家機(jī)構(gòu)的事務(wù)管理信息、國(guó)防情報(bào)機(jī)密信息、基于國(guó)防情報(bào)機(jī)密信息、基于WEBWEB動(dòng)態(tài)發(fā)布的網(wǎng)上購(gòu)物信息等等,它們都動(dòng)態(tài)發(fā)布的網(wǎng)上購(gòu)物信息等等,它們都集中或分布地存放在大大小小的數(shù)據(jù)庫(kù)中。我們知道數(shù)據(jù)庫(kù)系統(tǒng)中的集中或分布地存放在大大小小的數(shù)據(jù)庫(kù)中。我們知道數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)是由數(shù)據(jù)是由DBMSDBMS統(tǒng)一進(jìn)行管理和控制的。為了適應(yīng)和滿足數(shù)據(jù)共享的環(huán)統(tǒng)一進(jìn)行管理和控制的。為了適應(yīng)和滿足數(shù)據(jù)

3、共享的環(huán)境和要求,境和要求,DBMSDBMS要保證數(shù)據(jù)庫(kù)及整個(gè)系統(tǒng)的正常運(yùn)轉(zhuǎn),防止數(shù)據(jù)意外要保證數(shù)據(jù)庫(kù)及整個(gè)系統(tǒng)的正常運(yùn)轉(zhuǎn),防止數(shù)據(jù)意外丟失和不一致數(shù)據(jù)的產(chǎn)生,以及當(dāng)數(shù)據(jù)庫(kù)遭受破壞后能迅速地恢復(fù)正丟失和不一致數(shù)據(jù)的產(chǎn)生,以及當(dāng)數(shù)據(jù)庫(kù)遭受破壞后能迅速地恢復(fù)正常,這就是數(shù)據(jù)庫(kù)的安全保護(hù)。常,這就是數(shù)據(jù)庫(kù)的安全保護(hù)。 DBMSDBMS對(duì)數(shù)據(jù)庫(kù)的安全保護(hù)功能是通過四方面來實(shí)現(xiàn)的,即安全性控對(duì)數(shù)據(jù)庫(kù)的安全保護(hù)功能是通過四方面來實(shí)現(xiàn)的,即安全性控制、完整性控制、并發(fā)性控制和數(shù)據(jù)庫(kù)恢復(fù)。制、完整性控制、并發(fā)性控制和數(shù)據(jù)庫(kù)恢復(fù)。返回返回3 數(shù)據(jù)庫(kù)的安全性是指保護(hù)數(shù)據(jù)庫(kù),以防止非法使用所造成數(shù)據(jù)數(shù)據(jù)庫(kù)的安全性是

4、指保護(hù)數(shù)據(jù)庫(kù),以防止非法使用所造成數(shù)據(jù)的泄露、更改或破壞。的泄露、更改或破壞。 安全性問題有許多方面,其中包括:安全性問題有許多方面,其中包括:(1 1)法律、社會(huì)和倫理方面,例如請(qǐng)求查詢信息的人是不有合法的權(quán))法律、社會(huì)和倫理方面,例如請(qǐng)求查詢信息的人是不有合法的權(quán)力;力;(2 2)物理控制方面,例如計(jì)算機(jī)機(jī)房或終端是否應(yīng)該加鎖或用其他方)物理控制方面,例如計(jì)算機(jī)機(jī)房或終端是否應(yīng)該加鎖或用其他方法加以保護(hù);法加以保護(hù);(3 3)政策方面,確定存取原則,允許哪些用戶存取哪些數(shù)據(jù);)政策方面,確定存取原則,允許哪些用戶存取哪些數(shù)據(jù);(4 4)運(yùn)行與技術(shù)方面,使用口令時(shí),如何使口令保持秘密;)運(yùn)行

5、與技術(shù)方面,使用口令時(shí),如何使口令保持秘密;返回返回4(5 5)硬件控制方面,)硬件控制方面,CPUCPU是否提供任何安全性方面的功能,諸如存是否提供任何安全性方面的功能,諸如存儲(chǔ)保護(hù)鍵或特權(quán)工作方式;儲(chǔ)保護(hù)鍵或特權(quán)工作方式;(6 6)操作系統(tǒng)安全性方面,在主存儲(chǔ)器和數(shù)據(jù)文件用過以后,操作)操作系統(tǒng)安全性方面,在主存儲(chǔ)器和數(shù)據(jù)文件用過以后,操作系統(tǒng)是否把它們的內(nèi)容清除掉;系統(tǒng)是否把它們的內(nèi)容清除掉;(7 7)數(shù)據(jù)庫(kù)系統(tǒng)本身安全性方面。)數(shù)據(jù)庫(kù)系統(tǒng)本身安全性方面。返回返回516.1.2 16.1.2 安全性控制的一般方法安全性控制的一般方法 安全性控制是指要盡可能地杜絕所有可能的數(shù)據(jù)庫(kù)非法訪問安

6、全性控制是指要盡可能地杜絕所有可能的數(shù)據(jù)庫(kù)非法訪問。用戶非法使用數(shù)據(jù)庫(kù)可以有很多種情況。例如,編寫合法的程。用戶非法使用數(shù)據(jù)庫(kù)可以有很多種情況。例如,編寫合法的程序繞過序繞過DBMSDBMS授權(quán)機(jī)制,通過操作系統(tǒng)直接存取、修改或備份有關(guān)授權(quán)機(jī)制,通過操作系統(tǒng)直接存取、修改或備份有關(guān)數(shù)據(jù)。用戶訪問非法數(shù)據(jù),無論它們是有意的還是無意的數(shù)據(jù)。用戶訪問非法數(shù)據(jù),無論它們是有意的還是無意的, ,都應(yīng)都應(yīng)該加以嚴(yán)格控制,因此,系統(tǒng)還要考慮數(shù)據(jù)信息的流動(dòng)問題并加該加以嚴(yán)格控制,因此,系統(tǒng)還要考慮數(shù)據(jù)信息的流動(dòng)問題并加以控制,否則有潛在的危險(xiǎn)性。因?yàn)閿?shù)據(jù)的流動(dòng)可能使無權(quán)訪問以控制,否則有潛在的危險(xiǎn)性。因?yàn)閿?shù)據(jù)

7、的流動(dòng)可能使無權(quán)訪問的用戶獲得訪問權(quán)利。的用戶獲得訪問權(quán)利。返回返回6 例如,甲用戶可以訪問表例如,甲用戶可以訪問表T1T1,但無權(quán)訪問表,但無權(quán)訪問表T2T2,如,如果乙用戶把表果乙用戶把表T2T2的所有記錄添加到表的所有記錄添加到表T1T1中之后,則由中之后,則由于乙用戶的操作,使甲用戶獲得了對(duì)表于乙用戶的操作,使甲用戶獲得了對(duì)表T2T2中記錄的訪中記錄的訪問。此外,用戶可以多次利用允許的訪問結(jié)果,經(jīng)過問。此外,用戶可以多次利用允許的訪問結(jié)果,經(jīng)過邏輯推理得到他無權(quán)訪問的數(shù)據(jù)。邏輯推理得到他無權(quán)訪問的數(shù)據(jù)。 為防止這一點(diǎn),訪問的許可權(quán)還要結(jié)合過去訪問為防止這一點(diǎn),訪問的許可權(quán)還要結(jié)合過去訪

8、問的情況而定??梢姲踩缘膶?shí)施是要花費(fèi)一定代價(jià),的情況而定??梢姲踩缘膶?shí)施是要花費(fèi)一定代價(jià),并需縝密考慮的。安全保護(hù)策略就是要以最小的代價(jià)并需縝密考慮的。安全保護(hù)策略就是要以最小的代價(jià)來最大程度防止對(duì)數(shù)據(jù)的非法訪問,通常需要層層設(shè)來最大程度防止對(duì)數(shù)據(jù)的非法訪問,通常需要層層設(shè)置安全措施。置安全措施。 實(shí)際上,數(shù)據(jù)庫(kù)系統(tǒng)的安全性問題,類似于整個(gè)實(shí)際上,數(shù)據(jù)庫(kù)系統(tǒng)的安全性問題,類似于整個(gè)計(jì)算機(jī)系統(tǒng)一級(jí)級(jí)層層設(shè)置安全的情況,其安全控制計(jì)算機(jī)系統(tǒng)一級(jí)級(jí)層層設(shè)置安全的情況,其安全控制模型一般如圖模型一般如圖16.116.1所示。所示。16.1.2 16.1.2 安全性控制的一般方法安全性控制的一般方法

9、返回返回716.1.2 16.1.2 安全性控制的一般方法安全性控制的一般方法 DBMS 用戶 DB OS 用戶標(biāo)識(shí)和鑒定 用戶存取權(quán)限控制 操作系統(tǒng)安全保護(hù) 密碼存儲(chǔ) 根據(jù)圖16.1的安全模型,當(dāng)用戶進(jìn)入計(jì)算機(jī)系統(tǒng)時(shí),系統(tǒng)首先根據(jù)輸入的用戶標(biāo)識(shí)進(jìn)行身份的鑒定,只有合法的用戶才準(zhǔn)許進(jìn)入系統(tǒng)。 對(duì)已進(jìn)入系統(tǒng)的用戶,DBMS還要進(jìn)行存取控制,只允許用戶進(jìn)行合法的操作返回返回8 DBMS DBMS是建立在操作系統(tǒng)之上的,安全的操作系統(tǒng)是建立在操作系統(tǒng)之上的,安全的操作系統(tǒng)是數(shù)據(jù)庫(kù)安全的前提。操作系統(tǒng)應(yīng)能保證數(shù)據(jù)庫(kù)中的是數(shù)據(jù)庫(kù)安全的前提。操作系統(tǒng)應(yīng)能保證數(shù)據(jù)庫(kù)中的數(shù)據(jù)必須由數(shù)據(jù)必須由DBMSDBMS訪

10、問,而不允許用戶越過訪問,而不允許用戶越過DBMSDBMS,直接,直接通過操作系統(tǒng)或其它方式訪問。通過操作系統(tǒng)或其它方式訪問。 數(shù)據(jù)最后可以通過密碼的形式存儲(chǔ)到數(shù)據(jù)庫(kù)中。數(shù)據(jù)最后可以通過密碼的形式存儲(chǔ)到數(shù)據(jù)庫(kù)中。能做到非法者即使得到了加密數(shù)據(jù),也無法識(shí)別它的能做到非法者即使得到了加密數(shù)據(jù),也無法識(shí)別它的安全效果。安全效果。 下面,本書就同數(shù)據(jù)庫(kù)有關(guān)的用戶標(biāo)識(shí)和鑒定、下面,本書就同數(shù)據(jù)庫(kù)有關(guān)的用戶標(biāo)識(shí)和鑒定、存取控制、定義視圖、數(shù)據(jù)加密和審計(jì)等幾類安全性存取控制、定義視圖、數(shù)據(jù)加密和審計(jì)等幾類安全性措施作一討論。措施作一討論。16.1.2 16.1.2 安全性控制的一般方法安全性控制的一般方法返

11、回返回91 1、用戶標(biāo)識(shí)和鑒別、用戶標(biāo)識(shí)和鑒別 用戶標(biāo)識(shí)和鑒定是系統(tǒng)提供的最外層的安全保護(hù)措用戶標(biāo)識(shí)和鑒定是系統(tǒng)提供的最外層的安全保護(hù)措施,其方法是由系統(tǒng)提供一定的方式讓用戶標(biāo)識(shí)自己施,其方法是由系統(tǒng)提供一定的方式讓用戶標(biāo)識(shí)自己的名字或身份,系統(tǒng)內(nèi)部記錄著所有合法用戶的標(biāo)識(shí),的名字或身份,系統(tǒng)內(nèi)部記錄著所有合法用戶的標(biāo)識(shí),每次用戶要求進(jìn)入系統(tǒng)時(shí),由系統(tǒng)進(jìn)行核實(shí),通過鑒每次用戶要求進(jìn)入系統(tǒng)時(shí),由系統(tǒng)進(jìn)行核實(shí),通過鑒定后才提供機(jī)器的使用權(quán)。定后才提供機(jī)器的使用權(quán)。 用戶標(biāo)識(shí)和鑒定的方法有用戶標(biāo)識(shí)和鑒定的方法有 : : (1) (1)單用戶名鑒別法單用戶名鑒別法 : :用一個(gè)用戶名或用戶標(biāo)識(shí)符來標(biāo)用

12、一個(gè)用戶名或用戶標(biāo)識(shí)符來標(biāo)明用戶的身份,系統(tǒng)以此來鑒別用戶的合法性明用戶的身份,系統(tǒng)以此來鑒別用戶的合法性 . .16.1.2 16.1.2 安全性控制的一般方法安全性控制的一般方法返回返回1016.1.2 16.1.2 安全性控制的一般方法安全性控制的一般方法(2)(2)用戶名與口令聯(lián)合鑒別法用戶名與口令聯(lián)合鑒別法 : :用戶標(biāo)識(shí)符是用戶公開的用戶標(biāo)識(shí)符是用戶公開的標(biāo)識(shí),它不足以成為鑒別用戶身份的憑證。標(biāo)識(shí),它不足以成為鑒別用戶身份的憑證。 (3)(3)透明公式鑒別法透明公式鑒別法: :每個(gè)用戶都預(yù)先約定好一個(gè)過程或每個(gè)用戶都預(yù)先約定好一個(gè)過程或者函數(shù),鑒別用戶身份時(shí),系統(tǒng)提供一個(gè)隨機(jī)數(shù),用

13、者函數(shù),鑒別用戶身份時(shí),系統(tǒng)提供一個(gè)隨機(jī)數(shù),用戶根據(jù)自己預(yù)先約定的計(jì)算過程或者函數(shù)進(jìn)行計(jì)算,戶根據(jù)自己預(yù)先約定的計(jì)算過程或者函數(shù)進(jìn)行計(jì)算,系統(tǒng)根據(jù)計(jì)算結(jié)果辨別用戶身份的合法性。系統(tǒng)根據(jù)計(jì)算結(jié)果辨別用戶身份的合法性。返回返回112、用戶存取權(quán)限控制、用戶存取權(quán)限控制 用戶存取權(quán)限指的是不同的用戶對(duì)于不同的數(shù)據(jù)對(duì)象用戶存取權(quán)限指的是不同的用戶對(duì)于不同的數(shù)據(jù)對(duì)象允許執(zhí)行的操作權(quán)限。允許執(zhí)行的操作權(quán)限。 存取權(quán)限由兩個(gè)要素組成,數(shù)據(jù)對(duì)象和操作類型。定存取權(quán)限由兩個(gè)要素組成,數(shù)據(jù)對(duì)象和操作類型。定義一個(gè)用戶的存取權(quán)限就是要定義這個(gè)用戶可以在哪些數(shù)據(jù)義一個(gè)用戶的存取權(quán)限就是要定義這個(gè)用戶可以在哪些數(shù)據(jù)對(duì)象

14、上進(jìn)行哪些類型的操作。對(duì)象上進(jìn)行哪些類型的操作。 在數(shù)據(jù)庫(kù)系統(tǒng)中,定義用戶存取權(quán)限稱為授權(quán)在數(shù)據(jù)庫(kù)系統(tǒng)中,定義用戶存取權(quán)限稱為授權(quán). . 授權(quán)有兩種:授權(quán)有兩種: (1)(1)系統(tǒng)權(quán)限系統(tǒng)權(quán)限: :由由DBADBA授予某些數(shù)據(jù)庫(kù)用戶,只有得到授予某些數(shù)據(jù)庫(kù)用戶,只有得到系統(tǒng)權(quán)限,才能成為數(shù)據(jù)庫(kù)用戶系統(tǒng)權(quán)限,才能成為數(shù)據(jù)庫(kù)用戶 . . 返回返回1216.1.2 16.1.2 安全性控制的一般方法安全性控制的一般方法 (2) (2)對(duì)象權(quán)限對(duì)象權(quán)限 : :可以由可以由DBADBA授予,也可以由數(shù)據(jù)對(duì)授予,也可以由數(shù)據(jù)對(duì)象的創(chuàng)建者授予,使數(shù)據(jù)庫(kù)用戶具有對(duì)某些數(shù)據(jù)對(duì)象進(jìn)象的創(chuàng)建者授予,使數(shù)據(jù)庫(kù)用戶具有

15、對(duì)某些數(shù)據(jù)對(duì)象進(jìn)行某些操作的權(quán)限行某些操作的權(quán)限. . 這些授權(quán)定義經(jīng)過編譯后以一張授權(quán)表的形式存這些授權(quán)定義經(jīng)過編譯后以一張授權(quán)表的形式存放在數(shù)據(jù)字典中。授權(quán)表主要有三個(gè)屬性,用戶標(biāo)識(shí)、放在數(shù)據(jù)字典中。授權(quán)表主要有三個(gè)屬性,用戶標(biāo)識(shí)、數(shù)據(jù)對(duì)象和操作類型。數(shù)據(jù)對(duì)象和操作類型。 返回返回1316.1.2 16.1.2 安全性控制的一般方法安全性控制的一般方法 3 3、視圖機(jī)制、視圖機(jī)制 為不同的用戶定義不同的視圖,可以限制各個(gè)用戶為不同的用戶定義不同的視圖,可以限制各個(gè)用戶的訪問范圍。通過視圖機(jī)制把要保密的數(shù)據(jù)對(duì)無權(quán)存的訪問范圍。通過視圖機(jī)制把要保密的數(shù)據(jù)對(duì)無權(quán)存取這些數(shù)據(jù)的用戶隱藏起來,從而自

16、動(dòng)地對(duì)數(shù)據(jù)提供取這些數(shù)據(jù)的用戶隱藏起來,從而自動(dòng)地對(duì)數(shù)據(jù)提供一定程度的安全保護(hù)。一定程度的安全保護(hù)。 4 4、數(shù)據(jù)加密、數(shù)據(jù)加密 數(shù)據(jù)加密是防止數(shù)據(jù)庫(kù)中數(shù)據(jù)在存儲(chǔ)和傳輸中失數(shù)據(jù)加密是防止數(shù)據(jù)庫(kù)中數(shù)據(jù)在存儲(chǔ)和傳輸中失密的有效手段密的有效手段. .加密的基本思想是根據(jù)一定的算法將原加密的基本思想是根據(jù)一定的算法將原始數(shù)據(jù)加密成為不可直接識(shí)別的格式始數(shù)據(jù)加密成為不可直接識(shí)別的格式, ,數(shù)據(jù)以密碼的形數(shù)據(jù)以密碼的形式存儲(chǔ)和傳輸式存儲(chǔ)和傳輸 . . 返回返回1416.1.2 16.1.2 安全性控制的一般方法安全性控制的一般方法 加密方法有兩種加密方法有兩種: : (1) (1)替換方法替換方法: :該

17、方法使用密鑰將明文中的每一個(gè)字符該方法使用密鑰將明文中的每一個(gè)字符轉(zhuǎn)換為密文中的一個(gè)字符轉(zhuǎn)換為密文中的一個(gè)字符. . (2) (2)轉(zhuǎn)換方法轉(zhuǎn)換方法: :該方法將明文中的字符按不同的順序重該方法將明文中的字符按不同的順序重新排列新排列. . 用密碼存儲(chǔ)數(shù)據(jù),在存入時(shí)需加密,在查詢時(shí)需解密用密碼存儲(chǔ)數(shù)據(jù),在存入時(shí)需加密,在查詢時(shí)需解密, ,這個(gè)過程會(huì)占用較多的系統(tǒng)資源,降低了數(shù)據(jù)庫(kù)的性能。這個(gè)過程會(huì)占用較多的系統(tǒng)資源,降低了數(shù)據(jù)庫(kù)的性能。 5 5、審計(jì)、審計(jì) 實(shí)際上任何系統(tǒng)的安全性措施都不是絕對(duì)可靠的,竊實(shí)際上任何系統(tǒng)的安全性措施都不是絕對(duì)可靠的,竊密者總有辦法打破這些控制密者總有辦法打破這些控

18、制. .審計(jì)功能是一種監(jiān)視措施,審計(jì)功能是一種監(jiān)視措施,跟蹤記錄有關(guān)數(shù)據(jù)的訪問活動(dòng)跟蹤記錄有關(guān)數(shù)據(jù)的訪問活動(dòng). . 返回返回1516.1.3 16.1.3 安全性控制的其它方法安全性控制的其它方法 1、強(qiáng)制存取控制(、強(qiáng)制存取控制(MAC) ) 有些數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)要求很高的保密性,通常具有有些數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)要求很高的保密性,通常具有靜態(tài)的嚴(yán)格的分層結(jié)構(gòu),強(qiáng)制存取控制能實(shí)現(xiàn)這種高保密靜態(tài)的嚴(yán)格的分層結(jié)構(gòu),強(qiáng)制存取控制能實(shí)現(xiàn)這種高保密性要求性要求. .這種方法的基本思想在于每個(gè)數(shù)據(jù)對(duì)象(文件、這種方法的基本思想在于每個(gè)數(shù)據(jù)對(duì)象(文件、記錄記錄或宇段等記錄記錄或宇段等) )賦予一定的密級(jí),級(jí)別從

19、高到低有:賦予一定的密級(jí),級(jí)別從高到低有:絕密級(jí)、機(jī)密級(jí)、秘密級(jí)和公用級(jí)絕密級(jí)、機(jī)密級(jí)、秘密級(jí)和公用級(jí). .每個(gè)用戶也具有相應(yīng)每個(gè)用戶也具有相應(yīng)的級(jí)別,稱為許可證級(jí)別的級(jí)別,稱為許可證級(jí)別. . 在系統(tǒng)運(yùn)行時(shí),采用如下兩條簡(jiǎn)單規(guī)則:在系統(tǒng)運(yùn)行時(shí),采用如下兩條簡(jiǎn)單規(guī)則: (1)(1)用戶用戶U U只能查看比它級(jí)別低或同級(jí)的數(shù)據(jù)只能查看比它級(jí)別低或同級(jí)的數(shù)據(jù). . (2) (2)用戶用戶U U只能修改和它同級(jí)的數(shù)據(jù)只能修改和它同級(jí)的數(shù)據(jù). . 強(qiáng)制存取控制是一種獨(dú)立于值的控制方法強(qiáng)制存取控制是一種獨(dú)立于值的控制方法. .它的優(yōu)點(diǎn)是它的優(yōu)點(diǎn)是系統(tǒng)能執(zhí)行系統(tǒng)能執(zhí)行“信息流控制信息流控制”. . 返回返

20、回162、統(tǒng)計(jì)數(shù)據(jù)庫(kù)的安全性、統(tǒng)計(jì)數(shù)據(jù)庫(kù)的安全性 查詢僅僅是某些記錄的統(tǒng)計(jì)值,例如求記錄數(shù)、和、查詢僅僅是某些記錄的統(tǒng)計(jì)值,例如求記錄數(shù)、和、平均值等。在統(tǒng)計(jì)數(shù)據(jù)庫(kù)中,雖然不允許用戶查詢單平均值等。在統(tǒng)計(jì)數(shù)據(jù)庫(kù)中,雖然不允許用戶查詢單個(gè)記錄的信息,但是用戶可以通過處理足夠多的匯總個(gè)記錄的信息,但是用戶可以通過處理足夠多的匯總信息來分析出單個(gè)記錄的信息信息來分析出單個(gè)記錄的信息. . 在統(tǒng)計(jì)數(shù)據(jù)庫(kù)中,對(duì)查詢應(yīng)作下列限制:在統(tǒng)計(jì)數(shù)據(jù)庫(kù)中,對(duì)查詢應(yīng)作下列限制: 一個(gè)查詢查到的記錄個(gè)數(shù)至少是一個(gè)查詢查到的記錄個(gè)數(shù)至少是n; 兩個(gè)查詢查到的記錄的兩個(gè)查詢查到的記錄的“交交”數(shù)目至多是數(shù)目至多是m. .

21、保證數(shù)據(jù)庫(kù)安全性的另一個(gè)方法是保證數(shù)據(jù)庫(kù)安全性的另一個(gè)方法是“數(shù)據(jù)污染數(shù)據(jù)污染”,也就是在回答查詢時(shí),提供一些偏離正確值的數(shù)據(jù),也就是在回答查詢時(shí),提供一些偏離正確值的數(shù)據(jù),以免數(shù)據(jù)泄露以免數(shù)據(jù)泄露. . 返回返回1716.1.4 SQL Server 200016.1.4 SQL Server 2000安全性概述安全性概述 SQL Server 2000 SQL Server 2000安全系統(tǒng)的構(gòu)架建立在用戶和用安全系統(tǒng)的構(gòu)架建立在用戶和用戶組的基礎(chǔ)上戶組的基礎(chǔ)上 .SQL Server.SQL Server提供了提供了3 3種安全管理模式,種安全管理模式,即標(biāo)準(zhǔn)模式、集成模式和混合模式,數(shù)

22、據(jù)庫(kù)設(shè)計(jì)者和即標(biāo)準(zhǔn)模式、集成模式和混合模式,數(shù)據(jù)庫(kù)設(shè)計(jì)者和數(shù)據(jù)庫(kù)管理員可以根據(jù)實(shí)際情況進(jìn)行選擇數(shù)據(jù)庫(kù)管理員可以根據(jù)實(shí)際情況進(jìn)行選擇 . . 1 1、兩個(gè)安全性階段、兩個(gè)安全性階段 : :身份驗(yàn)證和授權(quán)身份驗(yàn)證和授權(quán) . . 2 2、用戶權(quán)限、用戶權(quán)限 : :登錄創(chuàng)建在登錄創(chuàng)建在WindowsWindows中,而非中,而非 SQL SQL ServerServer中中. . 返回返回1816.1.4 SQL16.1.4 SQL ServerServer 20002000安全性概述安全性概述 當(dāng)用戶連接到當(dāng)用戶連接到SQL Server 2000SQL Server 2000實(shí)例后,他們可以執(zhí)行的

23、活動(dòng)實(shí)例后,他們可以執(zhí)行的活動(dòng)由授予以下帳戶的權(quán)限確定:由授予以下帳戶的權(quán)限確定: (1 1)用戶的安全帳戶;)用戶的安全帳戶; (2 2)用戶的安全帳戶所屬)用戶的安全帳戶所屬WindowsWindows組或角色層次結(jié);組或角色層次結(jié); (3 3)用戶若要進(jìn)行任何涉及更改數(shù)據(jù)庫(kù)定義或訪問數(shù)據(jù)的活動(dòng),)用戶若要進(jìn)行任何涉及更改數(shù)據(jù)庫(kù)定義或訪問數(shù)據(jù)的活動(dòng),則必須有相應(yīng)的權(quán)限則必須有相應(yīng)的權(quán)限. .返回返回1916.1.4 16.1.4 SQL Server 2000SQL Server 2000安全性概述安全性概述 3、視圖安全機(jī)制、視圖安全機(jī)制 SQL Server 2000通過限制可由用戶使

24、用的數(shù)據(jù),可以將視圖通過限制可由用戶使用的數(shù)據(jù),可以將視圖作為安全機(jī)制。用戶可以訪問某些數(shù)據(jù),進(jìn)行查詢和修改,但是作為安全機(jī)制。用戶可以訪問某些數(shù)據(jù),進(jìn)行查詢和修改,但是表或數(shù)據(jù)庫(kù)的其余部分是不可見的,也不能進(jìn)行訪問。表或數(shù)據(jù)庫(kù)的其余部分是不可見的,也不能進(jìn)行訪問。 4、加密方法、加密方法 SQL Server 2000支持加密或可以加密的內(nèi)容為:支持加密或可以加密的內(nèi)容為:SQL Server 中存儲(chǔ)的登錄和應(yīng)用程序角色密碼;中存儲(chǔ)的登錄和應(yīng)用程序角色密碼;作為網(wǎng)絡(luò)數(shù)據(jù)包而在客戶作為網(wǎng)絡(luò)數(shù)據(jù)包而在客戶端和服務(wù)器端之間發(fā)送的數(shù)據(jù);端和服務(wù)器端之間發(fā)送的數(shù)據(jù);SQL Server 2000中如下

25、對(duì)象的中如下對(duì)象的定義內(nèi)容:存儲(chǔ)過程、用戶定義函數(shù)、視圖、觸發(fā)器、默認(rèn)值、定義內(nèi)容:存儲(chǔ)過程、用戶定義函數(shù)、視圖、觸發(fā)器、默認(rèn)值、規(guī)則等。規(guī)則等。 返回返回2016.1.4 16.1.4 SQL Server 2000SQL Server 2000安全性概述安全性概述 5 5、審核活動(dòng)、審核活動(dòng) SQL Server 2000SQL Server 2000提供審核功能,用以跟蹤和記錄每個(gè)提供審核功能,用以跟蹤和記錄每個(gè) SQL SQL Server Server 實(shí)例上已發(fā)生的活動(dòng)(如成功和失敗的記錄)。實(shí)例上已發(fā)生的活動(dòng)(如成功和失敗的記錄)。SQL SQL Server 2000 Serv

26、er 2000 還提供管理審核記錄的接口,即還提供管理審核記錄的接口,即 SQL SQL 事件探查器。事件探查器。只有只有 sysadmin sysadmin 固定安全角色的成員才能啟用或修改審核,而且固定安全角色的成員才能啟用或修改審核,而且審核的每次修改都是可審核的事件。審核的每次修改都是可審核的事件。返回返回2116.2.1 16.2.1 數(shù)據(jù)庫(kù)完整性概述數(shù)據(jù)庫(kù)完整性概述 數(shù)據(jù)庫(kù)的完整性是指保護(hù)數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性、有效性和相容性,數(shù)據(jù)庫(kù)的完整性是指保護(hù)數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性、有效性和相容性,防止錯(cuò)誤的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫(kù)造成無效操作。防止錯(cuò)誤的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫(kù)造成無效操作。 顯然,維護(hù)數(shù)據(jù)庫(kù)的完

27、整性非常重要,數(shù)據(jù)庫(kù)中的數(shù)據(jù)是否具備完整顯然,維護(hù)數(shù)據(jù)庫(kù)的完整性非常重要,數(shù)據(jù)庫(kù)中的數(shù)據(jù)是否具備完整性關(guān)系到數(shù)據(jù)能否真實(shí)地反映現(xiàn)實(shí)世界。性關(guān)系到數(shù)據(jù)能否真實(shí)地反映現(xiàn)實(shí)世界。 數(shù)據(jù)庫(kù)的完整性和安全性是數(shù)據(jù)庫(kù)保護(hù)的兩個(gè)不同的方面。數(shù)據(jù)庫(kù)的完整性和安全性是數(shù)據(jù)庫(kù)保護(hù)的兩個(gè)不同的方面。 安全性是保護(hù)數(shù)據(jù)庫(kù),以防止非法使用所造成數(shù)據(jù)的泄露、更改或破安全性是保護(hù)數(shù)據(jù)庫(kù),以防止非法使用所造成數(shù)據(jù)的泄露、更改或破壞,安全性措施的防范對(duì)象是非法用戶和非法操作;完整性是防止合法用壞,安全性措施的防范對(duì)象是非法用戶和非法操作;完整性是防止合法用戶使用數(shù)據(jù)庫(kù)時(shí)向數(shù)據(jù)庫(kù)中加入不符合語(yǔ)義的數(shù)據(jù),完整性措施的防范對(duì)戶使用數(shù)

28、據(jù)庫(kù)時(shí)向數(shù)據(jù)庫(kù)中加入不符合語(yǔ)義的數(shù)據(jù),完整性措施的防范對(duì)象是不合語(yǔ)義的數(shù)據(jù)。象是不合語(yǔ)義的數(shù)據(jù)。 返回返回2216.2.2 16.2.2 完整性規(guī)則的組成完整性規(guī)則的組成 完整性規(guī)則主要由以下三部分構(gòu)成:完整性規(guī)則主要由以下三部分構(gòu)成: (1 1)觸發(fā)條件:規(guī)定系統(tǒng)什么時(shí)候使用規(guī)則檢查數(shù)據(jù);)觸發(fā)條件:規(guī)定系統(tǒng)什么時(shí)候使用規(guī)則檢查數(shù)據(jù); (2 2)約束條件:規(guī)定系統(tǒng)檢查用戶發(fā)出的操作請(qǐng)求違背了什么樣)約束條件:規(guī)定系統(tǒng)檢查用戶發(fā)出的操作請(qǐng)求違背了什么樣的完整性約束條件;的完整性約束條件; (3 3)違約響應(yīng):規(guī)定系統(tǒng)如果發(fā)現(xiàn)用戶的操作請(qǐng)求違背了完整性)違約響應(yīng):規(guī)定系統(tǒng)如果發(fā)現(xiàn)用戶的操作請(qǐng)求違

29、背了完整性約束條件,應(yīng)該采取一定的動(dòng)作來保證數(shù)據(jù)的完整性,即違約時(shí)約束條件,應(yīng)該采取一定的動(dòng)作來保證數(shù)據(jù)的完整性,即違約時(shí)要做的事情。要做的事情。 完整性規(guī)則從執(zhí)行時(shí)間上可分為立即執(zhí)行約束(完整性規(guī)則從執(zhí)行時(shí)間上可分為立即執(zhí)行約束(Immediate Immediate ConstraintsConstraints)和延遲執(zhí)行約束()和延遲執(zhí)行約束(Deferred ConstraintsDeferred Constraints)。)。 立即執(zhí)行約束是指在執(zhí)行用戶事務(wù)過程中,某一條語(yǔ)句執(zhí)行立即執(zhí)行約束是指在執(zhí)行用戶事務(wù)過程中,某一條語(yǔ)句執(zhí)行完成后,系統(tǒng)立即對(duì)此數(shù)據(jù)進(jìn)行完整性約束條件檢查;延遲執(zhí)

30、行完成后,系統(tǒng)立即對(duì)此數(shù)據(jù)進(jìn)行完整性約束條件檢查;延遲執(zhí)行約束是指在整個(gè)事務(wù)執(zhí)行結(jié)束后,再對(duì)約束條件進(jìn)行完整性檢查,約束是指在整個(gè)事務(wù)執(zhí)行結(jié)束后,再對(duì)約束條件進(jìn)行完整性檢查,結(jié)果正確后才能提交。結(jié)果正確后才能提交。 返回返回2316.2.2 16.2.2 完整性規(guī)則的組成完整性規(guī)則的組成 一條完整性規(guī)則可以用一個(gè)五元組(一條完整性規(guī)則可以用一個(gè)五元組(D,O,A,C,P)來形式化地)來形式化地表示。其中:表示。其中: D(data):代表約束作用的數(shù)據(jù)對(duì)象;):代表約束作用的數(shù)據(jù)對(duì)象; O(operation):代表觸發(fā)完整性檢查的數(shù)據(jù)庫(kù)操作,即當(dāng)用戶發(fā)):代表觸發(fā)完整性檢查的數(shù)據(jù)庫(kù)操作,即當(dāng)

31、用戶發(fā)出什么操作請(qǐng)求時(shí)需要檢查該完整性規(guī)則;出什么操作請(qǐng)求時(shí)需要檢查該完整性規(guī)則; A(assertion):代表數(shù)據(jù)對(duì)象必須滿足的語(yǔ)義約束,這是規(guī)則的主):代表數(shù)據(jù)對(duì)象必須滿足的語(yǔ)義約束,這是規(guī)則的主體;體; C(condition):代表選擇):代表選擇A作用的數(shù)據(jù)對(duì)象值的謂詞;作用的數(shù)據(jù)對(duì)象值的謂詞; P(procedure):代表違反完整性規(guī)則時(shí)觸發(fā)執(zhí)行的操作過程。):代表違反完整性規(guī)則時(shí)觸發(fā)執(zhí)行的操作過程。 返回返回2416.2.2 16.2.2 完整性規(guī)則的組成完整性規(guī)則的組成例如,對(duì)于例如,對(duì)于“學(xué)號(hào)不能為空學(xué)號(hào)不能為空”的這條完整性約束,的這條完整性約束,D:代表約束作用的數(shù)據(jù)

32、對(duì)象為:代表約束作用的數(shù)據(jù)對(duì)象為SNO屬性;屬性;O(operation):當(dāng)用戶插入或修改數(shù)據(jù)時(shí)需要檢查該完整性規(guī)則;):當(dāng)用戶插入或修改數(shù)據(jù)時(shí)需要檢查該完整性規(guī)則;A(assertion):):SNO不能為空;不能為空;C(condition):):A可作用于所有記錄的可作用于所有記錄的SNO屬性;屬性;P(procedure):拒絕執(zhí)行用戶請(qǐng)求。):拒絕執(zhí)行用戶請(qǐng)求。返回返回2516.2.3 16.2.3 完整性約束條件的分類完整性約束條件的分類 在數(shù)據(jù)庫(kù)領(lǐng)域中,有四種最常用的數(shù)據(jù)模型,它們是:被稱為非在數(shù)據(jù)庫(kù)領(lǐng)域中,有四種最常用的數(shù)據(jù)模型,它們是:被稱為非關(guān)系模型的層次模型、網(wǎng)狀模型、

33、關(guān)系模型和面向?qū)ο竽P?。本關(guān)系模型的層次模型、網(wǎng)狀模型、關(guān)系模型和面向?qū)ο竽P?。本章?jiǎn)要介紹層次模型、網(wǎng)狀模型、關(guān)系模型。章簡(jiǎn)要介紹層次模型、網(wǎng)狀模型、關(guān)系模型。 層次模型是數(shù)據(jù)庫(kù)系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型,它用樹形結(jié)構(gòu)表層次模型是數(shù)據(jù)庫(kù)系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型,它用樹形結(jié)構(gòu)表示各類實(shí)體以及實(shí)體間的聯(lián)系。層次模型數(shù)據(jù)庫(kù)系統(tǒng)的典型代表示各類實(shí)體以及實(shí)體間的聯(lián)系。層次模型數(shù)據(jù)庫(kù)系統(tǒng)的典型代表是是IBMIBM公司的公司的IMSIMS(Information Management SystemsInformation Management Systems)數(shù)據(jù)庫(kù)管)數(shù)據(jù)庫(kù)管理系統(tǒng),這是一個(gè)曾經(jīng)廣泛使用的

34、數(shù)據(jù)庫(kù)管理系統(tǒng)?,F(xiàn)實(shí)世界中理系統(tǒng),這是一個(gè)曾經(jīng)廣泛使用的數(shù)據(jù)庫(kù)管理系統(tǒng)?,F(xiàn)實(shí)世界中有一些的實(shí)體之間的聯(lián)系本來就呈現(xiàn)出一種很自然的層次關(guān)系,有一些的實(shí)體之間的聯(lián)系本來就呈現(xiàn)出一種很自然的層次關(guān)系,如家庭關(guān)系,行政關(guān)系。如家庭關(guān)系,行政關(guān)系。返回返回2616.2.3 16.2.3 完整性約束條件的分類完整性約束條件的分類 1、值的約束和結(jié)構(gòu)的約束 從約束條件使用的對(duì)象來分,可把約束分為值的約束和結(jié)構(gòu)的約束。從約束條件使用的對(duì)象來分,可把約束分為值的約束和結(jié)構(gòu)的約束。 值的約束:即對(duì)數(shù)據(jù)類型、數(shù)據(jù)格式、取值范圍等進(jìn)行規(guī)定。值的約束:即對(duì)數(shù)據(jù)類型、數(shù)據(jù)格式、取值范圍等進(jìn)行規(guī)定。(1 1)對(duì)數(shù)據(jù)類型的約

35、束,包括數(shù)據(jù)的類型、長(zhǎng)度、單位和精度等。例)對(duì)數(shù)據(jù)類型的約束,包括數(shù)據(jù)的類型、長(zhǎng)度、單位和精度等。例如,規(guī)定學(xué)生性別的數(shù)據(jù)類型應(yīng)為字符型,長(zhǎng)度為如,規(guī)定學(xué)生性別的數(shù)據(jù)類型應(yīng)為字符型,長(zhǎng)度為2 2。(2 2)對(duì)數(shù)據(jù)格式的約束。例如,規(guī)定出生日期的數(shù)據(jù)格式為)對(duì)數(shù)據(jù)格式的約束。例如,規(guī)定出生日期的數(shù)據(jù)格式為YYYY.MM.DDYYYY.MM.DD。(3 3)對(duì)取值范圍的約束。例如,月份的取值范圍為)對(duì)取值范圍的約束。例如,月份的取值范圍為1 11212,日期,日期1 13131。返回返回2716.2.3 16.2.3 完整性約束條件的分類完整性約束條件的分類(4 4)對(duì)空值的約束??罩当硎疚炊x或

36、未知的值,它與零值和空格)對(duì)空值的約束??罩当硎疚炊x或未知的值,它與零值和空格不同。有的列值允許空值,有的則不允許。例如,學(xué)號(hào)和課程號(hào)不同。有的列值允許空值,有的則不允許。例如,學(xué)號(hào)和課程號(hào)不可以為空值,但成績(jī)可以為空值。不可以為空值,但成績(jī)可以為空值。 結(jié)構(gòu)約束:即對(duì)數(shù)據(jù)之間聯(lián)系的約束。結(jié)構(gòu)約束:即對(duì)數(shù)據(jù)之間聯(lián)系的約束。 數(shù)據(jù)庫(kù)中同一關(guān)系的不同屬性之間,應(yīng)滿足一定的約束條件,數(shù)據(jù)庫(kù)中同一關(guān)系的不同屬性之間,應(yīng)滿足一定的約束條件,同時(shí),不同關(guān)系的屬性之間也有聯(lián)系,也應(yīng)滿足一定的約束條件。同時(shí),不同關(guān)系的屬性之間也有聯(lián)系,也應(yīng)滿足一定的約束條件。返回返回2816.2.3 16.2.3 完整性約

37、束條件的分類完整性約束條件的分類常見的結(jié)構(gòu)約束有如下四種:常見的結(jié)構(gòu)約束有如下四種:(1)函數(shù)依賴約束:說明了同一關(guān)系中不同屬性之間應(yīng)滿足的約束)函數(shù)依賴約束:說明了同一關(guān)系中不同屬性之間應(yīng)滿足的約束條件。如:條件。如:2NF,3NF,BCNF這些不同的范式應(yīng)滿足不同的約束這些不同的范式應(yīng)滿足不同的約束條件。大部分函數(shù)依賴約束都是隱含在關(guān)系模式結(jié)構(gòu)中的,特別條件。大部分函數(shù)依賴約束都是隱含在關(guān)系模式結(jié)構(gòu)中的,特別是對(duì)于規(guī)范化程度較高的關(guān)系模式,都是由模式來保持函數(shù)依賴是對(duì)于規(guī)范化程度較高的關(guān)系模式,都是由模式來保持函數(shù)依賴的。的。(2)實(shí)體完整性約束:說明了關(guān)系主鍵(或主碼)的屬性列必須唯)實(shí)

38、體完整性約束:說明了關(guān)系主鍵(或主碼)的屬性列必須唯一,其值不能為全空或部分為空。一,其值不能為全空或部分為空。(3)參照完整性約束:說明了不同關(guān)系的屬性之間的約束條件,即)參照完整性約束:說明了不同關(guān)系的屬性之間的約束條件,即外部鍵(外碼)的值應(yīng)能夠在被參照關(guān)系的主鍵值中找到或取空外部鍵(外碼)的值應(yīng)能夠在被參照關(guān)系的主鍵值中找到或取空值。值。返回返回2916.2.3 16.2.3 完整性約束條件的分類完整性約束條件的分類(4)用戶自定義完整性:從實(shí)際應(yīng)用系統(tǒng)出發(fā),按需定)用戶自定義完整性:從實(shí)際應(yīng)用系統(tǒng)出發(fā),按需定 義屬性之間要滿足的約束條件。義屬性之間要滿足的約束條件。(5)統(tǒng)計(jì)約束,規(guī)

39、定某個(gè)屬性值與關(guān)系多個(gè)元組的統(tǒng)計(jì))統(tǒng)計(jì)約束,規(guī)定某個(gè)屬性值與關(guān)系多個(gè)元組的統(tǒng)計(jì)值之間必須滿足某種約束條件。例如,規(guī)定系主任的值之間必須滿足某種約束條件。例如,規(guī)定系主任的獎(jiǎng)金不得高于該系的平均獎(jiǎng)金的獎(jiǎng)金不得高于該系的平均獎(jiǎng)金的50%,不得低于該系,不得低于該系的平均獎(jiǎng)金的的平均獎(jiǎng)金的15%。這里該系平均獎(jiǎng)金的值就是一個(gè)。這里該系平均獎(jiǎng)金的值就是一個(gè)統(tǒng)計(jì)計(jì)算值。統(tǒng)計(jì)計(jì)算值。 其中,實(shí)體完整性約束和參照完整性約束是關(guān)系其中,實(shí)體完整性約束和參照完整性約束是關(guān)系模型的兩個(gè)極其重要的約束,被稱為關(guān)系的兩個(gè)不變模型的兩個(gè)極其重要的約束,被稱為關(guān)系的兩個(gè)不變性。而統(tǒng)計(jì)約束實(shí)現(xiàn)起來開銷很大。性。而統(tǒng)計(jì)約束實(shí)

40、現(xiàn)起來開銷很大。返回返回3016.2.3 16.2.3 完整性約束條件的分類完整性約束條件的分類2、靜態(tài)約束和動(dòng)態(tài)約束完整性約束從約束對(duì)象的狀態(tài)可分為靜態(tài)約束和動(dòng)態(tài)約束。完整性約束從約束對(duì)象的狀態(tài)可分為靜態(tài)約束和動(dòng)態(tài)約束。 靜態(tài)約束靜態(tài)約束 靜態(tài)約束是指在數(shù)據(jù)庫(kù)每一個(gè)確定狀態(tài)時(shí)的數(shù)據(jù)對(duì)象所應(yīng)滿足的約束靜態(tài)約束是指在數(shù)據(jù)庫(kù)每一個(gè)確定狀態(tài)時(shí)的數(shù)據(jù)對(duì)象所應(yīng)滿足的約束條件,它是反映數(shù)據(jù)庫(kù)狀態(tài)合理性的約束,這是最重要的一類完整性約條件,它是反映數(shù)據(jù)庫(kù)狀態(tài)合理性的約束,這是最重要的一類完整性約束。上面介紹的值的約束和結(jié)構(gòu)的約束均屬于靜態(tài)約束。束。上面介紹的值的約束和結(jié)構(gòu)的約束均屬于靜態(tài)約束。 動(dòng)態(tài)約束動(dòng)態(tài)

41、約束 動(dòng)態(tài)約束是指數(shù)據(jù)庫(kù)從一種狀態(tài)轉(zhuǎn)變?yōu)榱硪环N狀態(tài)時(shí)(數(shù)據(jù)庫(kù)數(shù)據(jù)變動(dòng)態(tài)約束是指數(shù)據(jù)庫(kù)從一種狀態(tài)轉(zhuǎn)變?yōu)榱硪环N狀態(tài)時(shí)(數(shù)據(jù)庫(kù)數(shù)據(jù)變動(dòng)前后),新、舊值之間所應(yīng)滿足的約束條件,它是反映數(shù)據(jù)庫(kù)狀態(tài)變動(dòng)前后),新、舊值之間所應(yīng)滿足的約束條件,它是反映數(shù)據(jù)庫(kù)狀態(tài)變遷的約束。遷的約束。 例如,學(xué)生年齡在更改時(shí)只能增長(zhǎng),職工工資在調(diào)整時(shí)不得低于例如,學(xué)生年齡在更改時(shí)只能增長(zhǎng),職工工資在調(diào)整時(shí)不得低于其原來的工資。其原來的工資。返回返回3116.2.4 SQL Server 200016.2.4 SQL Server 2000完整性概述完整性概述 SQL Server 2000SQL Server 2000中數(shù)據(jù)

42、完整性可分為四種類型:實(shí)體完整性、域完中數(shù)據(jù)完整性可分為四種類型:實(shí)體完整性、域完整性、引用完整性、用戶定義完整性。另外,觸發(fā)器、存儲(chǔ)過程等整性、引用完整性、用戶定義完整性。另外,觸發(fā)器、存儲(chǔ)過程等也能以一定方式控制數(shù)據(jù)完整性。也能以一定方式控制數(shù)據(jù)完整性。 1 1、實(shí)體完整性、實(shí)體完整性 實(shí)體完整性將行定義為特定表的唯一實(shí)體。實(shí)體完整性將行定義為特定表的唯一實(shí)體。SQL Server 2000SQL Server 2000支持如支持如下實(shí)體完整性相關(guān)的約束:下實(shí)體完整性相關(guān)的約束:(1) PRIMARY KEY(1) PRIMARY KEY約束:在一個(gè)表中不能有兩行包含相同的主鍵值,不約束:

43、在一個(gè)表中不能有兩行包含相同的主鍵值,不能在主鍵內(nèi)的任何列中輸入能在主鍵內(nèi)的任何列中輸入NULLNULL值。值。(2) UNIQUE (2) UNIQUE 約束:約束:UNIQUE UNIQUE 約束在列集內(nèi)強(qiáng)制執(zhí)行值的唯一性,對(duì)于約束在列集內(nèi)強(qiáng)制執(zhí)行值的唯一性,對(duì)于UNIQUEUNIQUE約束中的列,表中不允許有兩行包含相同的非空值。約束中的列,表中不允許有兩行包含相同的非空值。返回返回32(3) IDENTITY(3) IDENTITY屬性:屬性:IDENTITYIDENTITY屬性能自動(dòng)產(chǎn)生唯一標(biāo)識(shí)屬性能自動(dòng)產(chǎn)生唯一標(biāo)識(shí)值,指定為值,指定為IDENTITYIDENTITY的列一般作為主鍵

44、。的列一般作為主鍵。2、域完整性:是指給定列的輸入正確性與有效性。、域完整性:是指給定列的輸入正確性與有效性。SQL SQL Server 2000Server 2000中強(qiáng)制域有效性的方法有:限制類型,如中強(qiáng)制域有效性的方法有:限制類型,如通過數(shù)據(jù)類型、用戶自定義數(shù)據(jù)類型等實(shí)現(xiàn);格式限通過數(shù)據(jù)類型、用戶自定義數(shù)據(jù)類型等實(shí)現(xiàn);格式限制,如通過制,如通過CHECKCHECK約束和規(guī)則等實(shí)現(xiàn);列值的范圍限定,約束和規(guī)則等實(shí)現(xiàn);列值的范圍限定,如通過如通過PRIMARY KEY PRIMARY KEY 約束、約束、UNIQUE UNIQUE 約束、約束、FOREIGN FOREIGN KEY KEY

45、 約束、約束、CHECKCHECK約束、約束、DEFAULTDEFAULT定義、定義、NOT NULLNOT NULL定義定義等實(shí)現(xiàn)。等實(shí)現(xiàn)。返回返回333 3、引用完整性、引用完整性( (即參照完整性即參照完整性) ) SQL Server 2000 SQL Server 2000引用完整性主要由引用完整性主要由FOREIGN KEYFOREIGN KEY約束約束體現(xiàn),它標(biāo)識(shí)表之間的關(guān)系體現(xiàn),它標(biāo)識(shí)表之間的關(guān)系, ,一個(gè)表的外鍵指向另一個(gè)一個(gè)表的外鍵指向另一個(gè)表的候選鍵或唯一鍵。表的候選鍵或唯一鍵。強(qiáng)制引用完整性時(shí),強(qiáng)制引用完整性時(shí),SQL ServerSQL Server禁止用戶進(jìn)行下列操

46、作:禁止用戶進(jìn)行下列操作:(1) (1) 當(dāng)主表中沒有關(guān)聯(lián)的記錄時(shí),將記錄添加到相關(guān)表當(dāng)主表中沒有關(guān)聯(lián)的記錄時(shí),將記錄添加到相關(guān)表中。中。(2) (2) 更改主表中的值并導(dǎo)致相關(guān)表中的記錄孤立。更改主表中的值并導(dǎo)致相關(guān)表中的記錄孤立。返回返回34(3) (3) 從主表中刪除記錄,但仍存在與該記錄匹配的相關(guān)從主表中刪除記錄,但仍存在與該記錄匹配的相關(guān)記錄。記錄。 在在DELETEDELETE或或UPDATEUPDATE所產(chǎn)生的所有級(jí)聯(lián)引用操作的諸所產(chǎn)生的所有級(jí)聯(lián)引用操作的諸表中,每個(gè)表只能出現(xiàn)一次。多個(gè)級(jí)聯(lián)操作中只要有表中,每個(gè)表只能出現(xiàn)一次。多個(gè)級(jí)聯(lián)操作中只要有一個(gè)表因完整性原因操作失敗,整個(gè)

47、操縱將失敗而回一個(gè)表因完整性原因操作失敗,整個(gè)操縱將失敗而回滾。滾。4 4、用戶定義完整性、用戶定義完整性 SQL Server 2000SQL Server 2000用戶定義完整性主要由用戶定義完整性主要由CheckCheck約束約束所定義的列級(jí)或表級(jí)約束體現(xiàn),用戶定義完整性還能所定義的列級(jí)或表級(jí)約束體現(xiàn),用戶定義完整性還能由規(guī)則、觸發(fā)器、客戶端或服務(wù)器端應(yīng)用程序靈活定由規(guī)則、觸發(fā)器、客戶端或服務(wù)器端應(yīng)用程序靈活定義。義。返回返回355 5、觸發(fā)器、觸發(fā)器 SQL Server2000SQL Server2000觸發(fā)器是一類特殊的存儲(chǔ)過程,被觸發(fā)器是一類特殊的存儲(chǔ)過程,被定義為在對(duì)表或視圖發(fā)

48、出定義為在對(duì)表或視圖發(fā)出UPDATEUPDATE、INSERT INSERT 或或 DELETEDELETE語(yǔ)句時(shí)自動(dòng)執(zhí)行。觸發(fā)器可以擴(kuò)展語(yǔ)句時(shí)自動(dòng)執(zhí)行。觸發(fā)器可以擴(kuò)展SQL ServerSQL Server約束、約束、默認(rèn)值和規(guī)則的完整性檢查邏輯,一個(gè)表可以有多個(gè)默認(rèn)值和規(guī)則的完整性檢查邏輯,一個(gè)表可以有多個(gè)觸發(fā)器。觸發(fā)器。6 6、其它機(jī)制、其它機(jī)制 SQL Server2000SQL Server2000支持存儲(chǔ)過程中制定約束規(guī)則,支持存儲(chǔ)過程中制定約束規(guī)則,SQL SQL Server2000Server2000的并發(fā)控制機(jī)制能保障多用戶存取數(shù)據(jù)時(shí)的并發(fā)控制機(jī)制能保障多用戶存取數(shù)據(jù)時(shí)的完

49、整性。的完整性。返回返回3616.3.1 16.3.1 數(shù)據(jù)庫(kù)并發(fā)性概述數(shù)據(jù)庫(kù)并發(fā)性概述 每個(gè)用戶在存取數(shù)據(jù)庫(kù)中的數(shù)據(jù)時(shí),可能是串行執(zhí)行,每個(gè)用戶在存取數(shù)據(jù)庫(kù)中的數(shù)據(jù)時(shí),可能是串行執(zhí)行,即每個(gè)時(shí)刻只有一個(gè)用戶程序運(yùn)行,也可能是多個(gè)用即每個(gè)時(shí)刻只有一個(gè)用戶程序運(yùn)行,也可能是多個(gè)用戶并行地存取數(shù)據(jù)庫(kù)。戶并行地存取數(shù)據(jù)庫(kù)。 數(shù)據(jù)庫(kù)的最大特點(diǎn)之一就是數(shù)據(jù)資源是共享的,串行數(shù)據(jù)庫(kù)的最大特點(diǎn)之一就是數(shù)據(jù)資源是共享的,串行執(zhí)行意味著一個(gè)用戶在運(yùn)行程序時(shí),其他用戶程序必執(zhí)行意味著一個(gè)用戶在運(yùn)行程序時(shí),其他用戶程序必須等到這個(gè)用戶程序結(jié)束才能對(duì)數(shù)據(jù)庫(kù)進(jìn)行存取,這須等到這個(gè)用戶程序結(jié)束才能對(duì)數(shù)據(jù)庫(kù)進(jìn)行存取,這樣數(shù)

50、據(jù)庫(kù)系統(tǒng)的利用率會(huì)極低。樣數(shù)據(jù)庫(kù)系統(tǒng)的利用率會(huì)極低。 數(shù)據(jù)庫(kù)的并發(fā)控制機(jī)制能解決這類問題,以保持?jǐn)?shù)據(jù)數(shù)據(jù)庫(kù)的并發(fā)控制機(jī)制能解決這類問題,以保持?jǐn)?shù)據(jù)庫(kù)中數(shù)據(jù)的在多用戶并發(fā)操作時(shí)的一致性、正確性。庫(kù)中數(shù)據(jù)的在多用戶并發(fā)操作時(shí)的一致性、正確性。返回返回3716.3.2 16.3.2 事務(wù)的基本概念事務(wù)的基本概念 1 1、事務(wù)(、事務(wù)(TransactionTransaction)的定義)的定義 事務(wù)是數(shù)據(jù)庫(kù)系統(tǒng)中執(zhí)行的一個(gè)工作單位,它是事務(wù)是數(shù)據(jù)庫(kù)系統(tǒng)中執(zhí)行的一個(gè)工作單位,它是由用戶定義的一組操作序列組成。由用戶定義的一組操作序列組成。 一個(gè)事務(wù)可以是一組一個(gè)事務(wù)可以是一組SQLSQL語(yǔ)句、一條語(yǔ)句

51、、一條SQLSQL語(yǔ)句或整語(yǔ)句或整個(gè)程序,一個(gè)應(yīng)用程序可以包括多個(gè)事務(wù)。事務(wù)的開個(gè)程序,一個(gè)應(yīng)用程序可以包括多個(gè)事務(wù)。事務(wù)的開始與結(jié)束可以由用戶顯式控制。如果用戶沒有顯式地始與結(jié)束可以由用戶顯式控制。如果用戶沒有顯式地定義事務(wù),則由定義事務(wù),則由DBMSDBMS按照缺省規(guī)定自動(dòng)劃分事務(wù)。按照缺省規(guī)定自動(dòng)劃分事務(wù)。返回返回3816.3.2 16.3.2 事務(wù)的基本概念事務(wù)的基本概念在在SQLSQL語(yǔ)言中,定義事務(wù)的語(yǔ)句有三條:語(yǔ)言中,定義事務(wù)的語(yǔ)句有三條:(1)BEGIN TRANSACTION(1)BEGIN TRANSACTION表示事務(wù)的開始;表示事務(wù)的開始;(2)COMMIT(2)COM

52、MIT表示事務(wù)的提交,即將事務(wù)中所有對(duì)表示事務(wù)的提交,即將事務(wù)中所有對(duì) 數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)的更新寫回到磁盤上的物理數(shù)據(jù)庫(kù)中去,此時(shí)事務(wù)正的更新寫回到磁盤上的物理數(shù)據(jù)庫(kù)中去,此時(shí)事務(wù)正常結(jié)束;常結(jié)束;(3)ROLLBACK(3)ROLLBACK表示事務(wù)的回滾,即在事務(wù)運(yùn)行的過程中發(fā)表示事務(wù)的回滾,即在事務(wù)運(yùn)行的過程中發(fā)生了某種故障,事務(wù)不能繼續(xù)執(zhí)行,系統(tǒng)將事務(wù)中對(duì)生了某種故障,事務(wù)不能繼續(xù)執(zhí)行,系統(tǒng)將事務(wù)中對(duì)數(shù)據(jù)庫(kù)的所有已完成的更新操作全部撤銷,再回滾到數(shù)據(jù)庫(kù)的所有已完成的更新操作全部撤銷,再回滾到事務(wù)開始時(shí)的狀態(tài)。事務(wù)開始時(shí)的狀態(tài)。 返回返回3916.3.2 16.3.2 事務(wù)的基本概念事務(wù)的基本概

53、念2、事務(wù)的特征 事務(wù)是由有限的數(shù)據(jù)庫(kù)操作序列組成,但并不是任事務(wù)是由有限的數(shù)據(jù)庫(kù)操作序列組成,但并不是任意的數(shù)據(jù)庫(kù)操作序列都能成為事務(wù),為了保護(hù)數(shù)據(jù)的完意的數(shù)據(jù)庫(kù)操作序列都能成為事務(wù),為了保護(hù)數(shù)據(jù)的完整性,一般要求事務(wù)具有以下四個(gè)特征:整性,一般要求事務(wù)具有以下四個(gè)特征: (1 1)原子性()原子性(AtomicAtomic):一個(gè)事務(wù)是一個(gè)不可分割的工):一個(gè)事務(wù)是一個(gè)不可分割的工作單位,事務(wù)在執(zhí)行時(shí),應(yīng)該遵守作單位,事務(wù)在執(zhí)行時(shí),應(yīng)該遵守“要么不做,要么全要么不做,要么全做做”(nothing or allnothing or all)的原則,即不允許事務(wù)部分的)的原則,即不允許事務(wù)部分的完成。即使因?yàn)楣收隙故聞?wù)未能完成,它執(zhí)行的部分完成。即使因?yàn)楣收隙故聞?wù)未能完成,它執(zhí)行的部分操作要被

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論