完整版成绩管理系统数据库设计.docx
《完整版成绩管理系统数据库设计.docx》由会员分享,可在线阅读,更多相关《完整版成绩管理系统数据库设计.docx(35页珍藏版)》请在冰豆网上搜索。
完整版成绩管理系统数据库设计
2013-2014学年第2学期经济管理学院实践教学
成绩评定表
实践教学项目
数据库系统原理与设计
专业
学生姓名
班级学号
评
语
成绩
日期
2014年6月4日
课程实践任务书
学院
经济管理学院
专业
姓名
学号
课程名称
数据库系统
原理与设计
设计题目
成绩管理系统数据库设计
设计要求与任务:
通过设计一完整的数据库,使学生掌握数据库设计各阶段的输入、输出、设计环境、目标和方法。
熟练掌握两个主要环节——概念结构设计与逻辑结构设计;熟练的使用SQL语言实现数据库的建立、应用和维护。
具体要求如下:
1.每人一题,题目可自拟。
2.要求学生根据题目的需求描述,进行实际调研,提出完整的需求分析报告。
3.独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容。
工作计划与进度安排:
第1-2天:
需求分析,对系统的功能需求和数据需求进行分析
第3-4天:
概念结构设计画出系统E-R图
第5天:
逻辑结构设计
第6-7天:
数据库的实施与运行
第8-10天:
编写报告,准备答辩。
指导教师(签字):
2014年5月6日
专业负责人(签字):
2014年5月6日
学院院长(签字):
2014年5月6日
摘要
随着计算机技术和数据库技术的高速发展,已经在社会经济、政治、军事、文化、卫生和教育等领域得到了广泛的应用,并且随着信息化水平的提高,越来越多的领域正在享受计算机技术和数据库技术带来的高效率、高经济效益等优势。
人们的学习、工作和生活各个方面的质量得到了极大的改善和提高。
以现代计算机技术和数据库管理技术为实现基础的数字化教学管理正在蓬勃发展,因此,加强学校信息化资源的管理和利用,提高学校管理信息化水平,是目前学校学生成绩管理的一个大趋势,也是学校信息管理的发展要求。
高校成绩管理系统是数字化校园的一个重要组成部分,可以提高学校信息化管理水平,是学校的管理更加的科学、系统和高效。
本次课程设计主要涉及到对成绩管理系统进行需求分析,概念结构设计,逻辑结构设计和数据库的实施等几部分工作。
关键字:
数据库技术;成绩管理系统;概念结构设计;逻辑结构设计
1前言
1.1课题简介
随着教育制度的改革,高校不断地扩招,学生数量与新兴专业种类也在不断的增加,因此学生成绩管理的工作就变的比以往更复杂。
学生成绩的特殊性要求学生成绩信息及时准确的更新,开发一个成绩管理系统可以及时更新学生成绩信息,以满足学生能够及时查询到自己相关成绩信息。
为了适应当代社会人们高度强烈的时间观念,学生成绩管理系统为教学办公带来了极大的方便。
学生成绩管理系统就是为了更好的管理学生成绩而开发的数据管理软件。
它对于一个学校是不可缺少的重要组成部分,它的内容对于学校的决策者和管理者来说都是至关重要的。
目前各个高校的基本情况是:
每次考试结束,老师们都需要统计打了的学生成绩,这些数据的归档、统计工作任务中,统计结果后往往错误百出。
工作量直达,查询、维护都有不同程度的问题存在。
所以,学生成绩管理系统为用户提供充分的信息和快捷的查询手段,实现学生基本信息,成绩的录入、删除、查询维护以及成绩统计分析等几个方面的功能,是现实问题的迫切要求。
1.2设计目的
对成绩管理系统进行数据库的设计,目的是为了对学生成绩进行系统的管理,能够方便学校管理人员对学生成绩进行录入、统计、添加、修改、删除,以及方便用户对信息或成绩进行查询和打印;除此之外,还可以更便捷地围绕成绩管理对与成绩相关的其他信息,例如:
学院信息、专业信息、班级信息、学生信息、教师信息、课程信息等相关信息的管理,从而提高学校的办公效率与准确率,实现一个信息化、现代化的成绩管理系统。
2需求分析
2.1业务需求及处理流程
成绩管理系统的主要业务包括:
管理员进行成绩、学生信息、教师信息、课程信息等的录入、修改、删除业务,学生进行成绩的查询、个人信息的查询、密码修改的业务等。
本次给出的主要是“查询”和“修改密码”的业务流程。
如图2-1示和图2-2示:
图2-1成绩查询业务流程图图2-2修改密码业务流程图
2.2功能需求分析
功能需求分析是描述系统应提供的功能和服务。
成绩管理系统主要的功能和数据需求分析如图2.3示:
图2.3成绩管理系统功能模块图
2.2.1用户及权限管理
用户输入自己有效的用户名和密码登入系统。
为了保护本校师生的信息,每位有效的用户都具有自己的用户名、密码、用户标识等标的物。
⑴管理员用户:
系统的管理员能够具有实现整个大学的学生信息和成绩有关的录入、修改、删除、查询等操作特权,并可以对大学的教师信息进行添加、删除、修改等操作。
⑵学生用户:
学生用户的权限应该不仅仅控制在对成绩或个人信息的进行查询,而且可以对的自己的登录密码进行修改。
2.2.2基本数据管理
⑴院系信息管理。
需要管理学院号、学院名、学院地址、学院内的教师人数等信息。
⑵专业信息管理。
需要管理专业代码、专业名称、所属学院、班级数量等信息。
⑶班级信息管理。
需要管理班级号、班级名称、所属专业、年级、班级人数等信息。
⑷学生信息管理。
需要管理学生的学号、学生的姓名、性别、出生日期、联系电话、民族、家庭住址等信息
⑸教师信息管理。
需要管理教师编号、教师姓名、职称、所授课程等信息。
⑹课程信息管理。
需要管理课程号、课程名称、课时、学分等信息。
2.2.3学生成绩管理
提供学生考试成绩的基本录入、修改、查询、打印等基本管理功能,以及学生单科和总成绩的相关统计功能。
2.2.4信息查询
⑴基本信息查询。
学生不仅可以查询自己的个人基本信息,也可以查询自己选修的课程信息,学分信息等。
教师用户也可以进行相关的个人信息的查询以及所授课程的安排等。
⑵学生成绩查询。
包括快捷查询和组合查询,前者可以直接查询学年成绩,对本学生在学校的所以成绩进行查询;而后者组合查询,可以查询某一学年某一学期的成绩情况,也可以查询到某门课的学生选修情况,总之可以根据不同需要查询不同学生样式的成绩单。
2.2.5系统管理
对用户管理和系统进行初始化设置;对数据进行备份,防止数据的丢失而造成不必要的损失;当用户进入系统遇到问题时可以启动系统帮助,以解决自己的问题。
2.3业务规则分析
业务规则分析主要是分析数据之间的约束以及数据库约束。
基于上述功能需求,通过进一步了解,成绩管理系统业务规则如下:
(1)每个用户都有自己唯一的用户名和密码,只有用户名和密码都对的时候才能登录成功,只有登录成功之后才可以进行信息的查询和密码的修改。
(2)每个学生由学号唯一标识,学号由所在学院所在专业所在班级的编号顺序生成。
(3)每个教师由教师编号唯一标识,教师编号由所在学院所在教研室以及所在教研室的编号顺序生成。
(4)每门课程由课程号唯一标识,课程号由所属学院所属专业方向的编号顺序生成。
(5)一个学院可以设置很多专业,一个专业只能存在于一个学院。
(6)一个专业可以包含很多班级,一个班级只能包含于专业。
(7)一个班级可以有很多学生,一个学生只能为一个班级所有。
(8)一个学院可以聘用很多教师,一个教师只能被一个学院所聘用。
(9)一个教师可以给很多学生授课,一个学生也可以听很多教师讲课。
(10)一个学院可以包含很多的课程,一个课程只能归属于一个学院。
(11)一个学生可以选修很多课程,一个课程也可以被很多学生选修。
(12)一份成绩单上可以有所有课的成绩也可以只有某一学期或学年的成绩,根据自己查询信息的不同,体现不同的内容。
(13)管理员会根据考试情况更新学生的成绩,学生可以根据情况查询自己的成绩。
(14)管理员会每年对学生的基本信息进行修改,大四毕业了需要对档案进行处理,大一需要添加新的档案,大二、大三需要对档案上的信息进行更新。
(15)一个学生可以给自己的所有课老师进行评价,一课教师可以对自己的所有学生进行评价。
完成需求分析后,接下来的任务就是根据上述结果设计数据库的概念模型,即E-R模型,包括确定实体集、联系集及属性。
3概念结构设计
3.1局部E-R图
3.1.1确定实体集及属性
(1)学院实体集。
其属性有:
学院号、学院名、学院地址、教师人数等。
如图3-1示:
图3-1学院实体集
(2)专业实体集。
其属性有:
专业代码、专业名称、所属学院、班级数量等。
如图3-2示:
图3-2专业实体集
(3)班级实体集、其属性有:
班级代码、班级名称、所属学院、年级、班级人数等。
班级人数为派生属性,由班级代码所产生的。
如图3-3示:
图3-3班级实体集
⑷学生实体集。
其属性有:
学号、学生姓名、性别、出生日期、联系电话、民族、家庭住址等。
其中家庭住址为复合属性,它由省份、城市、具体地方组成。
电话号码为多值属性。
如图3-4示:
图3-4学生实体集
(5)课程实体集。
其属性有:
课程号、课程名称、课时、学分等。
如图3-5示:
图3-5课程实体集
⑹教师实体集。
其属性有:
教师编号、教师姓名、职称、所授课程等。
如图3-6示:
图3-6教师实体集
3.1.2确定联系集及属性
⑴聘用联系集。
实体集学院与教师之间的一对多联系集,表明一个学院可以聘用多个教师,但一个教师只能被一个学院所聘用,联系属性为聘用日期。
如图3-7示:
1m
图3-7聘用联系集
⑵设置联系集。
实体集学院与专业之间的一对多联系集,表明一个学院可以设置很多专业,但一个专业只能属于一个学院。
如图3-8示:
1m
图3-8设置联系集
⑶包含联系集。
专业实体集与班级的一对多联系集,表明一个专业可以包含很多班级,但一个班级只能属于以个专业。
如图3-9示:
1m
图3-9包含联系集
⑷所有联系集。
班级实体集与学生的一对多联系集,表明一个专业可以有很多学生,但一个学生只能为一个班级所有。
如图3-10示:
1m
图3-10所有联系集
⑸授课联系集。
教师实体集与学生的多对多联系集,表明一个教师可以给多个学生授课,一个学生也可以听多个教师讲课。
如图3-11示:
mn
图3-11授课联系集
⑹归属联系集。
学院实体集与课程的一对多联系集,表明一个学院可以有很多门的课程,但一门课程只能归属为一个学院。
如图3-12示:
1m
图3-12归属联系集
⑺选修联系集。
学生实体集与课程的多对多联系集,表明一个学生可以选修很多门课程,一门课程也可以被很多学生选修,联系属性为成绩。
如图3-13示:
mn
图3-13选修联系集
3.2全局E-R图
包含上述涉及的全部实体集、联系集及其描述属性,如图3-14示
1
1
1
m
m
n
m
1
mmn
1mm
图3-14全局E-R图
4逻辑结构设计
4.1E-R图向关系模型的转换
根据E-R模型转换为关系模型的原则,可将其转换为如下关系模型:
(注:
有下划线的属性为主码,有波浪线的属性为外码)
4.1.1由实体集转化而来的关系模型
1.学院实体集:
学院(学院号,学院名,学院地址,教师人数)
2.专业实体集
专业(专业代码,专业名称,所属学院,班级数量,学院号)
3.班级实体集
班级(班级代码,班级名称,所属专业,年级,班级人数,专业代码)
4.学生实体集
学生(学号,姓名,性别,出生日期,联系电话,民族,家庭住址,班级代码)
5.教师实体集
教师(教师编号,教师姓名,职称,所授课程,学院号,聘用日期)
6.课程实体集
课程(课程号,课程名称,课时,学分,学院号)
4.1.2由联系集转化而来的关系模型
1.授课联系集
授课(教师编号,学号)
2.选修联系集
选修(学号,课程号,成绩)
4.2数据模型的优化
根据第一范式的定义可知:
如果关系模型r(R)的每一个属性对应的域值都是不可分的,则称r(R)属于第一范式。
而学生关系模型中的家庭地址是一个复合属性,还可以再进一步分为省份、城市、具体地方,所以学生关系模型不符合第一范式的要求。
可改为如下内容:
学生(学号,姓名,性别,出生日期,联系电话,民族,省份,城市,具体地方,班级代码)
5数据库的实施
5.1数据库和基表的创建
5.1.1建立成绩管理系统数据库
创建数据库的语句:
CREATEDATABASE成绩管理系统
ON
(NAME=成绩管理系统,
FILENAME='E:
\programfiles\1204090214\成绩管理系统.mdf',
SIZE=3mb
MAXSIZE=10mb,
FILEGROWTH=5mb)
LOGON
(NAME=成绩管理系统_log,
FILENAME='E:
\programfiles\1204090214\成绩管理系统.ldf',
SIZE=1mb
MAXSIZE=5mb,
FILEGROWTH=1mb)
建立数据库的结果如图5.1示:
图5.1建立成绩数据库系统
5.1.2建立各种基本表
1.建立学院信息表
SQL语句:
CREATETABLE学院信息表(
学院号char(10)NOTNULL,——学院号
学院名varchar(20)NOTNULL,——学院名
学院地址varchar(40)NULL,——学院地址
教师人数smallintNULL,——教师人数
PRIMARYKEY(学院号)
)
建立学院信息表结果如图5.2,图5.3示:
图5.2创建学院信息表
图5.3输入学院信息表名
2.建立专业信息表
SQL语句:
CREATETABLE专业信息表(
专业代码char(10)NOTNULL,——专业代码
专业名称varchar(20)NOTNULL,——专业名称
所属学院varchar(20)NULL,——所属学院
班级数量smallintNULL,——班级数量
学院号char(10)NOTNULL,——学院号
PRIMARYKEY(专业代码),
FOREIGNKEY(学院号)
)
建立专业信息表如图5.4,5.5示:
图5.4创建专业信息表
图5.5输入专业信息表名
3.建立班级信息表
SQL语句:
CREATETABLE班级信息表(
班级代码char(10)NOTNULL,——班级代码
班级名称varchar(20)NOTNULL,——班级名称
所属专业varchar(20)NULL,——所属专业
年级intNULL,——年级
班级人数smallintNULL,——班级人数
专业代码char(10)NOTNULL,——专业代码
PRIMARYKEY(班级代码),
FOREIGNKEY(专业代码)
)
建立班级信息表如图5.6,5.7示:
图5.6创建班级信息表
图5.7输入班级信息表名
4.建立学生信息表
SQL语句:
CREATETABLE学生信息表(
学号char(10)NOTNULL,——学号
姓名varchar(20)NOTNULL,——姓名
性别char
(2)NULL,——性别
出生日期datetimeNOTNULL,——年级
联系电话varchar(13)NULL,——联系电话
民族varchar(20)NOTNULL,——民族
省份varchar(20)NULL,——省份
城市varchar(20)NULL,——城市
具体地方varchar(20)NULL,——具体地方
班级代码char(10)NOTNULL,——班级代码
PRIMARYKEY(学号),
FOREIGNKEY(班级代码))
建立班级信息表如图5.8,5.9示:
图5.8创建学生信息表
图5.9输入学生信息表名
5.建立教师信息表
SQL语句:
CREATETABLE教师信息表(
教师编号char(10)NOTNULL,——教师编号
教师姓名varchar(20)NOTNULL,——教师姓名
职称varchar(20)NULL,——职称
所授课程varchar(20)NULL,——所授课程
学院号char(10)NOTNULL,——学院号
聘用日期datetimeNULL,——聘用日期
PRIMARYKEY(教师编号),
FOREIGNKEY(学院号)
)
建立教师信息表如图5.10,5.11示:
图5.10创建教师信息表
图5.11输入教师信息表名
6.建立课程信息表
SQL语句:
CREATETABLE课程信息表(
课程号char(10)NOTNULL,——课程号
课程名称varchar(20)NOTNULL,——课程名称
课时smallintNULL,——课时
学分smallintNULL,——学分
学院号char(10)NOTNULL,——学院号
PRIMARYKEY(课程号),
FOREIGNKEY(学院号)
)
建立教师信息表如图5.12,5.13示:
图5.12创建课程信息表
图5.13输入课程信息表名
7.建立授课信息表
SQL语句:
CREATETABLE授课信息表(
教师编号char(10)NOTNULL,——教师编号
学号char(10)NOTNULL,——学号
PRIMARYKEY(教师编号,学号)
)
建立授课信息表如图5.14,5.15示:
图5.14创建授课信息表
图5.15输入授课信息表名
8.建立选修信息表
SQL语句:
CREATETABLE选修信息表(
学号char(10)NOTNULL,——学号
课程号char(10)NOTNULL,——课程号
成绩smillintNULL,——成绩
PRIMARYKEY(学号,课程号)
)
建立教师信息表如图5.16,5.17示:
图5.16创建选修信息表
图5.17输入选修信息表名
5.2数据的载入
1、载入学院基本信息,如图5.18示:
图5.18载入学院基本信息
2、载入专业基本信息,如图5.19示:
图5.19载入专业基本信息
3、载入班级基本信息,如图5.20示:
图5.20载入班级基本信息
4、载入学生基本信息,如图5.21示:
图5.21载入学生基本信息
5、载入教师基本信息,如图5.22示:
图5.22载入教师基本信息
6、载入课程基本信息,如图5.23示:
图5.23载入课程基本信息
7、载入授课基本信息,如图5.24示:
图5.24载入授课基本信息
8、载入选修基本信息,如图5.25示:
图5.25载入选课基本信息
5.3数据的查询
1、在学生信息表中查询“女”学生的学号、姓名、联系电话、民族、出生日期、班级代码,并按班级代码的升序、出生日期的月份降序输出。
查询语句:
SELECT学号,姓名,联系电话,民族,出生日期,班级代码
FROM学生信息表
WHERE性别=‘女’
ORDERBY班级代码,出生日期DESC
查询结果如图5.26示:
图5.26对学生信息表进行查询同时进行排序
2、在学生信息表中查询与‘赵宵’同学在同一个班的同学姓名、性别、出生日期、班级代码。
查询语句:
SELECTa.姓名,a.性别,a.出生日期,a.班级代码
FROM学生信息表a,学生信息表b
WHEREb.姓名=‘赵宵’ANDa.班级代码=b.班级代码
查询结果如图5.27示:
图5.27对学生信息表进行自表连接
3、查询选修了课程名称为“线性代数”的同学的学号和学生姓名。
查询语句:
SELECTa.学号,姓名
FROM学生信息表a,课程信息表b,选修信息表c
WHEREb.课程号=c.课程号ANDc.学号=a.学号
ANDb.课程名称=‘线性代数’
查询结果如图5.28示:
图5.28等值连接进行查询
4、查询平均分在80分以上的每个同学的学号、选课门数、平均分和最高分。
查询语句:
SELECT学号,count(*)门数,avg(成绩)平均分,max(成绩)最高分
FROM选修信息表
GROUPBY学号
HAVINGavg(成绩)>=80
查询结果如图5.29示:
图5.29分组聚合查询
5、在学生信息表中查询联系电话中带‘34’的同学的学号、姓名、性别、省份、城市、具体地方。
查询语句:
SELECT学号,姓名,性别,省份,城市,具体地方
FROM学生信息表
WHERE联系电话LIKE‘%34%’
查询结果如图5.30示:
图5.30字符匹配查询
6、查询年龄大于选修大学英语课的学生的姓名和年龄。
查询语句:
SELECT姓名,year(getdate())-year(出生日期)ASage
FROM学生信息表
WHEREyear(getdate())-year(出生日期)>ANY
(SELECTyear(getdate())-year(出生日期)
FROM学生信息表a,课程信息表b,选修信息表c
WHERE课程名称=‘大学英语’
ANDa.学号=c.学号ANDb.课程号=c.课程号)
查询结果如图5.31示:
图5.31嵌套查询
结束语
通过这几周数据库系统课程设计的锻炼,让我学习到一个系统设计员所需要具备的最基本的技能以及思维方式,同时也进一步理解数据库设计的整个过程,包括需求分析、概念结构设计、逻辑结构设计、系统实施等基本内容。
在此次设计过程中,不仅将老师教的理论知识与自己的实际操作相结合,提高了自己的动手能力,还掌握了SQLSever2000的使用和练习了SQL语言的编写。
虽然学的了很多的知识,但这也从侧面在告诉自己还有很多的不足,比如说一些软件的利用还不是太熟练,自己的理论知识也还有很多欠缺的部分,让我意识到还有很多知识需要我去学习,同时也成为我在今后努力学习的动力。
参考文献
[1]萨师煊、王珊.数据库系统概论.4版.北京:
高等教育出版社,2006
[2]罗运模.完全掌握SQLServer2000.人民邮电出版社,2001
[3]万常选等.数据库系统原理与设计.清华大学出版社,2009
[4]王晟、万科编著.Delphi数据库开发经典案例分析[M].清华大学出版
社,2005
[5]RobP,CoronelC.数据库系统-设计、实现与管理.5版.陈立军等译.北
京:
电子工业