版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
關(guān)系完整性的分類實(shí)體完整性參照完整性用戶定義完整性1實(shí)體完整性的定義實(shí)體完整性:保證關(guān)系中的每一個元組都是可唯一識別的?!翱晌ㄒ蛔R別”和“一定有候選碼”是否等價?2實(shí)體完整性NoNameSexAgedept95001李勇男20CS95002劉晨女19IS95003王敏女18MA95004劉晨男19IS95001劉勇男17MA劉勇男17MA不可插入,不滿足實(shí)體完整性要求不可插入,不滿足實(shí)體完整性要求3定義實(shí)體完整性
創(chuàng)建表時用PRIMARYKEY定義,單屬性構(gòu)成的碼有兩種說明方法:定義為列級約束條件。定義為表級約束條件。
由多個屬性構(gòu)成的碼只有一種說明方法:定義為表級約束條件。4(1)在列級定義主碼
例[1]
將Student表中的Sno屬性定義為碼CREATE
TABLE
Student
(noCHAR(9)
PRIMARYKEY,
nameCHAR(20)NOTNULL,sexCHAR(2),ageSMALLINT,deptCHAR(20));定義實(shí)體完整性5(2)在表級定義主碼
CREATE
TABLE
Student(noCHAR(9)NOTNULL,nameCHAR(20)NOTNULL,sexCHAR(2),ageSMALLINT,deptCHAR(20),
PRIMARYKEY(no));
定義實(shí)體完整性6定義實(shí)體完整性例:將Student表中的Sno屬性定義為碼CREATE
TABLE
Student
(noCHAR(9)unique,notnull,
nameCHAR(20)NOTNULL,sexCHAR(2),ageSMALLINT,deptCHAR(20));執(zhí)行:insertintostudentvalues(‘’,‘張’,20,‘CS’)不提示錯誤Notnull,unique和primarykey是否可以互換?若不可以,區(qū)別是什么?7定義實(shí)體完整性[例]:CREATE
TABLE
Student
(noCHAR(9)primarykey,
nameCHAR(20)NOTNULL,sexCHAR(2),ageSMALLINT,deptCHAR(20));執(zhí)行:insertintostudentvalues('','張',20,'CS')則提示錯誤8例[2]將SC表中的Sno,Cno屬性組定義為碼
CREATETABLESC(noCHAR(9)NOTNULL,cnoCHAR(4)NOTNULL,GradeSMALLINT,
PRIMARYKEY(Sno,Cno)));/*只能在表級定義主碼*/定義實(shí)體完整性9實(shí)體完整性的違約處理
1.檢查主碼值是否唯一,如果不唯一則拒絕執(zhí)行。2.檢查主碼的各個屬性是否為空,只要有一個為空就拒絕執(zhí)行。10實(shí)體完整性的違約處理
(1)單屬性作主碼,拒絕執(zhí)行NoNameSexAgedept95001李勇男20CS95002劉晨女19IS95003王敏女18MA95004劉晨男19IS95001張立男17MA張立男17MA不可插入,不滿足實(shí)體完整性要求不可插入,不滿足實(shí)體完整性要求11noCnoGrade950012889500229295001192Sc9500588(2)多屬性作主碼實(shí)體完整性的違約處理
12noCnoGrade950012889500229295001192Sc95001288(2)多屬性作主碼實(shí)體完整性的違約處理
13參照完整性
如果屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼相對應(yīng),則對于R中每個元組在F上的值必須為空值(F的每一個屬性值都為空)或者等于S中某個元組的主碼值。cnocnamecredit1數(shù)據(jù)庫22操作系統(tǒng)33數(shù)據(jù)結(jié)構(gòu)5noCnograde12851385SCC390null5NoNameSexAgedept95001李勇男20CS95002劉晨女19ISstudent14studentNoNameSexAgedept95001李勇男20CS95002劉晨女19IS95003王敏女18MA95004張立男19ISnoCnoGrade950012889500229295001192Sc950052889500438815定義參照完整性
在創(chuàng)建表時用FOREIGNKEY短語定義哪些列為外碼,用REFERENCES短語指明這些外碼參照哪些表的主碼16例:定義SC中的參照完整性CREATETABLESC(noCHAR(9)NOTNULL,CnoCHAR(4)NOTNULL,GradeSMALLINT,
PRIMARYKEY(no,Cno),/*在表級定義實(shí)體完整性*/
FOREIGNKEY(no)REFERENCESStudent(no),
/*在表級定義參照完整性*/
FOREIGNKEY(Cno)REFERENCESCourse(Cno)
/*在表級定義參照完整性,可以定義多次*/定義參照完整性17參照完整性的違約處理1.
拒絕(NOACTION)執(zhí)行(默認(rèn)策略)。2.級聯(lián)(CASCADE)操作。3.設(shè)置為空值(SET-NULL)。18(1)拒絕插入NoNameSexAgedept95001李勇男20CS95002劉晨女19IS95003劉云女18CSnoCnoGrade950012889500229295004192sc
在SC表中插入學(xué)號為95004的學(xué)生選課信息拒絕插入,不存在學(xué)號為95004的學(xué)生student拒絕(NOACTION)執(zhí)行19(2)拒絕修改NoNameSexAgedept95001李勇男20CS95002劉晨女19IS95003劉云女18CSnoCnoGrade950012889500229295003192sc
將95003的學(xué)號改為95004修改失敗student20(3)拒絕刪除NoNameSexAgedept95001李勇男20CS95002劉晨女19IS95003劉云女18CSnoCnoGrade950012889500229295003192sc
刪除student表中學(xué)號為95003的記錄刪除失敗student21級聯(lián)策略NoNameSexAgedept95001李勇男20CS95002劉晨女19IS95003劉云女18CSnoCnoGrade950012889500229295003192sc
刪除student表中的學(xué)號為95003的記錄student插入成功(1)級聯(lián)插入22(2)級聯(lián)修改策略NoNameSexAgedept95001李勇男20CS95002劉晨女19IS95003劉云女18CSnoCnoGrade950012889500229295003192sc
將95003的學(xué)號,改為95004student修改成功95004劉云女18CS9500419223(3)級聯(lián)刪除策略NoNameSexAgedept95001李勇男20CS95002劉晨女19IS95003楊云女18CSnoCnoGrade950012889500229295003192sc
刪除student表中學(xué)號為95003的學(xué)生信息student刪除成功24置空策略(SET-NULL)
刪除被參照關(guān)系中的某一元組或修改某一元組的主碼值時,參照關(guān)系中外碼值等于該主碼值的元組在該外碼上的值將被置空。
修改時置空刪除時置空25(1)修改時置空NoNameSexAgedept95001李勇男20CS95002張晨女19IS95003劉云女18CSnoCnoGrade950012889500229295003192sc
將95003的學(xué)號改為9500495004
劉云女18CSNULL192student空表示不知道或不確定26(2)刪除時置空NoNameSexAgedept95001李勇男20CS95002劉晨女19IS95003楊云女18CSnoCnoGrade950012889500229295003192sc
刪除學(xué)號為95003的學(xué)生信息NULL192student27用戶定義完整性(域完整性)
針對某一具體關(guān)系數(shù)據(jù)庫用戶規(guī)定的約束條件,如果操作不滿足約束條件,則拒絕執(zhí)行。
如:學(xué)生的成績不能為負(fù),出生的年齡不能超過20歲28studentNoNameSexAgedept95001李勇男20CS95002劉晨女19IS95003王敏女18MA95004張立男19IS95005張明男22CS不可插入記錄,該生年齡太大了(1)拒絕插入29(2)拒絕修改NoNameSexAgedept95001李勇男20CS95002劉晨女19IS95003王敏女18MA95004張立男19將95004學(xué)生的年齡修改為25IS2519不可修改30完整性約束命名子句1完整性約束命名子句constraint<完整性約束條件>[primarykey短語]|foreignkey短語|check短語]31完整性約束命名子句1完整性約束命名子句例1:建立學(xué)生登記表Student,要求學(xué)號在90000~99999之間,姓名不能取空值,年齡小于30,性別只能是“男”或“女”。Createtablestudent12(nonumeric(6)constraintc1check(nobetween90000and99999),namechar(20)constraintc2notnull,agenumeric(3)constraintc3check(age<30),sexchar(2)constraintc4check(sexIN('男','女')),ConstraintStudentKeyprimarykey(no))
32完整性約束命名子句1完整性約束命名子句例:建立教師表teacher,要求每個教師的應(yīng)發(fā)工資不低于3000元。應(yīng)發(fā)工資實(shí)際上就是實(shí)發(fā)工資列sal與扣除項(xiàng)deduct之和。(1)createtabledept(deptnonumeric(2)primarykey,deptnamechar(20))(2)createtableteacher(enonumeric(4)primarykey,enamechar(10),jobchar(8),salnumeric(7,2),deductnumeric(7,2),deptnonumeric(2),constraintempfkeyforeignkey(deptno)referencesdept(deptno),constraintc10check(sal+deduct>=3000))33完整性約束命名子句2修改表中的完整性限制用altertable修改表中的完整性限制例:去掉student12表中對性別的限制Altertablestudent12dropconstraintc434完整性約束命名子句2修改表中的完整性限制例:修改表student中的約束條件,要求學(xué)號改為900000_999999之間,年齡由小于30改為小于40.例:(1)altertableStudent12dropconstraintc1(2)altertablestudent12addconstraintc1check(nobetween900000and999999)35小結(jié)(1)關(guān)系完整性的定義,相關(guān)概念(2)關(guān)系完整性的分類(3)各類完整性的定義
primarykey,foreignkey,references,constraint(4)各類完整性的違約處理策略:拒絕執(zhí)行,級聯(lián)策略,置空策略36作業(yè)1、假設(shè)有下面的關(guān)系模式:職工(職工號,姓名,年齡,職務(wù),工資,部門號),其中職工號為主碼;
部門(部門號,名稱,經(jīng)理名,電話),其中部門號為主碼;用SQL語言定義這個兩個關(guān)系模式,要求在模式中完成以下完整性約束條件的定義:(1)定義每個模式的主碼;(2)定義參照完整性;(3)定義職工年齡不得超過60歲。37觸發(fā)器定義:用戶定義在關(guān)系表上的一類由事件驅(qū)動的特殊過程。格式:Createtrigger<觸發(fā)器名>ON<表名>{For|after|insteadof}{delete|insert|update}As動作體38例:createtriggerstum1onstudent
afterinsert
as
print‘歡迎新同學(xué)'
insertintostudentvalues('16','劉','男','28','ma')39觸發(fā)器名:必須符合標(biāo)示符的命名規(guī)則表名:是在其上執(zhí)行觸發(fā)器的表,有時也稱觸發(fā)器表。After:指定觸發(fā)器只有在觸發(fā)SQL語句中指定的所有操作都已成功執(zhí)行后才激發(fā)。如果指定FOr關(guān)鍵字,則AFTER是默認(rèn)設(shè)置。Insteadof:指定執(zhí)行觸發(fā)器而不是執(zhí)行觸發(fā)SQL語句,從而替代觸發(fā)SQL語句的操作。Delete|insert|update:是指定在表或視圖上執(zhí)行哪些數(shù)據(jù)修改語句時將激活觸發(fā)器的關(guān)鍵字。必須至少指定一項(xiàng)。在觸發(fā)器定義中允許使用以任意順序組合的關(guān)鍵字。40As:引入觸發(fā)器要執(zhí)行的操作Ifupdate(列):用于判斷是否在指定的列上進(jìn)行了insert或update操作(不能用于delete操作),可以指定多列。列名前不需要指定表名,因?yàn)樵趏n子句中已經(jīng)指定了表名。41
snosname
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版簡易離婚協(xié)議書樣本6篇
- 2025年度運(yùn)輸合同范本6篇
- 二零二五年度購買森林旅游用地地基及生態(tài)保護(hù)合同3篇
- 家庭健康新知家用殺菌技術(shù)在預(yù)防幽門問題上的作用
- 山東輕工職業(yè)學(xué)院《石油與天然氣地質(zhì)學(xué)含實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 三明醫(yī)學(xué)科技職業(yè)學(xué)院《思想政治教育心理學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 商業(yè)辦公樓中的運(yùn)動空間規(guī)劃與利用策略
- 醫(yī)療領(lǐng)域中的自主學(xué)習(xí)技能提升與職業(yè)發(fā)展
- 二零二五年度藝人經(jīng)紀(jì)合同:藝人經(jīng)紀(jì)公司與藝人關(guān)于經(jīng)紀(jì)服務(wù)的協(xié)議2篇
- 安全生產(chǎn)教育與文化傳承的關(guān)系
- 四川省南充市2022-2023學(xué)年九年級上學(xué)期期末義務(wù)教育教學(xué)質(zhì)量檢測英語試題(含聽力)
- 全國教育科學(xué)規(guī)劃課題申報書:34.《高質(zhì)量數(shù)字教材建設(shè)研究》
- 高處作業(yè)風(fēng)險及隱患排查(安全檢查)清單
- 五年級口算1000題(打印版)
- 團(tuán)意險項(xiàng)目招標(biāo)書
- 城市軌道-城軌交通車輛制動系統(tǒng)故障與檢修
- (郭伯良)兒童青少年同伴關(guān)系評級量表
- 煙道加強(qiáng)肋計(jì)算書(樣本)
- 登高平臺梯安全操作保養(yǎng)規(guī)程
- 土力學(xué)與地基基礎(chǔ)(課件)
- ERP沙盤模擬經(jīng)營實(shí)訓(xùn)報告
評論
0/150
提交評論