“课程管理系统”数据库设计及实现_第1页
“课程管理系统”数据库设计及实现_第2页
“课程管理系统”数据库设计及实现_第3页
“课程管理系统”数据库设计及实现_第4页
“课程管理系统”数据库设计及实现_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#大学课程设计报告课程设计题目:“课程管理系统”数据库设计与实现学院专业班级年级姓名学号完成时间成绩指导教师

目录第1章第2章课程管理系统功能需求分析课程管理系统概念结构设计2.1设计E-R图2.2E-R模型向关系模型的转换第3章创建视图与索引,授予用户权限3.1创建视图3.2创建索引3.3授予权限正文一、需求分析近年来,随着各大高校的规模不断扩大,生源的急剧增加,有关学生的各种信息量也成倍增长。面对庞大的信息量,需要建立一个课程管理系统来提高管理质量,让老师减轻工作量,提高工作效率。建立课程管理系统就是为了实现信息的规范管理、科学统计与快速查询,从而减少管理方面的工作量。课程管理系统主要提供教师、学生的学籍管理、成绩管理与课程管理功能。需求功能分析:教师与学生的登录学生学籍的添加、修改、删除、查询课程管理的添加、修改、删除、查询教师授课的安排用户需求分析用户的需求具体体现在各种信息的提供、保存、更新、查询方面,这就要求数据库机构能充分满足各种信息的输入与输出。收集基本数据、数据结构以及数据处理流程,组成一份详尽的数据字典,为后面的具体设计打下基础。针对课程管理系统的需求,通过对课程管理系统的设计与数据流程的分析,设计如下所示的数据项与数据存储表:登录信息:包括用户号、密码、权限学籍信息:包括用户号、姓名、性别、出生日期、班级、入学日期、家庭住址、电话课程信息:包括课程号、课程名、类型、教师名统的总体结构设计该系统共有三个模块:登陆模块、学籍管理模块、课程信息模块。这几个模块同时还包括数据添加、数据修改、数据删除、数据查询等几个基本操作。(1)登录模块在登录界面中教师与学生可登录。在登录界面中分别填入用户名、密码与身份,然后按确认键登录。如果填入信息有误则弹出错误信息的提示窗口,重新返回登陆窗口。如果填入信息正确则要根据登录信息表中登录者的权限(“0”或“1”)分别进入教师(“1”)或学生(“0”)管理系统主界面。(2)学籍管理模块该模块主要完成学生基本信息的添加、修改、删除、查询等功能。根据登录时权限的判断,权限为“0”时,是学生进入该模块,只可对自己的学籍进行查询,添加、修改、删除功能不可用;权限为“1”时,教师进入该模块,此时可进行所有学生学籍的查询、添加、修改、删除,在此模块中定义了8个数据来进行学生的信息存储,如果修改某个记录,可单击修改按钮进行数据的编辑,此时界面数据内容与数据库内容将同时更新。(4)课程管理模块该模块主要完成存储课程的所有信息的添加、修改、删除、查询等功能。根据登录时权限的判断,权限为“0”时,学生进入

该模块,只可进行课程查询,添加、修改、删除功能不可用;权限为“”时,教师进入该模块,可进行查询、添加、修改、删除,在此模块中定义了6个数据来进行课程的信息存储,如果修改某一纪录,可单击修改单按钮进行课程记数据的编辑,此时界面数据内容与数据库内容将同时更新。学生登录裁师登录学稱管理——厂学蠡杏W成绩管理学生登录裁师登录学稱管理——厂学蠡杏W成绩管理谍理查诅程加改除

课潘修删绩加改除

成潘修删2、概念设计数据字典1数据项名数据类型长度注明学生学号字符型106位十进制数学生姓名字符型8年龄字符型16籍贯字符型8学生出生地入学时间日期型教室编号字符型10以A,B,C,D开头,

后接4位十进制数教室所属校区字符型10A,B,C,D教学楼字符型8管理员代码字符型206位十进制数管理员姓名字符型8管理员电话字符型20课程代码字符型84位十进制数学院代码字符型102位十进制数课程名字符型8课程人数数值型课程所属校区字符型10A,B,C,D班级代码字符型104位十进制数专业代码字符型102位十进制数班级名字符型8班级学生数数值型学院代码字符型102位十进制数专业名字符型8学院名字符型10学院人数字符型10教工号字符型106位十进制数

教师姓名字符型8教师电话字符型20教师邮箱字符型30课程管理系统数据库中的E-R图3、逻辑设计将上面的E-R图转化为如下关系模型,下划横线代表关系的主键:学生(学号,姓名,年龄,籍贯,入学时间,专业代码,班级代码,学院代码)班级(班级代码,专业代码,班级名,学生数)专业(专业代码,学院代码。专业名称)学院(学院代码,学院名,学员人数)

教师(教工号,教师姓名,教师电话,教师邮箱)从属(加工号,学院代码)课程(课程代码,学院代码,课程名,人数,学分)管理员(管理员代码,管理员姓名,管理员电话,管理员邮箱)教室(教室编号,所属校区,教学楼)安排(课程代码,教工号,教室编号,管理员代码,上课时间)分配(学号,教室编号)选择(学号,课程代码)二、转化后的关系模型如图:?主"•yjurulnur:;0丿varihar101va==la=(i0)VBr:harilO:lYar:Jhar(B)yr=l:T1S-.Ivar:hHrSB)ilDS&tAAf.TdblsMiL価s兰龄s•yjurulnur:;0丿varihar101va==la=(i0)VBr:harilO:lYar:Jhar(B)yr=l:T1S-.Ivar:hHrSB)ilDS&tAAf.TdblsMiL価s兰龄s学W|专莊早娄年抽A•g

<fk2?<tlc3>TcrziE-(LG)F-ccsunrl.L{]JTSTEx-Ef(3)LKtigil::岂BE貝弋恬丁空二jm•订■工I;&£;■学立史•心—⑧i豪呈貲.挺VBL-2-⑻AJfc*折击校区gbar.10.1<tk>har^iai专“壬•心:心说w态早臣ft壬var:har10)<£k>ihzIh:fi)s鑒a±裁HE13)<jJq-n«i>拳盘空西™z=koz:1:'gk)空乏龙'j*rck«-(BJin:=E=T罕鎂忙壬V«rc:h3r13i::rk£k2>三、数据库实现1、数据库视图的创建1)创建一个学号为20105263的学生的查询视图;Createview学生信息(学生学号,所选课程名称,所在班级代号,老师姓名,上课教室)asselect学生学号,课程名,班级代码,教师姓名,教室编号from学生,课程,班级,教师,教室where学生.班级代码=班级.班级代码and学生.学院代码=学院.学院代码2)创建一个教工号为5132的教师的查询视图;Createview教师信息(所教课程名称,所教班级代号,所属学院,上课教室)asselect课程名,班级代码,学院,教室编号from课程,班级,学院,教室,教师where教师.教工号=‘5132';3)创建一个管理员的查询视图Createview管理员视图(课程名称,老师姓名,学生姓名,教室编号)asselect课程名,教师姓名,学生姓名,教室编号from课程,教师,学生,教室;2、索引的创建我们可以在视图学生信息中的”学号列”上创建一个索引Createdindexstu_indexon学生信息(学号)。3、权限管理,安全性设计授予权限给学生一个可以查看课程安排的权限Grantselecton安排to学生给教师一个可以查看学生选择课程情况的权限Grantselecton选择to教师给教师一个可以查看课程安排的权限Grantupdateon安排to教师4.给学生一个可以查看自己的选课的权限Grantselecton选择to学生给管理员一个可以查看课程安排的权限Grantselecton安排to管理员6.给管理员一个删除教师与学生所选课程的权限Grantupdateon课程to管理员代码附录ifexists(select1fromsys.sysforeignkeywhererole二'卩《_分配_分配—学生')thenaltertable分配deleteforeignkeyFK_分配_分配_学生endif;ifexists(select1fromsys.sysforeignkeywhereifexists(select1fromsys.sysforeignkeywhererole二'卩《_学生_属于—班级')thenaltertable学生deleteforeignkeyFK_学生_属于_班级endif;ifexists(select1fromsys.sysforeignkeywhereifexists(select1fromsys.sysforeignkeywhererole二'卩《_学生_所在_专业')thenaltertable学生deleteforeignkeyFK_学生_所在_专业endif;ifexists(select1fromsys.sysforeignkeywhereifexists(select1fromsys.sysforeignkeywhererole='FK_^生—所属—学院')thenaltertable学生deleteforeignkeyFK_学生_所属_学院endif;ifexists(select1fromsys.sysforeignkeywhereifexists(select1fromsys.sysforeignkeywhererole二'FK_选择_选择—学生')thenaltertable选择deleteforeignkeyFK_选择_选择_学生endif;dropindexifexists学生.所属_FK;dropindexifexists学生.所在_FK;dropindexifexists学生.属于_FK;dropindexifexists学生.学生_PK;droptableifexists学生;/*Table:学生*/createtable学生(学号专业代码班级代码学院代码学生姓名年龄籍贯入学时间varchar(10)varchar(10)varchar(10)varchar(10)varchar(8)varchar(16)varchar(8)timestampnotnull,notnull,notnull,notnull,null,null,null,null,constraintPK_学生primarykey(学号));/*Index:学生_PK*/createuniqueindex学生_PKon学生(学号ASC);/*Index:属于_FK*/createindex属于_FKon学生(班级代码ASC);/*Index:所在_FK*/createindex所在_FKon学生(专业代码ASC);/*Index:所属_FK*/createindex所属_FKon学生(学院代码ASC);altertable学生addconstraintFK_学生_属于_班级foreignkey(班级代码)references班级(班级代码)onupdaterestrictondeleterestrict;altertable学生addconstraintFK_学生_所在_专业foreignkey(专业代码)references专业(专业代码)onupdaterestrictondeleterestrict;altertable学生addconstraintFK_学生_所属_学院foreignkey(学院代码)references学院(学院代码)onupdaterestrictondeleterestrict;ifexists(select1fromsys.sysforeignkeywhererole二'卩《_学生_属于_班级')thenaltertable学生deleteforeignkeyFK_学生_属于_班级endif;ifexists(select1fromsys.sysforeignkeywhererole='FK_®级_包含_专业')thenaltertable班级deleteforeignkeyFK_班级_包含_专业endif;dropindexifexists班级.包含_FK;dropindexifexists班级.班级_PK;droptableifexists班级;

*//*Table:班级createtable班级*/(班级代码varchar(10)notnull,专业代码varchar(10)notnull,班级名varchar(8)null,学生数integernull,班主任char(10)null,constraintPK_班级primarykey(班级代码));/*Index:班级_PKcreateuniqueindex班级_PKon班级(班级代码ASC);/*Index:/*Index:班级_PKcreateuniqueindex班级_PKon班级(班级代码ASC);/*Index:包含_FK*/createindex包含_FKon班级(专业代码ASC);altertable班级addconstraintFK_班级_包含_专业foreignkey(专业代码)references专业(专业代码)onupdaterestrictondeleterestrict;ifexists(select1fromsys.sysforeignkeywhererole='FK专业_含有_学院')thenaltertable专业deleteforeignkeyFK_专业_含有_学院endif;ifexists(select1fromsys.sysforeignkeywhererole二'卩《_学生_所在_专业')thenaltertable学生deleteforeignkeyFK_学生_所在_专业endif;ifexists(select1fromsys.sysforeignkeywhererole='FK_®级_包含_专业')thenaltertable班级deleteforeignkeyFK_班级_包含_专业endif;dropindexifexists专业.所属_FK;dropindexifexists专业.专业_PK;droptableifexists专业;/*Table:专业*//*==============================================================*/createtable专业

notnull,专业代码varchar(10)notnull,学院代码varchar(10)notnull,专业名varchar(8)null,constraintPK_专业primarykey(专业代码)/*Index:专业_PK/*Index:专业_PK*/createuniqueindex专业_PKon专业(专业代码ASC/*Index:所属_FK/*Index:所属_FK*/createindex所属_FKon专业(学院代码ASC);altertable专业addconstraintFK_专业_含有_学院foreignkey(学院代码)references学院(学院代码)onupdaterestrictondeleterestrict;ifexists(select1fromsys.sysforeignkeywhererole='FK安排_安排_课程')thenaltertable安排deleteforeignkeyFK_安排_安排_课程

endif;ifexists(select1fromsys.sysforeignkeywhererole='FK_^程_开设_学院')thenaltertable课程deleteforeignkeyFK_课程_开设_学院endif;ifexists(select1fromsys.sysforeignkeywhererole二'FKJ选择_选择2_课程')thenaltertable选择deleteforeignkeyFK_选择_选择2_课程endif;dropindexifexists课程.开设_FK;dropindexifexists课程.课程_PK;/*Table:课程droptableifexists课程;/*Table:课程*/createtable课程(课程代码varchar(8)notnull,学院代码varchar(10)notnull,课程名varchar(8)null,人数integernull,所属校区varchar(10)null,constraintPK_课程primarykey(课程代码)

);/*Index:课程_PKcreateuniqueindex课程_PKon课程(课程代码ASC);/*Index:开设_FKcreateindex开设_FKon课程(学院代码ASC);altertable课程addconstraintFK_课程_开设_学院foreignkey(学院代码)references学院(学院代码)onupdaterestrictondeleterestrict;ifexists(select1fromsys.sysforeignkeywhererole='FK专业_含有_学院')thenaltertable专业deleteforeignkeyFK_专业_含有_学院endif;ifexists(select1fromsys.sysforeignkeywhererole二'卩《_从属_从属2_学院')thenaltertable从属deleteforeignkeyFK_从属—从属2—学院

endif;ifexists(select1fromsys.sysforeignkeywhererole二'卩《_学生_所属_学院')thenaltertable学生deleteforeignkeyFK_学生_所属_学院endif;ifexists(select1fromsys.sysforeignkeywhererole二'FK_课程_开设_学院')thenaltertable课程deleteforeignkeyFK_课程_开设_学院endif;dropindexifexists学院.学院_PK;/*Table:学院droptableifexists学院;/*Table:学院*/createtable学院(学院代码varchar(10)notnull,学院名varchar(8)null,学院人数integernull,constraintPK_学院primarykey(学院代码)/*Index:学院_PK/*Index:学院_PK*/

createuniqueindex学院_PKon学院(学院代码ASC);ifexists(select1fromsys.sysforeignkeywhererole二'FKj安排_安排4_管理员')thenaltertable安排deleteforeignkeyFK_安排_安排4_管理员endif;dropindex辻exists管理员.教务处_PK;/*Table:管理员droptableifexists管理员;/*Table:管理员*/createtable管理员(管理员代码学生姓名教师电话管理员代码学生姓名教师电话管理员邮箱varchar(20)varchar(8)varchar(20)char(10)notnull,null,null,null,constraintPK_管理员primarykey(管理员代码)/*Index:教务处_PK/*Index:教务处_PK*/createuniqueindex教务处_PKon管理员(管理员代码ASC

);ifexists(select1fromsys.sysforeignkeywhererole二'FK_从属_从属_教师')thenaltertable从属deleteforeignkeyFK_从属—从属—教师endif;ifexists(select1fromsys.sysforeignkeywhererole='FK_$排_安排2_教师')thenaltertable安排deleteforeignkeyFK_安排_安排2_教师endif;dropindex辻exists教师.教师_PK;droptableifexists教师;/*Table:教师*/createtable教师(教工号varchar(10)notnull,学生姓名varchar(8)null,教师电话varchar(20)null,教师邮箱varchar(30)null,constraintPK_教师primarykey(教工号));*//*Index:教师_PK

*//*Index:教师_PKcreateuniqueindex教师_PKon教师(教工号ASC);ifexists(select1fromsys.sysforeignkeywhererole='FK_分配_分配2_教室')thenaltertable分配deleteforeignkeyFK_分配_分配2_教室endif;ifexists(select1fromsys.sysforeignkeywhererole='FK_$排_安排3_教室')thenaltertable安排deleteforeignkeyFK_安排_安排3_教室endif;dropindexifexists教室.教室_PK;/*Table:教室droptableifexists教室;/*Table:教室*/createtable教室(教室编号varchar(10)notnull,所属校区varchar(10)null,教学楼varchar(8)null,constraintPK_教室primarykey(教室编号)/*Index:教室_PK/*Index:教室_PK*/

createuniqueindex教室_PKon教室(教室编号ASC);ifexists(select1fromsys.sysforeignkeywhererole二'FKJ选择_选择_学生')thenaltertable选择deleteforeignkeyFK_选择_选择_学生endif;ifexists(select1fromsys.sysforeignkeywhererole二'FKJ选择_选择2_课程')thenaltertable选择deleteforeignkeyFK_选择_选择2_课程endif;dropindexifexists选择.选择2_FK;dropindexifexists选择.选择_FK;dropindexifexists选择.选择_PK;/*Table:选择droptableifexists选择;/*Table:选择*/createtable选择(学号varchar(10)notnull,课程代码varchar(8)notnull,constraintPK_选择primarykeyclustered(学号,课程代码)

);/*Index:选择_PK*/createuniqueclusteredindex选择_PKon选择(学号ASC,);/*Index:选择_PK*/createuniqueclusteredindex选择_PKon选择(学号ASC,课程代码ASC);/*Index:选择_FK*/createindex选择_FKon选择(学号ASC);/*Index:选择2_FK*/createindex选择2_FKon选择(课程代码ASC);altertable选择addconstraintFK_选择_选择_学生foreignkey(学号)references学生(学号)onupdaterestrictondeleterestrict;altertable选择addconstraintFK_选择_选择2_课程foreignkey(课程代码)references课程(课程代码)onupdaterestrictondeleterestrict;ifexists(select1fromsys.sysforeignkeywhererole='FK分配_分配_学生')thenaltertable分配deleteforeignkeyFK_分配_分配_学生endif;ifexists(select1fromsys.sysforeignkeywhererole二'卩《_分配_分配2_教室')thenaltertable分配deleteforeignkeyFK_分配_分配2_教室endif;dropindexifexists分配.分配2_FK;dropindexifexists分配.分配_FK;dropindexifexists分配.分配_PK;droptableifexists分配;/*Table:分配*/createtable分配(

学号varchar(10)notnull,教室编号varchar(10)notnull,constraintPK_分配primarykeyclustered(学号,教室编号));/*Index:分配_PK*/createuniqueclusteredindex分配_PKon分配己(学号/*Index:分配_PK教室编号ASC/*Index:分配_FK/*Index:分配_FK*/createindex分配_FKon分配(学号ASC/*Index:分配2_FK/*Index:分配2_FK*/createindex分配2_FKon分配(教室编号ASC);altertable分配addconstraintFK_分配_分配_学生foreignkey(学号)references学生(学号)onupdaterestrictondeleterestrict;altertable分配addconstraintFK_分配_分配2_教室foreignkey(教室编号)references教室(教室编号)onupdaterestrictondeleterestrict;ifexists(select1fromsys.sysforeignkeywhererole='FK安排_安排_课程')thenaltertable安排deleteforeignkeyFK_安排_安排_课程endif;ifexists(select1fromsys.sysforeignkeywhererole='FK_$排_安排2_教师')thenaltertable安排deleteforeignkeyFK_安排_安排2_教师endif;ifexists(select1fromsys.sysforeignkeywhererole='FK_$排_安排3_教室')thenaltertable安排deleteforeignkeyFK_安排_安排3_教室endif;ifexists(select1fromsys.sysforeignkeywhererole='FK_$排_安排4_管理员’)thenaltertable安排deleteforeignkeyFK_安排_安排4_管理员endif;dropindexifexists安排.安排4_FK;dropindex辻dropindex辻exists安排.安排3_FK;dropindexifexists安排.安排2_FK;dropindexifexistsdropindexifexists安排.安排2_FK;dropindexifexists安排.安排_FK;dropindexifexists安排.安排_PK;droptableifexists安排;/*Table:安排*//*Table:安排*/createtable安排(课程代码教工号教室编号管理员代码上课时间varchar(8)varchar(10)课程代码教工号教室编号管理员代码上课时间varchar(8)varchar(10)varchar(10)varchar(20)char(10)notnull,notnull,notnull,notnull,null,constraintPK_安排primarykeyclustered(课程代码,教工号,教室编号,管理员代码)/*Index:安排_PK/*Index:安排_PK*/createuniqueclusteredindex安排_PKon安排(课程代码ASC,教工号ASC,教室编号ASC,管理员代码ASC);/*Index:安排_FK*/createindex安排_FKon安排(课程代码ASC);/*Index:安排2_FK*/createindex安排2_FKon安排(教工号ASC);/*Index:安排3_FK/*Index:安排3_FK*/createindex安排3_FKon安排(教室编号ASC);/*Index:安排4_FK*/createindex安排4_FKon安排(管理员代码ASC);altertable安排addconstraintFK_安排_安排_课程foreignkey(课程代码)references课程(课程代码)onupdatere

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论