数据库课程设计学校教务管理系统.docx
《数据库课程设计学校教务管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计学校教务管理系统.docx(16页珍藏版)》请在冰点文库上搜索。
数据库课程设计学校教务管理系统
学校教务管理的数据库设计
I.需求分析:
随着学校的规模不断扩大,学生数量急剧增加,有关学生的各类信息量也成倍增加。
面对庞大的信息量,就需要有学生教务信息管理系统来提高学生管理工作的效率。
通过如此的系统,能够做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。
学校为方便教务管理,需开发一个教务管理系统。
为便于学生,老师,教务管理人员信息查询,注册和信息修改,学校把学生的信息,包括姓名、性别、年龄,成绩等信息输入教务管理系统的数据库,然后在管理终端能够对数据进行查询和修改操作。
要求系统能有效、快速、安全、靠得住和无误的完成上述操作。
并要求系统界面要简单明了,易于操作,程序利于保护。
一、信息分析:
(1)学校教务管理的数据库,包括以下信息:
学校有若干个系,每一个系有若干名教师和学生,每一个教师能够担任若干门课程,并参加多个项目,每一个学生能够同时选修多门课程,每门课程每学期可能有多名教师教授,课程分为必修、选修、任选三种。
(2)学校的教务管理的信息包括:
学生姓名、学号、班级、性别、班号,籍贯、诞生日期、所属系编号、所属系名称、系主任,教师编号,教师姓名,教师职称,教师所讲课程、课程编号,课程名,课程学分,项目编号,项目名称,项目负责人,学生选修课程及成绩。
学生若是课程合格,能够取得该课程的学分。
学生的各类型课程学分和总学分累计到必然程度,学生能够毕业。
按照成绩高低,能够计算学分积。
合格学生的学分积公式:
课程学分积=(该课程成绩-50)/10×该课程学分。
二、功能分析:
(1)用户能够利用友好的图形用户界面实现对系、班级、学生、教师、课程、选课等内容进行增、删、改,和对信息的查询。
对于查询要实现比较壮大的功能,包括精准查询、模糊查询和统计查询。
(2)具体查询在数据库中要实现以下的功能:
1)所有来自某省的男生
2)所有某课程成绩>90的同窗
3)教授某课程的老师
4)某班年龄最大的5名同窗
5)某年以后诞生的男同窗
6)选修某课程的学生及其成绩
7)没有讲课的教师
8)某学生所选课程的总学分
9)教授某学生必修课程的老师情形
10)某学生选修了哪些系的课程
11)某系学生所学的所有课程
12)按总学分找出某系学习最好的5名同窗
13)按总学分积找出某系学习最好的5名同窗
14)能够毕业的学生
三、软、硬件配置
程序运行的环境:
具体运行环境为软件方面,操作系统为windows2000/XP,而且系统装有SQLServer2000数据库管理系统。
硬件方面,CPU主频500MHz以上,内存128M或更高。
硬盘剩余空间不能少于30M。
四、工程预算及时刻安排:
✓工程预算:
由于程序本身并非十分复杂,实现起来软硬件需求都不算高,具体花费在此就不计算了。
✓
时刻安排:
五、数据字典:
1系表:
列名
数据类型
约束
系号
Char(7)
不为空、唯一
系名称
VarChar(30)
不为空
班级数
Smallint
----
系主任
VarChar(20)
不为空、唯一
2班级表:
列名
数据类型
约束
班级号
Char(7)
不为空、唯一
班级名称
VarChar(30)
不为空
所在系号
Char(7)
参照其它表
3学生信息表:
列名
数据类型
约束
学号
Char(7)
不为空、唯一
姓名
VarChar(20)
不为空
性别
Char
(2)
男或女、默认男
年龄
Smallint
----
所在班级号
Char(7)
参照其它表
籍贯
VarChar(20)
----
所在系号
Char(7)
----
4教师信息表:
列名
数据类型
约束
教师编号
Char(7)
不为空、唯一
姓名
VarChar(20)
不为空
性别
Char
(2)
男或女、默认男
年龄
Smallint
----
职务
VarChar(30)
----
联系电话
Char(8)
所在系号
Char(7)
参照其它表
5课程表:
列名
数据类型
约束
课程号
Char
(2)
不为空、唯一
课程名
VarChar(30)
不为空
学分
Smallint
----
学时
Integer
----
类型
Char(6)
取值(必修课、选修课)、默认(必修课)
6学生成绩表:
列名
数据类型
约束
学号
Char(7)
与课程号联合做主键、参照其它表
课程号
Char
(2)
与学号联合做主键、参照其它表
成绩
Numeric(4,1)
>=0and<=100
学分
Smallint
----
7教师讲课信息表:
列名
数据类型
约束
教师编号
Char(7)
联合主键、参照其它表
课程号
Char
(2)
联合主键、参照其它表
开设该课程的班级号
Clno(7)
联合主键、参照其它表
II.详细设计方案:
一、概念设计:
1、整体功能概念结构图:
二、查找所给问题的实体
系统中涉及到的实体:
班级,学生,教师,课程,学院中的各个系。
查找实体的关联
①班级、学生之间是一对多关系;
2学生、课程之间是多对多关系;
③系、班级、教师之间是一对多关系;
④教师、课程、班级之间是多对多关系;
查找实体关键字
①班级的关键字----班级号;
②学生的关键字----学号;
③教师的关键字---教师编号;
④课程的关键字----课程号;
⑤系的关键字----系号。
2.3设计E-R图:
1)整体功能流程图
2)学生E-R图:
3)班级E-R图:
4)课程E-R图:
5)教师E-R图:
6)全局E-R图:
二、逻辑设计:
一、将E―R模型转换为等价的关系模式。
教师(教师编号,教师姓名,教师职称,教师所讲课程,教师所属系号);
学生(姓名、学号、班级、性别、班号,籍贯、诞生日期、所属系编号);
班级(班级号,所在系号,班级名称);
课程(课程号,课程名,学分,学时,类型);
系(系号,系名称,班级数,系主任);
成绩(学号,课程号,成绩,学分);
教师讲课(教师编号,课程号,班级号)。
2、按需要对关系模式进行规范化。
通过度析,教师表中的联系电话这一属性不符合第一范式,它是一个多值属性(需求分析取得教师的联系电话不止一个),所以现将联系电话属性拆分为三个属性----办公电话,移动电话和住宅电话。
即:
教师(工作证号码,姓名,性别,年龄,办公室号,职称,职务,办公电话,移动电话,住宅电话);
再经分析,概念模型E-R图中所涉及的表都能知足第三范式的要求
3、对规范化后的模式进行评价。
通过上一步的调整以后,模式已经大体符合题目要求,能够直接将规范化以后的模型应用于物理设计。
4、按照局部应用的需要,设计用户外模式。
三、物理设计:
1、数据格式化:
按照逻辑设计的结果,取得适合SQLServer2000的数据格式和类型。
系统中具体的数据如下列表所示:
1Department:
列名
数据类型
约束
Dno
Char(7)
Primarykey
Dname
VarChar(30)
Notnull
DClassNumber
Smallint
----
Grademaster
VarChar(30)
Notnull
2Class:
列名
数据类型
约束
Clno
Char(7)
Primarykey
Speciality
VarChar(30)
Notnull
Dno
Char(7)
ReferenceDepartment(Dno)
3Student:
列名
数据类型
约束
Sno
Char(7)
Primarykey
Sname
VarChar(20)
Notnull
Ssex
Char
(2)
In(‘男’,’女’),default(‘男’)
Sbirthday
Datetime
----
Clno
Char(7)
ReferenceClass(Clno)
Splace
VarChar(20)
----
Dno
Char(7)
Primarykey
4Teacher:
列名
数据类型
约束
Tno
Char(7)
Primarykey
Tname
VarChar(20)
Notnull
Tsex
Char
(2)
In(‘男’,’女’),default(‘男’)
TBirthday
Datetime
----
Tfunction
VarChar(30)
----
ThomeTel
Char(8)
Like‘[0-9]’
5Course:
列名
数据类型
约束
Cno
Char
(2)
Primarykey
Cname
VarChar(30)
Notnull
Credit
Smallint
----
Ctime
Integer
----
Ctype
Char(6)
In(’必修课’、’选修课’)、Default(’必修课’)
6Grade:
列名
数据类型
约束
Sno
Char(7)
Primarykey,referenceStudent(Sno)
Cno
Char
(2)
Primarykey,referenceCourse(Cno)
Gmark
Numeric(4,1)
>=0and<=100
Credit
Smallint
----
7TC:
列名
数据类型
约束
Tno
Char(7)
Primarykey,referenceTeacher(Tno)
Cno
Char
(2)
Primarykey,referenceCourse(Cno)
Clno
Clno(7)
Primarykey,referenceClass(Clno)
2、表之间的联系:
III.系统保护设计:
一、安全性要求:
在那个系统中应该有三种用户:
第一种是学生,这部份用户对系统中的数据只有查询的权限,没有任何修改的权限;第二种是教师。
这部份用户对系统中的数据不仅有查询的权限,对有关其所涉及的课程的学生成绩还具有添加、修改、删除的功能;第三种用户是系统的管理员。
他具有最高权限,能够对系统中的任何数据作任何操作。
一般由学院的特定的人专门承担此任务。
二、利用方式要求:
用户在可视化的环境中利用该系统,通过用户名和口令对用户的访问(及权限)进行限制。
此系统平均应该能知足500人同时访问系统中的数据库,最顶峰应能达到平均访问量得两倍。
查询响应时刻不该该对于3秒。
三、可扩充性要求:
系统中的数据库能够随学院规模的转变进行动态的扩充或缩减。
功能按照学院不同时期的不同要求做出适当的增删。
IV.SQL查询
一、所有来自北京的男生:
Selectsname
Fromstudent
Wheressex=’男’andsplace=’北京’;
二、所有成绩>90的同窗
Select,sname
FromStudent,Grade
Where=And
>90;
三、教授数据库的老师
Select,Tname
FromTeacher,TC,Course
Where=And
=And
=’DB’;
四、03班年龄最大的5名同窗
五、某年以后诞生的男同窗
六、选修某课程的学生及其成绩
七、没有讲课的教师
八、某学生所选课程的总学分
九、教授某学生必修课程的老师情形
十、某学生选修了哪些系的课程
十一、某系学生所学的所有课程
十二、按总学分找出某系学习最好的5名同窗
十三、按总学分积找出某系学习最好的5名同窗
十四、能够毕业的学生
V.参考文献
《数据库系统概论》高等教育出版社王珊
《SQLServer2000上机实验指导》清华大学出版社
及其它相关参考书
VI.课程设计心得体会:
从此课程设计的进程中,使我充分熟悉到了一个道理:
“好事多磨”,就是说做任何事之前必然要把要做的事计划好,对可能出现的问题预先作好解决的方案。
在做设计之前,我对教务管理系统的熟悉只是停留在表面,缺乏本质和深切地研究调查,以至与在着手设计的进程中,各类意想不到的困难接踵而至。
面对各种困难而又不明白如何解决,无从下手的我后来从头对这次的设计做了认真细致的计划和调查,从头做了全面的分析,不断完善系统说明书。
这使我在以后的设计当中作到了事半功倍的效果,整个设计流程清楚明了。
固然,在这次的设计中最大的困难就是常常由于一些小错误而花费大量时刻。
人们常说:
“办法总比困难多”,通过查阅大量相关资料,与老师和同窗的不断交流使我对数据库有了较详细的熟悉,并能进行一些工作量不是专门大的开发。
其实,这次设计的收获不单单是学会了设计数据库,我感觉如此的进程相当重要,相当做心义,最大的收获就是对我这些年大学学习的总结和培育了解决困难的信心和能力,使我对这些年所学知识能够融会贯通,又不断丰硕了新知识。
正像老师说的一样,设计使得咱们对几年来所学的专业课有了更为深刻的熟悉,使得知识取得了巩固和提高,取得了比以往学习任何一门课程都大的提高和进步。
这里也要特别感激指导老师的帮忙和支持,和在这进程中给予帮忙的同窗和朋友。
这次设计是一次宝贵的锻炼机缘。
这些是我对这次设计的最终感想。
由于本人水平有限,错误在所不免,设计进程中有许多不敬如人意的地方。
我想,这也是在以后的学习和工作中鼓励我不断学习,不断前进的动力。
老师认真负责的工作态度、严谨的治学风格,使我深受启发;和同窗们之间的彼此探讨也使我获益匪浅。
我除大体学会开发数据库外,更重要的是学到了兢兢业业,奋发向上的精神,这种精神是我此后人生前进道路上的一种力量。