当前位置:文档之家› 数据库系统课程设计

数据库系统课程设计

数据库系统课程设计
设计题目:学生成绩管理系统
姓名:廖丹
学号:1209301-23
专业:信息与计算科学
指导教师:
年月日
一、需求分析阶段
1.信息需求
对学校而言,学生成绩管理系统是所有工作的首要之选,但是高校学生的成绩管理工作量大、繁杂,人工处理非常困难。

因此,借助于强大计算机的处理能力,能够把人从繁重的成绩管理工作中解脱出来,并且更加准确、安全、清晰的管理环境。

2.功能需求
能够进行数据库的数据定义、数据操纵、数据控制等处理功能。

具体功能应包括:系统应该提供课程安排数据的添加、插入、删除、更新、查询;成绩的添加、修改、删除、查询,学生及教职工基本信息查询的功能。

3. 安全性与完整性要求
对于学生成绩管理系统数据库来讲,由于其主要数据是学生成绩,只能由本人以及所教老师及教务处知道,因此做好数据安全性是重中之重。

另外,要求所有在校学生的信息都要录入其中,并且要设计好个别情况。

二、概念结构设计阶段
概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。

设计成绩管理数据库包括学生、成绩、课程、教师四个关系。

E-R图如下
三、详细设计阶段
详细结构是独立于任何一种数据模型的信息结构。

详细结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。

E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。

设计学生成绩管理数据库,包括课程、学生、教师、成绩四个关系, 其关系模式中对每个实体定义的属性如下:
课程信息表
Class:(课程号,课程名,教师号,学分,学时)学生信息表
Student1:(学号,姓名,性别,年龄,专业,系别)成绩表
Score:(学号号,课程名,成绩)
教师表
Teacher1:(教师号,教师名,教师性别,教师系别)
2、学生信息表(student1)
四、数据库实现
数据库实施是指建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。

创建数据表
一个完整的数据库不可缺少的就是数据表,若干个数据表的集合成一个数据库。

数据表主要用来存放一定格式的记录,数据表中的行被称为记录,列被称为字段。

创建数据表的过程其实就是定义字段的过程。

在此学生成绩管理系统中需要创建四个表,即课程信息表、学生信息表、教师信息表和成绩表。

1.创建课程-班级表:
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 //学时

2.创建课程信息-学生表:
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, / /系别
)
3. 创建课程信息-教师表
create table teacher1( //创建教师信息表
tno char(10) primary key, //教师号
tname varchar(50) not null, //教师名
tsex char(2), //教师性别
tdepart varchar(50) //教师系别
)
4.创建课程信息-成绩表
create table score( //创建成绩表
sno char(10), //学号
cno char(10), //课程号
)
学生信息相关表格
课程信息相关表格
成绩信息表
教师信息表
五、数据库运行代码
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为学生的sname
select sname
from student1
where sno='08081111'
(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
(7)查询所有学生的平均年龄
select avg(sage) as 平均年龄
from Student1
结果:
B.连接查询
(1)学生的学号、姓名,所选课程的课程号、课程名和成绩、任课教师名Select
student1.sno,student1.sname,o,ame,score.degree,teacher1.tname
from student,class,score,teacher1
Where student1.sno=score.sno and o=o and teacher1.tno=class.tno
(2)找出教授数据库原理的老师的教师名
select teacher1.tname
from class,teacher1
Where class.tno=teacher1.tno and ame='数据库原理'
C.操作结果集查询
查询号同学和号同学共同选修的课程
Select cno
From score
Where sno='08081222'
Intersect
Select cno
From score
Where sno='08081312'
3、数据库更新操作
A.插入数据
向Student1表中添加一项记录:
姓名:秦二,学号:,性别:男,年龄:22专业:计算机,系别:计算机
Insert
Into
Student1(Sno,Sname, Ssex,sage,major,depart)
Values ('08081131','秦二', '男',' 22',' 计算机','计算机')
B.修改数据
修改陈琦的学号为:
Update Student1
Set Sno=’08081331’
Where Sname=’陈三’;
C.删除数据
删除所有计算机学生的记录
Delete
from student1
Where(depart=’计算机’);
七、总结
本学生成绩查询系统主要参照课本,相对来说比较简单。

但是由于主要以课本为依据,所以整个设计做下来基本掌握了课本上数据库的基础操作。

设计过程中我也遇到了一些问题,再向其他同学请教的过程中我收获了很多。

(1)操作视图查询,编写代码时发现,一个表中的主键必须是另一个表的外键时才可以对另一个表进行引用。

(2)在设计表时应注意使用正确的字段类型。

(3)在建表语句中,如果这个表的主键是多个属性的组合主键,则必须作为表级完整性进行定义。

作为一种应用,数据库必须在动手的基础上才能更好的学习,更有效的学习。

正是在一次次的上机以及作业当中,我体会到了数据库作为一种应用所带给我们的种种便利。

感谢老师的悉心教导以及同学的帮助,我才能较快速的完成作业。

相关主题