數(shù)據(jù)庫設(shè)計學(xué)生選課系統(tǒng)_第1頁
數(shù)據(jù)庫設(shè)計學(xué)生選課系統(tǒng)_第2頁
數(shù)據(jù)庫設(shè)計學(xué)生選課系統(tǒng)_第3頁
數(shù)據(jù)庫設(shè)計學(xué)生選課系統(tǒng)_第4頁
數(shù)據(jù)庫設(shè)計學(xué)生選課系統(tǒng)_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫原理與應(yīng)用實驗指導(dǎo)與報告2010 / 2011 學(xué)年第2學(xué)期姓 名:李亞學(xué) 號:班 級: 09 數(shù)媒(1)班指導(dǎo)教師:周存計算機科學(xué)與工程學(xué)院2011目錄實驗八數(shù)據(jù)庫設(shè)計一、概要設(shè)計1.1 目的和意義1.2 內(nèi)容和要求二、需求分析2.1 背景2.2 概要分析2.3 開發(fā)技術(shù)2.4 系統(tǒng)主要功能三、E-R圖3.1 概念設(shè)計3.2 E-R 圖四、邏輯結(jié)構(gòu)4.1 邏輯轉(zhuǎn)換4.2 細化表結(jié)構(gòu)五、數(shù)據(jù)庫實施5.1 創(chuàng)建表5.2 創(chuàng)建必要視圖5.3 創(chuàng)建必要觸發(fā)器 5.4 創(chuàng)建必要存儲過程 六、總結(jié)參考文獻 數(shù)據(jù)庫設(shè)計概要設(shè)計1.1 目的和意義隨著無紙化辦公的普遍實現(xiàn),信息的自動處理以及網(wǎng)絡(luò)式的信息

2、交互方式已經(jīng)被人們廣泛應(yīng)用。讓計算機來管理學(xué)生的信息是現(xiàn)在各個高校都在積極進行的工作之一,也是高校教學(xué)管理工作的重要內(nèi)容之一。網(wǎng)上選課與傳統(tǒng)的選課方式相比更加節(jié)約資源,增加了學(xué)生選課自主權(quán)。學(xué)生選課系統(tǒng)作為一種現(xiàn)代化的教學(xué)技術(shù),越來越受到人們的重視,是一個學(xué)校不可或缺的部分, 學(xué)生選課系統(tǒng)就是為了管理好選課信息而設(shè)計的。學(xué)生選課系統(tǒng)的將使選課管理工作規(guī)范化、系統(tǒng)化、程序化,避免選課管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠準(zhǔn)確、及時、有效的查詢和修改學(xué)生選課情況。與傳統(tǒng)的選課方式相比,網(wǎng)上選課系統(tǒng)利用局域網(wǎng)為學(xué)生選課帶來了極大的便捷。 學(xué)生在公共機房,或者宿舍的個人電腦上便可以通過校園網(wǎng)絡(luò)

3、來選課。在選課期間內(nèi),學(xué)生能夠使用選課系統(tǒng)靈活的修改自己的選課情況,大大提高了學(xué)校選課工作的效率。教務(wù)處的教師則可以通過選課系統(tǒng)的管理員子系統(tǒng)來管理學(xué)生的選課情況,使得學(xué)生選課工作達到系統(tǒng)化和自動化,大大提高了學(xué)校的工作效率,為廣大師生及相關(guān)人員節(jié)省了極多的時間。數(shù)據(jù)庫對于一個應(yīng)用系統(tǒng)的意義是相當(dā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)上選課數(shù)據(jù)庫系統(tǒng),其要求簡要如下:(1) 系統(tǒng)用戶由三類組成:

4、教師、學(xué)生和管理員。(2) 管理員負責(zé)的主要功能: 用戶管理(老師、學(xué)生及管理員的增、刪、改); 課程管理(添加、刪除和修改); 選課管理(實現(xiàn)選課功能開放和禁止、老師成績輸入開放和禁止)。(3) 學(xué)生通過登錄,可以查詢課程的基本信息、實現(xiàn)選課、退課和成績查詢;(4) 老師通過登錄,可以查看選課學(xué)生的基本信息,可以輸入成績。2、 需求分析2.1背景全校性選修課開設(shè)的目的在于擴大學(xué)生的知識面、加強學(xué)生素質(zhì)教育、培養(yǎng)復(fù)合型高級人才,具有不可替代的重要性。隨著教育改革的不斷深入和素質(zhì)教育的加強,學(xué)分制的實施,選修課在一個學(xué)生的培養(yǎng)計劃中占的比重將越來越大。網(wǎng)上選課系統(tǒng)的出現(xiàn)使同學(xué)們能夠更加自主、便捷

5、、 準(zhǔn)確的進行選課。但是,由于一般高校中的學(xué)生都比較多,因此帶來了諸多如信息管理等問題,鑒于需要將學(xué)生信息、選課信息等信息數(shù)字化以便于管理維護,我們便想到了利用數(shù)據(jù)庫能夠比較良好地解決此類問題,由此下面我將設(shè)計出一個高校選課系統(tǒng)以供參考。2.2 概要分析根據(jù) 1.2節(jié)中所描述的系統(tǒng)分析要求,我們的高校選課系統(tǒng)將包含學(xué)生、教師、管理員等實體,學(xué)生可以在規(guī)定的時間內(nèi)選課、退選和成績查詢等操作;教師可以查看學(xué)生的相關(guān)信息,錄入學(xué)生成績等操作;管理員可以添加管理員,理教師、學(xué)生等信息。2.3 開發(fā)技術(shù)開發(fā)工具:Microsoft SQL Server 2000開發(fā)語言:SQL開發(fā)技術(shù):數(shù)據(jù)庫開發(fā)技術(shù)面

6、向?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 Server2000 數(shù)據(jù)庫管理系統(tǒng)將我們設(shè)計的數(shù)據(jù)庫實現(xiàn)。2.4 系統(tǒng)主要功能實驗選課系統(tǒng)分為教師,學(xué)生及系統(tǒng)管理員三類用戶,學(xué)生的功能包括

7、選課、退選、查詢選課信息等,教師的功能包括學(xué)生成績錄入,查詢實驗信息等。管理員的功能包括新建教師、學(xué)生賬戶,添加課程信息,其系統(tǒng)功能模塊如圖2-1 :圖 2-1 系統(tǒng)功能模塊3、 E-R 圖本章節(jié)主要包含概念設(shè)計、E-R 圖,以及如何將E-R 圖轉(zhuǎn)換為實際的物理模型等內(nèi)容。3.1 概念設(shè)計在我們的數(shù)據(jù)庫系統(tǒng)中共有6 個實體:學(xué)生、教師、管理員、專業(yè)、院系、課程。(1) 學(xué)生的屬性:學(xué)號、姓名、性別、生日、密碼(2) 教師的屬性:工號、姓名、性別、生日、密碼、職稱(3) 管理員的屬性:工號、姓名、性別、生日、密碼、權(quán)限標(biāo)志(4) 專業(yè)的屬性:專業(yè)號碼、專業(yè)名、輔導(dǎo)員、聯(lián)系方式、專業(yè)介紹(5) 院

8、系的屬性:系號碼、系名稱、系主任、聯(lián)系方式、系介紹(6) 課程的屬性:課程號碼、學(xué)時、學(xué)分、課程介紹(7) 控制設(shè)置屬性:選課控制、成績錄入控制3.2 E-R 圖各個實體的E-R圖如下所示:圖1學(xué)生圖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)系,詳細信息如下所示:學(xué)生(也專業(yè)號碼、姓名、性別、生日、密碼)教師(教師工號、系號碼、姓名、性別、生日、密碼、職稱)管理員(管理員工號、姓名、性別、

9、生日、密碼、權(quán)限標(biāo)志)專業(yè)(專業(yè)號碼、系號碼、專業(yè)名、輔導(dǎo)員、聯(lián)系方式、專業(yè)介紹)院系(系號碼、系名稱、系主任、聯(lián)系方式、系介紹)課程(課程號碼、學(xué)時、學(xué)分、課程介紹) 選課信息(學(xué)號、課程號碼、教師工號、成績)4.2 細化表結(jié)構(gòu)為方便,根據(jù)上述文字描述,用英文簡寫為表和列取名,確定列的數(shù)據(jù)類型 及必要的約束規(guī)則,給出如下所示數(shù)據(jù)庫表的基本結(jié)構(gòu)及說明:(1) 學(xué)生信息表列名說明數(shù)據(jù)類型約束StudentNum學(xué)號char(10)主碼MajorNum專業(yè)號碼char(10)not null ,引用 tb_major的外碼StudentName姓名varchar(10)Not nullStuden

10、tSex性別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生日datetimenot nullTeacherTitle職

11、稱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 nulMajorAssistant輔導(dǎo)員varchar(10)not

12、 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學(xué)分floatnot nullCourseCla

13、ss學(xué)時smallintnot nullCourseDesc課程介紹textnot null(7)選課信息表列名說明數(shù)據(jù)類型約束StuCourseID選課編號int主碼,自動遞增StudentNum學(xué)號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選課控制char(1)not null ,取

14、“ 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)建表的時候應(yīng)當(dāng)按 照一定的次序進行創(chuàng)建,否則會出現(xiàn)錯誤,還有一種方法是先創(chuàng)建各個基本表, 然后在對特定的表添加列和外碼約束,在本報告冊中將采取第一種方法。(1) tb_dept院系信息表CREATE TABLE tb_dept(DeptNum char(10) NOT NULL PRI

15、MARY KEY,DeptName varchar(20) NOT NULL,DeptChairman varchar(10) NOT NULL,DeptTel varchar(15) NOT NULL,DeptDesc text NOT NULL,j(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) NOT NULL,Maj

16、orTel varchar(15) NOT NULL,FOREIGN KEY (DeptNum) REFERENCES tb_dept(DeptNum) )(3) tb_student學(xué)生信息表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,StudentPassword varc

17、har(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 varchar(20)

18、 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 tb

19、_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學(xué)生選課信息表CREATE TABLE tb_stucourse(StudentNum char(10) NOT NULL,CourseNum char(10) NOT NULL,TeacherNum char(10) NOT NU

20、LL,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 NOT NULL check(IfTakeCourse in ( 0, 1),I

21、fInputGrade char(1) NOT NULL check(IfInputGrade in ( 0, 1), )5.2 創(chuàng)建必要視圖(1) 建立學(xué)生成績視圖vi_grade ,從學(xué)生、老師、選課表中選擇 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è)學(xué)生信息視圖vi_major ,從學(xué)生、專業(yè)表中選擇學(xué)生中的專業(yè)號碼與專業(yè)表中專業(yè)號碼相等的記錄,其關(guān)鍵代碼如下所示:CREATE VIEW vi_majorASSELECT tb_major.MajorName,StudentNum,StudentName,Student

23、Sex,StudentBirthday FROM tb_major,tb_studentWHERE tb_major.MajorNum=tb_student.MajorNum5.3 創(chuàng)建必要觸發(fā)器(1) 建立學(xué)生添加院系觸發(fā)器tri_adddept,當(dāng)該表中已存在所對應(yīng)院系號碼的院系時,系統(tǒng)給與錯誤提示并回滾,其關(guān)鍵代碼如下所示:CREATE TRIGGER tri_adddept ON tb_deptFOR INSERT,UPDATE ASIF(SELECT COUNT(*) FROM tb_dept,insertedWHERE tb_dept.DeptNum=inserted.DeptNu

24、m)0BEGINPRINT 院系號碼產(chǎn)生沖突,請核對后重試!ROLLBACK END(2) 建立學(xué)生添加專業(yè)觸發(fā)器tb_major,當(dāng)專業(yè)信息中的院系號不對或者該表中已存在所對應(yīng)專業(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í)砑酉鄳?yīng)院系后重試!ROLLBAC

25、K END ELSE IF(SELECT COUNT(*) FROM tb_major,insertedWHERE tb_major.MajorNum=inserted.MajorNum)0BEGINPRINT 院系號碼產(chǎn)生沖突,請核對后重試!ROLLBACK END(3tri_addstudent統(tǒng)中已存在所對應(yīng)學(xué)號的學(xué)生時,系統(tǒng)給與錯誤提示并回滾,其關(guān)鍵代碼如下所 示:CREATE TRIGGER tri_addstudent ON tb_studentFOR INSERT,UPDATE ASIF(SELECT COUNT(*) FROM tb_major,insertedWHERE tb

26、_major.MajorNum=inserted.MajorNum)=0BEGINPRINT 未找到該學(xué)生的專業(yè)信息,請?zhí)砑酉鄳?yīng)專業(yè)后重試!ROLLBACKENDELSE IF(SELECT COUNT(*) FROM tb_student,insertedWHERE tb_student.StudentNum=inserted.StudentNum)0BEGINPRINT 學(xué)號產(chǎn)生沖突,請核對后重試!ROLLBACKEND(4)建立學(xué)生選課觸發(fā)器tri_takecourse,課程選課人數(shù)超過40個或者對應(yīng)學(xué)生選課門數(shù)超過5門或者當(dāng)前時間不是選課時間段時,系統(tǒng)給與錯誤提示并回 滾,其關(guān)鍵代碼如

27、下所示:CREATE TRIGGER tri_takecourse ON tb_stucourseFOR INSERT,UPDATEASIF(SELECT COUNT(*) FROM tb_stucourse,insertedWHERE tb_stucourse.CourseNum=inserted.CourseNum)40BEGINPRINT所對應(yīng)課程選課人數(shù)不能超過40個!ROLLBACKENDELSE IF(SELECT COUNT(*) FROM tb_student,insertedWHERE tb_student.StudentNum=inserted.StudentNum)5BE

28、GINPRINT 對應(yīng)學(xué)生的選課不能超過5門!ROLLBACKENDELSE IF(SELECT IfTakeCourse FROM tb_control)=0BEGINPRINT 當(dāng)前不是選課時間段!ROLLBACKEND5.4創(chuàng)建必要存儲過程(1)建立學(xué)生選課存儲過程tri_takecourse,其作用為查詢所有學(xué)生的選課記錄,其關(guān)鍵代碼如下所示:CREATE PROC proc_getcourseStudentNum char(10) OUT,StudentName char(10) OUT,CourseName varchar(20) OUT,CourseCredit float OU

29、T,TeacherName char(10) OUTASSELECT StudentNum=tb_student.StudentNum,StudentName=tb_student.StudentName ,CourseName=tb_course.CourseName ,CourseCredit=tb_course.CourseCredit ,TeacherName=tb_teacher.TeacherNameFROM tb_stucourse,tb_course,tb_student,tb_teacherWHERE tb_stucourse.StudentNum=tb_student.St

30、udentNum AND tb_stucourse.CourseNum=tb_course.CourseNum AND tb_stucourse.TeacherNum=tb_teacher.TeacherNum(2 建立查詢教師課程存儲過程 proc_teachercourse其作用為查詢指定教師 所有課程的選課記錄,其關(guān)鍵代碼如下所示:CREATE PROC proc_teachercourseTeacherNum char(10),StudentNum char(10) OUT,StudentName char(10) OUT,CourseName varchar(20) OUT,Cour

31、seCredit 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.TeacherNameFROM tb_stucourse,tb_course,tb_student,tb_teacherWHERE tb_stucourse.StudentNum=tb_student.StudentNum AND tb_stucourse.CourseNum=tb_co

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論