




已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
*大學(xué)計(jì)算機(jī)科學(xué)與信息學(xué)院軟件工程系上機(jī)實(shí)驗(yàn)報(bào)告數(shù)據(jù)庫(kù)原理實(shí)驗(yàn)報(bào)告題目實(shí)驗(yàn)8 數(shù)據(jù)的完整性姓名*班級(jí)*日期*實(shí)驗(yàn)環(huán)境:SQL Server 2000一、實(shí)驗(yàn)?zāi)康氖煜ねㄟ^(guò)SQL對(duì)數(shù)據(jù)進(jìn)行完整性控制,通過(guò)實(shí)驗(yàn)加深對(duì)數(shù)據(jù)完整性的理解。n 相關(guān)知識(shí)觸發(fā)器是實(shí)施復(fù)雜完整性的一種機(jī)制。觸發(fā)器不需要專門的語(yǔ)句調(diào)用,當(dāng)對(duì)它所保護(hù)數(shù)據(jù)進(jìn)行修改時(shí)由DBMS自動(dòng)激活,以防止對(duì)數(shù)據(jù)進(jìn)行不正確,未授權(quán)或不一致的修改。創(chuàng)建觸發(fā)器的語(yǔ)法為:CREATE TRIGGER ON WITH ENCRYPTIONFOR DELETE,INSERT,UPDATEWITH APPENDNOT FOR REPLICATIONAS 其中:1) WITH ENCRYPTION 為加密選項(xiàng)。2) DELETE 選項(xiàng)為創(chuàng)建DELETE 觸發(fā)器。DELETE觸發(fā)器的作用是當(dāng)對(duì)表執(zhí)行DELETE操作時(shí)觸發(fā)器被激活,并從指定表中刪除元組,同時(shí)將刪除的元組放入一個(gè)特殊的邏輯表(delete表)中。觸發(fā)器的動(dòng)作可以檢查delete表中的數(shù)據(jù),以確定下一步該如何處理。3) INSERT選項(xiàng)為創(chuàng)建INSERT觸發(fā)器。INSERT觸發(fā)器在對(duì)指定表中執(zhí)行插入數(shù)據(jù)操作時(shí)激活,激活后將插入表中的數(shù)據(jù)拷貝并送入一個(gè)特殊的邏輯表(inserted 表)中,觸發(fā)器會(huì)根據(jù)INSERT表中的值決定如何處理。4) UPDATE選項(xiàng)為創(chuàng)建UPDATE觸發(fā)器。UPDATE觸發(fā)器僅在對(duì)指定表中進(jìn)行更新數(shù)據(jù)操作時(shí)激活。UPDATE觸發(fā)器激活后把將要被更新的原數(shù)據(jù)移入delete表中,再將要被更新后的新數(shù)據(jù)的備份送入inserted表中,UPDATE觸發(fā)器對(duì)delete和inserted表進(jìn)行檢查,并決定如何處理。5) NOT FOR REPLICATION 選項(xiàng)說(shuō)明當(dāng)一個(gè)復(fù)制過(guò)程在修改一個(gè)觸發(fā)器表時(shí),與該表相關(guān)聯(lián)的觸發(fā)器不能被執(zhí)行。一個(gè)觸發(fā)器只適用于一個(gè)表,每個(gè)表最多只能有三個(gè)觸發(fā)器,它們分別是INSERT、UPDATE和DELETE觸發(fā)器。觸發(fā)器僅在實(shí)施數(shù)據(jù)完整性和處理業(yè)務(wù)規(guī)則時(shí)使用。二、實(shí)驗(yàn)內(nèi)容本實(shí)驗(yàn)的內(nèi)容為使用SQL對(duì)數(shù)據(jù)進(jìn)行完整性控制(關(guān)系數(shù)據(jù)庫(kù)的三類完整性、CHECK短語(yǔ)、CONSTRAINT子句、觸發(fā)器)。用實(shí)驗(yàn)證實(shí),當(dāng)操作違反了完整性約束條件時(shí),系統(tǒng)如何處理的。認(rèn)真完成以下題目,按要求填寫實(shí)驗(yàn)報(bào)告,記錄所有實(shí)驗(yàn)用例。(1)打開(kāi)SQL Server 2000的查詢分析器,用DDL語(yǔ)句建立如下三個(gè)表。表student1:字段名類型長(zhǎng)度含義約束SnoChar10學(xué)號(hào)主碼(約束名:STU_PK)SnameChar20姓名非空(約束名:STU_U1)SsexChar2性別男或女 (約束名:STU_C1)SageInt年齡18 到 30(約束名:STU_C2)SdeptChar10所在系表course1:字段名類型長(zhǎng)度含義約束CnoChar10課程號(hào)主碼(約束名:COU_PK)CnameChar20課程名唯一(約束名:COU_C1)CpnoChar2先行課CcreditInt學(xué)分表SC1:字段名類型長(zhǎng)度含義約束SnoChar10學(xué)號(hào)主碼(約束名:SC_PK)外碼(參照student1的Sno,約束名:SC_FK1)CnoChar20課程號(hào)主碼(約束名:SC_PK)外碼(參照course1的Cno,約束名:SC_FK2)GradeChar2成績(jī)create table student1(Sno char(10),Sname char(20)constraint STU_U1 NOT NULL,Ssex char(2)constraint STU_C1 CHECK(Ssex in(男,女),Sage intconstraint STU_C2 check(Sage between 18 and 30),Sdept char(10)constraint STU_PK PRIMARY KEY(Sno);create table course1(Cno char(10),Cname char(20)constraint COU_C1 UNIQUE,Cpno char(2),Ccredit intconstraint COU_PK PRIMARY KEY(Cno);create table SC1(Sno char(10),Cno char(10),Grade CHAR(2),constraint SC_PK PRIMARY KEY(Sno,Cno),constraint SC_FK1 FOREIGN KEY(Sno) REFERENCES student1(Sno),constraint SC_FK2 FOREIGN KEY(Cno) REFERENCES course1(Cno),);(2)插入如下數(shù)據(jù),什么原因?qū)е履承?shù)據(jù)不能正確插入?SnoSnameSsexSageSdept95001黎小明男16CS95002劉小華男45CS95003王小菲女26MA95004王小凌女20IS95004劉小燁男27ISinsertinto student1(Sno,Sname,Ssex,Sage,Sdept)VALUES(95001,黎小明,男,16,CS);insertinto student1(Sno,Sname,Ssex,Sage,Sdept)VALUES(95002,劉小華,男,45,CS);insertinto student1(Sno,Sname,Ssex,Sage,Sdept)VALUES(95003,王小菲,女,26,MA);insertinto student1(Sno,Sname,Ssex,Sage,Sdept)VALUES(95003,王小凌,女,20,IS);insertinto student1(Sno,Sname,Ssex,Sage,Sdept)VALUES(95003,劉小燁,男,27,IS);原因:年齡不在約束條件內(nèi),Sno不能重復(fù)插入。學(xué)號(hào)重復(fù)。CnoCnameCcredit1高等數(shù)學(xué)42大學(xué)英語(yǔ)43計(jì)算機(jī)導(dǎo)論34計(jì)算機(jī)網(wǎng)絡(luò)35計(jì)算機(jī)網(wǎng)絡(luò)3insertinto course1(Cno,Cname,Ccredit)VALUES(1,高等數(shù)學(xué),4);insertinto course1(Cno,Cname,Ccredit)VALUES(2,大學(xué)英語(yǔ),4);insertinto course1(Cno,Cname,Ccredit)VALUES(3,計(jì)算機(jī)導(dǎo)論,3);insertinto course1(Cno,Cname,Ccredit)VALUES(4,計(jì)算機(jī)網(wǎng)絡(luò),3);insertinto course1(Cno,Cname,Ccredit)VALUES(5,計(jì)算機(jī)網(wǎng)絡(luò),3);原因:Cname唯一,不能重復(fù)插入。SnoCnoGrade9500118095001290950031959500417595004295insertinto SC1(Sno,Cno,Grade)VALUES(95001,1,80);insertinto SC1(Sno,Cno,Grade)VALUES(95001,2,90);insertinto SC1(Sno,Cno,Grade)VALUES(95003,1,95);insertinto SC1(Sno,Cno,Grade)VALUES(95004,1,75);insertinto SC1(Sno,Cno,Grade)VALUES(95004,2,95);(3) 給SC1表添加一個(gè)約束,約束名為SC1_C1,該約束限制Grade的取值范圍是0到100。alter table SC1add constraint SC1_C1 check(Grade between 0 and 100);(4) 更改約束STU_C2,使得年齡的范圍是15到50。alter table student1drop constraint STU_C2 ;ALTER TABLE student1add constraint STU_C2 CHECK(Sage between 0 and 100);(5) 對(duì)SC1表設(shè)計(jì)一個(gè)觸發(fā)器,該觸發(fā)器保證每個(gè)學(xué)生所選課程的總學(xué)分不超過(guò)12分。create trigger Insert_SC1 on dbo.SC1for insert,updateas if(12=(select sum(Ccredit)from SC1,Course1,Inserted where SC1.Cno=Course1.Cno and SC1.Sno=(select Sno from inserted)beginraiserror(不能選!,0,0)rollback transactionend return;(6)驗(yàn)證觸發(fā)器。insertinto SC1values(200215121,1,92)insertinto SC1values(200215121,2,92)insertinto SC1values(200215121,3,92)三、實(shí)驗(yàn)步驟1.在查詢分析器中完成(1)到(4)小題。2.在企業(yè)管理器中創(chuàng)建觸發(fā)器:(1)在企業(yè)管理器中,由服務(wù)器開(kāi)始逐步擴(kuò)展到觸發(fā)器所屬表的數(shù)據(jù)庫(kù),打開(kāi)表文件夾,在表窗口中用鼠標(biāo)右擊觸發(fā)器所屬的表(本例為選課表即SC1)。(2)在彈出菜單上選擇“所有任務(wù)”“管理觸發(fā)器”項(xiàng),則彈出如圖7-1所示的觸發(fā)器屬性對(duì)話框。 圖7-1 觸發(fā)器屬性對(duì)話框如果要新建觸發(fā)器,在文本T的文本框中輸入創(chuàng)建觸發(fā)器的SQL語(yǔ)句(見(jiàn)實(shí)驗(yàn)內(nèi)容),單擊“檢查語(yǔ)法”按鈕進(jìn)行語(yǔ)法的檢查,檢查無(wú)誤后,單擊確定按鈕。如圖7-2所示,于是執(zhí)行對(duì)基本表SC1的插入和更新操作的時(shí)候,都會(huì)自動(dòng)顯示表SC1中的內(nèi)容。請(qǐng)?jiān)诓樵兎治銎髦羞M(jìn)行驗(yàn)證該觸發(fā)器。圖7-2 觸發(fā)器語(yǔ)法檢查對(duì)話框(3)如果要修改觸發(fā)器,則在“名稱”彈出項(xiàng)中選擇要修改的觸發(fā)器名(本例為SC_inserted),然后在文本T的文本框中對(duì)已有的內(nèi)容進(jìn)行修改,檢查無(wú)誤后單擊“確定”按鈕。如圖7-3所示,將該觸發(fā)器代碼修改為檢查插入、更新、刪除操作時(shí)觸發(fā)。請(qǐng)?jiān)诓樵兎治銎髦羞M(jìn)行驗(yàn)證該觸發(fā)器。圖7-3 修改觸發(fā)器語(yǔ)法檢查對(duì)話框(4)如果要?jiǎng)h除觸發(fā)器,則在“名稱”彈出項(xiàng)中選擇要?jiǎng)h除的觸發(fā)器名(本例為SC
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全測(cè)試題及答案解析
- 醫(yī)療教育資源整合的案例分析
- 提高辦公效率的數(shù)字化教育資源實(shí)踐案例
- 在線教育與醫(yī)療行業(yè)結(jié)合的未來(lái)趨勢(shì)分析
- 基于大數(shù)據(jù)的作者服務(wù)平臺(tái)建設(shè)方案
- 建筑行業(yè)的數(shù)字孿生應(yīng)用預(yù)見(jiàn)并優(yōu)化建筑設(shè)施
- 探索VR在醫(yī)學(xué)技能模擬訓(xùn)練中的應(yīng)用
- 企業(yè)文化的核心作用驅(qū)動(dòng)數(shù)字化轉(zhuǎn)型的關(guān)鍵
- 山羊復(fù)合麻醉劑對(duì)山羊中樞NO信號(hào)轉(zhuǎn)導(dǎo)通路的影響及機(jī)制探究
- 小學(xué)數(shù)學(xué)教師教學(xué)反思行為優(yōu)化策略探究
- 鉆孔壓水試驗(yàn)記錄表
- 環(huán)保餐具的設(shè)計(jì)
- 結(jié)核菌素(PPD、EC)皮膚試驗(yàn)報(bào)告單
- 電工學(xué)(第六版)中職PPT完整全套教學(xué)課件
- 產(chǎn)業(yè)命題賽道命題解決對(duì)策參考模板
- 砼塔施工方案
- 資本運(yùn)作理論與操作實(shí)務(wù)課件
- 使用林地審批咨詢服務(wù)投標(biāo)方案
- 電動(dòng)車分期付款的合同范本
- 凱迪拉克賽威說(shuō)明書(shū)
- 2023年新疆省新疆生產(chǎn)建設(shè)兵團(tuán)四年級(jí)數(shù)學(xué)第二學(xué)期期末預(yù)測(cè)試題含解析
評(píng)論
0/150
提交評(píng)論