版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上重 慶 大 學(xué)學(xué) 生 實(shí) 驗(yàn) 報(bào) 告實(shí)驗(yàn)課程名稱 數(shù)據(jù)庫原理與設(shè)計(jì) 開課實(shí)驗(yàn)室 DS1501 學(xué) 院 軟件學(xué)院 年級 2013級 專業(yè)班 學(xué) 生 姓 名 學(xué) 號 開 課 時(shí) 間 至 學(xué)年第 1 學(xué)期總 成 績教師簽名軟件學(xué)院 制 數(shù)據(jù)庫原理與設(shè)計(jì) 實(shí)驗(yàn)報(bào)告 開課實(shí)驗(yàn)室: 201年 月日學(xué)院軟件學(xué)院年級、專業(yè)、班姓名成績課程名稱數(shù)據(jù)庫原理與設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目名 稱數(shù)據(jù)完整性控制數(shù)據(jù)安全性控制指導(dǎo)教師一、實(shí)驗(yàn)?zāi)康闹攸c(diǎn)掌握如下知識點(diǎn)的相關(guān)操作:實(shí)驗(yàn)6、數(shù)據(jù)完整性控制實(shí)驗(yàn)9、數(shù)據(jù)庫安全性控制二、實(shí)驗(yàn)環(huán)境PC一臺,操作系統(tǒng)為win8.1SQLServer2008 三、實(shí)驗(yàn)內(nèi)容主要實(shí)驗(yàn)
2、內(nèi)容如下:實(shí)驗(yàn)6 數(shù)據(jù)完整性控制 6.1 實(shí)體完整性6.2 參照完整性6.3 用戶定義的完整性6.4 觸發(fā)器實(shí)驗(yàn)9 數(shù)據(jù)庫安全性控制9.1 創(chuàng)建登錄賬戶9.2 創(chuàng)建數(shù)據(jù)庫用戶和角色9.3 權(quán)限管理9.4 刪除數(shù)據(jù)庫用戶和登錄賬戶四、實(shí)驗(yàn)過程原始記錄(對每個(gè)實(shí)驗(yàn)內(nèi)容給出一兩個(gè)代表性圖片)實(shí)驗(yàn)六、數(shù)據(jù)完整性控制 習(xí)題1.對Library中的表實(shí)現(xiàn)實(shí)體完整性并驗(yàn)證。1 給各個(gè)表設(shè)置主鍵 對Book表填加主鍵,輸入T-SQL語句如下: use Library alter table Book add constraint pk_bno primary key(Bno) 執(zhí)行成功,結(jié)果如下: 對Read
3、er表填加主鍵,輸入T-SQL語句如下: use Library alter table Reader add constraint PK_Reader primary key(Rno) 執(zhí)行成功,結(jié)果如下: 對Borrow表填加主鍵,輸入T-SQL語句如下: use library alter table Borrow add constraint ab_Rno primary key(Rno,Bno)2 給各個(gè)表創(chuàng)建UNIQUE約束 在Book表中對書名創(chuàng)建UNIQUE約束,輸入T-SQL語句如下: use Library alter table Book add constraint B
4、ook_uni unique(Btitle) 執(zhí)行成功,結(jié)果如下: 在Reader表中對讀者名創(chuàng)建UNIQUE約束,輸入T-SQL語句如下: use Library alter table Reader add constraint Reader_uni unique(Rname) 執(zhí)行成功,結(jié)果如下: 習(xí)題2.實(shí)現(xiàn)各個(gè)表之間的參照完整性并驗(yàn)證。 為Borrow表添加外鍵,輸入T-SQL語句如下: use Library alter table Borrow add constraint fk_borrow_book foreign key(bno)references Book (pk_bn
5、o) alter table Borrow add constraint fk_borrow_reader foreign key(rno)references Reader (Rno) 執(zhí)行成功,驗(yàn)證結(jié)果如下: 習(xí)題3.實(shí)現(xiàn)下列約束并驗(yàn)證。1 姓名不能為空值。輸入T-SQL語句如下: use Library alter table Reader with checkadd constraint ck_rname check (Rname)is not null) 執(zhí)行成功,驗(yàn)證結(jié)果如下:試圖向Reader表中插入姓名為空的一行記錄,失敗,結(jié)果如圖:2 性別應(yīng)該為“男”或“女”。 輸入T-SQ
6、L語句如下: use Library alter table Reader with check add constraint ck_Rsex check (Rsex in ('男','女') 執(zhí)行成功,驗(yàn)證結(jié)果如下: 測試,試圖向Reader中插入性別為“中”的記錄,執(zhí)行失敗。如圖: 3 年齡必須在0100之間。 輸入T-SQL語句如下: use Library alter table Reader with checkadd constraint ck_Rage check (Rage>0 and Rage<100) 執(zhí)行成功,驗(yàn)證結(jié)果如下:測試
7、,試圖向Reader中插入年齡為200的記錄,執(zhí)行失敗。如圖:4 價(jià)格必須大于0。 輸入T-SQL語句如下: use Library alter table Book with checkadd constraint ck_Bprice check (Bprice>0 ) 執(zhí)行成功,驗(yàn)證結(jié)果如下: 測試,試圖向Book表中插入價(jià)格為0的記錄,執(zhí)行失敗。如圖:5 借閱日期默認(rèn)為當(dāng)前日期。 輸入T-SQL語句如下: use Library alter table Borrow add constraint ck_BorrowDate default(GetDate()for BorrowDa
8、te執(zhí)行成功,驗(yàn)證結(jié)果如下:測試,試圖向Borrow表中插入BorrowDate為NULL的記錄,BorrowDate默認(rèn)被設(shè)置為當(dāng)前時(shí)間。如圖: use Libraryinsert into Borrow values('R06','B06',' ',' ')習(xí)題4.創(chuàng)建一個(gè)觸發(fā)器,當(dāng)刪除Reader 表中讀者信息時(shí),同時(shí)刪除Borrow表中該讀者的記錄。 輸入T-SQL語句如下: create trigger trigger_ on Reader instead of delete as delete Borrow where
9、 Rno in(select Rno from deleted) 執(zhí)行成功,驗(yàn)證結(jié)果如下: 測試,在讀者表中刪除R05的信息,經(jīng)驗(yàn)證Borrow表中記錄被級聯(lián)刪除: 習(xí)題5.創(chuàng)建一個(gè)表BOOKCount,用來記錄每本書被借閱的次數(shù)。l 創(chuàng)建該表,并向其中加入數(shù)據(jù)。T-SQL語句如下: use Library create table Book_Count ( Bno char(8) not null primary key, BorrowTimes char(10) insert into Book_Count values ('B01','3') insert
10、 into Book_Count values ('B02','2') insert into Book_Count values ('B03','2') insert into Book_Count values ('B04','0') insert into Book_Count values ('B05','1') insert into Book_Count values ('B06','1')l 創(chuàng)建成功,結(jié)果如下: l 創(chuàng)建
11、兩個(gè)觸發(fā)器(BOOK中插入新書時(shí)更新Book_Count & Borrow 中插入更新時(shí)更新Book_Count),T-SQL語句如下: use Library go create trigger tg_insert on Book for insert as declare Bno1 char(8) select Bno1=pk_bno from inserted insert into Book_Count values(Bno1,'0') create trigger tg_count on Borrow for insert as declare Bno cha
12、r(8) select Bno=Bno from inserted update Book_Count set BorrowTimes=BorrowTimes+1where Bno=Bnol 向Borrow表中再插入3條數(shù)據(jù),并查詢Book_Count 表。執(zhí)行成功,結(jié)果如下: use Library insert into Borrow values('R02','B04','','') insert into Borrow values('R02','B05','','&
13、#39;)insert into Borrow values('R02','B06','','')l 向Book表中插入一條新記錄,同時(shí)查看Book_Count中是否有更新且初始借閱次數(shù)置為0,執(zhí)行成功,結(jié)果如下:實(shí)驗(yàn)九、 數(shù)據(jù)庫安全性控制習(xí)題1.創(chuàng)建一個(gè)Windows認(rèn)證的登錄賬戶newreader,只允許該用戶對數(shù)據(jù)庫Library查詢l 添加名為newreader的新賬戶,并對其授予登錄權(quán)限,設(shè)置只能對Library進(jìn)行訪問。 l 驗(yàn)證可用WinTest賬戶登錄成功。 l 創(chuàng)建數(shù)據(jù)庫用戶newreader: l 在對象資源管
14、理器中驗(yàn)證,已成功創(chuàng)建名為nesreader的用戶: l 使用newreader賬戶登錄,可以展開Library數(shù)據(jù)庫,說明創(chuàng)建用戶成功。 l 向用戶newreader授予查詢Library數(shù)據(jù)庫權(quán)限: l 使用賬戶newreader登錄,驗(yàn)證可以查詢Library數(shù)據(jù)庫中內(nèi)容: 習(xí)題2.創(chuàng)建一個(gè)Windows認(rèn)證的登陸賬戶Student,并將其設(shè)置為系統(tǒng)管理員賬戶。 習(xí)題3.創(chuàng)建SQL Sever 認(rèn)證的登錄賬戶SQL Teacher,并將其設(shè)置允許使用Library進(jìn)行查詢,對 表Book的列Bauthor 進(jìn)行插入、修改和刪除操作。l 新建查詢輸入T-SQL語句如下: use Libra
15、ry go sp_addlogin 'SQLTeacher','12345'l 驗(yàn)證可以成功登錄。 l 使用如下T-SQL語句為登陸賬號SQLTeacher創(chuàng)建數(shù)據(jù)庫用戶: use Library gosp_grantdbaccess 'SQLTeacher','SQLTeacher'l 執(zhí)行成功,可以正常展開數(shù)據(jù)庫,驗(yàn)證已成功添加用戶SQLTeacher: l 對用戶SQLTeacher授予查詢數(shù)據(jù)庫Library的權(quán)限:l 新建查詢來對BOOK的列執(zhí)行相應(yīng)的操作。 本應(yīng)該是這樣的: use Library grant inse
16、rt,update,delete on Book(Bauthor) to SQLTeacher 但我認(rèn)為不能單獨(dú)對表中一列信息執(zhí)行插入或刪除操作,只能修改其中內(nèi)容。 而事實(shí)證明也確實(shí)無法執(zhí)行: 若只授予更新權(quán)限,則順利執(zhí)行: l 執(zhí)行成功,測試更新操作。 習(xí)題4.創(chuàng)建SQL Sever認(rèn)證的登陸賬戶SQLAdmin,并將其設(shè)置為允許使用數(shù)據(jù)庫Library進(jìn)行查 詢,對表Reader進(jìn)行插入、修改和刪除操作。l 創(chuàng)建SQL Server登陸賬戶并成功登陸:l 使用如下T-SQL語句為登陸賬號SQLTeacher創(chuàng)建數(shù)據(jù)庫用戶: use Library gosp_grantdbaccess
17、39;SQLAdmin','SQLAdmin'l 執(zhí)行成功,可以正常展開數(shù)據(jù)庫,驗(yàn)證已成功添加用戶SQLTeacher: l 對用戶SQLTeacher授予查詢數(shù)據(jù)庫Library的權(quán)限:l 使用以下T-SQL語句對Reader表授予插入、修改和刪除的操作: use Library go grant insert,update,delete on Readerto SQLAdmin l 執(zhí)行成功,為了驗(yàn)證,輸入以下T-SQL語句視圖插入一行數(shù)據(jù): use Libraryinsert into Reader values('R09','何夕'
18、;,'女','22','研究生')l 插入成功,查詢結(jié)果如下:習(xí)題5.創(chuàng)建一個(gè)新角色Newstudent,使其具有對數(shù)據(jù)庫Library進(jìn)行任何操作的權(quán)限,并將上面創(chuàng) 建的用戶全部添加到此角色中。l 使用圖形界面為newreader創(chuàng)建新角色Newstudent,并將架構(gòu)設(shè)置為db_owner(可執(zhí)行數(shù)據(jù) 庫所有配置和維護(hù)活動(dòng)) l 或使用如下T-SQL語句將SQLAdmin和SQLTeacher加入該角色: use Library go sp_addrolemember 'Newstudent','SQLAdmin' use Library go sp_addrolemember '
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 喉感覺麻痹的健康宣教
- 電力系統(tǒng)分析課件孟祥萍
- 黑素細(xì)胞痣的臨床護(hù)理
- 小兒蕁麻疹的臨床護(hù)理
- 先天性耳廓畸形的健康宣教
- 哺乳期乳頭皸裂的健康宣教
- 《單片機(jī)原理及應(yīng)用 》課件-第4章
- 《第一章》課件-第五章技術(shù)體驗(yàn) - 智能交互
- 皮膚良性腫瘤的臨床護(hù)理
- 隆突性皮膚纖維肉瘤的臨床護(hù)理
- 國開汽車學(xué)院《項(xiàng)目管理》形考作業(yè)1-4答案
- 歌唱語音智慧樹知到期末考試答案章節(jié)答案2024年齊魯師范學(xué)院
- 健康膳食解碼智慧樹知到期末考試答案章節(jié)答案2024年佳木斯大學(xué)
- 《中國心力衰竭診斷和治療指南2024》解讀
- 年產(chǎn)10噸功能益生菌凍干粉的工廠設(shè)計(jì)改
- 檢驗(yàn)科[全套]SOP文件-供參考
- 設(shè)備故障報(bào)修維修記錄單
- 一般行業(yè)建設(shè)項(xiàng)目安全條件和設(shè)施綜合分析報(bào)告
- 四年級體育與健康上冊復(fù)習(xí)題與答案
- 神經(jīng)遞質(zhì)與受體
- 2_電壓降計(jì)算表(10kV及以下線路)
評論
0/150
提交評論