資源描述:
《【數(shù)據(jù)庫系統(tǒng)概論】數(shù)據(jù)庫完整性.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、課間休息注意時間第十章數(shù)據(jù)庫完整性10.1完整性約束條件一、靜態(tài)列級約束1.對數(shù)據(jù)類型的約束2.對數(shù)據(jù)格式的約束3.對取值范圍或取值集合的約束4.對空值的約束5.其他約束二、靜態(tài)元組約束三、靜態(tài)關(guān)系約束1.實體完整性約束2.參照完整性約3.函數(shù)依賴約束4.統(tǒng)計約束四、動態(tài)列級約束1.修改列定義時的約束2.修改列值時的約束五、動態(tài)元組約束六、動態(tài)關(guān)系約束表10.1完整性約束條件粒度狀態(tài)列級元組級關(guān)系級靜態(tài)列定義.類型.格式.值域.空值元組值應(yīng)滿足的關(guān)系實體完整性約束參照完整性約束函數(shù)依賴約束統(tǒng)計約束動態(tài)改變列定義或域值元組新舊值之間應(yīng)滿足的約束條件關(guān)
2、系新舊狀態(tài)之間應(yīng)滿足的約束條件10.2完整性控制一、完整性控制機制應(yīng)具有的功能二、用一個五元組來表示一條完整性規(guī)則*D(Data)約束作用的數(shù)據(jù)對象;*O(Operation)觸發(fā)完整性檢查的數(shù)據(jù)庫操作;*A(Assertion)數(shù)據(jù)對象必須滿足的斷言或語義約束,這是規(guī)則的主體;*C(Condition)選擇A作用的數(shù)據(jù)對象值的謂詞;*P(Procedure)違反完整性規(guī)則時觸發(fā)的過程.三、實現(xiàn)參照完整性要考慮的幾個問題1.外碼能否接受空值問題2.在被參照關(guān)系中刪除元組的問題(1).級聯(lián)刪除(CASCZDES)(2).受限刪除(RESTRICTED
3、)(3).置空值刪除(NULLIFIES)3.在參照關(guān)系中插入元組時的問題(1).受限插入(2).遞歸插入4.修改關(guān)系中主碼的問題(1).不允許修改主碼(2).允許修改主碼10.3Oracle的完整性一、Oracle中的實體完整性O(shè)racle在CREATETABLE語句中提供了PRIMARYKEY子句,供用戶在建表時指定關(guān)系的主碼。如要定義Student表的Sno為主碼,可使用如下語句:CREATETABLEStudent(SnoNUMBER(8),SnameVARCHAR(20),SageNUMBER(2),CONSTRAINTPK-SNOPRI
4、MARYKEY(Sno));若要在SC表中定義(Sno,Cno)為主碼,則用如下語句建立SC表:CREATETABLESC(SnoNUMBER(8),CnoNUMBER(2),GradeNUMBER(3),CONSTRAINTPK-SCPRIMARYKEY(Sno,Cno));二、Oracle中的參照完整性三、Oracle中用戶定義的完整性O(shè)racle允許用戶在建立表時定義下列完整性約束:*列值非空(NOTNULL短語)*列值唯一(UNIQUE短語)*檢查列值是否滿足一個布4表達式(CHECK短語)例1(P331)CREATETABLEDEPT(D
5、eptnoNUMBER,DnameVARCHAR(9)CONSTRAINTU1UNIQUE,LocVARCHAR(10),CONSTRAINTPK-DEPTPRIMARYKEY(Deptno));