第5章 數(shù)據(jù)庫完整性.ppt_第1頁
第5章 數(shù)據(jù)庫完整性.ppt_第2頁
第5章 數(shù)據(jù)庫完整性.ppt_第3頁
第5章 數(shù)據(jù)庫完整性.ppt_第4頁
第5章 數(shù)據(jù)庫完整性.ppt_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1 第5章數(shù)據(jù)庫完整性 2 數(shù)據(jù)庫的完整性是指保護(hù)數(shù)據(jù)庫中數(shù)據(jù)的正確性 有效性和相容性 防止錯誤的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫造成無效操作 一些完整性約束的例子 比如年齡屬于數(shù)值型數(shù)據(jù) 只能含0 1 9 不能含字母或特殊符號 月份只能取1 12之間的正整數(shù) 表示同一事實的兩個數(shù)據(jù)應(yīng)相同 否則就不相容 如一個人不能有兩個學(xué)號 維護(hù)數(shù)據(jù)庫的完整性非常重要 數(shù)據(jù)庫中的數(shù)據(jù)是否具備完整性關(guān)系到數(shù)據(jù)能否真實地反映現(xiàn)實世界 5 1數(shù)據(jù)庫完整性的含義 3 數(shù)據(jù)庫的完整性和安全性是數(shù)據(jù)庫保護(hù)的兩個不同的方面 安全性是保護(hù)數(shù)據(jù)庫 以防止非法使用所造成數(shù)據(jù)的泄露 更改或破壞 安全性措施的防范對象是非法用戶和非法操作 完整性是防止合法用戶使用數(shù)據(jù)庫時向數(shù)據(jù)庫中加入不符合語義的數(shù)據(jù) 完整性措施的防范對象是不合語義的數(shù)據(jù) 5 1數(shù)據(jù)庫完整性的含義 續(xù) 4 為了實現(xiàn)完整性控制 數(shù)據(jù)庫管理員應(yīng)向DBMS提出一組完整性規(guī)則 來檢查數(shù)據(jù)庫中的數(shù)據(jù) 看其是否滿足語義約束 這些語義約束構(gòu)成了數(shù)據(jù)庫的完整性規(guī)則 這組規(guī)則作為DBMS控制數(shù)據(jù)完整性的依據(jù) 它定義了何時檢查 檢查什么 查出錯誤又怎樣處理等事項 5 2完整性規(guī)則的組成 5 5 2完整性規(guī)則的組成 續(xù) 具體地說 完整性規(guī)則主要由以下三部分構(gòu)成 1 觸發(fā)條件 規(guī)定系統(tǒng)什么時候使用規(guī)則檢查數(shù)據(jù) 2 約束條件 規(guī)定系統(tǒng)檢查用戶發(fā)出的操作請求違背了什么樣的完整性約束條件 3 違約響應(yīng) 規(guī)定系統(tǒng)如果發(fā)現(xiàn)用戶的操作請求違背了完整性約束條件 應(yīng)該采取一定的動作來保證數(shù)據(jù)的完整性 即違約時要做的事情 6 一條完整性規(guī)則可以用一個五元組 D O A C P 來形式化地表示 其中 D data 代表約束作用的數(shù)據(jù)對象 O operation 代表觸發(fā)完整性檢查的數(shù)據(jù)庫操作 即當(dāng)用戶發(fā)出什么操作請求時需要檢查該完整性規(guī)則 A assertion 代表數(shù)據(jù)對象必須滿足的語義約束 這是規(guī)則的主體 C condition 代表選擇A作用的數(shù)據(jù)對象值的謂詞 P procdure 代表違反完整性規(guī)則時觸發(fā)執(zhí)行的操作過程 5 2完整性規(guī)則的組成 續(xù) 7 例如 對于 學(xué)號不能為空 的這條完整性約束 D 代表約束作用的數(shù)據(jù)對象為SNO屬性 O operation 當(dāng)用戶插入或修改數(shù)據(jù)時需要檢查該完整性規(guī)則 A assertion SNO不能為空 C condition A可作用于所有記錄的SNO屬性 P procdure 拒絕執(zhí)行用戶請求 8 5 4完整性規(guī)則的執(zhí)行 完整性規(guī)則從執(zhí)行時間上可分為立即執(zhí)行約束和延遲執(zhí)行約束立即執(zhí)行約束是指在執(zhí)行用戶事務(wù)過程中 某一條語句執(zhí)行完成后 系統(tǒng)立即對此數(shù)據(jù)進(jìn)行完整性約束條件檢查 延遲執(zhí)行約束是指在整個事務(wù)執(zhí)行結(jié)束后 再對約束條件進(jìn)行完整性檢查 結(jié)果正確后才能提交 例如 銀行數(shù)據(jù)庫中 借貸總金額應(yīng)平衡 的約束就應(yīng)該屬于延遲執(zhí)行約束 從賬號A轉(zhuǎn)一筆錢到賬號B為一個事務(wù) 從賬號A轉(zhuǎn)出去錢后 賬就不平了 必須等轉(zhuǎn)入賬號B后 賬才能重新平衡 這時才能進(jìn)行完整性檢查 9 5 4完整性規(guī)則的執(zhí)行 續(xù) 如果發(fā)現(xiàn)用戶操作請求違背了立即執(zhí)行約束 則可以拒絕該操作 以保護(hù)數(shù)據(jù)的完整性 如果發(fā)現(xiàn)用戶操作請求違背了延遲執(zhí)行約束 而又不知道是哪個事務(wù)的操作破壞了完整性 則只能拒絕整個事務(wù) 把數(shù)據(jù)庫恢復(fù)到該事務(wù)執(zhí)行前的狀態(tài) 10 5 5關(guān)系模型的完整性 關(guān)系模型的完整性包括實體完整性 參照完整性和用戶定義完整性 對于違反實體完整性和用戶定義完整性規(guī)則的操作一般都是采用拒絕執(zhí)行的方式進(jìn)行處理 11 對于違反參照完整性的操作 并不都是簡單的拒絕執(zhí)行 一般在接受這個操作的同時 執(zhí)行一些附加的操作 以保證數(shù)據(jù)庫的狀態(tài)仍然是正確的 在被參照關(guān)系中刪除元組時可有三種不同的策略 級聯(lián)刪除 將參照關(guān)系中所有外碼值與被參照關(guān)系中要刪除元組主碼值相同的元組一起刪除 受限刪除 僅當(dāng)參照關(guān)系中沒有任何元組的外碼值與被參照關(guān)系中的主碼值相同時 系統(tǒng)才執(zhí)行刪除操作 否則拒絕此刪除操作 置空值刪除 刪除被參照關(guān)系的元組 并將參照關(guān)系中相應(yīng)元組的外碼值置空值 5 5關(guān)系模型的完整性 續(xù) 12 5 5關(guān)系模型的完整性 續(xù) 在參照關(guān)系中插入元組時的策略受限插入 僅當(dāng)被參照關(guān)系中存在此相應(yīng)元組 其主碼值與參照關(guān)系插入元組的外碼值相同時 系統(tǒng)才執(zhí)行相應(yīng)操作 否則拒絕此操作 遞歸插入 首先向北參照關(guān)系插入相應(yīng)的元組 其主碼值等于參照關(guān)系插入元組的外碼值 然后向參照關(guān)系插入元組 13 5 5關(guān)系模型的完整性 續(xù) 修改關(guān)系中主碼的問題 不允許修改主碼允許修改主碼 但必須保證主碼的唯一性和非空 當(dāng)修改的關(guān)系是被參照關(guān)系時 還必須檢查參照關(guān)系 有三種策略 級聯(lián)修改受限修改置空置修改 14 5 6完整性約束條件的分類 從約束條件使用的對象分可分為 列約束 列的類型 取值范圍等元組約束 元組中各個字段間聯(lián)系的約束關(guān)系約束 關(guān)系之間聯(lián)系的約束從約束對象的狀態(tài)分為 靜態(tài)約束 指對數(shù)據(jù)庫每一個確定狀態(tài)所應(yīng)滿足的約束條件 是反映數(shù)據(jù)庫狀態(tài)合理性的約束 動態(tài)約束 指數(shù)據(jù)庫從一種狀態(tài)轉(zhuǎn)變?yōu)榱硪环N狀態(tài)時 新舊值之間所應(yīng)滿足的約束條件 動態(tài)約束反映的是數(shù)據(jù)庫狀態(tài)變遷的約束 15 小結(jié) 數(shù)據(jù)庫中的完整性約束規(guī)則由DBMS提供的語句進(jìn)行描述 經(jīng)過編譯后存放在數(shù)據(jù)字典中 數(shù)據(jù)庫完整性約束的主要優(yōu)點是違約由系統(tǒng)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論