




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
數(shù)據(jù)保護完整性第一頁,共五十八頁,2022年,8月28日數(shù)據(jù)庫是否具備完整性關系到數(shù)據(jù)庫系統(tǒng)能否真實地反映現(xiàn)實世界。維護數(shù)據(jù)庫的完整性是非常重要的。第二頁,共五十八頁,2022年,8月28日數(shù)據(jù)的完整性和安全性是兩個不同的概念,密切相關。完整性防止數(shù)據(jù)庫中存在不符合語義的數(shù)據(jù),防止錯誤信息的輸入和輸出防范對象是不合語義的數(shù)據(jù)安全性保護數(shù)據(jù)庫防止惡意的破壞和非法的存取防范對象是非法用戶和非法操作第三頁,共五十八頁,2022年,8月28日DBMS必須提供一種機制來檢查數(shù)據(jù)庫中的數(shù)據(jù),看其是否滿足語義規(guī)定的條件。完整性控制機制完整性約束條件定義機制完整性檢查機制違約反應第四頁,共五十八頁,2022年,8月28日1、完整性約束條件定義完整性約束條件:數(shù)據(jù)模型的組成部分,約束數(shù)據(jù)庫中數(shù)據(jù)的語義。DBMS應提供定義數(shù)據(jù)庫完整性約束條件(即數(shù)據(jù)上的語義約束條件),并把它們作為模式的一部分存入數(shù)據(jù)庫中第五頁,共五十八頁,2022年,8月28日2、完整性檢查機制檢查用戶發(fā)出的操作請求是否違背了完整性約束條件。第六頁,共五十八頁,2022年,8月28日3、違約反應如果發(fā)現(xiàn)用戶的操作請求使數(shù)據(jù)違背了完整性約束條件,則采取一定的動作來保證數(shù)據(jù)的完整性。第七頁,共五十八頁,2022年,8月28日完整性約束條件整個完整性控制都是圍繞完整性約束條件進行的完整性約束條件是完整性控制機制的核心第八頁,共五十八頁,2022年,8月28日完整性約束條件作用的對象對象列對屬性的取值類型、范圍、精度等的約束條件元組對元組中各個屬性列間的聯(lián)系的約束關系對若干元組間、關系集合上以及關系之間聯(lián)系的約束第九頁,共五十八頁,2022年,8月28日對象的狀態(tài)靜態(tài)靜態(tài)約束:數(shù)據(jù)庫每一確定狀態(tài)時的數(shù)據(jù)對象所應滿足的約束條件。對靜態(tài)對象的約束是反映數(shù)據(jù)庫狀態(tài)合理性的約束動態(tài)動態(tài)約束:數(shù)據(jù)庫從一種狀態(tài)轉(zhuǎn)變?yōu)榱硪环N狀態(tài)時,新、舊值之間所應滿足的約束條件。對動態(tài)對象的約束是反映數(shù)據(jù)庫狀態(tài)變遷的約束第十頁,共五十八頁,2022年,8月28日完整性約束條件分類,六類完整性約束條件靜態(tài)列級約束靜態(tài)元組約束靜態(tài)關系約束動態(tài)列級約束動態(tài)元組約束動態(tài)關系約束第十一頁,共五十八頁,2022年,8月28日1.靜態(tài)列級約束靜態(tài)列級約束:對的取值域的說明。最常見、最簡單、最容易實現(xiàn)的一類完整性約束第十二頁,共五十八頁,2022年,8月28日五類靜態(tài)列級約束1)數(shù)據(jù)類型約束數(shù)據(jù)的類型、長度、單位、精度等例:學生姓名的數(shù)據(jù)類型為字符型,長度為82)對數(shù)據(jù)格式的約束例:學號:前兩位表示入學年份,后四位為順序編號出生日期:。第十三頁,共五十八頁,2022年,8月28日3)取值范圍或取值集合的約束例:規(guī)定成績的取值范圍為0-100
年齡的取值范圍為14-29
性別的取值集合為[男,女]4)對空值的約束空值表示未定義或未知的值空值與零值和空格不同有的列允許空值,有的則不允許,如成績可為空值5)其他約束例:關于列的排序說明,組合列等第十四頁,共五十八頁,2022年,8月28日2.靜態(tài)元組約束規(guī)定元組的各個列之間的約束關系。例:訂貨關系中發(fā)貨量<=訂貨量教師關系中教授的工資>=700元靜態(tài)元組約束只局限在元組上第十五頁,共五十八頁,2022年,8月28日3.靜態(tài)關系約束關系的各個元組之間或若干關系之間存在的各種聯(lián)系或約束常見靜態(tài)關系約束1)實體完整性約束2)參照完整性約束3)函數(shù)依賴約束4)統(tǒng)計約束第十六頁,共五十八頁,2022年,8月28日函數(shù)依賴約束關系字段間存在的函數(shù)依賴例:在學生-課程-教師關系
SJT(S,J,T)的函數(shù)依賴:
((S,J)→T,T→J)
主碼:(S,J)第十七頁,共五十八頁,2022年,8月28日統(tǒng)計約束定義某個字段值與一個關系中多個元組的統(tǒng)計值之間的約束關系例:職工平均工資的2倍<=部門經(jīng)理的工資<=職工平均工資的5倍第十八頁,共五十八頁,2022年,8月28日4.動態(tài)列級約束動態(tài)列級約束是修改列定義或列值時應滿足的約束條件第十九頁,共五十八頁,2022年,8月28日1)修改列定義時的約束例:將原來允許空值的列改為不允許空值時:該列目前已存在空值,則拒絕這種修改2)修改列值時的約束修改列值時新舊值之間要滿足的約束條件例:職工工資調(diào)整>=原來工資年齡只能增長第二十頁,共五十八頁,2022年,8月28日5.動態(tài)元組約束修改元組值:各個字段之間要滿足的約束條件例:職工工資調(diào)整不得低于其原來工資+工齡*1.5第二十一頁,共五十八頁,2022年,8月28日6.動態(tài)關系約束關系變化前后狀態(tài)上的限制條件。例:事務一致性、原子性等約束條件第二十二頁,共五十八頁,2022年,8月28日完整性約束條件小結(jié)粒度狀態(tài)
列級
元組級
關系級
靜態(tài)列定義·類型·格式·值域
·空值
元組值應滿足的條件
實體完整性約束參照完整性約束函數(shù)依賴約束統(tǒng)計約束動態(tài)改變列定義或列值元組新舊值之間應滿足的約束條件
關系新舊狀態(tài)間應滿足的約束條件
第二十三頁,共五十八頁,2022年,8月28日完整性控制一、DBMS的完整性控制機制DBMS的完整性控制機制應具有的功能定義功能提供定義完整性約束條件的機制檢查功能檢查用戶發(fā)出的操作請求是否違背了完整性約束條件違約反應如發(fā)現(xiàn)用戶的操作請求使數(shù)據(jù)違背了完整性約束條件,則采取一定的動作來保證數(shù)據(jù)的完整性。第二十四頁,共五十八頁,2022年,8月28日1.定義功能一個完善的完整性控制機制應該允許用戶定義各類完整性約束條件。第二十五頁,共五十八頁,2022年,8月28日2.檢查功能立即執(zhí)行的約束(Immediateconstraints)語句執(zhí)行完后立即檢查是否違背完整性約束延遲執(zhí)行的約束(Deferredconstrainsts)完整性檢查延遲到整個事務執(zhí)行結(jié)束后進行第二十六頁,共五十八頁,2022年,8月28日例:銀行數(shù)據(jù)庫中“借貸總金額應平衡”的約束應該是延遲執(zhí)行的約束從賬號A轉(zhuǎn)一筆錢到賬號B為一個事務,從賬號A轉(zhuǎn)出去錢后賬就不平了,必須等轉(zhuǎn)入賬號B后賬才能重新平衡,這時才能進行完整性檢查。第二十七頁,共五十八頁,2022年,8月28日3.違約反應拒絕該操作其他處理方法第二十八頁,共五十八頁,2022年,8月28日完整性規(guī)則五元組表示: (D,O,A,C,P)D(Data)約束作用的數(shù)據(jù)對象;O(Operation)觸發(fā)完整性檢查的數(shù)據(jù)庫操作用戶發(fā)出什么操作請求時需要檢查該完整性規(guī)則是立即檢查還是延遲檢查A(Assertion)數(shù)據(jù)對象必須滿足的斷言或語義約束,是規(guī)則的主體C(Condition)選擇A作用的數(shù)據(jù)對象值的謂詞P(Procedure)違反完整性規(guī)則時觸發(fā)的過程第二十九頁,共五十八頁,2022年,8月28日例:在“學號不能為空”的約束中D約束作用的對象為Sno屬性O插入或修改Student元組時ASno不能為空C無(A可作用于所有記錄的Sno屬性)P拒絕執(zhí)行該操作第三十頁,共五十八頁,2022年,8月28日例:在“教授工資不得低于1000元”的約束中D約束作用的對象為工資Sal屬性O插入或修改職工元組時ASal不能小于1000C職稱=′教授′,
(A僅作用于職稱=‘教授’的記錄)P拒絕執(zhí)行該操作第三十一頁,共五十八頁,2022年,8月28日二、關系系統(tǒng)三類完整性的實現(xiàn)關系數(shù)據(jù)庫系統(tǒng)都提供了定義和檢查實體完整性、參照完整性和用戶定義的完整性的功能第三十二頁,共五十八頁,2022年,8月28日違反實體完整性、用戶定義的完整性規(guī)則的操作拒絕執(zhí)行違反參照完整性的操作拒絕執(zhí)行接受這個操作,同時執(zhí)行一些附加的操作,以保證數(shù)據(jù)庫的狀態(tài)正確第三十三頁,共五十八頁,2022年,8月28日三、參照完整性的實現(xiàn)例:職工-部門數(shù)據(jù)庫包含職工表EMP和部門表DEPTDEPT關系的主碼為部門號DeptnoEMP關系的主碼為職工號Empno,外碼為部門號DeptnoDEPT:被參照關系或目標關系EMP:參照關系第三十四頁,共五十八頁,2022年,8月28日RDBMS實現(xiàn)參照完整性時需要考慮以下4方面:1.外碼是否可以接受空值的問題外碼是否能夠取空值依賴于應用環(huán)境的語義實現(xiàn)參照完整性系統(tǒng)提供定義外碼的機制定義外碼列是否允許空值的機制第三十五頁,共五十八頁,2022年,8月28日例:在職工-部門數(shù)據(jù)庫中EMP關系包含有外碼Deptno某元組的這一列若為空值,表示這個職工尚未分配到任何具體的部門工作和應用環(huán)境的語義是相符第三十六頁,共五十八頁,2022年,8月28日例:學生-選課數(shù)據(jù)庫Student關系為被參照關系,其主碼為Sno。SC為參照關系,外碼為Sno。若SC的Sno為空值:表明尚不存在的某個學生,或者某個不知學號的學生,選修了某門課程,其成績記錄在Grade中。與學校的應用環(huán)境是不相符的,因此SC的Sno列不能取空值。第三十七頁,共五十八頁,2022年,8月28日2.在被參照關系中刪除元組時出現(xiàn)違約操作的情形刪除被參照關系的某個元組(student)而參照關系有若干元組(SC)的外碼值與被刪除的被參照關系的主碼值相同第三十八頁,共五十八頁,2022年,8月28日違約反應的策略級聯(lián)刪除(CASCADES)受限刪除(RESTRICTED)置空值刪除(NULLIFIES)這三種處理方法,哪一種是正確的,要依應用環(huán)境的語義來定第三十九頁,共五十八頁,2022年,8月28日級聯(lián)刪除將參照關系中外碼值與被參照關系中要刪除元組主碼值相對應的元組一起刪除受限刪除當參照關系中沒有任何元組的外碼值與要刪除的被參照關系的元組的主碼值相對應時,系統(tǒng)才執(zhí)行刪除操作,否則拒絕此刪除操作第四十頁,共五十八頁,2022年,8月28日置空值刪除刪除被參照關系的元組,并將參照關系中與被參照關系中被刪除元組主碼值相等的外碼值置為空值。第四十一頁,共五十八頁,2022年,8月28日例:要刪除Student關系中Sno=‘950001’的元組,而SC關系中有4個元組的Sno都等于950001。級聯(lián)刪除:將SC關系中所有4個Sno=‘950001’的元組一起刪除。如果參照關系同時又是另一個關系的被參照關系,則這種刪除操作會繼續(xù)級聯(lián)下去受限刪除:系統(tǒng)將拒絕執(zhí)行此刪除操作。第四十二頁,共五十八頁,2022年,8月28日置空值刪除:將SC關系中所有Sno=950001的元組的Sno值置為空值。在學生選課數(shù)據(jù)庫中,顯然第一種方法和第二種方法都是對的。第三種方法不符合應用環(huán)境語義。第四十三頁,共五十八頁,2022年,8月28日3.在參照關系中插入元組時出現(xiàn)違約操作的情形需要在參照關系中插入元組,而被參照關系不存在相應的元組違約反應受限插入遞歸插入第四十四頁,共五十八頁,2022年,8月28日受限插入僅當被參照關系中存在相應的元組,其主碼值與參照關系插入元組的外碼值相同時,系統(tǒng)才執(zhí)行插入操作,否則拒絕此操作。遞歸插入首先向被參照關系中插入相應的元組,其主碼值等于參照關系插入元組的外碼值,然后向參照關系插入元組。第四十五頁,共五十八頁,2022年,8月28日例:向SC關系插入(99001,1,90)元組,而Student關系中尚沒有Sno=99001的學生受限插入:系統(tǒng)將拒絕向SC關系插入(99001,1,90)元組遞歸插入:系統(tǒng)將首先向Student關系插入Sno=99001的元組,然后向SC關系插入(99001,1,90)元組。第四十六頁,共五十八頁,2022年,8月28日4.修改被參照關系中主碼的問題兩種策略不允許修改主碼允許修改主碼第四十七頁,共五十八頁,2022年,8月28日允許修改主碼策略違約操作要修改被參照關系中某些元組的主碼值,而參照關系中有些元組的外碼值正好等于被參照關系要修改的主碼值要修改參照關系中某些元組的主碼值,而被參照關系中沒有任何元組的主碼值等于參照關系修改后的外碼值第四十八頁,共五十八頁,2022年,8月28日違約反應(1)修改的關系是被參照關系:與刪除類似級聯(lián)修改受限修改置空值修改第四十九頁,共五十八頁,2022年,8月28日級聯(lián)修改修改被參照關系中主碼值同時,用相同的方法修改參照關系中相應的外碼值。受限修改拒絕此修改操作。只當參照關系中沒有任何元組的外碼值等于被參照關系中某個元組的主碼值時,這個元組的主碼值才能被修改。置空值修改修改被參照關系中主碼值,同時將參照關系中相應的外碼值置為空值。第五十頁,共五十八頁,2022年,8月28日
例:將Student關系中Sno=950001的元組中Sno值改為960123。而SC關系中有4個元組的Sno=950001級聯(lián)修改將SC關系中4個Sno=950001元組中的Sno值也改為960123。如果參照關系同時又是另一個關系的被參照關系,則這種修改操作會繼續(xù)級聯(lián)下去。第五十一頁,共五十八頁,2022年,8月28日受限修改只有SC中沒有任何元組的Sno=950001時,才能修改Student表中Sno=950001的元組的Sno值改為960123。置空值修改將Student表中Sno=950001的元組的Sno值改為960123。而將S表中所有Sno=950001的元組的Sno值置為空值。在學生選課數(shù)據(jù)庫中只有第一種方法是正確的。第五十二頁,共五十八頁,2022年,8月28
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 17831-2:2025 EN Solid biofuels - Determination of mechanical durability of pellets and briquettes - Part 2: Briquettes
- 【正版授權(quán)】 ISO 15237:2025 EN Coal - Determination of total mercury
- 【正版授權(quán)】 IEC 62608-1:2025 RLV EN Multimedia home network configuration - Basic reference model - Part 1: System model
- 【正版授權(quán)】 ISO 13909-4:2025 EN Coal and coke - Mechanical sampling - Part 4: Preparation of test samples of coal
- 校園應急知識培訓課件作文
- 債務規(guī)劃面試題及答案
- 教師業(yè)務考試題及答案
- 云南b類面試題及答案
- 砌磚工程試題及答案
- 幼兒英語考試試題及答案
- 2025年事業(yè)單位工勤技能-河南-河南農(nóng)機駕駛維修工一級(高級技師)歷年參考題庫含答案解析(5套)
- 2025年幼兒園教師崗位聘任協(xié)議(含資格認證及薪酬激勵)
- 成都東部集團有限公司招聘考試真題2024
- 銀行收息管理辦法
- 海外房產(chǎn)投資項目方案(3篇)
- 消防員心理健康課件
- 2024年中級注冊安全工程師《安全生產(chǎn)技術(shù)基礎》考試真題及答案
- JJG 597-2025交流電能表檢定裝置檢定規(guī)程
- DBJT 13-318-2025建筑施工盤扣式鋼管腳手架安全技術(shù)標準
- 2025年中國兒童學習機市場競爭格局及投資戰(zhàn)略規(guī)劃報告
- 廚師專業(yè)論文
評論
0/150
提交評論