数据库课程设计教学管理.docx
《数据库课程设计教学管理.docx》由会员分享,可在线阅读,更多相关《数据库课程设计教学管理.docx(21页珍藏版)》请在冰豆网上搜索。
![数据库课程设计教学管理.docx](https://file1.bdocx.com/fileroot1/2023-4/16/8f0a733c-638d-42fb-a4c8-7e1a52bba557/8f0a733c-638d-42fb-a4c8-7e1a52bba5571.gif)
数据库课程设计教学管理
目录
1系统概述1
1.1现状分析1
1.2系统目标1
2系统数据库分析2
2.1数据库需求分析2
2.2数据库概念结构分析3
2.3数据库逻辑结构分析4
2.4数据字典5
3数据库操作部分8
3.1数据库创建8
3.2数据库的更新操作13
3.3数据库的查询操作14
3.4数据库的备份和还原操作16
4系统规范化设计17
4.1数据库表的规范化设计17
4.2数据库的完整性设计17
4.3数据库的维护和安全性设计17
5总结19
5.1收获19
5.2不足和改进19
参考文献20
致谢21
1系统概述
1.1现状分析
教学管理是学校的教学工作的主要内容,其信息量大,信息变动频繁历来是各学校的头疼问题,随着人们对用计算机的使用越来越广泛以及互联网络普及,教学管理也已经基本形成了多元的网络化管理,极大的方便了广大师生,也方便了学校对教学工作的管理,大大的提高了教学质量。
该系统的最终用户为学校的师生及教学管理人员。
随着高校的扩招,依靠原来的档案管理教学已经力不从心且效率低下,开发这个教学管理系统已是大势所趋。
1.2系统目标
该系统采用MicrosoftSQLServer2000数据库为开发工具进行设计,SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统。
该版本继承了SQLServer7.0版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可运行在MicrosoftWindows2000等大型多处理器的服务器多种平台使用。
教学管理系统可以实现教学信息的集中管理、分散操作、信息共享,使传统的教学管理朝数字化、无纸化、智能化、综合化的方向发展,并为进一步实现完善的计算机教学管理系统和全校信息系统打下良好的基础。
2系统数据库分析
2.1数据库需求分析
简单说明你系统具备的基本功能,并画出系统功能结构图。
系统功能结构图2.1所示:
学生管理模块:
该模块主要用于管理员登记学生的基本信息
课程管理模块:
该模块主要用于对课程进行查询与更新操作以及课程清单的打印输出
课表管理模块:
该模块主要用用于根据课表来安排教室和课程的时间,以及对学生课表的查询
成绩管理模块:
该模块主要用用于对学生选课的查询,以及学生的成绩查询
2.2数据库概念结构分析
本系统的概念模型如下图2.2.1-图2.2.7示
1
N
M
N
P
M
1
1
N
1
N
2.3数据库逻辑结构分析
本系统的关系模式如下所示:
student(Sno,Sname,Ssex,Cno)
class(Cno,Cname,Cdepartment,Cteacher,Csummen)
GLY(Gno,Gname,Gleibie,Gphone)
Classroom(CRno,CRname,CRleibie,CRsummen)
Coursetable(Tno,Tname,Cno,Gno)
Course(COno,COname,COtime,COcredit,COterm,COleibie)
SC(Sno,COno,Grade)
COarrange(Tno,COno,CRno,CCtime)
2.4数据字典
本数据库系统的数据字典如下所示
(1)表名:
student(Sno,Sname,Ssex,Cno),其含义:
学生信息表,存储学生的有关信息。
其结构如下表2.4.1所示
表2.4.1学生信息表student
字段名
字段类型
是否为空
说明
备注
Sno
CHAR(20)
NOTNULL
学号
主键
Sname
CHAR(20)
NULL
姓名
Ssex
CHAR(10)
NULL
性别
Cno
CHAR(20)
NULL
班级号
外键
(2)表名:
class(Cno,Cname,Cdepartment,Cteacher,Csummen)其含义班级信息表,储存班级的有关信息。
其结构如下表2.4.2所示
表2.4.2班级信息表class
字段名
字段类型
是否为空
说明
备注
Cno
CHAR(20)
NOTNULL
班级号
主键
Cname
CHAR(20)
NULL
班级名
Cdepartment
CHAR(20)
NULL
班级系别
Cteacher
CHAR(20)
NULL
班主任
Csummen
INT(4)
NULL
人数
(3)表名:
GLY(Gno,Gname,Gleibie,Gphone),其含义管理员信息表,用于储存管理员的基本信息。
其结构如下表2.4.3所示
表2.4.3管理员信息表GLY
字段名
字段类型
是否为空
说明
备注
Gno
CHAR(20)
NOTNULL
管理员
主键
Gname
CHAR(20)
NOTNULL
管理员名
Gleibie
CHAR(10)
NULL
管理类别
Gphone
CHAR(11)
NULL
联系电话
(4)表名:
Classroom(CRno,CRname,CRleibie,CRsummen),其含义教室信息表,用于储存教室的基本信息。
其结构如下表2.4.4所示
表2.4.4教室信息表Classroom
字段名
字段类型
是否为空
说明
备注
CRno
CHAR(20)
NOTNULL
教室号
主键
CRname
CHAR(40)
NULL
教室名
CRleibie
CHAR(40)
NULL
教室类别
CRsummen
INT(4)
NULL
容纳人数
(5)表名:
Course(COno,COname,COtime,COcredit,COterm,COleibie),其含义是课程信息表,用于储存课程的相关信息。
其结构如下表2.4.6所示
表2.4.6课程信息表Course
字段名
字段类型
是否为空
说明
备注
COno
CHAR(20)
NOTNULL
课程号
主键
COname
CHAR(20)
NULL
课程名
COtime
INT(4)
NULL
课程学时
COcredit
INT(4)
NULL
学分
COterm
CHAR(40)
NULL
学期名
COleibie
CHAR(40)
NULL
课程类别
(6)表名:
Coursetable(Tno,Tname,Cno,Gno),其含义课表信息表,用于储存课表的相关信息。
其结构如下表2.4.5所示
表2.4.5课表Coursetable
字段名
字段类型
是否为空
说明
备注
Tno
CHAR(20)
NOTNULL
课表号
主键
Tname
CHAR(20)
NULL
课表名
Cno
CHAR(20)
NOTNULL
班级号
外键
Gno
CHAR(20)
NOTNULL
管理员号
外键
(7)表名:
SC(Sno,COno,Grade),其含义是学生成绩信息表,用于存储学生选课以及选课成绩的相关信息。
其结构如下表2.4.7所示
表2.4.7学生成绩表SC
字段名
字段类型
是否为空
说明
备注
Sno
CHAR(20)
NOTNULL
学生号
主键(外键)
COno
CHAR(20)
NOTNULL
课程号
主键(外键)
Grade
INT(4)
NULL
成绩
(8)表名:
COarrange(Tno,COno,CRno,CCtime),其含义是:
课程安排信息表,用于安排学生选课的选课课程和上课教室以及课程时间。
其结构如下表2.4.8所示
表2.4.8课程安排表COarrange
字段名
字段类型
是否为空
说明
备注
Tno
CHAR(20)
NOTNULL
课表号
主键(外键)
COno
CHAR(20)
NOTNULL
课程号
主键(外键)
CRno
CHAR(20)
NOTNULL
教室号
主键(外键)
CCtime
CHAR(40)
NULL
上课时间
3数据库操作部分
3.1数据库创建
在数据库“教学管理系统”下用SQL语句创建数据表的语句如下:
(1)建立一个“学生”表student
CREATETABLEstudent
(SnoCHAR(20)PRIMARYKEY,
SnameCHAR(20),
SsexCHAR(10)CHECK(Ssex=’男’orSsex=’女’),
CnoCHAR(20),
FOREINGKEY(Cno)REFERENCESclass(Cno)
);
(2)建立一个“班级”表class
CREATETABLEclass
(CnoCHAR(20)PRIMARYKEY,
CnameCHAR(20),
CdepartmentCHAR(20),
CteacherCHAR(20),
CsummenINT(4)
);
(3)建立一个“管理员”表GLY
CREATETABLEGLY
(GnoCHAR(20)PRIMARYKEY,
GnameCHAR(20)NOTNULL,
GleibieCHAR(10),
GphoneCHAR(11)
);
(4)建立一个“教室”表Classroom
CREATETABLEClassroom
(CRnoCHAR(20)PRIMARYKEY,
CRnameCHAR(40),
CRleibieCHAR(40),
CRsummenINT(4)
);
(5)建立一个“课程信息”表Course
CREATETABLECourse
(COnoCHAR(20)PRIMARYKEY,
COnameCHAR(20),
COtimeINT(4),
COcreditINT(4),
COtermCHAR(40),
COleibieCHAR(40)
);
(6)建立一个“课表”表Coursetable
CREATETABLECoursetable
(TnoCHAR(20)PRIMARYKEY,
TnameCHAR(20),
TnoCHAR(20)NOTNULL,
GnoCHAR(20)NOTNULL,
FOREINGKEY(Cno)REFERENCESclass(Cno),
FOREINGKEY(Gno)REFERENCESGLY(Gno)
);
(7)建立一个“学生成绩表”表SC
CREATETABLESC
(SnoCHAR(20),
COnoCHAR(20),
GradeINT(4),
PRIMARYKEY(Sno,COno),
FOREINGKEY(Sno)REFERENCESstudent(Sno),
FOREINGKEY(COno)REFERENCESclass(COno)
);
(8)建立一个“课程安排”表COarrange
CREATETABLEGLYCOarrange
(TnoCHAR(20),
COnoCHAR(20),
CRnoCHAR(10),
CCtimeCHAR(40),
PRIMARYKEY(Tno,COno,CRno),
FOREINGKEY(Tno)REFERENCESCoursetable(Tno),
FOREINGKEY(COno)REFERENCESCourse(COno),
FOREINGKEY(CRno)REFERENCESClassroom(CRno)
);
该教学管理系统各表关系如图3.1:
该数据库各个表的测试数据如下表3.1.1—3.1.8所示
表3.1.1student表数据
表3.1.2class表数据
表3.1.2Classroom表数据
表3.1.3GLY表数据
表3.1.4class表数据
表3.1.5Course表数据
表3.1.6Coursetable表数据
表3.1.7COarrange表数据
表3.1.8SC表数据
3.2数据库的更新操作
1、增加一门新课程操作
INSERTINTOcourseVALUES('10','数据库','18','4','大二下学期','必修')
操作结果如图3.2.1:
2、删除一门课程的操作
DELETEFROMcourseWHERECOno='10'
操作结果如图3.2.2:
3、修改课程数据的操作
UPDATEcourseSETCOtime=COtime+1WHERECOtime<10
操作结果如图3.2.3:
3.3数据库的查询操作
为了更好的查询班级的课表,我们创建一个课程安排表的视图,视图创建语句如下:
CREATEVIEWccbASSELECTCname,COname,CRname,CCtime
FROMclass,classroom,coarrange,course,coursetable
WHEREclass.Cno=coursetable.Cno
ANDcoarrangeCOno=course.COno
ANDclassroom.CRno=coarrange.CRno
ANDcoarrange.Tno=coursetable.Tno
查询视图操作如下:
SELECT*FROMccb
结果如图3.3.1:
查询课程的清单操作如下:
SELECTt*FROMcourse
结果如图3.3.2:
查询学生姓名课程名及成绩
SELECTSname,COname,Grade
FROMstudent,Course,SC
WHEREstudent.Sno=SC.SnoANDCourse.COno=SC.COno
查询结果如图3.3.3:
3.4数据库的备份和还原操作
1、备份数据库选择“教学管理系统”数据,右键选择“所有任务”,然后选择“备份数据库”,弹出对话框,点击其中的“添加”,弹出对话框后,选择要保存的备份文件路径和指定文件名,点击“确定”完成备份工作。
2、还原数据库首先确保“数据库”下有“教学管理系统”数据库,如果没有建立一个以“教学管理系统”命名的数据库,然后选择“教学管理系统”,右键选择“所有任务”,然后点击“还原数据库”,弹出对话框后,选择“从设备”还原,点击“选择设备”,弹出对话框后,点击“添加”,出现对话框,选择数据库的备份文件,点击“确定”,则完成还原数据库的工作。
4系统规范化设计
4.1数据库表的规范化设计
本数据库的表基本满足第三范式。
4.2数据库的完整性设计
创建一个GLY与Coursetable之间的触发器
程序如下:
CREATETRIGGER[管理员触发器]ON[dbo].[GLY]
FORINSERT,UPDATE,DELETE
ASifupdate(gno)begin
declare@gno_newchar(20),@gno_oldchar(20)
select@gno_new=gnofrominserted
select@gno_old=gnofromdeleted
updatecoursetablesetgno=@gno_newwheregno=@gno_old
end
该触发器的功能是在GLY与Coursetable之间连接,使当GLY的某一元组的数据发生改变之后Coursetable中相应的数据也发生相应的改变。
经验证所创建的触发器的作用能正常发挥,数据会随着触发器所发挥的作用而相应的改变。
4.3数据库的维护和安全性设计
在企业管理器中控制用户访问权限
①展开“教学管理系统”数据库,选择“用户”,右键选择“新建数据库用户”,弹出对话框
②在登入名中选择“新建”,在“名称”中填写“管理员”,身份验证“SQLServer身份验证”,密码“1”,数据库选择“教学管理系统”,点击“确定”,重新输入一遍密码,点击“确定”。
③建立新用户成功后,在用户视图中会出现刚才建立好的“管理员”,选中并右键点击“属性”,弹出对话框后,点击“权限”按钮。
④点击“权限”按钮,弹出对话框,在“SELECT,INSERT,UPDATE,DELETE”的表中将该用户允许的操作打钩,设置权限。
设置完成后点击“确定”即可。
⑤打开查询分析器,在“SQLServer身份验证”下面的登录名中写“管理员”,密码填写“1”,点击“确定”。
5总结
5.1收获
通过本次设计与制作,我们了解了教学管理系统的大致工作和流程,在动手能力和处理问题方面的能力有了较大提高,同时更丰富了我们对知识的熟练与掌握,并应用到现实生活工作中,另外我们提高了团结合作的意识。
在这里,我们感谢邓老师及同学在课程设计中给予了我们的大量帮助。
5.2不足和改进
不足:
该教学管理系统是我们第一个课程设计,缺少相应的开发经验,在对系统需求的分析时由于条件限制,没有亲身经历了解系统的需求,对需求的分析比较概念化。
在开发过程中数据对系统的规范化设计不够完善,在部分细节方面的处理可能不够完美。
改进:
在以后的学习中多投入到实践设计中积累经验,亲身体验教学管理的工作流程和需求,在系统的规范化和细节处理方面更好的完善,不断完善该教学管理系统,使其能更好的应用教学系统工作。
参考文献
[1]刘智斌,刘玉萍,杨柳编著.《数据库原理》(第二版).重庆大学出版社,2006
[2]萨师煊,王珊编著.《数据库系统概论》(第四版).高等教育出版社,2006
[3]钱雪忠,陶向东编著.《数据库原理及应用实验指导》.北京邮电大学出版社,2006
[4]龚小勇编著.《关系数据库与SQLServer2000》.机械工业出版社,2004
致谢
本系统在设计和实现的过程中,得到邓小鸿老师的大力支持和帮助。
在系统实现阶段,邓老师从需求分析一直到写论文,对我们严格要求,精心指导使我学到很多东西,并指出本系统的不足之处,提出我继续研究的方向。
此外,在本系统的实现阶段,得到***同学的多次帮助和支持,还有其他组员的多次讨论,使我从中得到了很多的启发。
在此一并感谢。