版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、華東交通大學(xué)信息工程學(xué)院數(shù)據(jù)庫系統(tǒng)導(dǎo)論,數(shù)據(jù)庫系統(tǒng)導(dǎo)論第五章數(shù)據(jù)庫完整性,數(shù)據(jù)庫系統(tǒng)導(dǎo)論,數(shù)據(jù)庫完整性,數(shù)據(jù)庫完整性,數(shù)據(jù)正確性和兼容性,數(shù)據(jù)完整性和安全性是兩個不同的概念。數(shù)據(jù)的完整性防止數(shù)據(jù)庫中存在不符合語義的數(shù)據(jù),即防止數(shù)據(jù)庫中存在不正確的數(shù)據(jù)防止對象:不符合語義和不正確數(shù)據(jù)的數(shù)據(jù)的安全性保護數(shù)據(jù)庫免受惡意破壞和非法訪問防止對象:非法用戶和非法操作。數(shù)據(jù)庫系統(tǒng)導(dǎo)論,數(shù)據(jù)庫完整性(續(xù)),為了保持數(shù)據(jù)庫的完整性,數(shù)據(jù)庫管理系統(tǒng)必須:1。提供定義完整性約束的機制;2.提供完整性檢查方法;3.處理違約;數(shù)據(jù)庫系統(tǒng)簡介,第5章,數(shù)據(jù)庫完整性,5.1實體完整性,5.2引用完整性,5.3用戶定義的完整
2、性,5.4完整性約束命名句*5.5域中的完整性約束,5.6觸發(fā)器,5.7摘要,數(shù)據(jù)庫系統(tǒng)簡介,5.1.1實體完整性定義,在關(guān)系模型的實體完整性CREATE TABLE中,有兩種解釋方法來定義由帶有主鍵的單個屬性組成的代碼,它們被定義為列級約束和表級約束。 并且只有一種解釋方法被定義為表級約束,數(shù)據(jù)庫系統(tǒng)簡介,實體完整性定義(續(xù)),示例1將學(xué)生表中的Sno屬性定義為代碼:(1)在列級定義主代碼創(chuàng)建表學(xué)生(snochar (9)主鍵,Sname CHAR(20)不為空,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20);數(shù)據(jù)庫系統(tǒng)簡介,實體完整性定義(續(xù)),(2)在
3、表級定義主代碼CREATE TABLE Student (Sno CHAR(9),Sname CHAR(20) NOT NULL,Ssex CHAR(2),sage slim,Sdept CHAR(20),主鍵(Sno);數(shù)據(jù)庫系統(tǒng)簡介,實體完整性定義(續(xù)),示例2將SC表中的SnO和Cno屬性組定義為代碼創(chuàng)建表SC (SnO char (9)不為空,Cno CHAR(4)不為空,等級小整數(shù),主鍵(Sno,Cno) /*只能在表級別定義主代碼*/);數(shù)據(jù)庫系統(tǒng)簡介,5.1實體完整性,5.1.1實體完整性定義5.1.2實體完整性檢查和默認處理,數(shù)據(jù)庫系統(tǒng)簡介,5.1.2實體完整性檢查和默認處理,
4、RDBMS在插入或更新主代碼列時根據(jù)實體完整性規(guī)則自動檢查。包括:1 .檢查主代碼的值是否唯一,如果不唯一,則拒絕插入或修改;2.檢查主代碼的所有屬性是否為空,如果一個屬性為空,則拒絕插入或修改;5.2.1引用完整性的定義,關(guān)系模型的引用完整性定義使用外鍵短語來定義創(chuàng)建表中的哪些列是外鍵,并使用引用短語來指示這些外鍵引用的是哪個表的主代碼。數(shù)據(jù)庫系統(tǒng)導(dǎo)論,參照完整性定義(續(xù)),例如,一個元組在關(guān)系SC中表示學(xué)生完成了某門課程,并且(Sno,Cno)是主要代碼。Sno和Cno分別引用參考學(xué)生表的主代碼和課程表的主代碼示例3來定義供應(yīng)鏈中的參考完整性。創(chuàng)建表sc (snochar (9)不為空,C
5、no CHAR(4)不為空,Grade SMALLINT,PRIMARY KEY (Sno,Cno),/*在表級定義實體完整性*/外鍵(Sno)引用學(xué)生(SnO),/*在表級定義引用完整性*/外鍵(Cno)引用課程(cno)/*在表級定義引用完整性*/);數(shù)據(jù)庫系統(tǒng)簡介,5.2參照完整性,5.2.1參照完整性定義5.2.2參照完整性檢查和默認處理,數(shù)據(jù)庫系統(tǒng)簡介,參照完整性檢查和默認處理,可能損壞參照完整性和默認處理的情況,數(shù)據(jù)庫系統(tǒng)簡介,默認處理,參照完整性默認處理1。沒有執(zhí)行默認策略2的操作。CASCADE操作3。為參照完整性,除了定義外部代碼外,還應(yīng)該定義外部代碼列是否允許空值。數(shù)據(jù)庫系
6、統(tǒng)簡介,默認處理(續(xù)),示例4默認處理的示例明確說明了引用完整性創(chuàng)建表sc (snochar (9)不為空,Cno CHAR(4)不為空,Grade SMALLINT,PRIMARY KEY(Sno,Cno),外鍵(Sno)在刪除級聯(lián)時引用學(xué)生(Sno/*級聯(lián)刪除sc表中的相應(yīng)元組*/在更新級聯(lián)時, /*在causes中更新sc表中的相應(yīng)元組*/外鍵引用課程(cno)在刪除時無操作/*在刪除課程表中的元組時拒絕刪除導(dǎo)致與SC表不一致*/在UPDATE CASCADE中/在causes中更新課程表中的cno時在causes中更新SC表中的相應(yīng)元組*/);數(shù)據(jù)庫系統(tǒng)介紹,5.3用戶定義的完整性,5
7、.3.1屬性約束的定義,5.3.2屬性約束檢查和默認處理,5.3.3元組約束的定義和5.3.4元組約束檢查和默認處理。數(shù)據(jù)庫系統(tǒng)簡介,5.3.1屬性約束的定義,創(chuàng)建表時定義列值(非空),列值是唯一的(檢查列值是否滿足布爾表達式(檢查)默認約束(默認),數(shù)據(jù)庫系統(tǒng)簡介,屬性約束的定義(續(xù)),1。不允許空值。示例5定義供應(yīng)鏈表時,它顯示不允許Sno、Cno和等級屬性采用空值。創(chuàng)建表sc (snochar (9)不為空,Cno CHAR(4)不為空,Grade SMALLINT不為空,PRIMARY KEY (Sno,Cno),/*如果實體完整性是在表級別定義的,這意味著Sno和Cno不允許空值,則
8、沒有必要在列級別編寫空值的定義*/);數(shù)據(jù)庫系統(tǒng)導(dǎo)論,屬性約束的定義(續(xù)),2。列值的唯一示例6。要創(chuàng)建部門表DEPT,要求部門名稱Dname列的值是唯一的,部門編號Deptno列是主要代碼Create Table dept (deptno數(shù)字(2)。Dname CHAR(9) UNIQUE,/*要求Dname列值是唯一的*/Location CHAR(10),主鍵(dept no);數(shù)據(jù)庫系統(tǒng)導(dǎo)論,屬性約束條件的定義(續(xù)),3。用CHECK短語指定列值應(yīng)滿足的條件。例7:學(xué)生表的第十欄只允許“男性”或“女性”。創(chuàng)建學(xué)生表(snochar (9)主鍵,Sname CHAR(8)不為空,Ssex
9、 CHAR(2) CHECK (Ssex IN),/*性別屬性Ssex只能接受男性或女性*/sage slim,Sdept CHAR(20);數(shù)據(jù)庫系統(tǒng)簡介,例如,要建立一個SC表,將Score的值范圍定義為0100創(chuàng)建表sc (snochar (5),cnochar (5),分數(shù)數(shù)字(4,1)檢查(score=0,score=100),數(shù)據(jù)庫系統(tǒng)簡介,以及4。例如,DEFAULT用完整性定義建立一個學(xué)生表。創(chuàng)建表(snochar (6)主鍵,snchar (8)不為空,sexchar (2)默認男性,年齡內(nèi)部檢查(年齡在15到50之間),deptchar (10),數(shù)據(jù)庫系統(tǒng)簡介,5.3.2
10、約束檢查和屬性的默認處理,當(dāng)插入元組或修改屬性值時,RDBMS檢查屬性約束是否滿足,如果不滿足,操作被拒絕,數(shù)據(jù)庫系統(tǒng)簡介,5.4完整性約束命名子句, 約束約束主鍵短語|外鍵短語|檢查短語,數(shù)據(jù)庫系統(tǒng)簡介,完整性約束命名條款(續(xù)),示例10:建立學(xué)生登記表,要求學(xué)生編號在900009999之間,姓名不能為空,年齡小于30歲,性別只能為“男”或“女”。 創(chuàng)建表學(xué)生(Sno數(shù)字(6)約束C1檢查(Sno介于90000和99999之間),Sname CHAR(20)約束C2不為空,Sage數(shù)字(3)約束C3檢查(sage 30),ssexchar (2)約束C4檢查(ssex in),約束學(xué)生鍵主鍵(SnO);在學(xué)生表中建立了五個約束,包括主代碼約束(名為StudentKey)和四個列級約束:C1、C2、C3和C4。數(shù)據(jù)庫系統(tǒng)導(dǎo)論,完整性約束的命名條款(續(xù)),2。使用ALTER TABLE語句修改表中的完整性約束,數(shù)據(jù)庫系統(tǒng)簡介,完整性約束的命名子句(續(xù)),示例13修改表學(xué)生中的約束,要求學(xué)生編號在900099999之間更改,年齡從小于30更改為小于40。您可以先刪除原始約束,然后添加一個新的約束更改表學(xué)生刪除構(gòu)造C1;更改表格學(xué)生添加約束C1檢查(斯諾在9
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 防水工程設(shè)計變更協(xié)議
- 學(xué)生犯錯字保證書信譽
- 物資購買合同范本示例
- 教堂配件供需合同
- 網(wǎng)絡(luò)直播主播簽約規(guī)范
- 完整招商服務(wù)合同案例
- 物資選購協(xié)議樣式
- 演出合作放心合同
- 高效家居采購合同的簽訂要點
- 供水合同協(xié)議書簽訂流程詳解
- 智能充電站轉(zhuǎn)讓協(xié)議書范本
- 蘇教版六年級數(shù)學(xué)上冊全冊知識點歸納梳理
- 2024年新蘇教版科學(xué)六年級上冊全冊知識點(超全)
- 低壓不停電換表接插件技術(shù)規(guī)范
- DLT 5210.5-2018 電力建設(shè)施工質(zhì)量驗收規(guī)程 第5部分:焊接
- 骨科護理??谱o士護理知識筆試題及答案
- 勞動教育概論智慧樹知到期末考試答案章節(jié)答案2024年哈爾濱工業(yè)大學(xué)
- 計算機使用管理制度
- 中考語文押題作文范例7篇(含題目)
- 勞務(wù)分包方考核評價表格附表
- DZ∕T 0214-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 銅、鉛、鋅、銀、鎳、鉬(正式版)
評論
0/150
提交評論