數(shù)據(jù)庫原理及應(yīng)實驗指導(dǎo)書_第1頁
數(shù)據(jù)庫原理及應(yīng)實驗指導(dǎo)書_第2頁
數(shù)據(jù)庫原理及應(yīng)實驗指導(dǎo)書_第3頁
數(shù)據(jù)庫原理及應(yīng)實驗指導(dǎo)書_第4頁
數(shù)據(jù)庫原理及應(yīng)實驗指導(dǎo)書_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

本資料由-大學(xué)生創(chuàng)業(yè)|創(chuàng)業(yè)|創(chuàng)業(yè)網(wǎng)/提供資料PAGE在線代理|網(wǎng)頁代理|代理網(wǎng)頁|

減肥藥排行榜|淘寶最好的減肥藥|什么減肥藥效果最好|減肥瘦身藥|數(shù)據(jù)庫原理與應(yīng)用綜合性實驗指導(dǎo)書數(shù)據(jù)庫理論及應(yīng)用教研室2009.8

目錄實驗1DDL語言的應(yīng)用 1實驗2DML語言的應(yīng)用 5實驗3數(shù)據(jù)庫查詢語言的應(yīng)用(一) 7實驗4數(shù)據(jù)庫查詢語言的應(yīng)用(二) 8實驗5DCL語言的應(yīng)用、備份和恢復(fù) 10實驗6存儲過程與觸發(fā)器的應(yīng)用 11PAGE2實驗1DDL語言的應(yīng)用實驗?zāi)康模罕敬螌嶒?,要求學(xué)生在SQLServer2000中創(chuàng)建學(xué)生信息管理數(shù)據(jù)庫;創(chuàng)建學(xué)生基本信息表、課程基本信息表以及學(xué)生_課程表。要求學(xué)生為學(xué)生信息管理數(shù)據(jù)庫的學(xué)生基本信息表、課程基本信息表以及學(xué)生_課程表根據(jù)已經(jīng)確定的主碼,為這三個表之間建立關(guān)聯(lián)。根據(jù)需求,建立必要的索引、視圖等數(shù)據(jù)庫對象。實驗內(nèi)容:1)創(chuàng)建學(xué)生信息管理數(shù)據(jù)庫,創(chuàng)建student庫,數(shù)據(jù)文件初始為10MB,最大空間為20MB,文件自動增長為10%,日志文件初始大小為2MB,最大空間10MB,文件的增長率為10MB。2)創(chuàng)建表、確定表的主碼和約束條件,表的數(shù)據(jù)字典如下諸表所示。SUDENT表的結(jié)構(gòu)列名說明數(shù)據(jù)類型約束Sno學(xué)號字符串,長度7主碼Sname姓名字符串,長度10非空Ssex性別長度,字符串2取”男”或”女”Sage年齡整數(shù)取值15~45Sdept所在系字符串默認(rèn)值”計算機(jī)系”COURSE表的結(jié)構(gòu)列名說明數(shù)據(jù)類型約束Cno課程號字符串,長度10主碼Cname課程名字符串,長度20非空Ccredit學(xué)分整數(shù)取值>0Semster開課學(xué)期整數(shù)取值>0Period學(xué)時整數(shù)取值>0SC表的結(jié)構(gòu)列名說明數(shù)據(jù)類型約束Sno學(xué)號字符串,長度7主碼,引用Student的外碼Cno課程號字符串,長度10主碼,引用Course的外碼Grade成績整數(shù)取值0~1003)熟悉SQLServerEnterpriserManager工具的使用方法。4)為基本表STUDENT、COURSE、SC建立基于主碼的聚簇索引。5)為基本表STUDENT、COURSE、SC建立非聚簇索引,索引字段自由確定。6)建立符合要求的數(shù)據(jù)庫視圖。7)為基本表建立關(guān)系圖。(本部分實驗內(nèi)容可以補(bǔ)寫入實驗報告)實驗步驟:第一步啟動SQLServer2000QueryAnalyzer,輸入如下代碼:CREATEDATABASESTUDENTON(NAME=STUDENT_DATA,FILENAME='C:\programfiles\MicrosoftSQLServer\Mssql\Data\STUDENT.mdf',SIZE=10,MAXSIZE=20,FILEGROWTH=10%)LOGON(NAME=STUDENT_LOG,FILENAME='C:\programfiles\MicrosoftSQLServer\Mssql\Data\STUDENT.ldf',SIZE=2,MAXSIZE=10,FILEGROWTH=1)執(zhí)行以上代碼之后,完成了創(chuàng)建學(xué)生信息管理數(shù)據(jù)庫。第二步啟動SQLServer2000QueryAnalyzer,輸入如下代碼:USESTUDENTGOCREATETABLEStudent(Snochar(7)PRIMARYKEY,Snamechar(10)NOTNULL,Ssexchar(2)CHECK(Ssex='男'ORSsex='女'),SagetinyintCHECK(Sage>=15ANDSage<=45),Sdeptchar(20)DEFAULT'計算機(jī)系')執(zhí)行以上代碼之后,完成了創(chuàng)建STUDENT表。第三步啟動SQLServer2000QueryAnalyzer,輸入如下代碼:USESTUDENTGOCREATETABLECourse(Cnochar(10)NOTNULL,Cnamechar(20)NOTNULL, CcredittinyintCHECK(Ccredit>0), SemestertinyintCHECK(Semester>0), PeriodintCHECK(Period>0), PRIMARYKEY(Cno))執(zhí)行以上代碼之后,完成了創(chuàng)建COURSE表。第四步啟動SQLServer2000QueryAnalyzer,輸入如下代碼:USESTUDENTGOCREATETABLESC(Snochar(7)NOTNULL,Cnochar(10)NOTNULL,Gradetinyint,CHECK(Grade>=0andGrade<=100),PRIMARYKEY(Sno,Cno),FOREIGNKEY(Sno)REFERENCESStudent(Sno),FOREIGNKEY(Cno)REFERENCESCourse(Cno))執(zhí)行以上代碼之后,完成了創(chuàng)建SC表。在企業(yè)管理器中實現(xiàn)以上操作,實驗過程中注意避免數(shù)據(jù)庫和基本表的命名沖突的問題。本部分試驗內(nèi)容可不寫入實驗報告。第五步為基本表建立基于主碼的聚簇索引。啟動SQLServer2000QueryAnalyzer,輸入如下代碼:USESTUDENTGOCREATECLUSTEREDINDEXSNO_CLUONSTUDENT(SNODESC)CREATECLUSTEREDINDEXCNO_CLUONCOURSE(CNODESC)CREATECLUSTEREDINDEXSNOCNO_CLUONSC(SNOCNO)分別執(zhí)行以上代碼,基本表STUDENT、COURSE、SC中便被創(chuàng)建了聚簇索引數(shù)據(jù)庫對象。第六步為基本表STUDENT、COURSE、SC創(chuàng)建非聚簇索引。啟動SQLServer2000QueryAnalyzer,輸入如下代碼:USESTUDENTGOCREATEINDEXSAGE_INXONSTUDENT(SAGEDESC)CREATEINDEXCNAME_INXONCOURSE(CNODESC)CREATEINDEXGRADE_INXONSC(GRADE)分別執(zhí)行以上代碼,基本表STUDENT、COURSE、SC中便被創(chuàng)建了索引數(shù)據(jù)庫對象。第七步為基本表STUDENT、COURSE、SC創(chuàng)建符合條件的數(shù)據(jù)庫視圖,題目自擬。舉例:為數(shù)學(xué)系學(xué)生建立基本信息視圖。啟動SQLServer2000QueryAnalyzer,輸入如下代碼:USESTUDENTGOCREATEVIEWMATH_VIEWASSELECT*FROMSTUDENTWHERESDEPT=‘?dāng)?shù)學(xué)‘2)為數(shù)學(xué)系中全體女同學(xué)建立基本信息視圖。啟動SQLServer2000QueryAnalyzer,輸入如下代碼:USESTUDENTGOCREATEVIEWMATHNV_VIEWASSELECT*FROMMATH_VIEWWHERESSEX=‘女第八步在企業(yè)管理器中完成該實驗內(nèi)容,注意分析表之間的關(guān)系圖與主碼和外碼概念的聯(lián)系。實驗2DML語言的應(yīng)用實驗?zāi)康模罕敬螌嶒?,要求學(xué)生在學(xué)生信息管理數(shù)據(jù)庫的學(xué)生基本信息表、課程基本信息表以及學(xué)生_課程表中根據(jù)要求進(jìn)行數(shù)據(jù)的插入、刪除和更新。操作時,要考慮到表之間的級聯(lián)關(guān)系。實驗內(nèi)容:向基本表STUDENT、COURSE、SC中插入適量備用數(shù)據(jù)。刪除基本表STUDENT、COURSE、SC中符合要求的數(shù)據(jù)。更新基本表STUDENT、COURSE、SC中符合要求的記錄。多表之間的級聯(lián)數(shù)據(jù)刪除。實驗步驟:第一步向基本表STUDENT中插入數(shù)據(jù)。啟動SQLServer2000QueryAnalyzer,輸入如下代碼:USESTUDENTGOINSERTINTOSTUDENT(SNO,SNAME,SAGE,SSEX,SDEPT)VALUES(‘2004080201’,’王剛’,20,’男’,’計算機(jī)’)執(zhí)行該代碼后,在STUDENT表中增加了一條記錄。其它數(shù)據(jù)的插入請參照上述操作。注意:在為基本表SC插入數(shù)據(jù)時必須遵照參照完整性規(guī)則。第二步刪除基本表STUDENT中滿足條件的數(shù)據(jù)。啟動SQLServer2000QueryAnalyzer,輸入如下代碼:USESTUDENTGODELETEFROMSTUDENTWHERESDEPT=’數(shù)學(xué)’執(zhí)行該代碼后,在STUDENT表中刪除了一條記錄。其它數(shù)據(jù)的刪除請參照上述操作。第三步更新基本表STUDENT中滿足條件的記錄。啟動SQLServer2000QueryAnalyzer,輸入如下代碼:USESTUDENTGOUPDATESTUDENTSETSAGE=SAGE+1執(zhí)行該代碼后,在STUDENT表中的SAGE數(shù)據(jù)進(jìn)行了加1的更新。其它數(shù)據(jù)的更新請參照上述操作。第四步級聯(lián)刪除示例1)刪除辛國年同學(xué)的成績。啟動SQLServer2000QueryAnalyzer,輸入如下代碼:USESTUDENTGODELETEFROMSCWHERES#IN(SELECTS#FROMSWHERESN=‘辛國年’)2)在STUDENT表中,假設(shè)已經(jīng)增加了獎學(xué)金列BONUS(INT),凡總分超過500分學(xué)生的發(fā)獎金100元。啟動SQLServer2000QueryAnalyzer,輸入如下代碼:USESTUDENTGOUPDATESTUDENTSETBONUS=100UPDAWHERES#IN(SELECTS#FROMSCGROUPBYS#HAVINGSUM(GRADE)>=500)實驗3數(shù)據(jù)庫查詢語言的應(yīng)用(一)實驗?zāi)康模罕敬螌嶒?,要求學(xué)生在學(xué)生信息管理數(shù)據(jù)庫的基本表中,適當(dāng)利用集函數(shù)檢索滿足條件的數(shù)據(jù),并根據(jù)要求輸出檢索結(jié)果。(單表數(shù)據(jù)檢索,實驗時要求分別使用SQL語言和T-SQL語言實現(xiàn)自定的題目)實驗內(nèi)容:1)檢索學(xué)生的姓名,年齡和性別2)檢索學(xué)生選修課程的課程號3)檢索學(xué)習(xí)課程號為C2的所有學(xué)生的學(xué)號和成績4)檢索課程號為C2且成績高于85分以上的學(xué)生學(xué)號和成績5)檢索選修C1或C2的學(xué)生學(xué)號6)檢索成績在70分至80分之間的學(xué)生學(xué)號,課程號和成績7)檢索選修C1的學(xué)生學(xué)號和成績,并按成績的降序和學(xué)號的升序排列8)檢索學(xué)號為S1,S3,S4的姓名,年齡(年齡按升序排列)實驗步驟:啟動SQLServer2000QueryAnalyzer,輸入如下代碼:(查詢結(jié)果在此不做描述,操作的方式相似,不贅述)USESTUDENTGOSELECTSN,AGE,SEXFROMS;(SELECT*FROMS;)SELECTDISTINCTC#FROMSCSELECTS#,GRADEFROMSCWHEREC#=‘C2’;S#,GRADEFROMSCWHEREC#=‘C2’ANDGRADE>85;SELECTS#FROMSCWHEREC#=‘C1’ORC#=‘C2;SELECT*FROMSCWHEREGRADEBETWEEN70AND80;SELECTS#,GRADEFROMSCWHEREC#=‘C1’ORDERBYGRADEDESC,S#;SELECTSN,AGEFROMSWHERES#IN(‘S1’,’S3’,’S4’)ORDERBYAGE;執(zhí)行以上代碼,運(yùn)行的結(jié)果分別對應(yīng)實驗內(nèi)容中的8個題目。根據(jù)實驗過程中的實際情況,同學(xué)們可以自行命題實現(xiàn)數(shù)據(jù)的檢索。實驗4數(shù)據(jù)庫查詢語言的應(yīng)用(二)實驗?zāi)康模罕敬螌嶒?,要求學(xué)生在學(xué)生信息管理數(shù)據(jù)庫的多個基本表中,適當(dāng)利用集函數(shù)檢索滿足條件的數(shù)據(jù),并根據(jù)要求輸出檢索結(jié)果。(多表數(shù)據(jù)檢索,可以使用的多表連接關(guān)鍵詞包括:IN、ALL、ANY、EXISTS、INNERJOINON以及關(guān)系運(yùn)算符等等,實驗時要求分別使用SQL語言和T-SQL語言實現(xiàn)自定的題目)實驗內(nèi)容:1)檢索辛國年同學(xué)所學(xué)課程的課程號及成績2)查詢每一門課程的間接先修課的課號和課名。(參照給定的數(shù)據(jù)表)3)檢索所有學(xué)生的姓名、選課名稱和成績。4)檢索和辛國年同學(xué)同歲的學(xué)生姓名。5)檢索選修C2課程號的學(xué)生姓名6)檢索選修課程C2的學(xué)生中成績最高的學(xué)生的學(xué)號。7)檢索沒有選修C2的學(xué)生姓名8)檢索選修C2課程號的學(xué)生姓名(用EXISTS)9)檢索沒有選修C2的學(xué)生姓名(用NOTEXIST)10)檢索出選修課程至少等于三門的學(xué)生學(xué)號和選課門數(shù)11)檢索缺少學(xué)習(xí)成績的學(xué)生學(xué)號和課程號實驗步驟:啟動SQLServer2000QueryAnalyzer,輸入如下代碼:(查詢結(jié)果在此不做描述,操作的方式相似,不贅述)USESTUDENTGOSELECTSN,C#,GRADEFROMS,SCWHERES.S#=SC.S#ANDSN=‘辛國年’;SELECTFIRST.C#,SECOND.CP#FROMCFIRST,CSECONDWHEREFIRST.CP#=SECOND.C#SELECTSN,CN,GRADEFROMS,SC,CWHERES.S#=SC.S#ANDSC.C#=C.C#;SELECTSNFROMSWHEREAGE=(SELECTAGEFROMSWHERESN=‘辛國年’);SELECTSNFROMSWHERES#=ANY(SELECTS#FROMSCWHEREC#=‘C2’);(SELECTSNFROMS,SCWHERES.S#=SC.S#ANDC#=‘C2’);WHEREC#=‘C2’ANDGRADE>=ALL(SELECTGRADEFROMSCWHEREC#=‘C2’);WHERE‘C2’NOTIN(SELECTC#FROMSCWHERES#=S.S#);SELECTSNFROMSWHEREEXISTS(SELECT*FROMSCWHERES#=S.S#ANDC#=‘C2’);SELECTSNFROMSWHERENOTEXISTS(SELECT*FROMSCWHERES#=S.S#ANDC#=‘C2’);SELECTS#,COUNT(*)FROMSCGROUPBYS#HAVINGCOUNT(*)>=3;SELECTS#,C#FROMSCWHEREGRADEISNULL;執(zhí)行以上代碼,運(yùn)行的結(jié)果分別對應(yīng)實驗內(nèi)容中的8個題目。根據(jù)實驗過程中的實際情況,同學(xué)們可以自行命題實現(xiàn)數(shù)據(jù)的檢索。實驗5DCL語言的應(yīng)用、備份和恢復(fù)實驗?zāi)康模罕敬螌嶒灒髮W(xué)生對學(xué)生信息管理數(shù)據(jù)庫、學(xué)生基本信息表、課程基本信息表以及學(xué)生_課程表根據(jù)要求進(jìn)行插入、刪除、更新、檢索等權(quán)限的授予和收回。并根據(jù)所得到的權(quán)限進(jìn)行相應(yīng)的操作;要求學(xué)生對數(shù)據(jù)庫和基本表進(jìn)行數(shù)據(jù)的備份和恢復(fù)。實驗內(nèi)容:1、權(quán)限的授予與收回(1)授予(收回)SCOTT用戶創(chuàng)建基本表的權(quán)限(2)把STUDENT表上的插入和修改Sno列的特權(quán)授予LI和WANG用戶(3)把Course表上的所有權(quán)力授予用戶WANG,而WANG還可以把權(quán)限授予其它用戶(4)從WANG用戶手中收回修改SCOTT表的權(quán)限2、數(shù)據(jù)庫的備份與恢復(fù)本實驗的實驗方法參照相關(guān)SQLServer書籍中數(shù)據(jù)備份和恢復(fù)機(jī)制的內(nèi)容和步驟進(jìn)行,本指導(dǎo)書將省略操作步驟。用EnterpriseManager創(chuàng)建一個備份設(shè)備,自命名。為學(xué)生信息管理數(shù)據(jù)庫設(shè)置一個備份計劃,要求每星期一進(jìn)行備份。在EnterpriseManager中恢復(fù)學(xué)生選課數(shù)據(jù)庫。本部分實驗過程可以不寫入實驗報告,但要求將實驗內(nèi)容和結(jié)果寫在實驗報告中。2、利用查詢分析器啟動SQLServer2000QueryAnalyzer,輸入如下代碼:(查詢結(jié)果在此不做描述,操作的方式相似,不贅述)/*授予(收回)SCOTT用戶創(chuàng)建基本表的權(quán)限*/GRANTCREATETABLETOSCOTT;REVOKECREATETABLEFROMSCOTT;/*把STUDENT表上的插入和修改Sno列的特權(quán)授予LI和WANG用戶*/GRANTINSERT,UPDATE(Sno)ONStudentTOLI,WANG;/*把Course表上的所有權(quán)力授予用戶WANG,而WANG還可以把權(quán)限授予其它用戶*/GRANTALLONCourseTOWANGWITHGRNATOPTION/*從WANG用戶手中收回修改SCOTT表的權(quán)限*/REVOKEUPDATEONStudentFROMWANG分別在查詢分析器中執(zhí)行上述語句,查看執(zhí)行結(jié)果。實驗6存儲過程與觸發(fā)器的應(yīng)用實驗?zāi)康模罕敬螌嶒?,要求學(xué)生在學(xué)生基本信息表中創(chuàng)建插入數(shù)據(jù)觸發(fā)器、在課程基本信息表中創(chuàng)建刪除數(shù)據(jù)和更新數(shù)據(jù)觸發(fā)器。在該數(shù)據(jù)庫中創(chuàng)建檢索滿足條件的數(shù)據(jù)的存儲過程。學(xué)生可以根據(jù)實際情況,自行設(shè)計實驗題目。實驗內(nèi)容:基于PUBS數(shù)據(jù)庫建立AU_INFO存儲過程,該存儲過程利用表間連接的方式返回指定的作者的姓名、該作者所寫的書籍的出版商。基于student數(shù)據(jù)庫創(chuàng)建觸發(fā)器。在Student表中存儲了學(xué)號和姓名信息。在COURSE表中存儲了課程的編號、學(xué)號和成績等信息。在刪除STUDENT表中某些學(xué)生的信息時,應(yīng)該同時刪除COURSE表中相關(guān)的數(shù)據(jù)行

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論