資源描述:
《數(shù)據(jù)庫完整性ppt培訓(xùn)課件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、AnIntroductiontoDatabaseSystem數(shù)據(jù)庫系統(tǒng)概論AnIntroductiontoDatabaseSystem第五章數(shù)據(jù)庫完整性AnIntroductiontoDatabaseSystem第五章數(shù)據(jù)庫完整性什么是數(shù)據(jù)庫的完整性數(shù)據(jù)的正確性和相容性防止不合語義的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫。例:學(xué)生的年齡必須是整數(shù),取值范圍為14--29;學(xué)生的性別只能是男或女;學(xué)生的學(xué)號(hào)一定是唯一的;學(xué)生所在的系必須是學(xué)校開設(shè)的系;完整性:能否真實(shí)地反映現(xiàn)實(shí)世界AnIntroductiontoDatabaseSystem完整性控制機(jī)制1.提供
2、定義完整性約束條件的機(jī)制2.提供完整性檢查的方法3.違約處理AnIntroductiontoDatabaseSystem完整性約束條件定義完整性約束條件:數(shù)據(jù)模型的組成部分約束數(shù)據(jù)庫中數(shù)據(jù)的語義DBMS應(yīng)提供定義數(shù)據(jù)庫完整性約束條件,并把它們作為模式的一部分存入數(shù)據(jù)庫中AnIntroductiontoDatabaseSystem完整性控制機(jī)制檢查用戶發(fā)出的操作請(qǐng)求是否違背了完整性約束條件AnIntroductiontoDatabaseSystem違約反應(yīng)如果發(fā)現(xiàn)用戶的操作請(qǐng)求使數(shù)據(jù)違背了完整性約束條件,則采取一定的動(dòng)作來保證數(shù)據(jù)的完整性
3、。AnIntroductiontoDatabaseSystem第五章數(shù)據(jù)庫完整性5.1實(shí)體完整性5.2參照完整性5.3用戶定義的完整性5.4完整性約束命名子句5.5域中的完整性限制5.6觸發(fā)器5.7小結(jié)AnIntroductiontoDatabaseSystem5.1.1實(shí)體完整性定義關(guān)系模型的實(shí)體完整性在CREATETABLE中用PRIMARYKEY定義。單屬性的碼:定義為列級(jí)約束條件定義為表級(jí)約束條件多屬性的碼:定義為表級(jí)約束條件例1:將Student表中的Sno屬性定義為碼:CREATETABLEStudent(SnoCHAR(9
4、)PRIMARYKEY,SnameCHAR(20)NOTNULL,SsexCHAR(2),SageSMALLINT,SdeptCHAR(20));CREATETABLEStudent(SnoCHAR(9),SnameCHAR(20)NOTNULL,SsexCHAR(2),SageSMALLINT,SdeptCHAR(20),PRIMARYKEY(Sno));AnIntroductiontoDatabaseSystem例2:將SC表中的Sno,Cno屬性組定義為碼CREATETABLESC(SnoCHAR(9)NOTNULL,CnoCH
5、AR(4)NOTNULL,GradeSMALLINT,PRIMARYKEY(Sno,Cno));AnIntroductiontoDatabaseSystem5.1.2實(shí)體完整性檢查和違約處理對(duì)定義主碼的表,當(dāng)用戶要插入一條記錄或?qū)χ鞔a列進(jìn)行更新操作時(shí),要進(jìn)行實(shí)體完整性規(guī)則自動(dòng)檢查。檢查主碼值是否唯一,若不唯一則拒絕插入或修改;檢查主碼的各個(gè)屬性是否為空,只要有一個(gè)為空就拒絕插入或修改。檢查方法:全表掃描B+樹索引AnIntroductiontoDatabaseSystem第五章數(shù)據(jù)庫完整性5.1實(shí)體完整性5.2參照完整性5.3用戶定義的
6、完整性5.4完整性約束命名子句5.5域中的完整性限制5.6觸發(fā)器5.7小結(jié)AnIntroductiontoDatabaseSystem5.2.1參照完整性定義關(guān)系模型的參照完整性在CREATETABLE中用FOREIGNKEY短語定義哪些列為外碼,用REFERENCES短語指明外碼參照哪些表的主碼。例3:CREATETABLESC(SnoCHAR(9)NOTNULL,CnoCHAR(4)NOTNULL,GradeSMALLINT,PRIMARYKEY(Sno,Cno),FOREIGNKEY(Sno)REFERENCESStudent(S
7、no),FOREIGNKEY(Cno)REFERENCESCourse(Cno));AnIntroductiontoDatabaseSystem5.2.2參照完整性檢查和違約處理表5.1可能破壞參照完整性的情況及違約處理被參照表(例Student)參照表(例SC)違約處理可能破壞參照完整性插入元組拒絕可能破壞參照完整性修改外碼值拒絕刪除元組可能破壞參照完整性拒絕/級(jí)聯(lián)刪除/設(shè)置為空值修改主碼值可能破壞參照完整性拒絕/級(jí)聯(lián)刪除/設(shè)置為空值A(chǔ)nIntroductiontoDatabaseSystem5.3用戶定義的完整性5.3.1屬性上的約
8、束條件定義5.3.2屬性上的約束條件檢查和違約處理5.3.3元組上的約束條件的定義5.3.4元組上的約束條件檢查和違約處理AnIntroductiontoDatabaseSystem5.3.1屬性上的約束條