![數(shù)據(jù)庫第16講數(shù)據(jù)庫保護(hù)課件_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/23/bcc89bd7-37b9-46c0-a440-946150a5cc93/bcc89bd7-37b9-46c0-a440-946150a5cc931.gif)
![數(shù)據(jù)庫第16講數(shù)據(jù)庫保護(hù)課件_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/23/bcc89bd7-37b9-46c0-a440-946150a5cc93/bcc89bd7-37b9-46c0-a440-946150a5cc932.gif)
![數(shù)據(jù)庫第16講數(shù)據(jù)庫保護(hù)課件_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/23/bcc89bd7-37b9-46c0-a440-946150a5cc93/bcc89bd7-37b9-46c0-a440-946150a5cc933.gif)
![數(shù)據(jù)庫第16講數(shù)據(jù)庫保護(hù)課件_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/23/bcc89bd7-37b9-46c0-a440-946150a5cc93/bcc89bd7-37b9-46c0-a440-946150a5cc934.gif)
![數(shù)據(jù)庫第16講數(shù)據(jù)庫保護(hù)課件_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/23/bcc89bd7-37b9-46c0-a440-946150a5cc93/bcc89bd7-37b9-46c0-a440-946150a5cc935.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、返回返回1第第1616講講 數(shù)據(jù)庫保護(hù)數(shù)據(jù)庫保護(hù) 教學(xué)目標(biāo):使學(xué)生了解和掌握數(shù)據(jù)庫的安全和教學(xué)目標(biāo):使學(xué)生了解和掌握數(shù)據(jù)庫的安全和完整控制的重要性和和可行性完整控制的重要性和和可行性 教學(xué)內(nèi)容:安全性控制的一般方法、完整性約教學(xué)內(nèi)容:安全性控制的一般方法、完整性約束條件和控制機(jī)制束條件和控制機(jī)制 教學(xué)重點(diǎn):存取控制教學(xué)重點(diǎn):存取控制 動態(tài)完整性約束動態(tài)完整性約束 參照完參照完整性條件整性條件 教學(xué)難點(diǎn):動態(tài)完整性約束教學(xué)難點(diǎn):動態(tài)完整性約束 參照完整性條件參照完整性條件 教學(xué)方法:多媒體演示教學(xué)方法:多媒體演示 舉例法舉例法 教學(xué)時間:教學(xué)時間:2 2學(xué)時學(xué)時 教學(xué)過程:教學(xué)過程:返回返回2
2、隨著社會信息化的不斷深化,各種數(shù)據(jù)庫的使用也越來越廣泛。隨著社會信息化的不斷深化,各種數(shù)據(jù)庫的使用也越來越廣泛。例如,一個企業(yè)管理信息系統(tǒng)的全部數(shù)據(jù)、國家機(jī)構(gòu)的事務(wù)管理信息、例如,一個企業(yè)管理信息系統(tǒng)的全部數(shù)據(jù)、國家機(jī)構(gòu)的事務(wù)管理信息、國防情報機(jī)密信息、基于國防情報機(jī)密信息、基于WEBWEB動態(tài)發(fā)布的網(wǎng)上購物信息等等,它們都動態(tài)發(fā)布的網(wǎng)上購物信息等等,它們都集中或分布地存放在大大小小的數(shù)據(jù)庫中。我們知道數(shù)據(jù)庫系統(tǒng)中的集中或分布地存放在大大小小的數(shù)據(jù)庫中。我們知道數(shù)據(jù)庫系統(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ù)庫及整個系統(tǒng)的正常運(yùn)轉(zhuǎn),防止數(shù)據(jù)意外要保證數(shù)據(jù)庫及整個系統(tǒng)的正常運(yùn)轉(zhuǎn),防止數(shù)據(jù)意外丟失和不一致數(shù)據(jù)的產(chǎn)生,以及當(dāng)數(shù)據(jù)庫遭受破壞后能迅速地恢復(fù)正丟失和不一致數(shù)據(jù)的產(chǎn)生,以及當(dāng)數(shù)據(jù)庫遭受破壞后能迅速地恢復(fù)正常,這就是數(shù)據(jù)庫的安全保護(hù)。常,這就是數(shù)據(jù)庫的安全保護(hù)。 DBMSDBMS對數(shù)據(jù)庫的安全保護(hù)功能是通過四方面來實(shí)現(xiàn)的,即安全性控對數(shù)據(jù)庫的安全保護(hù)功能是通過四方面來實(shí)現(xiàn)的,即安全性控制、完整性控制、并發(fā)性控制和數(shù)據(jù)庫恢復(fù)。制、完整性控制、并發(fā)性控制和數(shù)據(jù)庫恢復(fù)。返回返回3 數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫,以防止非法使用所造成數(shù)據(jù)數(shù)據(jù)庫的安全性是
4、指保護(hù)數(shù)據(jù)庫,以防止非法使用所造成數(shù)據(jù)的泄露、更改或破壞。的泄露、更改或破壞。 安全性問題有許多方面,其中包括:安全性問題有許多方面,其中包括:(1 1)法律、社會和倫理方面,例如請求查詢信息的人是不有合法的權(quán))法律、社會和倫理方面,例如請求查詢信息的人是不有合法的權(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ù)方面,使用口令時,如何使口令保持秘密;)運(yùn)行
5、與技術(shù)方面,使用口令時,如何使口令保持秘密;返回返回4(5 5)硬件控制方面,)硬件控制方面,CPUCPU是否提供任何安全性方面的功能,諸如存是否提供任何安全性方面的功能,諸如存儲保護(hù)鍵或特權(quán)工作方式;儲保護(hù)鍵或特權(quán)工作方式;(6 6)操作系統(tǒng)安全性方面,在主存儲器和數(shù)據(jù)文件用過以后,操作)操作系統(tǒng)安全性方面,在主存儲器和數(shù)據(jù)文件用過以后,操作系統(tǒng)是否把它們的內(nèi)容清除掉;系統(tǒng)是否把它們的內(nèi)容清除掉;(7 7)數(shù)據(jù)庫系統(tǒng)本身安全性方面。)數(shù)據(jù)庫系統(tǒng)本身安全性方面。返回返回516.1.2 16.1.2 安全性控制的一般方法安全性控制的一般方法 安全性控制是指要盡可能地杜絕所有可能的數(shù)據(jù)庫非法訪問安
6、全性控制是指要盡可能地杜絕所有可能的數(shù)據(jù)庫非法訪問。用戶非法使用數(shù)據(jù)庫可以有很多種情況。例如,編寫合法的程。用戶非法使用數(shù)據(jù)庫可以有很多種情況。例如,編寫合法的程序繞過序繞過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ù)信息的流動問題并加該加以嚴(yán)格控制,因此,系統(tǒng)還要考慮數(shù)據(jù)信息的流動問題并加以控制,否則有潛在的危險性。因?yàn)閿?shù)據(jù)的流動可能使無權(quán)訪問以控制,否則有潛在的危險性。因?yàn)閿?shù)據(jù)
7、的流動可能使無權(quán)訪問的用戶獲得訪問權(quán)利。的用戶獲得訪問權(quán)利。返回返回6 例如,甲用戶可以訪問表例如,甲用戶可以訪問表T1T1,但無權(quán)訪問表,但無權(quán)訪問表T2T2,如,如果乙用戶把表果乙用戶把表T2T2的所有記錄添加到表的所有記錄添加到表T1T1中之后,則由中之后,則由于乙用戶的操作,使甲用戶獲得了對表于乙用戶的操作,使甲用戶獲得了對表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)一定代價,的情況而定。可見安全性的實(shí)施是要花費(fèi)一定代價,并需縝密考慮的。安全保護(hù)策略就是要以最小的代價并需縝密考慮的。安全保護(hù)策略就是要以最小的代價來最大程度防止對數(shù)據(jù)的非法訪問,通常需要層層設(shè)來最大程度防止對數(shù)據(jù)的非法訪問,通常需要層層設(shè)置安全措施。置安全措施。 實(shí)際上,數(shù)據(jù)庫系統(tǒng)的安全性問題,類似于整個實(shí)際上,數(shù)據(jù)庫系統(tǒng)的安全性問題,類似于整個計(jì)算機(jī)系統(tǒng)一級級層層設(shè)置安全的情況,其安全控制計(jì)算機(jī)系統(tǒng)一級級層層設(shè)置安全的情況,其安全控制模型一般如圖模型一般如圖16.116.1所示。所示。16.1.2 16.1.2 安全性控制的一般方法安全性控制的一般方法
9、返回返回716.1.2 16.1.2 安全性控制的一般方法安全性控制的一般方法 DBMS 用戶 DB OS 用戶標(biāo)識和鑒定 用戶存取權(quán)限控制 操作系統(tǒng)安全保護(hù) 密碼存儲 根據(jù)圖16.1的安全模型,當(dāng)用戶進(jìn)入計(jì)算機(jī)系統(tǒng)時,系統(tǒng)首先根據(jù)輸入的用戶標(biāo)識進(jìn)行身份的鑒定,只有合法的用戶才準(zhǔn)許進(jìn)入系統(tǒng)。 對已進(jìn)入系統(tǒng)的用戶,DBMS還要進(jìn)行存取控制,只允許用戶進(jìn)行合法的操作返回返回8 DBMS DBMS是建立在操作系統(tǒng)之上的,安全的操作系統(tǒng)是建立在操作系統(tǒng)之上的,安全的操作系統(tǒng)是數(shù)據(jù)庫安全的前提。操作系統(tǒng)應(yīng)能保證數(shù)據(jù)庫中的是數(shù)據(jù)庫安全的前提。操作系統(tǒng)應(yīng)能保證數(shù)據(jù)庫中的數(shù)據(jù)必須由數(shù)據(jù)必須由DBMSDBMS訪
10、問,而不允許用戶越過訪問,而不允許用戶越過DBMSDBMS,直接,直接通過操作系統(tǒng)或其它方式訪問。通過操作系統(tǒng)或其它方式訪問。 數(shù)據(jù)最后可以通過密碼的形式存儲到數(shù)據(jù)庫中。數(shù)據(jù)最后可以通過密碼的形式存儲到數(shù)據(jù)庫中。能做到非法者即使得到了加密數(shù)據(jù),也無法識別它的能做到非法者即使得到了加密數(shù)據(jù),也無法識別它的安全效果。安全效果。 下面,本書就同數(shù)據(jù)庫有關(guān)的用戶標(biāo)識和鑒定、下面,本書就同數(shù)據(jù)庫有關(guān)的用戶標(biāo)識和鑒定、存取控制、定義視圖、數(shù)據(jù)加密和審計(jì)等幾類安全性存取控制、定義視圖、數(shù)據(jù)加密和審計(jì)等幾類安全性措施作一討論。措施作一討論。16.1.2 16.1.2 安全性控制的一般方法安全性控制的一般方法返
11、回返回91 1、用戶標(biāo)識和鑒別、用戶標(biāo)識和鑒別 用戶標(biāo)識和鑒定是系統(tǒng)提供的最外層的安全保護(hù)措用戶標(biāo)識和鑒定是系統(tǒng)提供的最外層的安全保護(hù)措施,其方法是由系統(tǒng)提供一定的方式讓用戶標(biāo)識自己施,其方法是由系統(tǒng)提供一定的方式讓用戶標(biāo)識自己的名字或身份,系統(tǒng)內(nèi)部記錄著所有合法用戶的標(biāo)識,的名字或身份,系統(tǒng)內(nèi)部記錄著所有合法用戶的標(biāo)識,每次用戶要求進(jìn)入系統(tǒng)時,由系統(tǒng)進(jìn)行核實(shí),通過鑒每次用戶要求進(jìn)入系統(tǒng)時,由系統(tǒng)進(jìn)行核實(shí),通過鑒定后才提供機(jī)器的使用權(quán)。定后才提供機(jī)器的使用權(quán)。 用戶標(biāo)識和鑒定的方法有用戶標(biāo)識和鑒定的方法有 : : (1) (1)單用戶名鑒別法單用戶名鑒別法 : :用一個用戶名或用戶標(biāo)識符來標(biāo)用
12、一個用戶名或用戶標(biāo)識符來標(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)識符是用戶公開的用戶標(biāo)識符是用戶公開的標(biāo)識,它不足以成為鑒別用戶身份的憑證。標(biāo)識,它不足以成為鑒別用戶身份的憑證。 (3)(3)透明公式鑒別法透明公式鑒別法: :每個用戶都預(yù)先約定好一個過程或每個用戶都預(yù)先約定好一個過程或者函數(shù),鑒別用戶身份時,系統(tǒng)提供一個隨機(jī)數(shù),用
13、者函數(shù),鑒別用戶身份時,系統(tǒng)提供一個隨機(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)限指的是不同的用戶對于不同的數(shù)據(jù)對象用戶存取權(quán)限指的是不同的用戶對于不同的數(shù)據(jù)對象允許執(zhí)行的操作權(quán)限。允許執(zhí)行的操作權(quán)限。 存取權(quán)限由兩個要素組成,數(shù)據(jù)對象和操作類型。定存取權(quán)限由兩個要素組成,數(shù)據(jù)對象和操作類型。定義一個用戶的存取權(quán)限就是要定義這個用戶可以在哪些數(shù)據(jù)義一個用戶的存取權(quán)限就是要定義這個用戶可以在哪些數(shù)據(jù)對象
14、上進(jìn)行哪些類型的操作。對象上進(jìn)行哪些類型的操作。 在數(shù)據(jù)庫系統(tǒng)中,定義用戶存取權(quán)限稱為授權(quán)在數(shù)據(jù)庫系統(tǒng)中,定義用戶存取權(quán)限稱為授權(quán). . 授權(quán)有兩種:授權(quán)有兩種: (1)(1)系統(tǒng)權(quán)限系統(tǒng)權(quán)限: :由由DBADBA授予某些數(shù)據(jù)庫用戶,只有得到授予某些數(shù)據(jù)庫用戶,只有得到系統(tǒng)權(quán)限,才能成為數(shù)據(jù)庫用戶系統(tǒng)權(quán)限,才能成為數(shù)據(jù)庫用戶 . . 返回返回1216.1.2 16.1.2 安全性控制的一般方法安全性控制的一般方法 (2) (2)對象權(quán)限對象權(quán)限 : :可以由可以由DBADBA授予,也可以由數(shù)據(jù)對授予,也可以由數(shù)據(jù)對象的創(chuàng)建者授予,使數(shù)據(jù)庫用戶具有對某些數(shù)據(jù)對象進(jìn)象的創(chuàng)建者授予,使數(shù)據(jù)庫用戶具有
15、對某些數(shù)據(jù)對象進(jìn)行某些操作的權(quán)限行某些操作的權(quán)限. . 這些授權(quán)定義經(jīng)過編譯后以一張授權(quán)表的形式存這些授權(quán)定義經(jīng)過編譯后以一張授權(quán)表的形式存放在數(shù)據(jù)字典中。授權(quán)表主要有三個屬性,用戶標(biāo)識、放在數(shù)據(jù)字典中。授權(quán)表主要有三個屬性,用戶標(biāo)識、數(shù)據(jù)對象和操作類型。數(shù)據(jù)對象和操作類型。 返回返回1316.1.2 16.1.2 安全性控制的一般方法安全性控制的一般方法 3 3、視圖機(jī)制、視圖機(jī)制 為不同的用戶定義不同的視圖,可以限制各個用戶為不同的用戶定義不同的視圖,可以限制各個用戶的訪問范圍。通過視圖機(jī)制把要保密的數(shù)據(jù)對無權(quán)存的訪問范圍。通過視圖機(jī)制把要保密的數(shù)據(jù)對無權(quán)存取這些數(shù)據(jù)的用戶隱藏起來,從而自
16、動地對數(shù)據(jù)提供取這些數(shù)據(jù)的用戶隱藏起來,從而自動地對數(shù)據(jù)提供一定程度的安全保護(hù)。一定程度的安全保護(hù)。 4 4、數(shù)據(jù)加密、數(shù)據(jù)加密 數(shù)據(jù)加密是防止數(shù)據(jù)庫中數(shù)據(jù)在存儲和傳輸中失數(shù)據(jù)加密是防止數(shù)據(jù)庫中數(shù)據(jù)在存儲和傳輸中失密的有效手段密的有效手段. .加密的基本思想是根據(jù)一定的算法將原加密的基本思想是根據(jù)一定的算法將原始數(shù)據(jù)加密成為不可直接識別的格式始數(shù)據(jù)加密成為不可直接識別的格式, ,數(shù)據(jù)以密碼的形數(shù)據(jù)以密碼的形式存儲和傳輸式存儲和傳輸 . . 返回返回1416.1.2 16.1.2 安全性控制的一般方法安全性控制的一般方法 加密方法有兩種加密方法有兩種: : (1) (1)替換方法替換方法: :該
17、方法使用密鑰將明文中的每一個字符該方法使用密鑰將明文中的每一個字符轉(zhuǎn)換為密文中的一個字符轉(zhuǎn)換為密文中的一個字符. . (2) (2)轉(zhuǎn)換方法轉(zhuǎn)換方法: :該方法將明文中的字符按不同的順序重該方法將明文中的字符按不同的順序重新排列新排列. . 用密碼存儲數(shù)據(jù),在存入時需加密,在查詢時需解密用密碼存儲數(shù)據(jù),在存入時需加密,在查詢時需解密, ,這個過程會占用較多的系統(tǒng)資源,降低了數(shù)據(jù)庫的性能。這個過程會占用較多的系統(tǒng)資源,降低了數(shù)據(jù)庫的性能。 5 5、審計(jì)、審計(jì) 實(shí)際上任何系統(tǒng)的安全性措施都不是絕對可靠的,竊實(shí)際上任何系統(tǒng)的安全性措施都不是絕對可靠的,竊密者總有辦法打破這些控制密者總有辦法打破這些控
18、制. .審計(jì)功能是一種監(jiān)視措施,審計(jì)功能是一種監(jiān)視措施,跟蹤記錄有關(guān)數(shù)據(jù)的訪問活動跟蹤記錄有關(guān)數(shù)據(jù)的訪問活動. . 返回返回1516.1.3 16.1.3 安全性控制的其它方法安全性控制的其它方法 1、強(qiáng)制存取控制(、強(qiáng)制存取控制(MAC) ) 有些數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)要求很高的保密性,通常具有有些數(shù)據(jù)庫系統(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)這種高保密性要求性要求. .這種方法的基本思想在于每個數(shù)據(jù)對象(文件、這種方法的基本思想在于每個數(shù)據(jù)對象(文件、記錄記錄或宇段等記錄記錄或宇段等) )賦予一定的密級,級別從
19、高到低有:賦予一定的密級,級別從高到低有:絕密級、機(jī)密級、秘密級和公用級絕密級、機(jī)密級、秘密級和公用級. .每個用戶也具有相應(yīng)每個用戶也具有相應(yīng)的級別,稱為許可證級別的級別,稱為許可證級別. . 在系統(tǒng)運(yùn)行時,采用如下兩條簡單規(guī)則:在系統(tǒng)運(yùn)行時,采用如下兩條簡單規(guī)則: (1)(1)用戶用戶U U只能查看比它級別低或同級的數(shù)據(jù)只能查看比它級別低或同級的數(shù)據(jù). . (2) (2)用戶用戶U U只能修改和它同級的數(shù)據(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ù)庫的安全性、統(tǒng)計(jì)數(shù)據(jù)庫的安全性 查詢僅僅是某些記錄的統(tǒng)計(jì)值,例如求記錄數(shù)、和、查詢僅僅是某些記錄的統(tǒng)計(jì)值,例如求記錄數(shù)、和、平均值等。在統(tǒng)計(jì)數(shù)據(jù)庫中,雖然不允許用戶查詢單平均值等。在統(tǒng)計(jì)數(shù)據(jù)庫中,雖然不允許用戶查詢單個記錄的信息,但是用戶可以通過處理足夠多的匯總個記錄的信息,但是用戶可以通過處理足夠多的匯總信息來分析出單個記錄的信息信息來分析出單個記錄的信息. . 在統(tǒng)計(jì)數(shù)據(jù)庫中,對查詢應(yīng)作下列限制:在統(tǒng)計(jì)數(shù)據(jù)庫中,對查詢應(yīng)作下列限制: 一個查詢查到的記錄個數(shù)至少是一個查詢查到的記錄個數(shù)至少是n; 兩個查詢查到的記錄的兩個查詢查到的記錄的“交交”數(shù)目至多是數(shù)目至多是m. .
21、保證數(shù)據(jù)庫安全性的另一個方法是保證數(shù)據(jù)庫安全性的另一個方法是“數(shù)據(jù)污染數(shù)據(jù)污染”,也就是在回答查詢時,提供一些偏離正確值的數(shù)據(jù),也就是在回答查詢時,提供一些偏離正確值的數(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ù)庫設(shè)計(jì)者和即標(biāo)準(zhǔn)模式、集成模式和混合模式,數(shù)據(jù)庫設(shè)計(jì)者和數(shù)據(jù)庫管理員可以根據(jù)實(shí)際情況進(jìn)行選擇數(shù)據(jù)庫管理員可以根據(jù)實(shí)際情況進(jìn)行選擇 . . 1 1、兩個安全性階段、兩個安全性階段 : :身份驗(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、活動實(shí)例后,他們可以執(zhí)行的活動由授予以下帳戶的權(quán)限確定:由授予以下帳戶的權(quán)限確定: (1 1)用戶的安全帳戶;)用戶的安全帳戶; (2 2)用戶的安全帳戶所屬)用戶的安全帳戶所屬WindowsWindows組或角色層次結(jié);組或角色層次結(jié); (3 3)用戶若要進(jìn)行任何涉及更改數(shù)據(jù)庫定義或訪問數(shù)據(jù)的活動,)用戶若要進(jìn)行任何涉及更改數(shù)據(jù)庫定義或訪問數(shù)據(jù)的活動,則必須有相應(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ù)庫的其余部分是不可見的,也不能進(jìn)行訪問。表或數(shù)據(jù)庫的其余部分是不可見的,也不能進(jìn)行訪問。 4、加密方法、加密方法 SQL Server 2000支持加密或可以加密的內(nèi)容為:支持加密或可以加密的內(nèi)容為:SQL Server 中存儲的登錄和應(yīng)用程序角色密碼;中存儲的登錄和應(yīng)用程序角色密碼;作為網(wǎng)絡(luò)數(shù)據(jù)包而在客戶作為網(wǎng)絡(luò)數(shù)據(jù)包而在客戶端和服務(wù)器端之間發(fā)送的數(shù)據(jù);端和服務(wù)器端之間發(fā)送的數(shù)據(jù);SQL Server 2000中如下
25、對象的中如下對象的定義內(nèi)容:存儲過程、用戶定義函數(shù)、視圖、觸發(fā)器、默認(rèn)值、定義內(nèi)容:存儲過程、用戶定義函數(shù)、視圖、觸發(fā)器、默認(rèn)值、規(guī)則等。規(guī)則等。 返回返回2016.1.4 16.1.4 SQL Server 2000SQL Server 2000安全性概述安全性概述 5 5、審核活動、審核活動 SQL Server 2000SQL Server 2000提供審核功能,用以跟蹤和記錄每個提供審核功能,用以跟蹤和記錄每個 SQL SQL Server Server 實(shí)例上已發(fā)生的活動(如成功和失敗的記錄)。實(shí)例上已發(fā)生的活動(如成功和失敗的記錄)。SQL SQL Server 2000 Serv
26、er 2000 還提供管理審核記錄的接口,即還提供管理審核記錄的接口,即 SQL SQL 事件探查器。事件探查器。只有只有 sysadmin sysadmin 固定安全角色的成員才能啟用或修改審核,而且固定安全角色的成員才能啟用或修改審核,而且審核的每次修改都是可審核的事件。審核的每次修改都是可審核的事件。返回返回2116.2.1 16.2.1 數(shù)據(jù)庫完整性概述數(shù)據(jù)庫完整性概述 數(shù)據(jù)庫的完整性是指保護(hù)數(shù)據(jù)庫中數(shù)據(jù)的正確性、有效性和相容性,數(shù)據(jù)庫的完整性是指保護(hù)數(shù)據(jù)庫中數(shù)據(jù)的正確性、有效性和相容性,防止錯誤的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫造成無效操作。防止錯誤的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫造成無效操作。 顯然,維護(hù)數(shù)據(jù)庫的完
27、整性非常重要,數(shù)據(jù)庫中的數(shù)據(jù)是否具備完整顯然,維護(hù)數(shù)據(jù)庫的完整性非常重要,數(shù)據(jù)庫中的數(shù)據(jù)是否具備完整性關(guān)系到數(shù)據(jù)能否真實(shí)地反映現(xiàn)實(shí)世界。性關(guān)系到數(shù)據(jù)能否真實(shí)地反映現(xiàn)實(shí)世界。 數(shù)據(jù)庫的完整性和安全性是數(shù)據(jù)庫保護(hù)的兩個不同的方面。數(shù)據(jù)庫的完整性和安全性是數(shù)據(jù)庫保護(hù)的兩個不同的方面。 安全性是保護(hù)數(shù)據(jù)庫,以防止非法使用所造成數(shù)據(jù)的泄露、更改或破安全性是保護(hù)數(shù)據(jù)庫,以防止非法使用所造成數(shù)據(jù)的泄露、更改或破壞,安全性措施的防范對象是非法用戶和非法操作;完整性是防止合法用壞,安全性措施的防范對象是非法用戶和非法操作;完整性是防止合法用戶使用數(shù)據(jù)庫時向數(shù)據(jù)庫中加入不符合語義的數(shù)據(jù),完整性措施的防范對戶使用數(shù)
28、據(jù)庫時向數(shù)據(jù)庫中加入不符合語義的數(shù)據(jù),完整性措施的防范對象是不合語義的數(shù)據(jù)。象是不合語義的數(shù)據(jù)。 返回返回2216.2.2 16.2.2 完整性規(guī)則的組成完整性規(guī)則的組成 完整性規(guī)則主要由以下三部分構(gòu)成:完整性規(guī)則主要由以下三部分構(gòu)成: (1 1)觸發(fā)條件:規(guī)定系統(tǒng)什么時候使用規(guī)則檢查數(shù)據(jù);)觸發(fā)條件:規(guī)定系統(tǒng)什么時候使用規(guī)則檢查數(shù)據(jù); (2 2)約束條件:規(guī)定系統(tǒng)檢查用戶發(fā)出的操作請求違背了什么樣)約束條件:規(guī)定系統(tǒng)檢查用戶發(fā)出的操作請求違背了什么樣的完整性約束條件;的完整性約束條件; (3 3)違約響應(yīng):規(guī)定系統(tǒng)如果發(fā)現(xiàn)用戶的操作請求違背了完整性)違約響應(yīng):規(guī)定系統(tǒng)如果發(fā)現(xiàn)用戶的操作請求違
29、背了完整性約束條件,應(yīng)該采取一定的動作來保證數(shù)據(jù)的完整性,即違約時約束條件,應(yīng)該采取一定的動作來保證數(shù)據(jù)的完整性,即違約時要做的事情。要做的事情。 完整性規(guī)則從執(zhí)行時間上可分為立即執(zhí)行約束(完整性規(guī)則從執(zhí)行時間上可分為立即執(zhí)行約束(Immediate Immediate ConstraintsConstraints)和延遲執(zhí)行約束()和延遲執(zhí)行約束(Deferred ConstraintsDeferred Constraints)。)。 立即執(zhí)行約束是指在執(zhí)行用戶事務(wù)過程中,某一條語句執(zhí)行立即執(zhí)行約束是指在執(zhí)行用戶事務(wù)過程中,某一條語句執(zhí)行完成后,系統(tǒng)立即對此數(shù)據(jù)進(jìn)行完整性約束條件檢查;延遲執(zhí)
30、行完成后,系統(tǒng)立即對此數(shù)據(jù)進(jìn)行完整性約束條件檢查;延遲執(zhí)行約束是指在整個事務(wù)執(zhí)行結(jié)束后,再對約束條件進(jìn)行完整性檢查,約束是指在整個事務(wù)執(zhí)行結(jié)束后,再對約束條件進(jìn)行完整性檢查,結(jié)果正確后才能提交。結(jié)果正確后才能提交。 返回返回2316.2.2 16.2.2 完整性規(guī)則的組成完整性規(guī)則的組成 一條完整性規(guī)則可以用一個五元組(一條完整性規(guī)則可以用一個五元組(D,O,A,C,P)來形式化地)來形式化地表示。其中:表示。其中: D(data):代表約束作用的數(shù)據(jù)對象;):代表約束作用的數(shù)據(jù)對象; O(operation):代表觸發(fā)完整性檢查的數(shù)據(jù)庫操作,即當(dāng)用戶發(fā)):代表觸發(fā)完整性檢查的數(shù)據(jù)庫操作,即當(dāng)
31、用戶發(fā)出什么操作請求時需要檢查該完整性規(guī)則;出什么操作請求時需要檢查該完整性規(guī)則; A(assertion):代表數(shù)據(jù)對象必須滿足的語義約束,這是規(guī)則的主):代表數(shù)據(jù)對象必須滿足的語義約束,這是規(guī)則的主體;體; C(condition):代表選擇):代表選擇A作用的數(shù)據(jù)對象值的謂詞;作用的數(shù)據(jù)對象值的謂詞; P(procedure):代表違反完整性規(guī)則時觸發(fā)執(zhí)行的操作過程。):代表違反完整性規(guī)則時觸發(fā)執(zhí)行的操作過程。 返回返回2416.2.2 16.2.2 完整性規(guī)則的組成完整性規(guī)則的組成例如,對于例如,對于“學(xué)號不能為空學(xué)號不能為空”的這條完整性約束,的這條完整性約束,D:代表約束作用的數(shù)據(jù)
32、對象為:代表約束作用的數(shù)據(jù)對象為SNO屬性;屬性;O(operation):當(dāng)用戶插入或修改數(shù)據(jù)時需要檢查該完整性規(guī)則;):當(dāng)用戶插入或修改數(shù)據(jù)時需要檢查該完整性規(guī)則;A(assertion):):SNO不能為空;不能為空;C(condition):):A可作用于所有記錄的可作用于所有記錄的SNO屬性;屬性;P(procedure):拒絕執(zhí)行用戶請求。):拒絕執(zhí)行用戶請求。返回返回2516.2.3 16.2.3 完整性約束條件的分類完整性約束條件的分類 在數(shù)據(jù)庫領(lǐng)域中,有四種最常用的數(shù)據(jù)模型,它們是:被稱為非在數(shù)據(jù)庫領(lǐng)域中,有四種最常用的數(shù)據(jù)模型,它們是:被稱為非關(guān)系模型的層次模型、網(wǎng)狀模型、
33、關(guān)系模型和面向?qū)ο竽P?。本關(guān)系模型的層次模型、網(wǎng)狀模型、關(guān)系模型和面向?qū)ο竽P汀1菊潞喴榻B層次模型、網(wǎng)狀模型、關(guān)系模型。章簡要介紹層次模型、網(wǎng)狀模型、關(guān)系模型。 層次模型是數(shù)據(jù)庫系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型,它用樹形結(jié)構(gòu)表層次模型是數(shù)據(jù)庫系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型,它用樹形結(jié)構(gòu)表示各類實(shí)體以及實(shí)體間的聯(lián)系。層次模型數(shù)據(jù)庫系統(tǒng)的典型代表示各類實(shí)體以及實(shí)體間的聯(lián)系。層次模型數(shù)據(jù)庫系統(tǒng)的典型代表是是IBMIBM公司的公司的IMSIMS(Information Management SystemsInformation Management Systems)數(shù)據(jù)庫管)數(shù)據(jù)庫管理系統(tǒng),這是一個曾經(jīng)廣泛使用的
34、數(shù)據(jù)庫管理系統(tǒng)?,F(xiàn)實(shí)世界中理系統(tǒng),這是一個曾經(jīng)廣泛使用的數(shù)據(jù)庫管理系統(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)的約束 從約束條件使用的對象來分,可把約束分為值的約束和結(jié)構(gòu)的約束。從約束條件使用的對象來分,可把約束分為值的約束和結(jié)構(gòu)的約束。 值的約束:即對數(shù)據(jù)類型、數(shù)據(jù)格式、取值范圍等進(jìn)行規(guī)定。值的約束:即對數(shù)據(jù)類型、數(shù)據(jù)格式、取值范圍等進(jìn)行規(guī)定。(1 1)對數(shù)據(jù)類型的約
35、束,包括數(shù)據(jù)的類型、長度、單位和精度等。例)對數(shù)據(jù)類型的約束,包括數(shù)據(jù)的類型、長度、單位和精度等。例如,規(guī)定學(xué)生性別的數(shù)據(jù)類型應(yīng)為字符型,長度為如,規(guī)定學(xué)生性別的數(shù)據(jù)類型應(yīng)為字符型,長度為2 2。(2 2)對數(shù)據(jù)格式的約束。例如,規(guī)定出生日期的數(shù)據(jù)格式為)對數(shù)據(jù)格式的約束。例如,規(guī)定出生日期的數(shù)據(jù)格式為YYYY.MM.DDYYYY.MM.DD。(3 3)對取值范圍的約束。例如,月份的取值范圍為)對取值范圍的約束。例如,月份的取值范圍為1 11212,日期,日期1 13131。返回返回2716.2.3 16.2.3 完整性約束條件的分類完整性約束條件的分類(4 4)對空值的約束??罩当硎疚炊x或
36、未知的值,它與零值和空格)對空值的約束??罩当硎疚炊x或未知的值,它與零值和空格不同。有的列值允許空值,有的則不允許。例如,學(xué)號和課程號不同。有的列值允許空值,有的則不允許。例如,學(xué)號和課程號不可以為空值,但成績可以為空值。不可以為空值,但成績可以為空值。 結(jié)構(gòu)約束:即對數(shù)據(jù)之間聯(lián)系的約束。結(jié)構(gòu)約束:即對數(shù)據(jù)之間聯(lián)系的約束。 數(shù)據(jù)庫中同一關(guān)系的不同屬性之間,應(yīng)滿足一定的約束條件,數(shù)據(jù)庫中同一關(guān)系的不同屬性之間,應(yīng)滿足一定的約束條件,同時,不同關(guān)系的屬性之間也有聯(lián)系,也應(yīng)滿足一定的約束條件。同時,不同關(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)中的,特別是對于規(guī)范化程度較高的關(guān)系模式,都是由模式來保持函數(shù)依賴是對于規(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、定某個屬性值與關(guān)系多個元組的統(tǒng)計(jì))統(tǒng)計(jì)約束,規(guī)定某個屬性值與關(guān)系多個元組的統(tǒng)計(jì)值之間必須滿足某種約束條件。例如,規(guī)定系主任的值之間必須滿足某種約束條件。例如,規(guī)定系主任的獎金不得高于該系的平均獎金的獎金不得高于該系的平均獎金的50%,不得低于該系,不得低于該系的平均獎金的的平均獎金的15%。這里該系平均獎金的值就是一個。這里該系平均獎金的值就是一個統(tǒng)計(jì)計(jì)算值。統(tǒng)計(jì)計(jì)算值。 其中,實(shí)體完整性約束和參照完整性約束是關(guān)系其中,實(shí)體完整性約束和參照完整性約束是關(guān)系模型的兩個極其重要的約束,被稱為關(guān)系的兩個不變模型的兩個極其重要的約束,被稱為關(guān)系的兩個不變性。而統(tǒng)計(jì)約束實(shí)現(xiàn)起來開銷很大。性。而統(tǒng)計(jì)約束實(shí)
40、現(xiàn)起來開銷很大。返回返回3016.2.3 16.2.3 完整性約束條件的分類完整性約束條件的分類2、靜態(tài)約束和動態(tài)約束完整性約束從約束對象的狀態(tài)可分為靜態(tài)約束和動態(tài)約束。完整性約束從約束對象的狀態(tài)可分為靜態(tài)約束和動態(tài)約束。 靜態(tài)約束靜態(tài)約束 靜態(tài)約束是指在數(shù)據(jù)庫每一個確定狀態(tài)時的數(shù)據(jù)對象所應(yīng)滿足的約束靜態(tài)約束是指在數(shù)據(jù)庫每一個確定狀態(tài)時的數(shù)據(jù)對象所應(yīng)滿足的約束條件,它是反映數(shù)據(jù)庫狀態(tài)合理性的約束,這是最重要的一類完整性約條件,它是反映數(shù)據(jù)庫狀態(tài)合理性的約束,這是最重要的一類完整性約束。上面介紹的值的約束和結(jié)構(gòu)的約束均屬于靜態(tài)約束。束。上面介紹的值的約束和結(jié)構(gòu)的約束均屬于靜態(tài)約束。 動態(tài)約束動態(tài)
41、約束 動態(tài)約束是指數(shù)據(jù)庫從一種狀態(tài)轉(zhuǎn)變?yōu)榱硪环N狀態(tài)時(數(shù)據(jù)庫數(shù)據(jù)變動態(tài)約束是指數(shù)據(jù)庫從一種狀態(tài)轉(zhuǎn)變?yōu)榱硪环N狀態(tài)時(數(shù)據(jù)庫數(shù)據(jù)變動前后),新、舊值之間所應(yīng)滿足的約束條件,它是反映數(shù)據(jù)庫狀態(tài)變動前后),新、舊值之間所應(yīng)滿足的約束條件,它是反映數(shù)據(jù)庫狀態(tài)變遷的約束。遷的約束。 例如,學(xué)生年齡在更改時只能增長,職工工資在調(diào)整時不得低于例如,學(xué)生年齡在更改時只能增長,職工工資在調(diào)整時不得低于其原來的工資。其原來的工資。返回返回3116.2.4 SQL Server 200016.2.4 SQL Server 2000完整性概述完整性概述 SQL Server 2000SQL Server 2000中數(shù)據(jù)
42、完整性可分為四種類型:實(shí)體完整性、域完中數(shù)據(jù)完整性可分為四種類型:實(shí)體完整性、域完整性、引用完整性、用戶定義完整性。另外,觸發(fā)器、存儲過程等整性、引用完整性、用戶定義完整性。另外,觸發(fā)器、存儲過程等也能以一定方式控制數(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約束:在一個表中不能有兩行包含相同的主鍵值,不約束:
43、在一個表中不能有兩行包含相同的主鍵值,不能在主鍵內(nèi)的任何列中輸入能在主鍵內(nèi)的任何列中輸入NULLNULL值。值。(2) UNIQUE (2) UNIQUE 約束:約束:UNIQUE UNIQUE 約束在列集內(nèi)強(qiáng)制執(zhí)行值的唯一性,對于約束在列集內(nèi)強(qiáng)制執(zhí)行值的唯一性,對于UNIQUEUNIQUE約束中的列,表中不允許有兩行包含相同的非空值。約束中的列,表中不允許有兩行包含相同的非空值。返回返回32(3) IDENTITY(3) IDENTITY屬性:屬性:IDENTITYIDENTITY屬性能自動產(chǎn)生唯一標(biāo)識屬性能自動產(chǎn)生唯一標(biāo)識值,指定為值,指定為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)識表之間的關(guān)系體現(xiàn),它標(biāo)識表之間的關(guān)系, ,一個表的外鍵指向另一個一個表的外鍵指向另一個表的候選鍵或唯一鍵。表的候選鍵或唯一鍵。強(qiáng)制引用完整性時,強(qiáng)制引用完整性時,SQL ServerSQL Server禁止用戶進(jìn)行下列操
46、作:禁止用戶進(jìn)行下列操作:(1) (1) 當(dāng)主表中沒有關(guān)聯(lián)的記錄時,將記錄添加到相關(guān)表當(dāng)主表中沒有關(guān)聯(lián)的記錄時,將記錄添加到相關(guān)表中。中。(2) (2) 更改主表中的值并導(dǎo)致相關(guān)表中的記錄孤立。更改主表中的值并導(dǎo)致相關(guān)表中的記錄孤立。返回返回34(3) (3) 從主表中刪除記錄,但仍存在與該記錄匹配的相關(guān)從主表中刪除記錄,但仍存在與該記錄匹配的相關(guān)記錄。記錄。 在在DELETEDELETE或或UPDATEUPDATE所產(chǎn)生的所有級聯(lián)引用操作的諸所產(chǎn)生的所有級聯(lián)引用操作的諸表中,每個表只能出現(xiàn)一次。多個級聯(lián)操作中只要有表中,每個表只能出現(xiàn)一次。多個級聯(lián)操作中只要有一個表因完整性原因操作失敗,整個
47、操縱將失敗而回一個表因完整性原因操作失敗,整個操縱將失敗而回滾。滾。4 4、用戶定義完整性、用戶定義完整性 SQL Server 2000SQL Server 2000用戶定義完整性主要由用戶定義完整性主要由CheckCheck約束約束所定義的列級或表級約束體現(xiàn),用戶定義完整性還能所定義的列級或表級約束體現(xiàn),用戶定義完整性還能由規(guī)則、觸發(fā)器、客戶端或服務(wù)器端應(yīng)用程序靈活定由規(guī)則、觸發(fā)器、客戶端或服務(wù)器端應(yīng)用程序靈活定義。義。返回返回355 5、觸發(fā)器、觸發(fā)器 SQL Server2000SQL Server2000觸發(fā)器是一類特殊的存儲過程,被觸發(fā)器是一類特殊的存儲過程,被定義為在對表或視圖發(fā)
48、出定義為在對表或視圖發(fā)出UPDATEUPDATE、INSERT INSERT 或或 DELETEDELETE語句時自動執(zhí)行。觸發(fā)器可以擴(kuò)展語句時自動執(zhí)行。觸發(fā)器可以擴(kuò)展SQL ServerSQL Server約束、約束、默認(rèn)值和規(guī)則的完整性檢查邏輯,一個表可以有多個默認(rèn)值和規(guī)則的完整性檢查邏輯,一個表可以有多個觸發(fā)器。觸發(fā)器。6 6、其它機(jī)制、其它機(jī)制 SQL Server2000SQL Server2000支持存儲過程中制定約束規(guī)則,支持存儲過程中制定約束規(guī)則,SQL SQL Server2000Server2000的并發(fā)控制機(jī)制能保障多用戶存取數(shù)據(jù)時的并發(fā)控制機(jī)制能保障多用戶存取數(shù)據(jù)時的完
49、整性。的完整性。返回返回3616.3.1 16.3.1 數(shù)據(jù)庫并發(fā)性概述數(shù)據(jù)庫并發(fā)性概述 每個用戶在存取數(shù)據(jù)庫中的數(shù)據(jù)時,可能是串行執(zhí)行,每個用戶在存取數(shù)據(jù)庫中的數(shù)據(jù)時,可能是串行執(zhí)行,即每個時刻只有一個用戶程序運(yùn)行,也可能是多個用即每個時刻只有一個用戶程序運(yùn)行,也可能是多個用戶并行地存取數(shù)據(jù)庫。戶并行地存取數(shù)據(jù)庫。 數(shù)據(jù)庫的最大特點(diǎn)之一就是數(shù)據(jù)資源是共享的,串行數(shù)據(jù)庫的最大特點(diǎn)之一就是數(shù)據(jù)資源是共享的,串行執(zhí)行意味著一個用戶在運(yùn)行程序時,其他用戶程序必執(zhí)行意味著一個用戶在運(yùn)行程序時,其他用戶程序必須等到這個用戶程序結(jié)束才能對數(shù)據(jù)庫進(jìn)行存取,這須等到這個用戶程序結(jié)束才能對數(shù)據(jù)庫進(jìn)行存取,這樣數(shù)
50、據(jù)庫系統(tǒng)的利用率會極低。樣數(shù)據(jù)庫系統(tǒng)的利用率會極低。 數(shù)據(jù)庫的并發(fā)控制機(jī)制能解決這類問題,以保持?jǐn)?shù)據(jù)數(shù)據(jù)庫的并發(fā)控制機(jī)制能解決這類問題,以保持?jǐn)?shù)據(jù)庫中數(shù)據(jù)的在多用戶并發(fā)操作時的一致性、正確性。庫中數(shù)據(jù)的在多用戶并發(fā)操作時的一致性、正確性。返回返回3716.3.2 16.3.2 事務(wù)的基本概念事務(wù)的基本概念 1 1、事務(wù)(、事務(wù)(TransactionTransaction)的定義)的定義 事務(wù)是數(shù)據(jù)庫系統(tǒng)中執(zhí)行的一個工作單位,它是事務(wù)是數(shù)據(jù)庫系統(tǒng)中執(zhí)行的一個工作單位,它是由用戶定義的一組操作序列組成。由用戶定義的一組操作序列組成。 一個事務(wù)可以是一組一個事務(wù)可以是一組SQLSQL語句、一條語句
51、、一條SQLSQL語句或整語句或整個程序,一個應(yīng)用程序可以包括多個事務(wù)。事務(wù)的開個程序,一個應(yīng)用程序可以包括多個事務(wù)。事務(wù)的開始與結(jié)束可以由用戶顯式控制。如果用戶沒有顯式地始與結(jié)束可以由用戶顯式控制。如果用戶沒有顯式地定義事務(wù),則由定義事務(wù),則由DBMSDBMS按照缺省規(guī)定自動劃分事務(wù)。按照缺省規(guī)定自動劃分事務(wù)。返回返回3816.3.2 16.3.2 事務(wù)的基本概念事務(wù)的基本概念在在SQLSQL語言中,定義事務(wù)的語句有三條:語言中,定義事務(wù)的語句有三條:(1)BEGIN TRANSACTION(1)BEGIN TRANSACTION表示事務(wù)的開始;表示事務(wù)的開始;(2)COMMIT(2)COM
52、MIT表示事務(wù)的提交,即將事務(wù)中所有對表示事務(wù)的提交,即將事務(wù)中所有對 數(shù)據(jù)庫數(shù)據(jù)庫的更新寫回到磁盤上的物理數(shù)據(jù)庫中去,此時事務(wù)正的更新寫回到磁盤上的物理數(shù)據(jù)庫中去,此時事務(wù)正常結(jié)束;常結(jié)束;(3)ROLLBACK(3)ROLLBACK表示事務(wù)的回滾,即在事務(wù)運(yùn)行的過程中發(fā)表示事務(wù)的回滾,即在事務(wù)運(yùn)行的過程中發(fā)生了某種故障,事務(wù)不能繼續(xù)執(zhí)行,系統(tǒng)將事務(wù)中對生了某種故障,事務(wù)不能繼續(xù)執(zhí)行,系統(tǒng)將事務(wù)中對數(shù)據(jù)庫的所有已完成的更新操作全部撤銷,再回滾到數(shù)據(jù)庫的所有已完成的更新操作全部撤銷,再回滾到事務(wù)開始時的狀態(tài)。事務(wù)開始時的狀態(tài)。 返回返回3916.3.2 16.3.2 事務(wù)的基本概念事務(wù)的基本概
53、念2、事務(wù)的特征 事務(wù)是由有限的數(shù)據(jù)庫操作序列組成,但并不是任事務(wù)是由有限的數(shù)據(jù)庫操作序列組成,但并不是任意的數(shù)據(jù)庫操作序列都能成為事務(wù),為了保護(hù)數(shù)據(jù)的完意的數(shù)據(jù)庫操作序列都能成為事務(wù),為了保護(hù)數(shù)據(jù)的完整性,一般要求事務(wù)具有以下四個特征:整性,一般要求事務(wù)具有以下四個特征: (1 1)原子性()原子性(AtomicAtomic):一個事務(wù)是一個不可分割的工):一個事務(wù)是一個不可分割的工作單位,事務(wù)在執(zhí)行時,應(yīng)該遵守作單位,事務(wù)在執(zhí)行時,應(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等.壓縮文件請下載最新的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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 給單位的生育申請書
- 2025年度劇務(wù)助理場記專業(yè)聘用合同
- 2025年度小麥秸稈有機(jī)肥生產(chǎn)與供應(yīng)合同范本
- 2025年度城市地下空間開發(fā)土地征用及公共設(shè)施建設(shè)合同
- 學(xué)生科研項(xiàng)目申請書
- 個人申請書格式樣本
- 2025年度挖掘機(jī)租賃與城市基礎(chǔ)設(shè)施建設(shè)項(xiàng)目合同
- 現(xiàn)代電影市場營銷的核心要素研究
- 三變 入股合同范本
- 付款方式合同范本
- GB/T 16475-1996變形鋁及鋁合金狀態(tài)代號
- GB 4706.20-2004家用和類似用途電器的安全滾筒式干衣機(jī)的特殊要求
- 無紙化會議系統(tǒng)解決方案
- 佛教空性與緣起課件
- 上海鐵路局勞動安全“八防”考試題庫(含答案)
- 《愿望的實(shí)現(xiàn)》教學(xué)設(shè)計(jì)
- 效率提升和品質(zhì)改善方案
- 中山大學(xué)抬頭信紙中山大學(xué)橫式便箋紙推薦信模板a
- 義務(wù)教育學(xué)科作業(yè)設(shè)計(jì)與管理指南
- 《汽車發(fā)展史》PPT課件(PPT 75頁)
- 常暗之廂(7規(guī)則-簡體修正)
評論
0/150
提交評論