毕 业 设 计 论 文
学生成绩管理系统数据库
一、需求分析阶段
1.信息需求
高校学生的成绩管理工作量大、繁杂,人工处理非常困难。学生成绩管理系统借助于计
算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。学生成绩管理
系统的开发运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩管理工作中
解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、
更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境。
2.功能需求
能够进行数据库的数据定义、数据操纵、数据控制等处理功能,进行联机处理的相应时
间要短。
具体功能应包括:系统应该提供课程安排数据的插入、删除、更新、查询;成绩的添加、
修改、删除、查询,学生及教职工基本信息查询的功能。
3. 安全性与完整性要求
二、概念结构设计阶段
概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,
形成一个独立于具体 DBMS 的概念模型。
设计教室管理数据库包括班级、教室、课程、教师四个关系。
E-R 图如下
教师号
教师名
教师性别
教师系别
课程名
课程号
教师号
学分
课程信息表
教课
教师信息表
学时
系别
专业
性别
学号
课程号
成绩
选课
成
绩
学生信息表
年龄
姓名
学号
三、逻辑结构设计阶段
逻辑结构是独立于任何一种数据模型的信息结构。逻辑结构的任务是把概
念结构设计阶段设计好的基本 E-R 图转化为宜选用的 DBMS 所支持的数据模型相
符合的逻辑结构,并对其进行优化。
E-R 图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化
为关系模式,如何确定这些关系模式的属性和码。
设计学生成绩管理数据库,包括课程、学生、教师、成绩四个关系, 其关系
模式中对每个实体定义的属性如下:
课程信息表
Class:(课程号,课程名,教师号,学分,学时)
学生信息表
Student1:(学号,姓名,性别,年龄,专业,系别)
成绩表
Score:(学号号,课程名,成绩)
教师表
Teacher1:(教师号,教师名,教师性别,教师系别)
1、课程信息表(class)
字段名
描述
数据类型
字段限制
cno
cname
teano
credit
ctime
课程号
课程名
教师号
学分
学时
char(10)
char(10)
char(10)
char(4)
char(50)
Primarykey
Not null
Not null
Not null
Not null
2、学生信息表(student1)
字段名
sno
sname
ssex
sage
major
depart
描述
学号
姓名
性别
年龄
专业
系别
数据类型
字段权限
char(10)
Primarykey
char(10)
Not null
char(2)
char(2)
char(10)
char(10)
Not null
Not null
Not null
Not null
3.教师表(teacher1)
字段名
teano
tname
Tsex
Tdepart
属 性
教师号
教师名
教师性别
教室系别
数据类型
字段权限
char(10)
char(10)
char(2)
char(10)
Primarykey
Not null
Not null
Not null
4.成绩表
字段名
sno
cno
degree
属 性
学号
课程名
成绩
数据类型
字段权限
char(10)
char(10)
char(10)
Primarykey
Not null
Not null
四、物理设计阶段
数据库物理设计的任务是为上一阶段得到的数据库逻辑模式,即数据库的逻辑结构选
择合适的应用环境的物理结构,既确定有效地实现逻辑结构模式的数据库存储模式,确定在
物理设备上所采用的存储结构和存取方法,然后对该存储模式进行性能评价、修改设计,经
过多次反复,最后得到一个性能较好的存储模式。数据库物理设计内容包括记录存储结构的
设计,存储路径的设计。
五、数据库实现
数据库实施是指建立数据库,编制与调试应用程序, 组织数据入库,并进行试运行。
1、创建数据库
(1) 打开 SQL 工具“查询分析器”
(2) 在查询窗口中键入下列 SQL 语句
create database ScoreSystem
执行上述 SQL 语句即可新建一名为 ScoreSystem 的数据库
2、创建数据表
一个完整的数据库不可缺少的就是数据表,若干个数据表的集合成一个数据库。数据表
主要用来存放一定格式的记录,数据表中的行被称为记录,列被称为字段。创建数据表的过
程其实就是定义字段的过程。
在此学生成绩管理系统中需要创建四个表,即课程信息表、学生信息表、教师信息表和
成绩表。
创建数据库后,为 ScoreSystem 数据库添加数据表,步骤如下。
(1) 新建查询窗口
(2) 在查询窗口中键入下列 SQL 语句
create table Class(
cno char(10) primary key,
//创建课程信息表
//课程号
cname char(10) not null,
teano char(10) Not null
credit char(4), Not null
ctime char(50), Not null
)
//课程名
//教师号
//学分
//学时
执行上述 SQL 语句即可创建课程信息表相关表格
create table student1(
sno char(10) primary key,
sname char(10) not null,
ssex char(2) not null,
Sage char(2) not null,
Major char(10) not null,
Depart char(10) not null,
)
执行上述 SQL 语句即可创建学生信息表相关表格
//创建学生信息表
//学号
//姓名
//性别
//年龄
//专业
/ /系别
create table teacher1(
tno char(10) primary key,
tname varchar(50) not null,
tsex char(2),
tdepart varchar(50)
)
//创建教师信息表
//教师号
//教师名
//教师性别
//教师系别
执行上述 SQL 语句即可创建教师信息表相关表格
create table score(
sno char(10),
cno char(10),
)
//创建成绩表
//学号
//课程号
执行上述 SQL 语句即可创建成绩表相关表格
学生信息相关表格
Sno
sname
ssex
sage
0811080101 陈琦
0811080102 崔雪娇
0811080103 董朝阳
0811080104 杜鹃
0811080105 方卉
男
女
男
女
女
22
23
22
22
20
major
信息
信息
depart
工商
工商
数学教育
数学系
计算机应用 计算机系
汉语言
文法系
课程信息相关表格
Cno
0301
0302
0303
0304
0305
0306
0307
0308
0309
成绩信息表
Sno
0811080101
0811080101
0811080101
0811080102
0811080102
0811080102
0811080103
0811080103
0811080103
0811080104
0811080104
0811080104
教师信息表
tno
cname
财务管理
供应链管理
tno
001
002
生产与运作管理 003
统计学
网页制作
操作系统原理
数据库原理
项目管理
web 程序设计
004
005
006
007
008
009
credit
ctime
2
2.2
2.4
2.6
2.8
3.0
3.2
3.4
3.5
24
18
36
32
30
32
30
45
35
Cno
0306
0303
0305
0306
0304
0301
0306
0302
0304
0306
0308
0307
Degree
85
90
86
82
84
81
93
79
85
94
74
86
tname
tsex
tdepart
001
002
003
004
005
006
007
008
009
卢亚君
李昌明
张富强
刘翠杰
王庆石
黄立明
王纲
徐伟丽
刘书霞
女
男
男
女
男
男
男
女
女
财经
财经
财经
数信
数信
数信
计算机
计算机
计算机
六、数据库运行和维护阶段
1、数据定义:基本表的创建、修改及删除;索引的创建和删除;视图的创建和删除
(1)基本表的创建,建表语句
create table students(
stuno char(10) primary key,
stuname varchar(40) not null,
stusex char(2) not null,
stuage char(10) not null,
stumajor char(10) not null,
studepart char(10) not null,
)
(2)基本表的删除
drop table students
2、数据操作
数据库查询操作
A.单表查询:
(1)查询 sno 为 0811080101 学生的 sname
select sname
from student1
where sno=' 0811080101'
结果:
(2)查询 ssex 为’女’并且 sdepart 为’工商’的 sname
select sname
from student1
where ssex ='女' and
sdepart ='工商'
结果:
(3)查询所有学生的姓名和系别。
select sname,depart
from student1
结果:
(4)查询 depart 为数学系的 sname。
select sname
from student1
where depart ='数学系'
结果:
(5)查询所有学生所在院系名称
select distinct depart
from student
结果:
(6)查询学生信息表中年龄小于 21 和年龄大于 21 的学生的姓名和系别
select sname,depart
from student1
where sage>21 or sage<21
结果: