数据库课程设计学生成绩管理范文.docx
- 文档编号:5538205
- 上传时间:2022-12-19
- 格式:DOCX
- 页数:11
- 大小:78.96KB
数据库课程设计学生成绩管理范文.docx
《数据库课程设计学生成绩管理范文.docx》由会员分享,可在线阅读,更多相关《数据库课程设计学生成绩管理范文.docx(11页珍藏版)》请在冰豆网上搜索。
数据库课程设计学生成绩管理范文
数据库课程设计学生成绩管理
哈尔滨**大学
软件学院
课程设计报告
课程
:
数据库课程设计
题目
:
学生成绩管理
班级
:
专业
:
姓名
:
学号
:
指导教师
:
日期
:
1.数据库的背景及功能需求
数据库技术是计算机科学技术发展最快,应用最为广泛的技术之一。
其在计算机设计,人工智能,电子商务,企业管理,科学计算等诸多领域均得到了广泛的应用,已经成为计算机信息系统和应用的核心技术和重要基础。
本文主要介绍学生成绩管理系统的数据库设计,从需求分析到数据库的运行与维护都进行详细的叙述。
本系统是利用SQL开发出来的。
经过SQL建立学生成绩管理系统,大大方便和简化了数据的查询和处理,管理员能够经过SQL语言对表内数据进行添加,删除,修改,查询等操作,还能够建立多用户,对其使用权限进行分配和回收。
本文分为4部分,第一部分是课题简介及设计的内容与目的,需求分析,此阶段是数据库设计的起点。
第二部分是概念设计,逻辑结构设计,它是将需求分析的用户需求抽象为信息结构,并将概念模型转换为某个DBMS所支持的数据模型。
第三部分是数据库的实施与运行,它包括数据的载入及数据困的运行和数据库和数据表的创立(代码)。
第四部分是课程设计的总结。
1.1课题简介
随着数据处理的不断进步和计算机网络的迅速发展,使数据库应用系统不但在功能而且在结构上都有了深刻的变化,而且运用在生活的每一个方面。
经过学习关系代数,关系演算,函数依赖,关系模式分解,关系模式的规范化让我们建立了扎实的关系数据库理论基础。
而在掌握基本理论的基础上掌握关系数据库的设计方法,掌握现代信息系统的开发方法也显得尤为必要。
当前在关系数据库中用得最多的SQL数据库,开发数据库的语言工具多数用C++.。
因此对于计算机专业的学生来说掌握数据库应用的基本技术,熟悉编程语言与SQL数据库的结合运用是我们计算机专业学生之必备本事。
本次课程设计是以学生信息管理系统为模拟模型,运用C++编程语言结合SQL数据库所开发系统。
1.2设计目的
随着学生数量的日益增多,学校对学生的管理要求也越来越高,为了使信息技术与学生信息更好的结合在一起以及使学生成绩的管理更加系统化,数字化,因此我们设计了该学生信息管理系统。
1.3设计内容
运用基于E-R模型的数据库设计方法和关系规范化理论做指导完成从系统的分析到设计直至系统的最终实现,开发学生成绩管理系统,完成学生成绩管理系统的全部功能。
首先做好需求分析,并完成数据流图,其次做概念分析,利用实体联系的方法将需求分析的用户需求抽象为信息结构,得到E-R图,然后就是逻辑结构设计,将E-R图转换为计算机系统所支持的逻辑模型。
最后利用SQL完成具体的实例。
1.4.需求分析
1、 问题的提出:
为了高效率的完成学生成绩的管理,决定开发学生成绩管理系统。
2、需完成的功能:
(1) 能录入、修改、查询、输出学生的档案信息,这些信息包括学生的成绩、课程、个人信息等。
(2)触发器,索引,存储过程的建立及使用。
2.概念设计
(1)(E-R图)
(2)物理结构设计
Student
Column Name
Date Type
Width
空值情况
Sno
nchar
20
主关键字
Sname
nchar
10
不为空
Sex
nchar
2
不为空
Age
numeric
4
可为空
Address
nchar
20
可为空
Grade
nchar
3
不为空
Class
nchar
3
不为空
Exam
Column Name
Date Type
Width
空值情况
Sno
nchar
20
主关键字
Cno
nchar
20
不为空
Score
nchar
3
可为空
Course
Column Name
Date Type
Width
空值情况
Cno
nchar
20
主关键字
Cname
nchar
10
不为空
Tname
nchar
5
不为空
Bonus
Column Name
Date Type
Width
空值情况
Sno
nchar
20
主关键字
Sname
nchar
20
不为空
Money
nchar
10
可为空
Teacher
Column Name
Date Type
Width
空值情况
Tname
nchar
20
主关键字
Cname
nchar
20
不为空
Sno
nchar
10
可为空
(3)分析关系模式
对于关系模式Student(Sno|Sname|Sex|Age|Address|Grade|class|)假定姓名也具有唯一性,那么Student
就有两个码,这两个码都由单个属性组成,彼此不相交。
其它属性不存在对码的传递依赖与部分依赖,又因为Student中除学号、姓名外没有其它的因素,因此Student属于BCNF。
对于关系模式Course(|Cno|Cname|Tnameer|)中,它只有一个码,这里没有任何属性对课程号部分依赖或传递依赖,同时课程号是唯一的决定因素,因此课程属于BCNF。
对于关系模式Exam(|Sno|Cno|Score|)有两个码,这两个码都由单个属性组成,彼此不相交,其它属性不存在对码的传递依赖与部分依赖,又因为成绩中除学号、课程号外没有其它的决定因素,因此成绩属于BCNF。
3.SQL语句
3.1创立表
学生表
createtableStudent
(
Snonchar(20)primarykey,
Snamenchar(10)notnull
Sexnchar
(2)notnull
Agenumeric(4)
Addressnchar(20)
Classnchar(3)notnull
Gradenchar(3)notnull
)
考试表
createtableExam
(
Snonchar(20)primarykey//主键约束
Cnonchar(20)Notnull
Scorenchar(3)
foreignkey(Cno)referencesCourse//外键约束
check(Score>=0)//完整性约束
)
课程表
createtableCourse
(
Cnonchar(20)primarykey
Cnamenchar(10)Notnull
Tnamenchar(5)Notnull
)
奖金表
createtableBonus
(
Snonchar(20)primarykey
Snamenchar(20)l
Moneynchar(10)
)
教师表
createtableTeacher
(
Tnamenchar(20)
Cnamenchar(20)
Snonchar(10)
)
3.2数据初始化
将学生类别加入表Student中
insertintoStudent
values('000’,’张明’,’M’,’’,’哈尔滨’,’软件一班’,’大一’)
insertintoStudent
values('001’,’李三’,’M’,’’,’长春’,’软件二班’,’大三’)
insertintoStudent
values('002’,’王强’,’M’,’’,’哈尔滨’,’软件二班’,’大二’)
insertintoStudent
values('003’,’张雪’,’F’,’’,’哈尔滨’,’软件一班’,’大一’)
insertintoStudent
values('004’,’李力’,’M’,’’,’大连’,’软件一班’,’大三’)
insertintoStudent
values('005’,’张小’,’M’,’’,’哈尔滨’,’软件三班’,’大一’)
将考试类别加入Exam表中
insertintoExam
values('000','A-123','85')
insertintoExam
values('001','B-123','77')
insertintoExam
values('002','C-123','91')
insertintoExam
values('003','A-123','80')
insertintoExam
values('004','B-123','75')
insertintoExam
values('005','A-123','89')
将课程加入Course表中
insertintoCourse
values('A-123','高等数学','张老师')
insertintoCourse
values('B-123','数据库系统概念','李老师')
insertintoCourse
values('C-123','网络计算机','刘老师')
将奖金加入Bonus中
insertintoBonus
values('000’,’张明’,'400')
insertintoBonus
values('001’,’李三’,'0')
insertintoBonus
values('002’,’王强’,'800')
insertintoBonus
values('003’,’张雪’,'100')
insertintoBonus
values('004’,’李力’,'0')
insertintoBonus
values('005’,’张小’,'1500')
将教师信息加入Teacher中
insertintoTeacher
values('张老师','高等数学','000')
insertintoTeacher
values('张老师','高等数学','002')
insertintoTeacher
values('李老师','数据库系统概念','003')
insertintoTeacher
values('张老师','高等数学','005')
insertintoTeacher
values('李老师','网络计算机','001')
索引的使用
usestudent
createuniquenonclusteredindexindex_snoonStudent
(sno)
触发器
createtriggerreminder
onstudent
afterinsert,update
asraiserror('你在插入或修改学生的数据',16,10)
droptrigger‘reminder’
select*
fromStudent
wheresno=002
存储过程
createprocedureusp_getStudent
@namenchar(40)
as
select*fromStudentwhereSname=@name
执行存储过程
executeusp_getStudent'张明'
4、设计心得
经过这次课程设计,我更加熟练的掌握了使用SQL进行数据库软件开发的方法,加深了对数据库课程知识的理解。
由于时间仓促,软件还有很多不足之处,如:
成绩查询部分不够完善,成绩输入模块不支持学生成绩批量输入,软件代码交冗余、效率不高等等,都是对SQL操作不熟练,对相关功能缺乏认识造成的。
在今后的学习中我会加强理论与实践的结合,经过不断的摸索来弥补自己在软件制作方面的差距
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 学生 成绩 管理 范文