資源描述:
《數(shù)據(jù)庫(kù)系統(tǒng)概論第5章數(shù)據(jù)庫(kù)完整性》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第5章數(shù)據(jù)庫(kù)完整性5.1完整性約束條件5.2完整性控制1數(shù)據(jù)庫(kù)的完整性正確性相容性數(shù)據(jù)庫(kù)完整性的實(shí)現(xiàn):(1)定義完整性約束條件(2)完整性檢查(3)違約反應(yīng)10.1完整性約束條件完整性約束條件作用的對(duì)象:關(guān)系元組列列約束:是指列的類型、取值范圍、精度、排序等約束.元組約束:是指元組中各個(gè)字段間的聯(lián)系約束.關(guān)系約束:是指若干元組間、關(guān)系集合上以及關(guān)系之間的聯(lián)系約束.2完整性約束條件作用對(duì)象的狀態(tài):靜態(tài)動(dòng)態(tài)靜態(tài)約束:是指數(shù)據(jù)庫(kù)每一確定狀態(tài)時(shí)的數(shù)據(jù)對(duì)象所應(yīng)滿足的約束條件,它是反映數(shù)據(jù)庫(kù)狀態(tài)合理性的約束.動(dòng)態(tài)約束:是指數(shù)據(jù)庫(kù)從一種狀態(tài)轉(zhuǎn)變?yōu)榱硪环N狀
2、態(tài)時(shí),新、舊值之間所滿足的約束條件,它是反映數(shù)據(jù)庫(kù)狀態(tài)變遷的約束.完整性約束條件分類:列元組關(guān)系動(dòng)態(tài)靜態(tài)1234561:靜態(tài)列級(jí)約束2:靜態(tài)元組約束3:靜態(tài)關(guān)系約束4:動(dòng)態(tài)列級(jí)約束5:動(dòng)態(tài)元組約束6:動(dòng)態(tài)關(guān)系約束3一、靜態(tài)列級(jí)約束靜態(tài)列級(jí)約束:是指對(duì)一個(gè)列的取值域的說(shuō)明。包括以下幾個(gè)方面:(1)對(duì)數(shù)據(jù)類型的約束(數(shù)據(jù)的類型、長(zhǎng)度、單位、精度等)(2)對(duì)數(shù)據(jù)格式的約束(3)對(duì)取值范圍或取值集合的約束(4)對(duì)空值的約束(5)其他約束二、動(dòng)態(tài)列級(jí)約束動(dòng)態(tài)列級(jí)約束:是指修改列定義或列值時(shí)應(yīng)滿足的約束條件.包括以下幾個(gè)方面:(1)修改列定義時(shí)的約束(
3、2)修改列值時(shí)的約束4三、靜態(tài)元組約束靜態(tài)元組約束:是指元組的各個(gè)列之間的約束關(guān)系.四、動(dòng)態(tài)元組級(jí)約束動(dòng)態(tài)元組級(jí)約束:是指修改元組的值時(shí)元組中各個(gè)列之間的約束條件.五、靜態(tài)關(guān)系約束靜態(tài)關(guān)系約束:是指一個(gè)關(guān)系的各個(gè)元組之間或者若干關(guān)系之間存在的約束條件.包括以下幾個(gè)方面:(1)實(shí)體完整性約束(2)參照完整性約束(3)函數(shù)依賴約束(4)統(tǒng)計(jì)約束5六、動(dòng)態(tài)關(guān)系約束動(dòng)態(tài)關(guān)系約束:是指加在關(guān)系變化前后狀態(tài)上的約束條件.總結(jié):粒度狀態(tài)列級(jí)元組級(jí)關(guān)系級(jí)靜態(tài)動(dòng)態(tài)列定義·類型·格式·值域·空值元組值應(yīng)滿足的條件實(shí)體完整性約束參照完整性約束函數(shù)依賴約束統(tǒng)計(jì)約束
4、改變列定義或列值元組新舊值之間應(yīng)滿足的約束條件關(guān)系新舊狀態(tài)間應(yīng)滿足的約束條件610.2完整性控制完整性控制機(jī)制的功能:(1)定義功能(2)檢查功能(3)如果發(fā)現(xiàn)用戶的操作請(qǐng)求使數(shù)據(jù)違背了完整性約束條件,則采取一定的動(dòng)作來(lái)保證數(shù)據(jù)的完整性.完整性規(guī)則的表示:五元組(D,O,A,C,P)D(Data):指約束作用的數(shù)據(jù)對(duì)象O(Operation):觸發(fā)完整性檢查的數(shù)據(jù)庫(kù)操作A(Assertion):數(shù)據(jù)對(duì)象必須滿足的斷言或語(yǔ)義約束C(Condition):選擇A作用的數(shù)據(jù)對(duì)象值的謂詞P(Procedure):違反完整性規(guī)則時(shí)觸發(fā)的過(guò)程立即執(zhí)行檢
5、查延遲執(zhí)行檢查7例子1:對(duì)表Student的“學(xué)號(hào)不能為空”的約束規(guī)定.五元組(D,O,A,C,P)D:約束作用的對(duì)象為Sno屬性O(shè):插入或修改Student元組時(shí)A:Sno不能為空C:無(wú)(A作用于所有記錄的Sno屬性)P:拒絕執(zhí)行該操作例子2:對(duì)教師基本情況表的“教授工資不得低于1000元”的約束規(guī)定.五元組(D,O,A,C,P)D:約束作用的對(duì)象為工資Sal屬性O(shè):插入或修改職工元組時(shí)A:Sal不能小于1000C:職稱=‘教授’P:拒絕執(zhí)行該操作8實(shí)現(xiàn)參照完整性要考慮的幾個(gè)問(wèn)題:1.外碼能否接受空值的問(wèn)題學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),
6、年齡)專業(yè)(專業(yè)號(hào),專業(yè)名)外碼例子1:外碼取空值表示該學(xué)生尚未分配到任何具體的專業(yè)學(xué)習(xí).與應(yīng)用環(huán)境的語(yǔ)義相符,因此外碼可取空值.例子2:學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡)課程(課程號(hào),課程名,學(xué)分)選修(學(xué)號(hào),課程號(hào),成績(jī))外碼(學(xué)號(hào))取空值表示一個(gè)不存在的學(xué)生選了某門課程,成績(jī)記錄在成績(jī)列中.與應(yīng)用環(huán)境的語(yǔ)義不相符,因此外碼不能取空值.92.在被參照關(guān)系中刪除元組的問(wèn)題例子:學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡)選修(學(xué)號(hào),課程號(hào),成績(jī))學(xué)號(hào)姓名性別專業(yè)號(hào)年齡95001李勇男CS20…………….被參照關(guān)系學(xué)號(hào)課程號(hào)成績(jī)9500117
7、89500138095001489………三種策略:(1)級(jí)聯(lián)刪除(2)受限刪除(3)置空值刪除在學(xué)生關(guān)系中刪除元組(95001,李勇,男,CS,20)10例子:A(A#,AN)S(S#,SN,A#,SA)在A關(guān)系中刪除元組(001,物理)?三種策略:(1)級(jí)聯(lián)刪除(2)受限刪除(3)置空值刪除113.在參照關(guān)系中插入元組時(shí)的問(wèn)題例子:學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡)選修(學(xué)號(hào),課程號(hào),成績(jī))參照關(guān)系學(xué)號(hào)姓名性別專業(yè)號(hào)年齡95001李勇男CS20…………….學(xué)號(hào)課程號(hào)成績(jī)950011789500138095001489………兩種策略:(
8、1)受限插入(2)遞歸插入在選修關(guān)系中插入元組(99001,1,90)12例子:S(S#,SN,A#,SA)A(A#,AN)在S關(guān)系中插入元組(95001,李勇,031,20)?