版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、數(shù)據(jù)庫原理與應用實驗指導與報告 2010 / 2011 學年 第 2 學期姓 名: 季亞 學 號: 班 級: 09數(shù)媒(1)班 指導教師: 周蓓 計算機科學與工程學院2011目錄實驗八 數(shù)據(jù)庫設(shè)計1一、概要設(shè)計11.1目的和意義11.2內(nèi)容和要求1二、需求分析22.1背景22.2概要分析22.3開發(fā)技術(shù)22.4系統(tǒng)主要功能3三、E-R圖43.1 概念設(shè)計43.2 E-R圖4四、邏輯結(jié)構(gòu)64.1邏輯轉(zhuǎn)換64.2細化表結(jié)構(gòu)6五、數(shù)據(jù)庫實施85.1創(chuàng)建表95.2創(chuàng)建必要視圖105.3創(chuàng)建必要觸發(fā)器115.4創(chuàng)建必要存儲過程13六、總結(jié)14參考文獻16實驗八 數(shù)據(jù)庫設(shè)計一、 概要設(shè)計1.1 目的和意義
2、隨著無紙化辦公的普遍實現(xiàn),信息的自動處理以及網(wǎng)絡(luò)式的信息交互方式已經(jīng)被人們廣泛應用。讓計算機來管理學生的信息是現(xiàn)在各個高校都在積極進行的工作之一,也是高校教學管理工作的重要內(nèi)容之一。網(wǎng)上選課與傳統(tǒng)的選課方式相比更加節(jié)約資源,增加了學生選課自主權(quán)。 學生選課系統(tǒng)作為一種現(xiàn)代化的教學技術(shù),越來越受到人們的重視,是一個學校不可或缺的部分, 學生選課系統(tǒng)就是為了管理好選課信息而設(shè)計的。學生選課系統(tǒng)的將使選課管理工作規(guī)范化、系統(tǒng)化、程序化,避免選課管理的隨意性,提高信息處理的速度和準確性,能夠準確、及時、有效的查詢和修改學生選課情況。與傳統(tǒng)的選課方式相比,網(wǎng)上選課系統(tǒng)利用局域網(wǎng)為學生選課帶來了極大的便捷
3、。學生在公共機房,或者宿舍的個人電腦上便可以通過校園網(wǎng)絡(luò)來選課。在選課期間內(nèi),學生能夠使用選課系統(tǒng)靈活的修改自己的選課情況,大大提高了學校選課工作的效率。教務(wù)處的教師則可以通過選課系統(tǒng)的管理員子系統(tǒng)來管理學生的選課情況,使得學生選課工作達到系統(tǒng)化和自動化,大大提高了學校的工作效率,為廣大師生及相關(guān)人員節(jié)省了極多的時間。數(shù)據(jù)庫對于一個應用系統(tǒng)的意義是相當重要的,一個設(shè)計良好的數(shù)據(jù)庫系統(tǒng)一方面,能夠給開發(fā)者帶來便捷,更輕松的進行系統(tǒng)設(shè)計與編碼;另一方面,對于系統(tǒng)的后期維護也非常重要,一個良好的數(shù)據(jù)庫系統(tǒng)能夠保證系統(tǒng)的可擴充性,以及系統(tǒng)的移植性等問題。1.2 內(nèi)容和要求本實驗將設(shè)計出一個高校網(wǎng)上選課
4、數(shù)據(jù)庫系統(tǒng),其要求簡要如下:(1) 系統(tǒng)用戶由三類組成:教師、學生和管理員。(2) 管理員負責的主要功能: 用戶管理(老師、學生及管理員的增、刪、改); 課程管理(添加、刪除和修改); 選課管理(實現(xiàn)選課功能開放和禁止、老師成績輸入開放和禁止)。(3) 學生通過登錄,可以查詢課程的基本信息、實現(xiàn)選課、退課和成績查詢;(4) 老師通過登錄,可以查看選課學生的基本信息,可以輸入成績。二、 需求分析2.1 背景全校性選修課開設(shè)的目的在于擴大學生的知識面、加強學生素質(zhì)教育、培養(yǎng)復合型高級人才,具有不可替代的重要性。隨著教育改革的不斷深入和素質(zhì)教育的加強,學分制的實施,選修課在一個學生的培養(yǎng)計劃中占的比
5、重將越來越大。網(wǎng)上選課系統(tǒng)的出現(xiàn)使同學們能夠更加自主、便捷、準確的進行選課。但是,由于一般高校中的學生都比較多,因此帶來了諸多如信息管理等問題,鑒于需要將學生信息、選課信息等信息數(shù)字化以便于管理維護,我們便想到了利用數(shù)據(jù)庫能夠比較良好地解決此類問題,由此下面我將設(shè)計出一個高校選課系統(tǒng)以供參考。2.2 概要分析根據(jù)1.2節(jié)中所描述的系統(tǒng)分析要求,我們的高校選課系統(tǒng)將包含學生、教師、管理員等實體,學生可以在規(guī)定的時間內(nèi)選課、退選和成績查詢等操作;教師可以查看學生的相關(guān)信息,錄入學生成績等操作;管理員可以添加管理員,管理教師、學生等信息。2.3 開發(fā)技術(shù)開發(fā)工具:Microsoft SQL Serv
6、er 2000 開發(fā)語言:SQL開發(fā)技術(shù):數(shù)據(jù)庫開發(fā)技術(shù)面向?qū)ο螅盒枨笳逽QL Server 2000 是Microsoft 公司推出的SQL Server 數(shù)據(jù)庫管理系統(tǒng),該版本繼承了SQL Server 7.0 版本的優(yōu)點,同時又比它增加了許多更先進的功能。具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2000 的大型多處理器的服務(wù)器等多種平臺使用。本實驗中最終將使用Microsoft SQL Server 2000數(shù)據(jù)庫管理系統(tǒng)將我們設(shè)計的數(shù)據(jù)庫實現(xiàn)。2.4 系統(tǒng)主要功能實驗選
7、課系統(tǒng)分為教師,學生及系統(tǒng)管理員三類用戶,學生的功能包括選課、退選、查詢選課信息等,教師的功能包括學生成績錄入,查詢實驗信息等。管理員的功能包括新建教師、學生賬戶,添加課程信息,其系統(tǒng)功能模塊如圖2-1:圖2-1 系統(tǒng)功能模塊三、 E-R圖本章節(jié)主要包含概念設(shè)計、E-R圖,以及如何將E-R圖轉(zhuǎn)換為實際的物理模型等內(nèi)容。3.1 概念設(shè)計在我們的數(shù)據(jù)庫系統(tǒng)中共有6個實體:學生、教師、管理員、專業(yè)、院系、課程。(1) 學生的屬性:學號、姓名、性別、生日、密碼(2) 教師的屬性:工號、姓名、性別、生日、密碼、職稱(3) 管理員的屬性:工號、姓名、性別、生日、密碼、權(quán)限標志(4) 專業(yè)的屬性:專業(yè)號碼、
8、專業(yè)名、輔導員、聯(lián)系方式、專業(yè)介紹(5) 院系的屬性:系號碼、系名稱、系主任、聯(lián)系方式、系介紹(6) 課程的屬性:課程號碼、學時、學分、課程介紹(7) 控制設(shè)置屬性:選課控制、成績錄入控制3.2 E-R圖各個實體的E-R圖如下所示:圖1 學生圖2 教師圖3 管理員圖4 專業(yè)圖5 系圖6 課程然后,將以上實體之間聯(lián)系表示出來,畫出數(shù)據(jù)庫系統(tǒng)的E-R圖,如圖7所示:圖7 數(shù)據(jù)庫系統(tǒng)E-R圖四、 邏輯結(jié)構(gòu)4.1 邏輯轉(zhuǎn)換根據(jù)3.2節(jié)中的E-R圖可以將系統(tǒng)中的概念模型轉(zhuǎn)換為具體的表(即關(guān)系)結(jié)構(gòu),共分為7個關(guān)系,詳細信息如下所示:學生(學號、專業(yè)號碼、姓名、性別、生日、密碼)教師(教師工號、系號碼、姓
9、名、性別、生日、密碼、職稱)管理員(管理員工號、姓名、性別、生日、密碼、權(quán)限標志)專業(yè)(專業(yè)號碼、系號碼、專業(yè)名、輔導員、聯(lián)系方式、專業(yè)介紹)院系(系號碼、系名稱、系主任、聯(lián)系方式、系介紹)課程(課程號碼、學時、學分、課程介紹)選課信息(學號、課程號碼、教師工號、成績)4.2 細化表結(jié)構(gòu)為方便,根據(jù)上述文字描述,用英文簡寫為表和列取名,確定列的數(shù)據(jù)類型及必要的約束規(guī)則,給出如下所示數(shù)據(jù)庫表的基本結(jié)構(gòu)及說明:(1) 學生信息表列名說明數(shù)據(jù)類型約束StudentNum學號char(10)主碼MajorNum專業(yè)號碼char(10)not null,引用tb_major的外碼StudentName姓
10、名varchar(10)Not nullStudentSex性別char(2)not null,取“男”或“女”StudentBirthday生日datetimenot nullStudentPassword密碼varchar(20)not null,(2) 教師信息表列名說明數(shù)據(jù)類型約束TeacherNum教師工號char(10)主碼DeptNum院系號碼char(10)not null,引用tb_dept的外碼TeacherName姓名varchar(10)not nullTeacherSex性別char(2)not null,取“男”或“女”TeacherBirthday生日dateti
11、menot nullTeacherTitle職稱varchar(20)(3) 管理員信息表列名說明數(shù)據(jù)類型約束ManagerNum管理員工號char(10)主碼ManagerName姓名varchar(10)not nullManagerSex性別char(2)not null,取“男”或“女”ManagerBirthday生日datetimenot null(4) 專業(yè)信息表列名說明數(shù)據(jù)類型約束MajorNum專業(yè)號碼char(10)主碼DeptNum系號碼char(10)not null,引用tb_dept的外碼MajorName專業(yè)名varchar(20)not nulMajorAssi
12、stant輔導員varchar(10)not nullMajorTel聯(lián)系方式varchar(15)not null(5) 院系信息表列名說明數(shù)據(jù)類型約束DeptNum系號碼char(10)主碼DeptName系名稱varchar(20)not nullDeptChairman系主任varchar(10)not nullDeptTel聯(lián)系方式varchar(15)not nullDeptDesc系介紹textnot null(6) 課程信息表列名說明數(shù)據(jù)類型約束CourseNum課程號碼char(10)主碼CourseName課程名varchar(20)not nullCourseCredit
13、學分floatnot nullCourseClass學時smallintnot nullCourseDesc課程介紹textnot null(7) 選課信息表列名說明數(shù)據(jù)類型約束StuCourseID選課編號int主碼,自動遞增StudentNum學號char(10)not null,引用tb_student的外碼CourseNum課程號碼char(10)not null,引用tb_course的外碼TeacherNum教師工號char(10)not null,引用tb_student的外碼Grade成績smallint(8) 控制設(shè)置表列名說明數(shù)據(jù)類型約束IfTakeCourse選課控制ch
14、ar(1)not null,取“0”或“1”IfInputGrade成績錄入控制char(1)not null,取“0”或“1”備注:選課和成績錄入功能的開放和禁止,0為禁止,1為開放。五、 數(shù)據(jù)庫實施本章節(jié)主要包含創(chuàng)建表、添加數(shù)據(jù)和創(chuàng)建必要的視圖、觸發(fā)器和存儲過程等內(nèi)容。5.1 創(chuàng)建表考慮到各個表之間的約束條件以及外鍵索引等要求,在創(chuàng)建表的時候應當按照一定的次序進行創(chuàng)建,否則會出現(xiàn)錯誤,還有一種方法是先創(chuàng)建各個基本表,然后在對特定的表添加列和外碼約束,在本報告冊中將采取第一種方法。(1) tb_dept院系信息表CREATE TABLE tb_dept(DeptNum char(10) NO
15、T NULL PRIMARY KEY,DeptName varchar(20) NOT NULL,DeptChairman varchar(10) NOT NULL,DeptTel varchar(15) NOT NULL,DeptDesc text NOT NULL,)(2) tb_major專業(yè)信息表CREATE TABLE tb_major(MajorNum char(10) NOT NULL PRIMARY KEY,DeptNum char(10) NOT NULL,MajorName varchar(20) NOT NULL,MajorAssistant varchar(10) NO
16、T NULL,MajorTel varchar(15) NOT NULL,FOREIGN KEY (DeptNum) REFERENCES tb_dept(DeptNum)(3) tb_student學生信息表CREATE TABLE tb_student(StudentNum char(10) NOT NULL PRIMARY KEY,MajorNum char(10) NOT NULL,StudentName varchar(10) NULL,StudentSex char(2) NOT NULL,StudentBirthday datetime NOT NULL,StudentPassw
17、ord varchar(20) NOT NULL,FOREIGN KEY (MajorNum) REFERENCES tb_major(MajorNum)(4) tb_teacher教師信息表CREATE TABLE tb_teacher(TeacherNum char(10) NOT NULL PRIMARY KEY,DeptNum char(10) NOT NULL,TeacherName varchar(10) NOT NULL,TeacherSex char(2) NOT NULL,TeacherBirthday datetime NOT NULL,TeacherTitle varch
18、ar(20) NULL,FOREIGN KEY (DeptNum) REFERENCES tb_dept(DeptNum)(5) tb_manager管理員信息表CREATE TABLE tb_manager(ManagerNum char(10) NOT NULL PRIMARY KEY,ManagerName varchar(10) NOT NULL,ManagerSex char(2) NOT NULL,ManagerBirthdate datetime NOT NULL,ManagerRights int NOT NULL )(6) tb_course課程信息表CREATE TABLE
19、 tb_course(CourseNum varchar(10) NOT NULL PRIMARY KEY,CourseName varchar(20) NOT NULL,CourseCredit float NOT NULL,CourseClass smallint NOT NULL,CourseDesc text NOT NULL,)(7) tb_stucourse學生選課信息表CREATE TABLE tb_stucourse(StudentNum char(10) NOT NULL,CourseNum char(10) NOT NULL,TeacherNum char(10) NOT
20、NULL,Grade smallint NULL,FOREIGN KEY (StudentNum) REFERENCES tb_student(StudentNum),FOREIGN KEY (CourseNum) REFERENCES tb_Course(CourseNum),FOREIGN KEY (TeacherNum) REFERENCES tb_teacher(TeacherNum),)(8) tb_control控制設(shè)置表CREATE TABLE tb_control(IfTakeCourse char(1) NOT NULL check(IfTakeCourse in ( 0,
21、1),IfInputGrade char(1) NOT NULL check(IfInputGrade in ( 0, 1),)5.2 創(chuàng)建必要視圖(1) 建立學生成績視圖vi_grade,從學生、老師、選課表中選擇Grade不為空的記錄,其關(guān)鍵代碼如下所示:CREATE VIEW vi_gradeASSELECT tb_stucourse.StudentNum,StudentName,CourseName,CourseCredit,TeacherName,GradeFROM tb_stucourse,tb_student,tb_course,tb_teacherwhere tb_stucou
22、rse.StudentNum=tb_student.StudentNum and tb_stucourse.TeacherNum=tb_teacher.TeacherNum and tb_stucourse.CourseNum=tb_course.CourseNum and Grade is not null(2) 建立專業(yè)學生信息視圖vi_major,從學生、專業(yè)表中選擇學生中的專業(yè)號碼與專業(yè)表中專業(yè)號碼相等的記錄,其關(guān)鍵代碼如下所示:CREATE VIEW vi_majorASSELECT tb_major.MajorName,StudentNum,StudentName,StudentS
23、ex,StudentBirthdayFROM tb_major,tb_studentWHERE tb_major.MajorNum=tb_student.MajorNum5.3 創(chuàng)建必要觸發(fā)器(1) 建立學生添加院系觸發(fā)器tri_adddept,當該表中已存在所對應院系號碼的院系時,系統(tǒng)給與錯誤提示并回滾,其關(guān)鍵代碼如下所示:CREATE TRIGGER tri_adddept ON tb_deptFOR INSERT,UPDATEASIF(SELECT COUNT(*) FROM tb_dept,inserted WHERE tb_dept.DeptNum=inserted.DeptNum)
24、0BEGINPRINT 院系號碼產(chǎn)生沖突,請核對后重試!ROLLBACKEND(2) 建立學生添加專業(yè)觸發(fā)器tb_major,當專業(yè)信息中的院系號不對或者該表中已存在所對應專業(yè)號碼的專業(yè)時,系統(tǒng)給與錯誤提示并回滾,其關(guān)鍵代碼如下所示:CREATE TRIGGER tri_addmajor ON tb_majorFOR INSERT,UPDATEASIF(SELECT COUNT(*) FROM tb_dept,insertedWHERE tb_dept.DeptNum=inserted.DeptNum)=0BEGINPRINT 未找到該專業(yè)的院系信息,請?zhí)砑酉鄳合岛笾卦?!ROLLBACKEN
25、DELSE IF(SELECT COUNT(*) FROM tb_major,inserted WHERE tb_major.MajorNum=inserted.MajorNum)0BEGINPRINT 院系號碼產(chǎn)生沖突,請核對后重試!ROLLBACKEND(3) 建立添加學生觸發(fā)器tri_addstudent,當學生信息中的專業(yè)號不對或者系統(tǒng)中已存在所對應學號的學生時,系統(tǒng)給與錯誤提示并回滾,其關(guān)鍵代碼如下所示:CREATE TRIGGER tri_addstudent ON tb_studentFOR INSERT,UPDATEASIF(SELECT COUNT(*) FROM tb_ma
26、jor,insertedWHERE tb_major.MajorNum=inserted.MajorNum)=0BEGINPRINT 未找到該學生的專業(yè)信息,請?zhí)砑酉鄳獙I(yè)后重試!ROLLBACKENDELSE IF(SELECT COUNT(*) FROM tb_student,inserted WHERE tb_student.StudentNum=inserted.StudentNum)0BEGINPRINT 學號產(chǎn)生沖突,請核對后重試!ROLLBACKEND(4) 建立學生選課觸發(fā)器tri_takecourse,課程選課人數(shù)超過40個或者對應學生選課門數(shù)超過5門或者當前時間不是選課時間
27、段時,系統(tǒng)給與錯誤提示并回滾,其關(guān)鍵代碼如下所示:CREATE TRIGGER tri_takecourse ON tb_stucourseFOR INSERT,UPDATEASIF(SELECT COUNT(*) FROM tb_stucourse,insertedWHERE tb_stucourse.CourseNum=inserted.CourseNum)40BEGINPRINT 所對應課程選課人數(shù)不能超過40個!ROLLBACKENDELSE IF(SELECT COUNT(*) FROM tb_student,inserted WHERE tb_student.StudentNum=
28、inserted.StudentNum)5BEGINPRINT 對應學生的選課不能超過5門!ROLLBACKENDELSE IF(SELECT IfTakeCourse FROM tb_control)=0BEGINPRINT 當前不是選課時間段!ROLLBACKEND5.4 創(chuàng)建必要存儲過程(1) 建立學生選課存儲過程tri_takecourse,其作用為查詢所有學生的選課記錄,其關(guān)鍵代碼如下所示:CREATE PROC proc_getcourseStudentNum char(10) OUT,StudentName char(10) OUT,CourseName varchar(20)
29、OUT,CourseCredit float OUT,TeacherName char(10) OUTASSELECT StudentNum=tb_student.StudentNum,StudentName=tb_student.StudentName, CourseName=tb_course.CourseName,CourseCredit=tb_course.CourseCredit, TeacherName=tb_teacher.TeacherName FROM tb_stucourse,tb_course,tb_student,tb_teacher WHERE tb_stucours
30、e.StudentNum=tb_student.StudentNum ANDtb_stucourse.CourseNum=tb_course.CourseNum ANDtb_stucourse.TeacherNum=tb_teacher.TeacherNum(2) 建立查詢教師課程存儲過程proc_teachercourse,其作用為查詢指定教師所有課程的選課記錄,其關(guān)鍵代碼如下所示:CREATE PROC proc_teachercourseTeacherNum char(10),StudentNum char(10) OUT,StudentName char(10) OUT,CourseN
31、ame varchar(20) OUT,CourseCredit float OUT,TeacherName char(10) OUTASSELECT StudentNum=tb_student.StudentNum,StudentName=tb_student.StudentName, CourseName=tb_course.CourseName,CourseCredit=tb_course.CourseCredit, TeacherName=tb_teacher.TeacherName FROM tb_stucourse,tb_course,tb_student,tb_teacher WHERE tb_stucourse.StudentNum=tb_student.StudentNum ANDtb_stucourse.CourseNum=tb_course.CourseNum ANDtb_stucou
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版木材采購合同與木材質(zhì)量保證協(xié)議4篇
- 2025八年級上學期期末歷史試卷
- 2025年度二零二五年度智能交通管理系統(tǒng)設(shè)計與實施合同4篇
- 二零二五年度木制品表面處理合同樣本4篇
- 2025版學校教室租賃合同示范文本2篇
- 2025年度個人毛坯房租賃與租金支付方式合同4篇
- 公共基礎(chǔ)-2020年試驗檢驗師助理《公共基礎(chǔ)》真題
- 寶石礦物學在寶石加工中的應用研究考核試卷
- 2025版土地居間業(yè)務(wù)規(guī)范合同樣本(2025版)6篇
- 2025版圖書銷售代理居間服務(wù)合同模板
- 加強教師隊伍建設(shè)教師領(lǐng)域?qū)W習二十屆三中全會精神專題課
- 2024-2025學年人教版數(shù)學七年級上冊期末復習卷(含答案)
- 2024年決戰(zhàn)行測5000題言語理解與表達(培優(yōu)b卷)
- 四年級數(shù)學上冊人教版24秋《小學學霸單元期末標準卷》考前專項沖刺訓練
- 2025年慢性阻塞性肺疾病全球創(chuàng)議GOLD指南修訂解讀課件
- (完整版)減數(shù)分裂課件
- 銀行辦公大樓物業(yè)服務(wù)投標方案投標文件(技術(shù)方案)
- 第01講 直線的方程(九大題型)(練習)
- 飯店管理基礎(chǔ)知識(第三版)中職PPT完整全套教學課件
- 2023年重慶市中考物理A卷試卷【含答案】
- 【打印版】意大利斜體英文字帖(2022年-2023年)
評論
0/150
提交評論