课程设计报告《学生成绩管理系统》.docx
《课程设计报告《学生成绩管理系统》.docx》由会员分享,可在线阅读,更多相关《课程设计报告《学生成绩管理系统》.docx(26页珍藏版)》请在冰点文库上搜索。
![课程设计报告《学生成绩管理系统》.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/c0bbdbc4-3093-42eb-99c4-1fc5396eb23b/c0bbdbc4-3093-42eb-99c4-1fc5396eb23b1.gif)
课程设计报告《学生成绩管理系统》
数据库课程设计
实验报告
学生成绩管理系统
姓名:
学号:
班级:
专业:
信息管理与信息系统
2011 年 11 月 09
日
一、需求分析阶段
1.信息需求
高校学生的成绩管理工作量大、繁杂,人工处理非常困难。
学生成绩管理系
统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理
的准确性。
学生成绩管理系统的开发运用,实现了学生成绩管理的自动化,不仅
把广大教师从繁重的成绩管理工作中解脱出来、把学校从传统的成绩管理模式
中解放出来,而且对学生成绩的判断和整理更合理、更公正,同时也给教师提供
了一个准确、清晰、轻松的成绩管理环境。
2.功能需求
能够进行数据库的数据定义、数据操纵、数据控制等处理功能,进行联机处
理的相应时间要短。
具体功能应包括:
系统应该提供课程安排数据的插入、删除、更新、查询;
成绩的添加、修改、删除、查询,学生及教职工基本信息查询的功能。
二、概念结构设计阶段
概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、
归纳与抽象,形成一个独立于具体 DBMS 的概念模型。
设计教室管理数据库包括学生、课程、教师三个关系。
经分析本系统的 E-R 图如下:
学生信息表
姓名姓名姓名
姓名
姓名
课程名课程号
课程信息表
教师号 学时
教师信息表
教师名
教师性别 教师年龄
教师号
教师系别
成绩表
学号课程号成绩
各实体间的 E-R 图如下:
学分教师号
学时
课程号 课程名
教师名
教师性别
课程信息表教课
成
教师信息表
学号
教师年龄
教师号
教师系别
姓名
性别
选课
学生信息表
年龄
绩
学号 专业
课程号
成绩
系别
关系图:
三、逻辑结构设计阶段
逻辑结构是独立于任何一种数据模型的信息结构。
逻辑结构的任务是把概
念结构设计阶段设计好的基本 E-R 图转化为宜选用的 DBMS 所支持的数据模型
相符合的逻辑结构,并对其进行优化。
E-R 图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化
为关系模式,如何确定这些关系模式的属性和码。
设计学生成绩管理数据库,包括课程、学生、教师、成绩四个关系,其关
系模式中对每个实体定义的属性如下:
课程信息表
字段名
描述
数据类型
字段权限
sno
学号
char(10)
Primary key
sname
姓名
char(10)
Not null
ssex
性别
char
(2)
Not null
sage
年龄
Int
Not null
major
专业
char(10)
Not null
sdept
系别
char(10)
Not null
字段名
描述
数据类型
字段限制
cno
课程号
char(10)
Primary key
cname
课程名
char(10)
Not null
tno
教师号
char(10)
Not null
credit
学分
char(4)
Not null
ctime
学时
char(50)
Not null
Class:
(课程号,课程名,教师号,学分,学时)
学生信息表
Student1:
(学号,姓名,性别,年龄,专业,系别)
成绩表
Score:
(学号号,课程名,成绩)
教师表
Teacher1:
(教师号,教师名,教师年龄,教师性别,教师系别)
1、课程信息表(class)
2、学生信息表(student)
3.教师表(teacher)
字段名属 性数据类型字段权限
tno
教师号
char(10)
Primary key
tname
教师名
char(10)
Not null
tsex
教师性别
char
(2)
Not null
tage
教师年龄
Int
Not null
tdept
教室系别
char(10)
Not null
字段名
属 性
数据类型
字段权限
sno
学号
char(10)
Primary key
cno
课程名
char(10)
Not null
grade
成绩
Int
Not null
4.成绩表(score)
四、物理设计阶段
数据库物理设计的任务是为上一阶段得到的数据库逻辑模式,即数据库的逻
辑结构选择合适的应用环境的物理结构,既确定有效地实现逻辑结构模式的数
据库存储模式,确定在物理设备上所采用的存储结构和存取方法,然后对该存
储模式进行性能评价、修改设计,经过多次反复,最后得到一个性能较好的存
储模式。
数据库物理设计内容包括记录存储结构的设计,存储路径的设计。
五、数据库实现
数据库实施是指建立数据库,编制与调试应用程序, 组织数据入库,并进
行试运行。
1、创建数据库
(1) 打开 SQL 工具“查询分析器”
(2) 在查询窗口中键入下列 SQL 语句
Create database ScoreSystem
执行上述 SQL 语句即可新建一名为 Score System 的数据库
2、创建数据表
一个完整的数据库不可缺少的就是数据表,若干个数据表的集合成一个数
据库。
数据表主要用来存放一定格式的记录,数据表中的行被称为记录,列被
称为字段。
创建数据表的过程其实就是定义字段的过程。
在此学生成绩管理系统中需要创建四个表,即课程信息表、学生信息表、教
师信息表和成绩表。
创建数据库后,为 Score System 数据库添加数据表,步骤如下。
(1)新建查询窗口
(2)a.在查询窗口中键入下列 SQL 语句
Create table Class(//创建课程信息表
cno char(10),//课程号
cname char(10)Not null,//课程名
tno char(10)Not null ,//教师号
credit char(4)Not null,//学分
ctime char(50)Not null//学时
)
执行上述 SQL 语句即可
b.创建课程信息表相关表格执行下述 SQL 语句即可创建学生信息表相
关表格
create table student (//
sno char(10)primary key,//学号
sname char(10)not null,//姓名
ssex char
(2)not null,//性别
Sage intnot null,//年龄
Major char(10)not null,//专业
Sdeptchar(10)not null/ /系别
)
c.执行下述 SQL 语句即可创建教师信息表相关表格
create table teacher (//创建教师信息表
tnochar(10)primary key,//教师号
tnamechar(10) not null,//教师名
tage int ,//教师年龄
tsexchar
(2),//教师性别
tdeptchar(10)//教师系别
)
d.执行下述 SQL 语句即可创建成绩表相关表格
create table score (//创建成绩
表
sno char(10),//学号
cno char(10)//课程号
)
cno
cname
tno
credit
ctime
1001
线性代数
004
3.5
45
1002
C 语言
007
3.1
32
1003
程序设计
002
3.3
48
1004
大学语文
006
2.5
31
1005
商务英语
005
4
60
1006
大学体育
009
2
20
1007
中国影视
008
2.5
30
1008
高等数学
003
4
60
sno
sname
ssex
sage
major
sdept
1021030301
李娜
女
18
商务英语
外国语
1021030302
林俊杰
男
19
信息管理
理学院
1021030303
周杰
男
18
计算机
软件
1021030304
孙颖
女
20
数学
理学院
1021030305
齐婷
女
19
影视
艺术学院
1021030306
张恒
男
20
经济管理
工商
学生信息相关表格
课程信息相关表格
Sno
cno
grade
1021030301
1006
85
1021030301
1003
90
1021030301
1005
86
1021030302
1006
82
1021030302
1004
84
1021030302
1001
81
1021030303
1006
93
1021030303
1002
79
1021030303
1004
85
1021030304
1006
94
1021030304
1008
74
1021030304
1007
86
1021030305
1002
94
1021030305
1006
78
1021030305
1008
83
tno
tname
tage
tsex
tdept
001
肖俊芳
35
男
理学院
002
黄国辉
41
男
软件
003
何杰
35
男
理学院
004
李水平
31
男
理学院
005
廖丽丽
29
女
外国语
006
秦磊毅
49
男
理学院
成绩信息表
教师信息表
1009数据库原理001350
007
吴志强
32
男
软件
008
张微微
25
女
影视
009
谢俊
29
男
工商
添加记录:
学生信息表:
Insert
into student
values('1021030301','李娜','女',18,'商务英语','外国语')
Insert
into student
values('1021030302','林俊杰','男',19,'信息管理','理学院')
Insert
into student
values('1021030303','周杰','男',18,'计算机','软件')
Insert
into student
values('1021030304','孙颖','女', 20,'数学','理学院')
Insert
into student
values('1021030305','齐婷','女',20','影视','艺术学院')
Insert
into student
values('1021030306','张恒','男',20,'经济管理','工商')
课程信息表:
Insert
into class
values('1001','线性代数','004','3.5','45')
Insert
into class
values('1002','C 语言','007','3.1','32')
Insert
into class
values('1003','程序设计','002','3.3','48')
Insert
into class
values('1004','大学语文','006','2.5','31')
Insert
into class
values('1005','商务英语','005','4','60')
Insert
into class
values('1006','大学体育','009','2','20')
Insert
into class
values('1007','中国影视','008','2.5','30')
Insert
into class
values('1008','高等数学','003','4','60')
Insert
into class
values('1009','数据库原理','001','3','50')
成绩信息表:
Insert
into score
values('1021030301','1006',85)
Insert
into score
values('1021030301','1003',90)
Insert
into score
values('1021030301','1005',86)
Insert
into score
values('1021030302','1006',82)
Insert
into score
values('1021030302','1004',84)
Insert
into score
values('1021030302','1001',81)
Insert
into score
values('1021030303','1006',93)
Insert
into score
values('1021030303','1002',79)
Insert
into score
values('1021030303','1004',85)
Insert
into score
values('1021030304','1006',94)
Insert
into score
values('1021030304','1008',74)
Insert
into score
values('1021030304','1007',86)
Insert
into score
values('1021030305','1002',94)
Insert
into score
values('1021030305','1006',78)
Insert
into score
values('1021030305','1008',83)
老师信息表:
Insert
into teacher
values('001','肖俊芳',35,'男','理学院')
Insert
into teacher
values('002','黄国辉',41,'男','软件')
Insert
into teacher
values('003','何杰',35,'男','理学院')
Insert
into teacher
values('004','李水平',31,'男','理学院')
Insert
into teacher
values('005','廖丽丽',29,'女','外国语')
Insert
into teacher
values('006' , '秦磊毅',49,'男','理学院')
Insert
into teacher
values('007','吴志强',32,'男','软件')
Insert
into teacher
values('008','张薇薇',25,'女','影视')
Insert
into teacher
values('009','谢俊',29,'男','工商')
六、数据库运行和维护阶段
1、数据定义:
基本表的创建、修改及删除;索引的创建和删除;视图的创建
和删除
(1)基本表的创建,建表语句
create table students(
sno char(10) primary key,
sname char(10)not null,
ssex char
(2)not null,
sage char(10) not null,
major char(10) not null,
sdept char(10) not null
)
(2)基本表的删除
drop table student
2、数据操作
数据库查询操作
A.单表查询:
(1)查询 sno 为 1021030303 学生的 sname,sage,major,sdept,ssex
select sname,sage,major,sdept,ssex
from student
where sno=' 1021030303'
(2)查询 ssex 为’女’并且 sdept 为’艺术学院’的 sname,sage
Select sname,sage
Fromstudent
Where ssex=’女’ and sdept=’艺术学院’
(3)查询所有学生的姓名和系别。
select sname,sdept
from student
(4) 查询学生信息表中年龄小于 20 和年龄大于 17 的学生的姓名和系别
selectsname,sdept
fromstudent
wheresage between 19 and20
(3)查询所有学生的平均年龄
selectavg(sage) as 平均年龄
fromStudent
(5)查询所有学生所选课程的平均分:
selectavg(sage) as 平均分,student.sname as 姓名,student.sno
as 学号
fromStudent ,score,class
where student.sno=class.sno and o=o
B.连接查询
(1) 学生的学号、姓名,所选课程的课程号、课程名和成绩、任课教师名
Selectstudent.sno,student.sname,o,ame
score.grade, teacher.tname
Fromstudent ,class ,score ,teacher
Wherestudent.sno=score.snoando=oand
teacher.tno=class.tno
(2)找出教授数据库原理的老师的教师名
selectteacher1.tname
from class,teacher1
Where class.tno=teacher1.tno and ame='数据库原理'
C. 嵌套查询
查询选修了1006这门课的所有学生的学号、姓名、年龄、院系
Select sno,sname,sage,sdept
From student
Where sno in
(select sno
From score
Where cno='1006')
D.嵌套查询
查询选修了1006这门课的所有学生的学号、姓名、年龄、院系
Select sno,sname,sage,depart
From student1
Where sno in
(select sno
From score
Where cno=’1006’)
3、数据库更新操作
A.插入数据
向 Student1 表中添加一项记录:
姓名:
景甜,学号:
1021030201,性别:
女,年龄:
20 专业:
外交英语,系别:
外国语
B.修改数据
修改林俊杰的学号为 1021030307:
Update Student
Set Sno='1021030307'
Where Sname='林俊杰';
C.删除数据
删除所有理学院学生的记录
Delete
from student
Where sdept=’理学院’
4、为数据库建立索引
创建索引可以大大提高系统的性能。
第一,通过创建唯一性索引,可以保
证每一行数据的唯一性。
第二,可以大大加快数据的检索速度,这也是所以的
最主要原因。
第三,可以加速表与表之间的连接,特别是实现数据的参考完整
性方面特有意义。
第四,在使用 ORDER BY 和 GROUP BY 子句进行数据检索时,
同样可以显著减少查询中分组和排序的时间。
第五,通过使用索引,可以在查
询过程中,使用优化隐藏器,提高系统性能。
A.创建索引:
(1) 在 class 表的 cno 列上创建非聚集索引。
Create index classrnameONclass (cno)
(2) 在 student1 表的 sno 列上创建非聚集索引。
Create unique index 学号_snoONStudent (sno)
(3) 在 Student1 表的 sno 列创建一个非聚集索引,要求索引键值按 sno 升序排
列。
Create index 学号 ONstudent(sno ASC)
B.删除索引:
(1)删除 student 表中的 studentno 索引。
Drop index student.学号_sno
5、视图的操作:
数据库视图的定义(创建和删除)、查询和更新
A.查询所有学生成绩的信息,包括学号、课程号、成绩
create view score4
as
selectstudent.sno'学号',sname'学生名',o'课程号',cname'课程
名',score.grade'成绩'
from student ,class ,score
where student.sno=score.sno and o=o
B.更新视图:
(1)修改信息:
将周杰的名字改为周杰伦
Update score4
set 学生名='周杰伦'
where 学生名='周杰’
(2)删除信息:
删除视图 score4 中周杰伦的记录
delete
from score4
where 学生名='周杰伦'
删除视图:
删除前面的 score4 视图
dropview score4
5.存储过程
①创建存储过程
create proc proc_ST
as
select sno,sname,sage
from student
wheressex='女';
②存储过程的查询
execproc_ST;
③存储过程的修改
alter proc proc_ST
as
select sno,sname,ssex
from student
where sdept='外国语'
七、总结
本学生成绩查询系统主要参照课本,相对来说比较简单。
但是由于主要以
课本为依据,所以整个设计做下来基本掌握了课本上数据库的基础操作。
设计
过程中我也遇到了一些问题,再向其他同学请教的过程中我收获了很