版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)系統(tǒng)原理第五章完整性控制1第1頁(yè),課件共19頁(yè),創(chuàng)作于2023年2月③
約束對(duì)象狀態(tài)·靜態(tài):反映DB狀態(tài)合理性的約束?!?dòng)態(tài):反映DB狀態(tài)變遷的約束。④
約束時(shí)機(jī)(Immediateconstraints)(1)立即約束——一條語(yǔ)句執(zhí)行完后立即檢查。(2)延遲約束(deferredconstraints)——事務(wù)執(zhí)行結(jié)束后檢查。轉(zhuǎn)帳,從A到B后,帳才能平,才能進(jìn)行檢查。2、靜態(tài)列級(jí)約束——對(duì)一個(gè)列的取值域的約束。①
數(shù)據(jù)類型約束類型、長(zhǎng)度、單位、精度如XM為C型,長(zhǎng)8位;YL為I型,長(zhǎng)3位。②
數(shù)據(jù)格式約束如工作證號(hào)前2位表示省,后3位表示縣,后4位表示單位順序號(hào),后5位表示個(gè)人順序號(hào)。2第2頁(yè),課件共19頁(yè),創(chuàng)作于2023年2月③
值域約束CJ≤100,NL≤150,XB={男,女}④
空值約束是否允許空值列。如CJ可為空。⑤
其它約束(如:列的排序、是否唯一等等)3、靜態(tài)元組約束——對(duì)一個(gè)(僅一個(gè))元組中各列值間聯(lián)系的約束。如:總額≥單價(jià)工齡<年齡4、靜態(tài)關(guān)系約束——對(duì)一個(gè)關(guān)系中若干元組之間或若干關(guān)系的聯(lián)系的約束。①
實(shí)體完整性約束;②
參照完整性約束;③
函數(shù)依賴約束;④
統(tǒng)計(jì)約束;如:職工最低工資不能低于本部門職工平均工資的50%。3第3頁(yè),課件共19頁(yè),創(chuàng)作于2023年2月5、動(dòng)態(tài)列級(jí)約束——修改列定義或列值時(shí)的約束。①
修改定義約束——修改定義時(shí)新老值間的約束。如:將允許空值列改為不允許空值時(shí),若該列值已有空值,則不可修改。②
修改值約束——修改時(shí)新舊值間的約束。如年齡不能修改得更小。6、動(dòng)態(tài)元組約束——修改元組時(shí)新舊值間的約束。例如新工資不低于原工資+工齡*1.5。7、動(dòng)態(tài)關(guān)系約束——施加于關(guān)系上的前后狀態(tài)的約束①
一致性②
原子性
4第4頁(yè),課件共19頁(yè),創(chuàng)作于2023年2月5.3完整性控制1、實(shí)體完整性(entityintegrity)——對(duì)關(guān)系模式主屬性施加的完整性控制。
不允許空,在關(guān)系中取值唯一例:
student(XH,XM,XB,YL) XH不能為空且唯一course(KH,KM) KH不能為空且唯一Sc(XH,KH,CJ) (XH,KH)不能為空且唯一Createtablestudent(XH,Char(6)NOTNULL,…,);2、參照完整性(referentialintegrity)——對(duì)外碼施加的完整性控制。(回憶第二章定義)參照關(guān)系:外碼所在關(guān)系,如SC被參照關(guān)系:主碼(同時(shí)又是另一關(guān)系中的外碼)所在關(guān)系,如student,course。外碼:sc中的XH,KH5第5頁(yè),課件共19頁(yè),創(chuàng)作于2023年2月1)空值情況①
為空(SC中XH為空,表示無(wú)這個(gè)學(xué)生,或無(wú)學(xué)號(hào)學(xué)生選修了課程,不合應(yīng)用語(yǔ)義),或;②
對(duì)應(yīng)被參照關(guān)系中該元組存在;③
是否可為空,據(jù)應(yīng)用語(yǔ)義確定。
DEPT(DH,DM,DD)EMPL(DH,EH,XM)EMPL中DH可為空,表示該職員還未分配到任何部門工作。2)刪除被參照關(guān)系元組情況①
捆綁刪除(cascades)——參照與被參照關(guān)系中相關(guān)者一起刪除?!け粎⒄贞P(guān)系中外碼元組刪除例如:刪除99001號(hào)學(xué)生(或者01號(hào)課程)刪去student中XH=‘99001’的元組(刪去course中KH=‘01’的元組)則捆綁刪除SC中學(xué)號(hào)為99001(課號(hào)為01)的所有元組·參照關(guān)系中與被參照關(guān)系中碼值對(duì)應(yīng)元組刪除6第6頁(yè),課件共19頁(yè),創(chuàng)作于2023年2月·可能層層牽連如:若SC又是另一參照關(guān)系的被參照關(guān)系,則可能又刪除之……。②
受限刪除(restricted)——參照關(guān)系沒(méi)有一個(gè)外碼與要?jiǎng)h除的被參照關(guān)系的主碼值相對(duì)應(yīng)時(shí)才執(zhí)行刪除。例如:若SC中外碼值XH,無(wú)一個(gè)與主碼值(Student.XH,course.KH)對(duì)應(yīng)時(shí)才刪去student、course中相應(yīng)元組。③
置空值刪除(nullifies/setnull)·刪去被參照關(guān)系中元組;·參照關(guān)系中所有與被參照關(guān)系中已刪去的主碼值相等的外碼值置為空值。如:刪去部門表中的某個(gè)部門,則職員表中原來(lái)屬于該部門的職員的所屬部門號(hào)置空。7第7頁(yè),課件共19頁(yè),創(chuàng)作于2023年2月④
說(shuō)明·上述三種,選擇哪一種實(shí)施,視應(yīng)用需求確定。如:學(xué)籍管理中,學(xué)生畢業(yè)了,刪去選課及學(xué)生信息,故需捆綁刪除(course不刪)student信息?!BMS提供相應(yīng)選擇機(jī)制。
3)修改被參照關(guān)系主碼值情況①
捆綁修改(cascades)·修改被參照關(guān)系中主碼值。如修改student中的XH=99003改為XH=99020·同時(shí)修改參照關(guān)系中相等外碼值。如:同時(shí)SC中所有99003改為99020·可能逐層牽連。8第8頁(yè),課件共19頁(yè),創(chuàng)作于2023年2月②
受限修改(restricted)——僅當(dāng)參照關(guān)系中沒(méi)有一個(gè)外碼值與被參照關(guān)系中某個(gè)元組主碼值相等時(shí)才可修改被參照關(guān)系中的該元組主碼值。如:僅當(dāng)SC中學(xué)生無(wú)99003時(shí),才可修改student中XH=99003。③
置空值修改(nullifies)·修改被參照關(guān)系中的主碼值;·將參照關(guān)系中的與該主碼值相等的外碼置為空值。④
說(shuō)明·具體應(yīng)用中,根據(jù)應(yīng)用需求選擇上述方法執(zhí)行?!BMS提供機(jī)制支持用戶選擇。
9第9頁(yè),課件共19頁(yè),創(chuàng)作于2023年2月3、用戶定義完整性(integrityofuserdefinition)1)空值控制——對(duì)給定屬性施加不允許空值限制(NOTNULL)2)單個(gè)屬性控制為:(CJisNull)
OR(CJBETWEEN0AND100)3)多屬性控制如:XB=‘男’
ANDYL<=30例1:CREATETABLEDEPT(DEPTNOINTPRIMARYKEY,//主碼
DNAMECHAR(9)NOTNULLUNIQUE,//不允許為空,且不能重復(fù)
LOCATIONCHAR(10)NOTNULL);例2:CREATETABLESC(SNOINT,CNOINT,GRADEINTCHECK(GRADE>=0ANDGRADE<=100));10第10頁(yè),課件共19頁(yè),創(chuàng)作于2023年2月例3:CREATETABLESTUDENT(SNOINTPRIMARYKEY,SNAMECHAR(30)NOTNULL,SSEXCHAR(2),SDEPTINT,CHECK(SSEX=‘女’
ORSNAMENOTLIKE‘Ms.%’));例4:CREATETABLETEACHER(ENOINT,ENAMECHAR(30)NOTNULL,SALINT,DEDUCTINT,CONSTRAINTC1CHECK(SQL+DEDUCT>=1000));11第11頁(yè),課件共19頁(yè),創(chuàng)作于2023年2月例5:ALTERTABLETEACHERDROPCONSTRAINTC1;ALTERTABLETEACHERADDCONSTRAINTC2CHECK(SAL+DEDUCT>=2000ANDSAL>=1000);例6:域的使用
CREATEDOMAINGenderDomainCHAR(2)CHECK(VALUEIN(‘男’,‘女’));或者CREATEDOMAINGenderDomainCHAR(2)CONSTRAINTC3CHECK(VALUEIN(‘男’,‘女’));
……ssexGenderDomain,……例7:ALTERDOMAINGenderDomainDROPCONSTRAINTC3;12第12頁(yè),課件共19頁(yè),創(chuàng)作于2023年2月4、ORACLE完整性1)實(shí)體完整性CREATETABLEstudent(XHNUMBER(8),XMVARCHAR(8),YLNUMBER(3),ConstraintPK-XHPRIMARYKEY(XH));一旦定義了主碼,則DBMS自動(dòng)進(jìn)行完整性檢查:·主碼不能為空;·主碼值須唯一。13第13頁(yè),課件共19頁(yè),創(chuàng)作于2023年2月2)參照完整性①
語(yǔ)句·FOREIGNKEY:指定外碼屬性·REFERENCES:指定外碼對(duì)應(yīng)主碼·ONDELETECASCADE:指定捆綁刪除要求例:CREATETABLESC
(XHNUMBER(8),KHNUMBER(3),CJNUMBER(3),
CONSTRAINTFK_SCXHFOREIGNKEY(XH)REFERENCESstudent(XH)ONDELETECASCADE,CONSTRAINTFK_SCKHFOREIGNKEY(KH)REFERENCEScourse(KH)ONDELETECASCADE);
14第14頁(yè),課件共19頁(yè),創(chuàng)作于2023年2月②
說(shuō)明:·SC中外碼為XH,KH?!?duì)應(yīng)student主碼為XH。·對(duì)應(yīng)course主碼為KH?!ぎ?dāng)修改student中XH時(shí),先檢查SC中有無(wú)元組XH值與之相等,若有,則不能執(zhí)行該修改;當(dāng)修改course中KH,先檢查SC中有無(wú)元組的KH值與之相等,若有,則不能執(zhí)行該修改。·當(dāng)刪除student或course某元組時(shí),則先在SC中找到相應(yīng)元組,進(jìn)行捆綁刪除。3)用戶定義完整性①
列值非空(NOTNULL)②
列值唯一(UNIQUE)CREAETABLECOURSE(KHNUMBER(3),KMVARCHAR(20)CONSTRAINTU1UNIQUE,XSNUMBER(2));15第15頁(yè),課件共19頁(yè),創(chuàng)作于2023年2月其中:CONSTRAINTU1UNIQUE:KM唯一,約束名為U1。③
列值范圍限制例:·
·
·XBVARCHAR(2)CONSTRAINTCNS_XB1CHECK(XBIN(‘男’,‘女’));例:·
·
·GZNUMBER(8.2)CONSTRAINTCNS_GZ1CHECK(GZ≥1000.00));例:CRETATETRIGGERUPDATE-CJBEFOREINSERTORUPDATEONCJFOREACHROWWHEN(:NEW.KH=‘001’)
ASBEGINIF:NEW.CJ>50THEN
:NEW.CJ:=50;ENDIFEND16第16頁(yè),課件共19頁(yè),創(chuàng)作于2023年2月說(shuō)明:·利用觸發(fā)器,當(dāng)對(duì)SC中進(jìn)入插入元組和修改CJ值時(shí),若為‘001’號(hào)課程,則CJ>50時(shí)一律自動(dòng)改為50分?!ざx觸發(fā)器語(yǔ)句為CREATEORREPLACETRIGGER。(先定義后使用)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024蘇州二手房交易協(xié)議樣式版B版
- 2024年研發(fā)合作協(xié)議的研發(fā)內(nèi)容和成果分配
- 浙江農(nóng)林大學(xué)《電算在建筑結(jié)構(gòu)中的應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 中南林業(yè)科技大學(xué)涉外學(xué)院《DSP原理及應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度特種船舶租賃及維護(hù)服務(wù)協(xié)議3篇
- 2024手繪合同協(xié)議書范本
- 三人合資奶茶店經(jīng)營(yíng)合作合同書版B版
- 高爐知識(shí)培訓(xùn)課件下載
- 2024年藥品連鎖銷售合同3篇
- 攝影影樓前臺(tái)接待總結(jié)
- 零缺陷與質(zhì)量成本
- 網(wǎng)吧企業(yè)章程范本
- 安徽省書法家協(xié)會(huì)會(huì)員登記表
- 阿特拉斯基本擰緊技術(shù)ppt課件
- 五格數(shù)理解釋及吉兇對(duì)照
- 婚姻狀況聲明書
- 新課程理念下的班主任工作藝術(shù)
- (完整版)企業(yè)破產(chǎn)流程圖(四張)
- 領(lǐng)導(dǎo)激勵(lì)藝術(shù)教材
- 化肥對(duì)土壤的影響
- 水泥罐抗傾覆驗(yàn)算7頁(yè)
評(píng)論
0/150
提交評(píng)論