廣工數(shù)據(jù)庫原理試驗報告_第1頁
廣工數(shù)據(jù)庫原理試驗報告_第2頁
廣工數(shù)據(jù)庫原理試驗報告_第3頁
廣工數(shù)據(jù)庫原理試驗報告_第4頁
廣工數(shù)據(jù)庫原理試驗報告_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本文格式為Word版,下載可任意編輯——廣工數(shù)據(jù)庫原理試驗報告

數(shù)據(jù)庫原理試驗報告

學(xué)院__計算機______________

專業(yè)班級學(xué)號姓名指導(dǎo)教師胡欣如

(2023年12月)

計算機學(xué)院專業(yè)學(xué)號:

姓名:協(xié):________教師評定:

試驗__一__題目數(shù)據(jù)庫及基本表的建立試驗__二__題目查詢數(shù)據(jù)庫試驗__三__題目創(chuàng)立和使用視圖、索引、存儲過程試驗__四__題目小型數(shù)據(jù)庫規(guī)劃設(shè)計

試驗平臺:MicrosoftSQLServer2023

試驗一數(shù)據(jù)庫及基本表的建立

一、試驗?zāi)康?/p>

1、把握SQLSERVER的查詢分析器和企業(yè)管理器的使用;2、把握創(chuàng)立數(shù)據(jù)庫和表的操作;二、試驗內(nèi)容和要求

1、分別使用SQL語句、企業(yè)管理器(EnterpriseManager)創(chuàng)立數(shù)據(jù)庫;2、使用SQL語句、企業(yè)管理器(EnterpriseManager)創(chuàng)立數(shù)據(jù)庫表;三、試驗主要儀器設(shè)備和材料

1.計算機及操作系統(tǒng):PC機,Windows2000/xp;2.?dāng)?shù)據(jù)庫管理系統(tǒng):SQLsever2000/2023;四、試驗方法、步驟及結(jié)果測試

創(chuàng)立一個教學(xué)管理數(shù)據(jù)庫SC,其描述的信息有:學(xué)生信息、課程信息、教師信息、學(xué)生選課成績、授課信息、班級信息、系部信息、專業(yè)信息。

創(chuàng)立:student表(學(xué)生信息表)、course表(課程信息表)、teacher表(教師信息表)、student_course表(學(xué)生選課成績表)、teacher_course表(教師上課課表)等。題目1、創(chuàng)立數(shù)據(jù)庫:1、創(chuàng)立數(shù)據(jù)庫:

·確定數(shù)據(jù)庫名稱;

數(shù)據(jù)庫用于學(xué)生管理,命名為SC·確定數(shù)據(jù)庫的位置;

要求:數(shù)據(jù)文件和日志文件分別存儲在E盤自己的目錄下?!ご_定數(shù)據(jù)庫的大??;

根據(jù)實際的數(shù)據(jù)量確定數(shù)據(jù)文件的初始大小為30MB,日志文件的初始大小為3MB。·確定數(shù)據(jù)庫的增長;

根據(jù)實際狀況,確定數(shù)據(jù)文件按20%增長,日志文件按1MB增長。實現(xiàn)代碼及截圖:

查詢分析器執(zhí)行狀況:SQL語句及執(zhí)行結(jié)果顯示CREATEDATABASESCON(NAME=SC_DAT,FILENAME='E:\\5944\\SC.mdf',SIZE=30MB,FILEGROWTH=20%)LOGON(NAME=SC_LOG,FILENAME='E:\\5944\\SC.ldf',SIZE=3MB,FILEGROWTH=1MB)試驗結(jié)果截圖顯示

題目2、創(chuàng)立基本表

創(chuàng)立各表的實現(xiàn)代碼及截圖:

查詢分析器執(zhí)行狀況:SQL語句及執(zhí)行結(jié)果顯示1、DEPARTMENT表USESCGOCREATETABLEDEPARTMENT(dnochar(6),dept_namechar(20)notnull,headerchar(8),PRIMARYKEY(dno))2、TEACHER表USESCGOCREATETABLETEACHER(t_nochar(8),t_namechar(8)notnull,t_sexchar(2),t_birthdaysmalldatetime,dnochar(6),teach_titlechar(10),PRIMARYKEY(t_no),FOREIGNKEY(dno)REFERENCESDEPARTMENT(dno))3、SPECIALITY表USESCGOCREATETABLESPECIALITY(spnochar(8),dnochar(6)notnull,spnamechar(20)notnull,PRIMARYKEY(spno),FOREIGNKEY(dno)REFERENCESDEPARTMENT(dno))試驗結(jié)果截圖顯示1、DEPARTMENT表2、TEACHER表3、SPECIALITY表4、STUDENT表USESCGOCREATETABLESTUDENT(s_nochar(8),snamechar(8)notnull,sexchar(2),sbirthdaySmalldatetime,dnochar(6),spnochar(8),class_nochar(4),PRIMARYKEY(s_no),FOREIGNKEY(dno)REFERENCESDEPARTMENT(dno),FOREIGNKEY(spno)REFERENCESSPECIALITY(spno))5、COURSE表USESCGOCREATETABLECOURSE(cnochar(10),cnamechar(20)notnull,spnochar(8),ctnotinyint,lecturetinyint,experimenttinyint,semestertinyint,credittinyint,PRIMARYKEY(cno),FOREIGNKEY(spno)REFERENCESSPECIALITY(spno))6、STUDENT_COURSE表USESCGOCREATETABLESTUDENT_COURSE(s_nochar(8),4、STUDENT表5、COURSE表6、STUDENT_COURSE表tcidsmallint,scoretinyint,PRIMARYKEY(s_no,tcid),FOREIGNKEY(s_no)REFERENCESSTUDENT(s_no))7、CLASS表USESCGOCREATETABLECLASS(spnochar(8),class_nochar(4),headerchar(8),PRIMARYKEY(spno,class_no),FOREIGNKEY(spno)REFERENCESSPECIALITY(spno))8、TEACHER_COURSE表USESCGOCREATETABLETEACHER_COURSE(tcidsmallint,t_nochar(8),spnochar(8),class_nochar(4),cnochar(10)notnull,semesterchar(6),schoolyearchar(10),PRIMARYKEY(tcid),FOREIGNKEY(t_no)REFERENCESTEACHER(t_no),FOREIGNKEY(spno)REFERENCESSPECIALITY(spno),FOREIGNKEY(cno)REFERENCESCOURSE(cno))7、CLASS表8、TEACHER_COURSE表題目3、查看各數(shù)據(jù)表之間的關(guān)系,生成數(shù)據(jù)庫關(guān)系圖。

生成數(shù)據(jù)庫關(guān)系圖截圖顯示

題目4、利用查詢分析器修改上述各表。

(1)、用INSERT語句向各個表中插入數(shù)據(jù)錄入5條記錄。錄入時注意體會外鍵約束。實現(xiàn)代碼及截圖:查詢分析器執(zhí)行狀況:SQL語句及執(zhí)行結(jié)果顯示1、向DEPARTMENT表添加5條記錄USESCGOINSERTINTODEPARTMENTVALUES('510000','土木學(xué)院','薛寶釵')INSERTINTODEPARTMENTVALUES('510001','自動化學(xué)院','賈寶玉')INSERTINTODEPARTMENTVALUES('510002','輕化學(xué)院','王熙鳳')INSERTINTODEPARTMENTVALUES('510003','計算機學(xué)院','林黛玉')INSERTINTODEPARTMENTVALUES('510004','機電學(xué)院','花襲人')實現(xiàn)代碼及截圖:試驗結(jié)果截圖顯示(插入數(shù)據(jù)的表格)1、向DEPARTMENT表添加5條記錄結(jié)果:5行受影響查詢分析器執(zhí)行狀況:SQL語句及執(zhí)行結(jié)果顯示2、TEACHER表INSERTINTOTEACHERVALUES('0001','賈元春','女','1978-02-25','510000','教授')INSERTINTOTEACHERVALUES('0002','賈迎春','女','1982-05-15','510001','海歸講師')INSERTINTOTEACHERVALUES('0003','賈嘆春','女','1987-04-07','510002','講師')INSERTINTOTEACHERVALUES('0004','賈璉','男','1985-07-08','510003','副教授')INSERTINTOTEACHERVALUES('0005','賈政','男','1984-11-23','510004','院士')3、SPECIALITY表USESCGOINSERTINTOSPECIALITYVALUES('080605','510000','土木工程')INSERTINTOSPECIALITYVALUES('080606','510001','自動化')INSERTINTOSPECIALITYVALUES('080607','510002','制藥工程')INSERTINTOSPECIALITYVALUES('080608','510003','計算機科學(xué)與技術(shù)')INSERTINTOSPECIALITYVALUES('080609','510004','機械電子工程')4、STUDENT表試驗結(jié)果截圖顯示(插入數(shù)據(jù)的表格)2、TEACHER表結(jié)果:5行受影響3、SPECIALITY表結(jié)果:5行受影響4、STUDENT表USESCGO結(jié)果:5行受影響INSERTINTOSTUDENTVALUES

試驗二查詢數(shù)據(jù)庫

一、試驗?zāi)康?/p>

熟悉SQL語句的基本使用方法,學(xué)習(xí)如何編寫SQL語句來實現(xiàn)查詢

二、試驗內(nèi)容和要求

使用SQL查詢分析器查詢數(shù)據(jù),練習(xí)查詢語句的使用,把握SELECT語句的完整結(jié)構(gòu),包括簡單查詢、嵌套查詢、連接查詢等基本實現(xiàn)方法。

三、試驗主要儀器設(shè)備和材料

1.計算機及操作系統(tǒng):PC機,Windows2000/xp;2.?dāng)?shù)據(jù)庫管理系統(tǒng):SQLsever2000/2023;

四、試驗方法、步驟及結(jié)果測試試驗題目:

1、對試驗一建立的數(shù)據(jù)庫表進行查詢

簡單查詢:

題目(1)、查詢?nèi)繉W(xué)生的學(xué)號、姓名、性別和出身年月日。實現(xiàn)代碼及查詢結(jié)果截圖:格式如下查詢分析器執(zhí)行狀況:SQL語句及執(zhí)行結(jié)果顯示SELECTs_no,sname,sex,sbirthdayFROMstudent結(jié)果:4行受影響查詢結(jié)果截圖顯示

題目(2)、查詢?nèi)w學(xué)生的學(xué)號、姓名和年齡實現(xiàn)代碼及查詢結(jié)果截圖:SQL語句:SELECTs_no,sname,year(getdate())-Year(sbirthday)FROMstudent結(jié)果:4行受影響查詢結(jié)果截圖顯示:

題目(3)、查詢院系編號為‘510000’(計算機學(xué)院)的全部學(xué)生的學(xué)號、姓名、性別和

出身年月日。

實現(xiàn)代碼及查詢結(jié)果截圖:查詢分析器執(zhí)行狀況:SQL語句及執(zhí)行結(jié)果顯示SELECTs_no,sname,sex,sbirthdayFROMstudentWHEREdno='510000'結(jié)果:1行受影響查詢結(jié)果截圖顯示題目(4)、查詢“計算機科學(xué)與技術(shù)〞專業(yè)(專業(yè)代碼為‘080608’)并且班級代碼為‘1204’的學(xué)生的學(xué)號、姓名和出生日期。實現(xiàn)代碼及查詢結(jié)果截圖:查詢分析器執(zhí)行狀況:查詢結(jié)果截圖顯示SQL語句及執(zhí)行結(jié)果顯示SELECTs_no,sname,sex,sbirthdayFROMstudentWHEREspno='080608'ANDclass_no='1204'結(jié)果:1行受影響

題目(5)、查詢在‘1988/01/10’以后出生的計算機學(xué)院(院系編號為‘510000’)學(xué)生的學(xué)號、姓名、性別和出身年月日。實現(xiàn)代碼及查詢結(jié)果截圖:查詢分析器執(zhí)行狀況:SQL語句及執(zhí)行結(jié)果顯示SELECTs_no,sname,sex,sbirthdayFROMstudentWHEREstudent.dno='510000'ANDstudent.sbirthday>='1988-01-10'查詢結(jié)果截圖顯示結(jié)果:1行受影響題目(6)、查詢?nèi)繉W(xué)生的學(xué)號、姓名、性別和出身日期結(jié)果依照出生日期的升序排列。實現(xiàn)代碼及查詢結(jié)果截圖:

查詢分析器執(zhí)行狀況:SQL語句及執(zhí)行結(jié)果顯示SELECTs_no,sname,sex,sbirthdayFROMstudentORDERBYsbirthdayASC結(jié)果:4行受影響查詢結(jié)果截圖顯示

連接查詢:

題目(1)、查詢?nèi)繉W(xué)生的學(xué)號、姓名、性別、所在院系名稱和專業(yè)名稱實現(xiàn)代碼及查詢結(jié)果截圖:查詢分析器執(zhí)行狀況:SQL語句及執(zhí)行結(jié)果顯示Selectstudent.s_no,student.sname,student.sex,department.dept_name,speciality.spnamefromstudent,department,specialitywherestudent.dno=department.dnoandstudent.spno=speciality.spno結(jié)果:4行受影響查詢結(jié)果截圖顯示

題目(2)、查詢選修了課程13(上課編號)的學(xué)生的學(xué)號、姓名、專業(yè)名稱和這門課的成績

實現(xiàn)代碼及查詢結(jié)果截圖:查詢分析器執(zhí)行狀況:SQL語句及執(zhí)行結(jié)果顯示Selectstudent.s_no,sname,class_no,tcid,scorefromstudent,student_coursewherestudent.s_no=student_course.s_noANDstudent_course.tcid='13'結(jié)果:1行受影響查詢結(jié)果截圖顯示題目(3)、查詢學(xué)生不及格的狀況列出不及格學(xué)生的學(xué)號、姓名和不及格的課程名稱。實現(xiàn)代碼及查詢結(jié)果截圖:查詢分析器執(zhí)行狀況:由于沒有不及格學(xué)生,所以查詢分數(shù)小于65的學(xué)生SQL語句及執(zhí)行結(jié)果顯示selectstudent.s_no,sname,cname,scorefromstudentjoinstudent_courseon(student.s_no=student_course.s_no)joincourseon(student.spno=course.spno)selectstudent.s_no,sname,cnamefromstudentjoinstudent_courseon(student.s_no=student_course.s_no)joincourseon(student.spno=course.spno)wherescore80)結(jié)果:2行受影響

2、選用Northwind數(shù)據(jù)庫進行查詢題目(1)、對NothWind.Products表進行簡單查詢;在查詢分析器在窗口下用SELECT語句完成單表查詢:

查詢所有Products的詳細記錄;

實現(xiàn)代碼及查詢結(jié)果截圖:查詢分析器執(zhí)行狀況:SQL語句及執(zhí)行結(jié)果顯示USENorthwindGOSELECT*FROMProducts結(jié)果:77行受影響

查詢結(jié)果截圖顯示

查詢單價(UnitPrice)小于20的Products;

實現(xiàn)代碼及查詢結(jié)果截圖:查詢分析器執(zhí)行狀況:SQL語句及執(zhí)行結(jié)果顯示USENorthwindGOSELECT*FROMProductsWHEREUnitPrice20結(jié)果:8行受影響

查詢Products中單價(UnitPrice)最高的Products的資料;

實現(xiàn)代碼及查詢結(jié)果截圖:

查詢分析器執(zhí)行狀況:SQL語句及執(zhí)行結(jié)果顯示USENorthwindGOselect*fromProductswhereUnitPrice=(selectmax(UnitPrice)fromProducts)結(jié)果:1行受影響查詢結(jié)果截圖顯示

五、試驗中出現(xiàn)的問題及解決方案

答:在本次試驗中,由于只知道出生日期,但其格式是smalldatetime,不知道如何來計算年齡(通過問同學(xué)解決了)。一般的查詢、連接查詢和嵌套查詢由于知道其的代碼書寫格式,沒遇到多少問題就解決了。

還有,由于試驗一已經(jīng)編了一個數(shù)據(jù)庫,本次試驗的內(nèi)容都是查看試驗一插入的數(shù)據(jù),一些要求被我做了適當(dāng)?shù)男薷?,不過,只是改了相應(yīng)的一些字段的代碼,不影響試驗。

六、思考題

進行連接查詢時應(yīng)注意哪些問題?

答:連接多個表時,可以認為它們被連成了一個表。盡管沒有創(chuàng)立一個物理表,SQL引擎創(chuàng)立了好多虛擬表,當(dāng)連接表時,可以在每個表中選擇任何一列。

關(guān)于連接表的數(shù)量問題。連接表的數(shù)量取決于具體的數(shù)據(jù)庫管理系統(tǒng),有的規(guī)定為最多25個,有的則沒有限制。使用時,需要查看具體的數(shù)據(jù)庫運行環(huán)境。但要注意,連接的表越多,響應(yīng)的時間就越長。

進行多表連接時,特別注意不要忘掉查詢條件,特別是連接多個表且記錄數(shù)目較多時。由于假使不指明連接條件,系統(tǒng)將對多表進行笛卡爾連接,會產(chǎn)生巨大的記錄。

根據(jù)不同的應(yīng)用需求,要注意連接方式的選擇。

試驗三、創(chuàng)立和使用視圖、索引、存儲過程

一、試驗?zāi)康?/p>

1、把握視圖、索引、存儲過程的定義、索引、存儲過程的工作原理;

2、把握創(chuàng)立視圖、索引、存儲過程的SQL語句的用法;并能夠熟練利用視圖向表中插入、刪除和修改數(shù)據(jù)。

3、把握使用視圖來查詢數(shù)據(jù)。二、試驗主要儀器設(shè)備和材料

1.計算機及操作系統(tǒng):PC機,Windows;2.?dāng)?shù)據(jù)庫管理系統(tǒng):SQLsever2000/2023;三、試驗方法、步驟及結(jié)果測試(一)、視圖

試驗題目:(自己調(diào)整格式并書寫試驗題目,題目見后)

1:建立“計算機學(xué)院〞的學(xué)生基本狀況視圖ies_student_view,該視圖包括計算機學(xué)院所有學(xué)生的學(xué)號、姓名、性別、出生年月、專業(yè)名稱。創(chuàng)立視圖的SQL語句及執(zhí)行結(jié)果顯示例如:CreateviewUSESCGOCREATEVIEWies_student_viewASSELECTs_no,sname,sex,sbirthday,spnameFROMstudent,specialityWHEREstudent.dno='510003'ANDstudent.spno=speciality.spno查詢視圖的SQL語句及執(zhí)行結(jié)果截圖例如:SELECT*FROMiec_student_view題目2:執(zhí)行ies_student_view視圖并觀測結(jié)果。

創(chuàng)立視圖的SQL語句及執(zhí)行結(jié)果顯示USESCGOSELECT*FROMies_student_view結(jié)果:1行受影響查詢視圖的SQL語句及執(zhí)行結(jié)果截圖SELECT*FROMies_student_view;3、建立課程11(上課編號)的學(xué)生名冊的視圖,該名冊包括學(xué)生的學(xué)號、姓名、專業(yè)名稱和這門課的成績;并查詢結(jié)果。修改視圖的SQL語句及執(zhí)行結(jié)果顯示例如:Alterviewiec-student_viewUSESCGOCREATEVIEWtcid1_student_viewASSELECTstudent.s_no,sname,spname,scoreFROMstudent,student_course,specialityWHEREstudent_course.tcid='11'ANDstudent.s_no=student_course.s_noANDstudent.spno=speciality.spno查詢視圖的SQL語句及執(zhí)行結(jié)果截圖SELECT*FROMtcid1_student_view;4、建立成績小于65的視圖,列出成績小于65學(xué)生的學(xué)號、姓名和不及格課程代碼;修改視圖的SQL語句及執(zhí)行結(jié)查詢視圖的SQL語句及執(zhí)行結(jié)果截圖果顯示SELECT*FROMfail_student_view;例如:Alterviewiec-teacher_viewUSESCGOCREATEVIEWfail_student_viewASSELECTstudent.s_no,sname,cnoFROMstudent,student_course,courseWHEREstudent.s_no=student_course.s_noANDstudent_course.score8、執(zhí)行ies_student_view視圖并觀測結(jié)果。

修改視圖的SQL語句及執(zhí)查詢視圖的SQL語句及執(zhí)行結(jié)果截圖行結(jié)果顯示SELECT*FROMies_student_view例如:Alterviewiec-tercher_viewSELECT*FROMies_student_view結(jié)果:4行受影響

9、刪除視圖ies_student_view。并查詢結(jié)果。刪除視圖的SQL語句及執(zhí)行結(jié)果顯示USESCGODROPVIEWies_student_view查詢視圖SQL語句及執(zhí)行結(jié)果截圖SELECT*FROMies_student_view(二)、索引

1.在student_course表(學(xué)生選課表)的學(xué)生學(xué)號(sno)列上創(chuàng)立索引sc_sno_index創(chuàng)立索引的SQL語句及執(zhí)行結(jié)果顯SQL語句及運行結(jié)果截圖示例如:運行結(jié)果可通過執(zhí)行系統(tǒng)的存儲過程查看:例如:Createindex?.USESCGOCREATEUNIQUEINDEXsc_sno_indexONstudent_course(s_no);

2.在學(xué)生表的出生年月列上創(chuàng)立索引stu_birthday_index

創(chuàng)立索引的SQL語句及執(zhí)行結(jié)果顯示例如:Createindex?.USESCGOCREATEUNIQUEINDEXstu_birthday_indexONstudent(sbirthday);3.通過SQL語句查看運行結(jié)果創(chuàng)立索引的SQL語句及執(zhí)行結(jié)果顯示Sp_helpindexstudent_courseSp_helpindexstudentSQL語句及運行結(jié)果截圖例如:運行結(jié)果可通過執(zhí)行系統(tǒng)的存儲過程查看:SQL語句及運行結(jié)果截圖例如:運行結(jié)果可通過執(zhí)行系統(tǒng)的存儲過程查看:Sp_helpindexstudent_course(三)、存儲過程

1:創(chuàng)立一個名稱為“StuInfo〞的存儲過程,要求完成以下功能:在student表中查詢xxx班學(xué)生的學(xué)號、姓名、性別、出生日期四個字段的內(nèi)容。

查詢分析器執(zhí)行狀況:SQL語句例如:Createproclist-?..USESCGOCREATEProcedureStuInfo@class_nochar(4)ASSELECTs_no,sname,sex,sbirthdayFROMstudentWHEREstudent.class_no=@class_no執(zhí)行結(jié)果截圖顯示

2:創(chuàng)立一個存儲過程StuScoreInfo,完成的功能是在表student、表course和表student_course

中查詢以下字段:班級、學(xué)號、姓名、性別、課程名稱、學(xué)生成績。

查詢分析器執(zhí)行狀況:SQL語句USESCGOCREATEProcedureStuScoreInfoASSELECTclass_no,student.s_no,sname,sex,cname,scoreFROMstudent,course,student_courseWHEREstudent.s_no=student_course.s_noANDstudent.spno=course.spno執(zhí)行結(jié)果截圖顯示3、創(chuàng)立存儲過程list_famous_teachers,該存儲過程列出SC庫中所有年齡在35歲以下的教師的教師號、姓名、所在學(xué)院和年齡。查詢分析器執(zhí)行狀況:SQL語句USESCGOCREATEProcedurelist_famous_teachersASSELECTt_no,t_name,dno,age=year(getdate())-Year(t_birthday)FROMteacherWHEREyear(getdate())-Year(teacher.t_birthday)五、思考題

1.視圖可以加快數(shù)據(jù)的查詢速度,這句話對嗎?為什么?

答:不對,由于通過視圖查詢數(shù)據(jù)時,比直接針對基本表查詢數(shù)據(jù)多了一個轉(zhuǎn)換過程,即從外模式到模式的轉(zhuǎn)換。

2.視圖可以簡化查詢,這句話對嗎?為什么?

答:對。

3.視圖是一個虛表,數(shù)據(jù)庫中只存放視圖的定義,而不存放視圖包含的數(shù)據(jù),這些數(shù)據(jù)仍

存放在原來基本表中。這句話對嗎?答:對。

4.基本表中的數(shù)據(jù)假使發(fā)生變化,視圖中查詢出數(shù)據(jù)也隨之變化。這句話對嗎?

答:對。

5.視圖的作用。

答:1、視圖能夠簡化用戶的操作

2、視圖使用戶能以多種角度對待同一數(shù)據(jù)

3、視圖對重構(gòu)數(shù)據(jù)庫提供了一定程度的規(guī)律獨立性

4、視圖能夠?qū)C密數(shù)據(jù)提供安全保護

5、適當(dāng)?shù)睦靡晥D可以更明了的表達查詢

6.可更新視圖的限制。

答:若視圖是由兩個以上基本表導(dǎo)出的,則次視圖不允許更新。

若視圖的字段來自字段表達式或常數(shù),則不允許對此視圖執(zhí)行INSERT和UPDATE操作,但允許執(zhí)行DELETE操作。

若視圖的字段來自集函數(shù),則此視圖不允許更新。

若視圖定義中含有GROUPBY子句,則此視圖不允許更新若視圖中含有DISTINCT短語,則此視圖不允許更新

若視圖定義中有嵌套查詢,并且內(nèi)層查詢FROM子句中涉及的表也是導(dǎo)出該視圖的基本表,則此視圖不允許更新。

一個不允許更新的視圖上定義的視圖也不允許更新。

試驗四小型數(shù)據(jù)庫規(guī)劃設(shè)計

一、試驗?zāi)康?/p>

學(xué)習(xí)數(shù)據(jù)庫原理及應(yīng)用目的就是能創(chuàng)立和管理一個真實的數(shù)據(jù)庫,通過規(guī)劃設(shè)計一個小型數(shù)據(jù)庫系統(tǒng)。讓學(xué)生把握數(shù)據(jù)庫規(guī)劃設(shè)計的基本技術(shù),熟悉數(shù)據(jù)庫的設(shè)計的基本方法和步驟,明白數(shù)據(jù)庫設(shè)計各階段的任務(wù),加深對數(shù)據(jù)庫系統(tǒng)概念和特點的理解。

二、試驗內(nèi)容和要求

根據(jù)你所熟悉的實際狀況規(guī)劃一個小型的數(shù)據(jù)庫應(yīng)用項目,學(xué)生學(xué)籍管理系統(tǒng),進行系統(tǒng)分析和數(shù)據(jù)庫設(shè)計。要求:

1、規(guī)劃設(shè)計一個小型系統(tǒng)的數(shù)據(jù)庫,依照給定要求,對各設(shè)計階段進行描述,要求給出數(shù)據(jù)庫設(shè)計的E-R圖,并將E-R圖轉(zhuǎn)換成相應(yīng)的模型,編制SQL命令腳本。三、試驗主要儀器設(shè)備和材料

1.計算機及操作系統(tǒng):PC機,Windows2000/xp;2.?dāng)?shù)據(jù)庫管理系統(tǒng):SQLserver2000/2023/2023;四、試驗方法、步驟及結(jié)構(gòu)測試

(一)、數(shù)據(jù)庫設(shè)計

1、確定學(xué)生學(xué)籍管理系統(tǒng)數(shù)據(jù)庫包括的數(shù)據(jù)。

學(xué)生學(xué)籍管理系統(tǒng)涉及數(shù)據(jù)信息有:院系信息、班級信息、任課教師信息、學(xué)生信息、學(xué)籍變更信息、學(xué)生獎懲信息、課程信息、選課信息和成績等。學(xué)籍管理的用戶包括:系統(tǒng)管理員、教師和學(xué)生。

系統(tǒng)管理員:各種基本信息的錄入、修改和刪除等操作。教師使用本系統(tǒng)完成教學(xué)班級的信息查詢和成績管理。學(xué)生使用本系統(tǒng)主要完成選課和成績查詢等工作。2、確定學(xué)生學(xué)籍管理系統(tǒng)中的實體及其屬性學(xué)生學(xué)籍管理系統(tǒng)實體有:實體屬性院系專業(yè)班級課程教師教師課表學(xué)生學(xué)生選課院系編號,院系名稱專業(yè)代碼,專業(yè)編號,專業(yè)名稱專業(yè)名稱,班級編號,班級人數(shù)課程編號,課程名稱,專業(yè)代碼,課程學(xué)分,理論學(xué)時,試驗學(xué)時教師編號,教師姓名,教師性別,院系編號教師編號,班級編號,課程編號,學(xué)年,學(xué)期學(xué)生學(xué)號,學(xué)生姓名,學(xué)生性別,專業(yè)名稱,班級編號學(xué)生學(xué)號,課程編號,學(xué)生成績院系獎勵記錄學(xué)生姓名,獲獎時間,頒獎單位,獲獎項目,獲獎等級院系處罰記錄學(xué)生姓名,受處時間,受處原因,受處結(jié)果

實體間的聯(lián)系如下:

一個院系可擁有多個專業(yè),一個專業(yè)對應(yīng)一個院系,所以院系跟專業(yè)是1對多的關(guān)系。一個院系可記錄多個獎懲狀況,一份獎懲狀況只屬于一個院系,所以院系跟獎懲狀況是1對多的關(guān)系。

一個院系可擁有多個老師,一個老師對應(yīng)一個院系,所以院系跟老師是1對多的關(guān)系。一個專業(yè)可擁有多個班級,一個班級對應(yīng)一個專業(yè),所以專業(yè)跟班級是1對多的關(guān)系。一個班級可擁有多個學(xué)生,一個學(xué)生對應(yīng)一個班級,所以班級跟學(xué)生是1對多的關(guān)系。一個學(xué)生可選多門課,選課成績可對應(yīng)多個學(xué)生,所以學(xué)生跟選課成績是多對多的關(guān)系。一個學(xué)生可擁有多門課程,一門課程可有多名學(xué)生上課,所以學(xué)生跟課程是朵對多的關(guān)系。一門課程可由一名老師來教,一名老師可教多門課程,所以課程跟老師是1對多的關(guān)系。一名老師可教多名學(xué)生,一名學(xué)生可被多名老師教,所以老師跟學(xué)生是朵對多的關(guān)系。一名老師擁有一份教師課表,教師課表可被多名老師使用,所以老師跟教師課表是1對多的關(guān)系。

3、建立學(xué)生學(xué)籍管理系統(tǒng)的E-R圖

4、設(shè)計學(xué)生學(xué)籍管理系統(tǒng)數(shù)據(jù)庫Student5、設(shè)計數(shù)據(jù)庫表的結(jié)構(gòu)①院系表department:字段名院系編號院系名稱代碼dno類型Char(8)約束主鍵非空Dept_nameChar(20)

②專業(yè)表speciality:字段名專業(yè)代碼院系編號專業(yè)名稱

③班級表class:字段名專業(yè)名稱班級編號代碼Spnoclass_no類型Char(8)Char(8)約束主鍵,與speciality中spno外鍵關(guān)聯(lián)主鍵代碼Spnodnospname類型Char(8)Char(8)Char(20)約束主鍵外鍵,非空非空班級人數(shù)Stu_noChar(4)④課程信息表course:字段名課程編號課程名稱專業(yè)代碼課程學(xué)分理論學(xué)時試驗學(xué)時代碼cnocnamespnocreditlecture類型Char(20)Char(8)tinyinttinyint約束非空外鍵Char(10)主鍵,與student_courser表中的cno外鍵相連experimenttinyint

⑤教師表teacher:字段名教師編號教師姓名教師性別院系編號代碼t_not_namet_sexdno類型Char(8)Char(8)Char(2)Char(8)約束主鍵非空外鍵

⑥教師上課課表teacher_course:字段名上課編號教師編號班級編號課程編號學(xué)年學(xué)期代碼tcidt_noclass_nocnosemester類型smallintChar(8)Char(8)Char(10)Char(4)約束主鍵外鍵外鍵非空,外鍵schoolyearChar(4)

⑦學(xué)生表Student:字段名學(xué)生學(xué)號學(xué)生姓名學(xué)生性別專業(yè)名稱班級編號代碼s_nosnamesexspnameclass_no類型Char(8)Char(8)Char(2)Char(20)Char(8)約束主鍵非空

⑧學(xué)生選課成績表student_course:字段名學(xué)生學(xué)號上課編號學(xué)生成績代碼s_notcidscore類型Char(8)Smallinttinyint約束主鍵,與student表中s_no外鍵關(guān)聯(lián),級聯(lián)刪除主鍵,與teacher_course中tcid外鍵關(guān)聯(lián)

⑨獎勵記錄信息表院系reward_levels:字段名代碼類型約束專業(yè)代碼學(xué)生姓名獲獎時間頒獎單位獲獎項目獲獎等級spnosnamer_timeChar(8)Char(8)Char(10)主鍵外鍵非空非空r_companyChar(20)r_projectChar(8)r_gradeChar(8)

⑩處罰記錄信息表院系punnishment_levels:字段名專業(yè)代碼學(xué)生姓名受處時間受處原因受處結(jié)果代碼spnosnamep_time類型Char(8)Char(8)Char(10)約束主鍵外鍵非空p_seasonChar(20)p_resultChar(20)6、確定以上各表的關(guān)鍵字及字段數(shù)據(jù)類型。答:已經(jīng)在上表中確定(二)、創(chuàng)立數(shù)據(jù)庫和表1、創(chuàng)立student數(shù)據(jù)庫CREATEDATABASESTUDENTON(

NAME=STUDENT_DAT,

FILENAME='E:\\lin\\STUDENT.mdf',SIZE=30MB,FILEGROWTH=20%)

LOGON(

NAME=SC_LOG,

FILENAME='E:\\lin\\STUDENT.ldf',SIZE=3MB,

FILEGROWTH=1MB)

2、創(chuàng)立表代碼:①院系表department:USESTUDENTGOCREATETABLEDEPARTMENT(dnochar(8),dept_namechar(20)notnull,運行結(jié)果截圖:①院系表department:

PRIMARYKEY(dno)FOREIGNKEY(dno))②專業(yè)表speciality:USESTUDENTGOCREATETABLESPECIALITY(spnochar(8),dnochar(8)notnull,spnamechar(20)notnull,PRIMARYKEY(spno),FOREIGNKEY(dno)REFERENCESDEPARTMENT(dno))③班級表class:USESTUDENTGOCREATETABLECLASS(spnochar(8),class_nochar(8),stu_nochar(4),PRIMARYKEY(spno,class_no),FOREIGNKEY(spno)REFERENCESSPECIALITY(spno))④課程信息表course:USESTUDENTGOCREATETABLECOURSE(cnochar(10),cnamechar(20)notnull,spnochar(8),credittinyint,lecturetinyint,experimenttinyint,PRIMARYKEY(cno),FOREIGNKEY(spno)REFERENCESSPECIALITY(spno))②專業(yè)表speciality:③班級表class:④課程信息表course:⑤教師表teacher:USESTUDENTGOCREATETABLETEACHER(t_nochar(8),t_namechar(8)notnull,t_sexchar(2),dnochar(8),PRIMARYKEY(t_no),FOREIGNKEY(dno)REFERENCESDEPARTMENT(dno))⑥教師上課課表teacher_course:USESTUDENTGO⑤教師表teacher:⑥教師上課課表teacher_course:CREATETABLETEACHER_COURSE(tcidsmallint,t_nochar(8),class_nochar(8),cnochar(10)notnull,schoolyearchar(4),semesterchar(4),PRIMARYKEY(tcid),FOREIGNKEY(t_no)REFERENCESTEACHER(t_no),FOREIGNKEY(cno)REFERENCESCOURSE(cno))⑦學(xué)生表Student:⑦學(xué)生表Student:USESTUDENTGOCREATETABLESTUDENT(s_nochar(8),snamechar(8)notnull,sexchar(2),spnamechar(20),class_nochar(4),PRIMARYKEY(s_no),)⑧學(xué)生選課成績表student_course:USESTUDENTGOCREATETABLESTUDENT_COURSE(s_nochar(8),cnochar(10),scoretinyint,PRIMARYKEY(s_no,cno),FOREIGNKEY(s_no)REFERENCESSTUDENT(s_no))⑨獎勵記錄信息表院系reward_levels:USESTUDENTGOCREATETABLEREWARD_LEVELS⑧學(xué)生選課成績表student_course:⑨獎勵記錄信息表院系reward_levels:(spnochar(8),snamechar(8),r_timechar(10)notnull,r_companychar(20),r_projectchar(8)notnull,r_gradechar(8),PRIMARYKEY(spno),FOREIGNKEY(spno)REFERENCESSPECIALITY(spno))⑩處罰記錄信息表院系⑩處罰記錄信息表院系punnishment_levels:punnishment_levels:USESTUDENTGOCREATETABLEREWARD_PUNNISHMENT(spnochar(8),snamechar(8),p_timechar(10)notnull,p_seasonchar(20),p_resultchar(20),PRIMARYKEY(spno),FOREIGNKEY(spno)REFERENCESSPECIALITY(spno))3、生成數(shù)據(jù)庫關(guān)系圖

4、分別向以上各表輸入數(shù)據(jù)代碼:①院系表department:GOINSERTINTODEPARTMENTVALUES('0001','土木學(xué)院')INSERTINTODEPARTMENTVALUES('0002','自動化學(xué)院')INSERTINTODEPARTMENTVALUES('0003','計算機學(xué)院')INSERTINTODEPARTMENTVALUES('0004','機電學(xué)院')INSERTINTODEPARTMENTVALUES('0005','外國語學(xué)院')截圖:①院系表department:②專業(yè)表speciality:②專業(yè)表speciality:GOINSERTINTOSPECIALITYVALUES('010203','0001','土木工程')INSERTINTOSPECIALITYVALUES('010204','0002','自動化')INSERTINTOSPECIALITYVALUES('010205','0003','制藥工程')INSERTINTOSPECIALITYVALUES('010206','0004','計算機科學(xué)與技術(shù)')INSERTINTOSPECIALITYVALUES('010207','0005','日語')③班級表class:GOINSERTINTOCLASSVALUES('010203','1201','46')INSERTINTOCLASSVALUES('010204','1202','45')INSERTINTOCLASSVALUES('010205','1203','47')INSERTINTOCLASSVALUES('010206','1204','48')INSERTINTOCLASSVALUES('010207','1205','51')③班級表class:④課程信息表course:④課程信息表course:GOINSERTINTOCOURSEVALUES('1001','數(shù)據(jù)庫','010203','5','18','5')INSERTINTOCOURSEVALUES('1002','編譯原理','010204','4','18','5')INSERTINTOCOURSEVALUES('1003','java程序','010205','4','18','5')INSERTINTOCOURSEVALUES('1004','面向?qū)ο?,'010206','3','18','5')INSERTINTOCOURSEVALUES('1005','信息安全','010207','3','18','5')⑤教師表teacher:INSERTINTOTEACHERVALUES('01','吖吖','女','0001')⑤教師表teacher:

INSERTINTOTEACHERVALUES('02','波比','男','0002')INSERTINTOTEACHERVALUES('03','曹操','男','0003')INSERTINTOTEACHERVALUES('04','當(dāng)當(dāng)','女','0004')INSERTINTOTEACHERVALUES('05','娥娥','女','0005')⑥教師上課課表teacher_course:INSERTINTOTEACHER_COURSEVALUES⑥教師上課課表teacher_course:('2111','01','1201','1001','2','1')INSERTINTOTEACHER_COURSEVALUES('2112','02','1202','1002','3','1')INSERTINTOTEACHER_COURSEVALUES('2113','03','1203','1003','2','1')INSERTINTOTEACHER_COURSEVALUES('2114','04','1204','1004','1','1')

INSERTINTOTEACHER_COURSEVALUES('2115','05','1205','1005','3','1')⑦學(xué)生表

溫馨提示

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

評論

0/150

提交評論