第4章數(shù)據(jù)庫安全性與性_第1頁
第4章數(shù)據(jù)庫安全性與性_第2頁
第4章數(shù)據(jù)庫安全性與性_第3頁
第4章數(shù)據(jù)庫安全性與性_第4頁
第4章數(shù)據(jù)庫安全性與性_第5頁
已閱讀5頁,還剩65頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

124.1

數(shù)據(jù)庫安全性與完整性概述4.2

數(shù)據(jù)庫安全性控制4.3

數(shù)據(jù)庫的完整性約束條件4.4

數(shù)據(jù)庫的完整性控制第四章數(shù)據(jù)庫安全性與完整性334.

1

數(shù)據(jù)庫安全性與完整性概述數(shù)據(jù)庫安全:是指保護(hù)數(shù)據(jù)庫以抵御有意或無意的威脅機制。也就是保護(hù)數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄露、更改和破壞。數(shù)據(jù)庫的完整性:是指數(shù)據(jù)庫的正確性和相容性。反映的是數(shù)據(jù)庫中的數(shù)據(jù)要能夠符合現(xiàn)實世界的語義規(guī)范要求。44計算機系統(tǒng)的安全性是指為計算機系統(tǒng)建立和采取的各種安全保護(hù)措施,以保護(hù)計算機系統(tǒng)的軟件、硬件和數(shù)據(jù),防止其遭到破壞、更改和泄露。4.

1.

1

計算機系統(tǒng)的安全問題1.什么是計算機系統(tǒng)的安全性?552.

如何保證計算機系統(tǒng)安全?4.

1.

1

計算機系統(tǒng)的安全問題技術(shù)安全管理安全政策法律安全采用硬件、軟件對計算機系統(tǒng)及其存儲的數(shù)據(jù)的安全保護(hù)。通過規(guī)章制度、場地環(huán)境限定等有效措施防止計算機硬件系統(tǒng)、數(shù)據(jù)及存儲數(shù)據(jù)的介質(zhì)等遭受人為的或意外的丟失或破壞。制定法律、法規(guī)及相關(guān)政策預(yù)防計算機犯罪和重要數(shù)據(jù)的失竊等。???4.

1.

1

計算機系統(tǒng)的安全問題???3.

需了解什么?為保證計算機系統(tǒng)的安全一般我們要知道:需要防備什么?采用何種技術(shù)?如何構(gòu)造安防體系?制定哪些規(guī)章制度?如何考察選用人員?怎樣構(gòu)建優(yōu)良安全環(huán)境?……4.

1.

2

可信計算機系統(tǒng)的評測標(biāo)準(zhǔn)一、可信計算機系統(tǒng)評測標(biāo)準(zhǔn)的發(fā)展概況

可信計算機系統(tǒng)的評測標(biāo)準(zhǔn)的研究始于己于1967年。1967年在美國國防部的資助下成立了一個特別小組開始研究計算機的安全保護(hù)、遠(yuǎn)程訪問安全保護(hù)和遠(yuǎn)程共享計算機系統(tǒng)的信息保密等技術(shù)問題。1970年2月工作組發(fā)表了題為《計算機系統(tǒng)的安全控制》的工作報告,提出了許多政策和技術(shù)建議。一、可信計算機系統(tǒng)評測標(biāo)準(zhǔn)的發(fā)展概況(續(xù)1)1973年美國國防部頒布了《ADP安全手冊》。1976年美國國防部發(fā)表了《主要防衛(wèi)系統(tǒng)中計算機資源的管理》,對計算機資源的管理提出了具體要求。1978年MITRE公司發(fā)表了《可信計算機系統(tǒng)的建議技術(shù)評估標(biāo)準(zhǔn)》。1981年1月美國國防部計算機安全中心成立。1983年美國國防部計算機安全中心頒布了《可信計算機評估標(biāo)準(zhǔn)》。4.

1.

2

可信計算機系統(tǒng)的評測標(biāo)準(zhǔn)一、可信計算機系統(tǒng)評測標(biāo)準(zhǔn)的發(fā)展概況(續(xù)2)4.

1.

2

可信計算機系統(tǒng)的評測標(biāo)準(zhǔn)1985年正式頒布《DoD可信計算機系統(tǒng)評估標(biāo)準(zhǔn)》(簡稱DoD

TCSEC或TCSEC)。1991年4月,美國國家計算機安全中心頒布了《可信計算機系統(tǒng)評估標(biāo)準(zhǔn)在數(shù)據(jù)庫管理系統(tǒng)中的解釋》(簡稱TDI),將TCSEC擴展到數(shù)據(jù)庫管理系統(tǒng)。4.

1.

2

可信計算機系統(tǒng)的評測標(biāo)準(zhǔn)二、TCSEC/TDI標(biāo)準(zhǔn)的基本內(nèi)容TCSEC/TDI標(biāo)準(zhǔn)從四個方面來描述安全指標(biāo)。即四大項十二個子項二十三個指標(biāo):R1

安全策略自主存取控制客體重用標(biāo)記標(biāo)記完整性標(biāo)記信息的擴散主體敏感度標(biāo)記設(shè)備標(biāo)記強制存取控制R2責(zé)任標(biāo)識與鑒別可信路徑審計R3保證操作保證系統(tǒng)體系結(jié)構(gòu)系統(tǒng)完整性

隱蔽信道分析可信設(shè)施管理可信恢復(fù)生命周期保證安全測試設(shè)計規(guī)范和驗證配置管理可信分配R4文檔安全特性指南可信設(shè)施手冊測試文檔設(shè)計文檔4.

1.

2

可信計算機系統(tǒng)的評測標(biāo)準(zhǔn)三、可信度等級的劃分TCSEC/TDI標(biāo)準(zhǔn)將計算機系統(tǒng)的安全級別劃分為四組七個等級:級別D級C1級C2級B1級B2級B3級A1級說

明最低級別,任何計算機均能提供的保護(hù)。自主安全保護(hù)。受控存取保護(hù)。強制保護(hù)。結(jié)構(gòu)化保護(hù)。安全域。驗證設(shè)計。4.

2

數(shù)據(jù)庫安全性控制一、計算機系統(tǒng)的安全模型用戶

DBMSOSDB用戶標(biāo)識與鑒別數(shù)據(jù)密碼存取控制操作系統(tǒng)安全保護(hù)存取①用戶首先要登錄到系統(tǒng)中,系統(tǒng)鑒別用戶身份。(輸入用戶標(biāo)識進(jìn)行用戶身份鑒別)②DBMS通過存取控制對數(shù)據(jù)庫進(jìn)行保護(hù),只允許用戶執(zhí)行合法操作。③操作系統(tǒng)的安全保護(hù)4.

2

數(shù)據(jù)庫安全性控制——安全模型采用隔離技術(shù)隔離是指采用一定的措施使系統(tǒng)的某一部分出現(xiàn)的問題不影響系統(tǒng)的其它部分。其思想是把一個大系統(tǒng)分割成若干個互不相交的小系統(tǒng),每兩個小系統(tǒng)之間設(shè)置“保護(hù)林”。物理隔離暫時隔離密碼技術(shù)隔離敏感的任務(wù)在指定的系統(tǒng)中運行,而非敏感任務(wù)在開放系統(tǒng)中運行。是指在不同的時間運行不同的過程。采用加密技術(shù)進(jìn)行隔離,使未得到授權(quán)的用戶不能訪問敏感數(shù)據(jù)。③操作系統(tǒng)的安全保護(hù)(續(xù))4.

2

數(shù)據(jù)庫安全性控制——安全模型通過核心完成某些操作,如

同步進(jìn)程通信、信息傳遞、中斷

處理等,以確保這些操作的安全。通過多層設(shè)計使每一層都具有保護(hù)措施,以保證計算機的安全。用環(huán)來定義過程的存取訪問權(quán),每一個環(huán)都有其等級,每一個進(jìn)程都在一個等級環(huán)上運行。層結(jié)構(gòu)設(shè)計環(huán)結(jié)構(gòu)設(shè)計數(shù)據(jù)密碼存取核心設(shè)計數(shù)據(jù)經(jīng)過加密后存儲,不經(jīng)過解密得不到真實數(shù)據(jù)。4.

2

數(shù)據(jù)庫安全性控制二、用戶標(biāo)識與鑒別由系統(tǒng)提供一定的方式讓用戶標(biāo)識自己的身份。每次用戶登錄系統(tǒng)時由系統(tǒng)進(jìn)行身份核對,核對無誤后才允許使用系統(tǒng)。一般用戶標(biāo)識與鑒別的方法有:①使用用戶名或用戶標(biāo)識號②使用用戶名或用戶標(biāo)識號并且輸入口令③重復(fù)驗證數(shù)據(jù)三、存取控制4.

2

數(shù)據(jù)庫安全性控制存取控制機制是數(shù)據(jù)庫安全所采用的主要方法之一。其思想就是通過授權(quán)來限制非授權(quán)用戶對數(shù)據(jù)庫的訪問,保護(hù)數(shù)據(jù)的安全。存取控制包括:定義用戶權(quán)限合法權(quán)限檢查4.

2

數(shù)據(jù)庫安全性控制——存取控制1.定義用戶權(quán)限定義用戶權(quán)限一般是由數(shù)據(jù)庫管理員(DBA)來進(jìn)行。其權(quán)限包括檢索、插入、更新、刪除權(quán)限等。每個數(shù)據(jù)庫用戶都被分配一個授權(quán)標(biāo)識符來確定用戶可以訪問哪些數(shù)據(jù)庫對象,以及對數(shù)據(jù)庫對象能進(jìn)行什么操作。授權(quán)標(biāo)識符存放在數(shù)據(jù)字典中。2.合法權(quán)限檢查每當(dāng)用戶提出存取數(shù)據(jù)的請求后,DBMS就查找數(shù)

據(jù)字典進(jìn)行合法性檢查,以確定用戶是否具有訪問權(quán)限。4.

2

數(shù)據(jù)庫安全性控制四、自主存取控制用戶經(jīng)授權(quán)后就能確定可以訪問哪些數(shù)據(jù)庫對象,以及對哪些數(shù)據(jù)庫對象能進(jìn)行什么操作。用戶授權(quán)的兩個要素:數(shù)據(jù)對象和操作類型。自主存取控制中:①一個用戶對于不同的數(shù)據(jù)對象有不同的存取權(quán)限②不同的用戶對同一數(shù)據(jù)對象可以有不同的權(quán)限③用戶可將其擁有的權(quán)限轉(zhuǎn)授其他用戶4.

2

數(shù)據(jù)庫安全性控制——自主存取控制關(guān)系系統(tǒng)中的用戶授權(quán)在關(guān)系系統(tǒng)中,數(shù)據(jù)庫管理員(DBA)可以將建立、修改基本表的權(quán)授予用戶。獲此授權(quán)的用戶可以建立和修改基本表、索引、視圖。SQL語言也提供了相關(guān)的存取控制機制,主要體現(xiàn)在授權(quán)語句(GRANT)和收回權(quán)限語句(REVOKE)。一般來說用戶可以擁有如下權(quán)限:查詢權(quán)SELECT刪除權(quán)DELETE插入權(quán)INSERT修改權(quán)UPDATE引用權(quán)

REFRENCES(引用指定表中列的權(quán))使用域、校驗、字符集和翻譯的權(quán)

USAGE基本表建立權(quán)

CREATETAB4.

2

數(shù)據(jù)庫安全性控制——自主存取控制授予用戶權(quán)限授權(quán)語句(GRANT)的一般形式:GRANT

<權(quán)限>[,<權(quán)限>]…|ALL

PRIVILAGESON

<對象類型>

<對象名>TO

<用戶名>[,<用戶名>]…|ALL

PUBLIC<權(quán)限>可以是下列之一:SELECTDELETEINSERT

[<列名>[,<列名>]…]UPDATE

[<列名>[,<列名>]…]REFRENCES

[<列名>[,<列名>]…]USAGE4.

2

數(shù)據(jù)庫安全性控制——自主存取控制授予用戶權(quán)限——舉例一次授予多個權(quán)限:GRANT SELECT

,INSERTON

TABLE

staffTO

USER;一次授予一個權(quán)限:GRANT

SELECTON

TABLE

staffTO

USER1,USER2;撤消用戶權(quán)限4.

2

數(shù)據(jù)庫安全性控制——自主存取控制REVOKEONFROM<權(quán)限>[,<權(quán)限>]…|ALL

PRIVILAGES<對象類型>

<對象名><用戶名>[,<用戶名>]…|ALL

PUBLIC撤消語句(

REVOKE

)的一般形式:例:將用戶USER查詢和修改基本表staff

的權(quán)限撤銷。REVOKE SELECT

,UPDATEON

TABLE

staffFROM

USER;評價4.

2

數(shù)據(jù)庫安全性控制——自主存取控制自主存取控制的特點就是自主、靈活。通過授權(quán)機制能夠有效地控制其他用戶對敏感數(shù)據(jù)的存取。正是由于自主存取控制的自主性和靈活性這一特點,使得得到授權(quán)的用戶可以自由地將數(shù)據(jù)的存取權(quán)限授予其他用戶,造成系統(tǒng)的失控。潛在數(shù)據(jù)泄露和遭到破壞的可能。之所以出現(xiàn)這樣的問題是由于:①自主存取控制僅通過對數(shù)據(jù)的存取權(quán)限來進(jìn)行安全控制。②數(shù)據(jù)庫中的數(shù)據(jù)本身無安全性標(biāo)記。四、強制存取控制(MAC)4.

2

數(shù)據(jù)庫安全性控制DBMS所管理的全部實體分為兩類:主體和客體。主體:系統(tǒng)中處于支配地位的活動實體。主要是用戶和系統(tǒng)中運行的過程??腕w:系統(tǒng)中被主體操縱的被動實體。如:文件、基本表、索引、視圖等。強制存取控制的本質(zhì)就是由DBMS為每個實體指定一個敏感度標(biāo)記,也就是級別。4.

2

數(shù)據(jù)庫安全性控制四、強制存取控制(續(xù))敏感度標(biāo)記分為若干級別:絕密級機密級可信級公開級為主體所標(biāo)識的敏感度稱為許可證級別。為客體所標(biāo)識的敏感度稱為密級。4.

2

數(shù)據(jù)庫安全性控制四、強制存取控制(續(xù))當(dāng)用戶注冊進(jìn)入系統(tǒng)后,其存取必須遵循下面的規(guī)則:①僅當(dāng)主體的許可證級別大于或等于客體的密級時,該主體才能讀取相應(yīng)的客體。②僅當(dāng)主體的許可證級別等于客體的密級時,該主體才能寫相應(yīng)的客體。數(shù)據(jù)的密級標(biāo)記與數(shù)據(jù)在復(fù)制操作中是作為一個整體操作的,從而提高了安全性。4.

2

數(shù)據(jù)庫安全性控制五、視圖機制系統(tǒng)可以通過視圖機制為不同的用戶定義不同的視圖。視圖機制安全保護(hù)思想是:通過定義視圖把與用戶無關(guān)的及需要對該用戶保密的數(shù)據(jù)隱藏起來,從而對數(shù)據(jù)起到一定的保護(hù)作用。六、審計4.

2

數(shù)據(jù)庫安全性控制審計是什么?審計是指數(shù)據(jù)庫系統(tǒng)運行過程中的跟蹤審查。審計的依據(jù)是跟蹤記錄文件,也稱為跟蹤審查記錄。這一文件是數(shù)據(jù)庫系統(tǒng)依據(jù)用戶訪問數(shù)據(jù)庫數(shù)據(jù)活動所形成的。4.

2

數(shù)據(jù)庫安全性控制——審計操作類型(是查詢還是更新)操作標(biāo)識(操作者及操作終端)操作日期和時間操作所涉及的數(shù)據(jù)等審計——審審什什么么??七、數(shù)據(jù)加密4.

2

數(shù)據(jù)庫安全性控制基本思想是:根據(jù)一定的算法將原始數(shù)據(jù)(明文)轉(zhuǎn)換成不可直接識別的格式(密文),使得不知曉解密算法的人不知道數(shù)據(jù)的內(nèi)容。明文:需要通過加密加以保護(hù)因而進(jìn)行變換的原數(shù)據(jù)(原文)稱為明文。密文:明文經(jīng)過變換后形成的不可直接辨讀的數(shù)據(jù)稱為密文。加密方法——主要分為兩種:4.

2

數(shù)據(jù)庫安全性控制——數(shù)據(jù)加密替換加密法置換加密法采用一定的規(guī)則將明文中的每一個字符轉(zhuǎn)換為密文中的一個字符。就是將明文中的字符按某種規(guī)則重新排序。替換加密法的經(jīng)典實例——凱撒密碼4.

2

數(shù)據(jù)庫安全性控制——數(shù)據(jù)加密明文abcdef…uvwxyz密文defghi…xyzabc凱撒密碼的字母對應(yīng)表“密鑰”3333數(shù)據(jù)庫完整性約束概述完整性約束條件的作用對象及分類靜態(tài)約束動態(tài)約束4.

3

數(shù)據(jù)庫的完整性約束條件34344.3.1數(shù)據(jù)庫完整性約束概述1.什么是數(shù)據(jù)庫的完整性?數(shù)據(jù)庫的完整性是指數(shù)據(jù)庫的正確性,反映的是數(shù)據(jù)庫中的數(shù)據(jù)要能夠符合現(xiàn)實世界的語義規(guī)范要求,是保證數(shù)據(jù)庫語義正確的關(guān)鍵。4.

3

數(shù)據(jù)庫的完整性約束條件3535數(shù)據(jù)發(fā)生錯誤,往往是由于數(shù)據(jù)的輸入或更新引起的。①數(shù)據(jù)本身是錯誤的,輸入時按錯誤的數(shù)據(jù)輸入。②數(shù)據(jù)是正確的,由于操作失誤造成插入時變成錯誤的數(shù)據(jù)。③由于系統(tǒng)故障,使數(shù)據(jù)發(fā)生錯誤。④若干事務(wù)的并發(fā)執(zhí)行產(chǎn)生不正確的數(shù)據(jù)。⑤人為故意的破壞。4.3.1數(shù)據(jù)庫完整性約束概述由數(shù)據(jù)庫的完整性2.為什么要提出數(shù)據(jù)庫的完約整束性來?保障36362.為什么要提出數(shù)據(jù)庫的完整性?(續(xù)1)據(jù)庫安全子系統(tǒng)數(shù)★人為故意的破壞?!镉捎谙到y(tǒng)故障,

使數(shù)據(jù)發(fā)生錯誤。數(shù)據(jù)庫的恢復(fù)子系統(tǒng)數(shù)據(jù)庫的并發(fā)子系統(tǒng)4.3.1數(shù)據(jù)庫完整性約束概述3737數(shù)據(jù)庫的完整性是為了防止數(shù)據(jù)庫中存在不符合語義的數(shù)據(jù),防止錯誤信息的輸入和輸出而提出的。因此,要為數(shù)據(jù)庫中的數(shù)據(jù)給予語義約束條件。這些語義約束條件稱為數(shù)據(jù)庫的完整性約束條件。為什么要提出數(shù)據(jù)庫的完整性?(續(xù)2)4.3.1數(shù)據(jù)庫完整性約束概述4.3.2完整性約束條件的作用對象及分類關(guān)系元組列作用對象若干元組間、關(guān)系集合上、關(guān)系之間的聯(lián)系的約束。元組中各個字段間聯(lián)系的約束。列的類型、取值范圍、精度等的約束。1.完整性約束條件的作用對象39392.完整性約束條件的分類4.3.2完整性約束條件的作用對象及分類列級約束元組約束關(guān)系約束靜態(tài)約束動態(tài)約束40404.3.3靜態(tài)約束1.靜態(tài)列級約束對數(shù)據(jù)類型的約束(包括類型、長度、單位和精度)對數(shù)據(jù)格式的約束對取值范圍或取值集合的約束對空值的約束。靜態(tài)列級約束——實例4.3.3靜態(tài)約束——靜態(tài)列級約束例:建立一個“學(xué)生”關(guān)系表Student,它由學(xué)號Sno、姓名Sname、性別Ssex、年齡Sage、入學(xué)日期Sdate和所在系Sdept等六個屬性組成。其中學(xué)號不能為空,學(xué)號和姓名的取值均是唯一的。CREATE

TABLE

Student(

Sno

CHAR(10)

NOT

NULL UNIQUE,Sname

CHAR(20)

UNIQUE,CHAR(2)

CHECK

(Ssex

IN

(’男’,’女’)),SMALLINT,DATE,CHAR(20)SsexSageSdateSdept);2.靜態(tài)元組約束靜態(tài)元組約束是對元組的某些列值間作出約束。比如:在公司工作人員關(guān)系表中職務(wù)為‘經(jīng)理’的月薪不得低于5000元。這里就涉及到兩個列值:職務(wù)(position)和月薪(salary)。該約束的建立是在創(chuàng)建基本表時在CREATTABLE語句中用相應(yīng)的約束說明予以表達(dá)。4.3.3靜態(tài)約束(staffNoNameSexCHAR(10) NOT

NULL

UNIQUE,CHAR(10)

UNIQUE,

CHAR(2),Position

CHAR(40)

,Salary

REAL,BranchNo CHAR(10)

,PRIMARY

KEY

staffNo,F(xiàn)OREIGNKEY

BranchNo

REFERENCE

BranchON

UPDATE

ON DELETE

,CHECK

(NOTEXISTS(SELECT

PositionFROM

StaffWHERE

Position=‘經(jīng)理’

AND Salary

<5000.)));靜態(tài)元組約束實例——員工關(guān)系表CREATE

TABLE

Staff4.3.3靜態(tài)約束——靜態(tài)元組約束3.靜態(tài)關(guān)系約束在此我們再回顧一下兩個概念:①實體完整性:實體完整性規(guī)則——若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。②參照完整性:參照完整性規(guī)則——若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng),則對于R中的每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值);或者等于S中的某個元組的主碼值。4.3.3靜態(tài)約束靜態(tài)關(guān)系約束示例:分支機構(gòu)——員工關(guān)系分支機構(gòu)(分支編號,所在城市,地址,郵編)工作人員(工號,姓名,性別,職務(wù),月薪,所屬分支)CREATE

TABLE

Staff(

staffNo

CHAR(10)

NOT

NULL

UNIQUE,name CHAR(20)

,sex

CHAR(2)CHECK(Ssex

IN

(’男’,’女’)),position

CHAR(10),salary

FLOAT,branchNo CHAR(20)

CHECK

(VALUE

IN(SELECT

branchNo

FROM

Branch)),PRIMARY KEY

staffNo);4.3.3靜態(tài)約束——靜態(tài)關(guān)系約束靜態(tài)關(guān)系約束示例:分支機構(gòu)——員工關(guān)系CREATE

TABLE

Staff(

staffNo

CHAR(10)

NOT

NULL

UNIQUE,name CHAR(20)

,sex

CHAR(2)CHECK(Ssex

IN

(‘男’,‘女’)),position

CHAR(10),salary

FLOAT,branchNo CHAR(20)

,PRIMARY

KEY

staffNo,F(xiàn)OREIGN KEY

BranchNo

REFERENCE

BranchON

UPDATE

ON

DELETE);4.3.3靜態(tài)約束——靜態(tài)關(guān)系約束靜態(tài)關(guān)系約束主要有:實體完整性約束:要確保實體的完整性。如上例中的員工編號不能為空,且保證唯一。參照完整性約束:通過定義外鍵(外碼)建立個關(guān)系的聯(lián)系和約束。函數(shù)依賴約束:在建立關(guān)系模式時已經(jīng)確立。統(tǒng)計約束:某一元組的某一字段(列)值與關(guān)系中多個元組的相應(yīng)列的統(tǒng)計值之間的約束關(guān)系。4.3.3靜態(tài)約束48484.

3

數(shù)據(jù)庫的完整性約束條件4.3.4動態(tài)約束什么是動態(tài)約束?動態(tài)約束反映的是數(shù)據(jù)庫狀態(tài)變遷的約束。它是指數(shù)據(jù)庫從一種狀態(tài)轉(zhuǎn)變?yōu)榱硪环N狀態(tài)時,新、舊值之間所應(yīng)滿足的條件。動態(tài)列級約束動態(tài)元組約束動態(tài)關(guān)系約束(不介紹)49494.

3

數(shù)據(jù)庫的完整性約束條件——動態(tài)約束1.動態(tài)列級約束①修改列定義時的約束例:ALTER

TABLE

StaffADD

CONSTRAINT

positong NOT

NULL;此時如果在關(guān)系表Staff中存在這樣的元組,該元組的屬性列position

為空值,則該修改語句無效。504.

3

數(shù)據(jù)庫的完整性約束條件——動態(tài)約束1.動態(tài)列級約束②修改列值時的約束例:一個“學(xué)生”關(guān)系表Student,它由學(xué)號Sno、姓名Sname、性別Ssex、年齡Sage、所在系

Sdept等六個屬性組成。修改年齡:UPDATE

StudentSET

Sage=Sage

+1

;只能增長,而不能減少4.

3

數(shù)據(jù)庫的完整性約束條件——動態(tài)約束2.動態(tài)元組約束動態(tài)元組約束是指修改元組值時各屬性列之間需要滿足的某種約束條件。假設(shè)在建立關(guān)系表時已經(jīng)約束關(guān)系表中職務(wù)為

‘經(jīng)理’的月薪不得低于5000元。UPDATE

staffSET

salary=4500.,WHERE

position=’經(jīng)理’ANDbranchNo=’B0003’;此時就會產(chǎn)生動態(tài)元組約束一、完整性控制對DBMS的要求二、檢查(驗證)機制的策略

三、完整性規(guī)則的表示四、參照完整性考慮的幾個問題4.

4

數(shù)據(jù)庫的完整性控制4.

4

數(shù)據(jù)庫的完整性控制一、完整性控制對DBMS的要求DBMS應(yīng)提供以下幾個方面的功能:約束定義功能(定義機制)提供完整性約束條件的定義機制(例如:表定義語句或表修改語句提供的約束條件說明)檢查功能(驗證機制)檢查用戶提出的操作請求是否符合約束條件?;謴?fù)功能(數(shù)據(jù)完整性保證機制)一旦發(fā)現(xiàn)用戶的操作使數(shù)據(jù)違背了完整性約束條件,則采取一定的操作使數(shù)據(jù)恢復(fù)到用戶此操作執(zhí)行前的狀態(tài);也就是保證數(shù)據(jù)的完整性。4.

4

數(shù)據(jù)庫的完整性控制二、檢查(驗證)機制的策略檢查(驗證)機制的策略根據(jù)提交的事務(wù)可以采用不同的方式。立即執(zhí)行約束在一條語句執(zhí)行完后立即檢查。一旦發(fā)現(xiàn)用戶操作違背完整性約束條件,系統(tǒng)就取消該操作。延遲執(zhí)行約束整個事務(wù)(多個操作)執(zhí)行結(jié)束后再進(jìn)行完整性約束檢查。如果發(fā)現(xiàn)違背完整性約束,系統(tǒng)將拒絕整個事務(wù),把數(shù)據(jù)庫恢復(fù)到該事務(wù)執(zhí)行前的狀態(tài)。4.

4

數(shù)據(jù)庫的完整性控制三、完整性規(guī)則的表示每一條完整性約束規(guī)則可以用一個五元組來表示,也就是說一條約束規(guī)則具有五項基本內(nèi)容。作用對象(Data)觸發(fā)操作(Operation)約束內(nèi)容(Assertion)作用對象條件(Condition)約束處理(Procedure)完整性規(guī)則表示——實例4.

4 數(shù)據(jù)庫的完整性控制——完整性規(guī)則的表示例:職務(wù)為“經(jīng)理”的月薪不得低于5000元約束規(guī)則的表示。作用對象:約束作用的數(shù)據(jù)對象為salary屬性。觸發(fā)操作:插入或修改staff元組時。約束內(nèi)容:salary不能低于5000.0。作用對象條件:position=’經(jīng)理’。約束處理:拒絕執(zhí)行該操作。其中拒絕執(zhí)行操作可能含有恢復(fù)操作的過程。四、參照完整性考慮的幾個問題4.

4 數(shù)據(jù)庫的完整性控制——完整性規(guī)則的表示有關(guān)實體完整性、參照完整性和用戶定義的完整性我們已經(jīng)有了一定的認(rèn)識。其中參照完整性涉及到若干關(guān)系,處理不當(dāng)會引起不良結(jié)果。在此,就有關(guān)參照完整性要考慮的幾個問題予以探討。外碼的空值問題被參照關(guān)系中元組的刪除問題在參照關(guān)系中插入元組的問題不允許修改主碼的問題關(guān)系:StaffBranch主碼:staffNobranchNo外碼:branchNo1.外碼的空值問題4.

4 數(shù)據(jù)庫的完整性控制—參照完整性考慮的幾個問題參照關(guān)系

被參照關(guān)系(目標(biāo)關(guān)系)外碼能否接受空值呢?這就要根據(jù)應(yīng)用環(huán)境的實際而定。對關(guān)系Staff而言,其外碼branchNo表示的是員工所屬部門,若關(guān)系Staff

中的某一元組的屬性

branchNo的值為空可以視為該員工尚未分配工作部門,這與現(xiàn)實是相符的。因此,對關(guān)系Staff而言其外碼branchNo可以為空。關(guān)系1:關(guān)系2:關(guān)系3:學(xué)生(學(xué)號,姓名,性別,專業(yè),年齡)課程(課程號,課程名,學(xué)分)選修(課程號,學(xué)號,成績)1.外碼的空值問題(續(xù))4.

4 數(shù)據(jù)庫的完整性控制—參照完整性考慮的幾個問題其中關(guān)系3中引用了關(guān)系1中的碼“學(xué)號”作為關(guān)系3的一個屬性,“學(xué)號”是關(guān)系3的外碼。關(guān)系3是參照關(guān)系,關(guān)系1是被參照關(guān)系。我們再來看另一個例子:那么關(guān)系3中的外碼“學(xué)號”能否為空值呢?對不能取空值的外碼在說明時要加以約束。2.被參照關(guān)系中元組的刪除問題4.

4 數(shù)據(jù)庫的完整性控制—參照完整性考慮的幾個問題由于參照關(guān)系中引用了被參照關(guān)系中的碼,或者說參照關(guān)系的外碼屬性值與被參照關(guān)系中的某一元組相聯(lián)系。因此,若要刪除被參照關(guān)系中的元組,會直接影響到參照關(guān)系中與該元組相聯(lián)系的若干元組。對該問題的處理有幾種不同的策略:①級聯(lián)刪除②受限刪除③置空值操作若要刪除被參照關(guān)系中的某一元組,則將參照關(guān)系中的所有外碼值與被參照關(guān)系中要刪除元組主碼值相同的元組一起刪除。如果有多級參照則一直級聯(lián)下去。①級聯(lián)刪除4.

4 數(shù)據(jù)庫的完整性控制—參照完整性考慮的幾個問題級聯(lián)刪除舉例4.

4 數(shù)據(jù)庫的完整性控制—參照完整性考慮的幾個問題B0002

石家莊

石家莊市北馬路90號

050003SS201

錢光明

經(jīng)理

6000.

B0002SS212

孫佩霞

經(jīng)理助理

5000.

B0002SS223

李萬章

業(yè)務(wù)員

3000

B0002工號姓名性別職務(wù)月薪分支編號SB101趙海洋男經(jīng)理8000.B0001SS201錢光明男經(jīng)理6000.B0002SS212孫佩霞女經(jīng)理助理5000.B0002SS223李萬章男業(yè)務(wù)員3000B0002SB112周全男經(jīng)理助理6000B0001SG401吳德海男經(jīng)理5500B0004分支編號所在城市地址郵編B0001北京北京海淀區(qū)青龍橋18號100091B0002石家莊石家莊市北馬路90號050003B0003大連大連中山區(qū)解放路10號116002B0004廣州廣州市沙河路40號510501B0005長沙長沙市韶山北路168號410003分支機構(gòu)Branch刪除工作人員Staff②

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論