学生成绩数据库设计
数据库系统课程设计
题 目 学生成绩数据库设计 院 系 信息技术与工程学院 专 业 计算机科学与技术 姓名/学号 班级名称 指导教师
2015年12月30日
成绩
1. 系统需求分析阶段
1.1 需求分析阶段的任务
(1)处理对象:
系统要处理的对象包括学生基本信息、课程基本信息、成绩表基本信息等三个方面,各个对象包括信息如下所示(详细的数据见于数据字典):
1.学生
描述:在校参与学习的人员,有学号编号,且一定属于某一专业。 学生信息=学号+姓名+性别+院系+年龄 2.课程
描述:按专业设置学生应该选学的课程的基本信息。 课程信息=课号+课程名称+先行课+学分。 3.成绩
描述:按学号设置学生选学的课程的成绩。 课程信息=课号+学号+成绩。
4.学号=[0-9]{9},唯一标识一个学生。[0-9]{9}指9位数字字符 5.性别=[男女]
6.姓名=个人的姓氏名称
7.院系=标识学院或系的唯一名称 8.年龄=15到30的整数。
9.课号=[0-9]{4},唯一标识计划开设课程。 10.学分=对应课号的课程相应学分值。
11.课程名称=计划开设课程名称,与教材名称不一定相同。 12.成绩=0到100的整数。
(2)处理功能要求
该学生成绩管理系统主要完成以下几个功能:
1.学生基本信息(Student):包括学生学号、学生姓名、学生所在系、学生性别、学生所在地、学生年龄等方面的信息,可以方便学信息的查询和更新;
2.课程基本信息(Course):课程基本信息包括课程号、课程名、学分、学时,实现课程基本信息查询与更新;
3.成绩表基本信息(SC):包括学号、课号、分数等数据项,可以方便管理人员对学生成绩信息查询及更改。
4.对表中的基本信息完成增加、删除、修改时,需注意表与表之间的关联。
(3)安全性和完整性要求
安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过用户授权机制,欲用户登陆来识别用户级别,根据这个级别来分配用户权限,达到数据更高层次的安全保密功能。
完整性要求用于描述学生基本信息、课程基本信息、学生成绩基本信息中数据项能否为空(null ),以及一些用户自定义完整性(符合实际要求),详细完整性要求见于系统的逻辑设计阶段。
1. 2 需求分析阶段成果
(1)体会与收获
通过本次设计实验,进一步深入理解数据库设计的整个过程,学生成绩管理系统的需求分析、数据库概念结构设计有关内容等。掌握使用前台程序设计技术SQL Server 结合设计C/S结构的管理信息系统。综合练习了SQL Server 的使用和数据库的管理技术。综合熟悉并练习了SQL 语言在编程中的使用。综合训练编程能力。认识系统,取得系统需求分析,更重要的是在编程方面提高了实现目标代码的能力及调试代码的能力。这次的设计完成的是学生成绩数据库的管理,实现对后台的增、删、改、查等操作。
(2)数据字典
(a )数据项:系统涉及的数据项有13项
数据项编号 SC-1 SC-2 SC-3 SC-4 SC-5 SC-6 SC-7 SC-8 SC-9 SC-10 SC-11 SC-12 SC-13
数据项名 Sno Sdept Sname SSex Saddress Sage Cno Cname Ccredit Cperiod Grade SOne STwo
数据项含义 学号 学生所在学院 学生姓名 学生性别 学生所在地 学生年龄 课程编号 课程名 学分 课时 学生成绩 学生信息 学生信息
与其它数据项的关系 同上 同上
存储结构 char(9) char(20) char(10) char(2) char(10) Int char(2) char(12) char(30) char(6) Int char(10) char(10)
别名 学号 学院 姓名 性别 地址 年龄 课号 课名 学分 课时 成绩 学员1 学员2
数据项编号 SC-14
数据项名 SThree
数据项含义 学生信息
与其它数据项的关系 同上
存储结构 char(10)
别名 学员3
(b )数据结构:
表1.2 数据结构列表
数据结 构编号
SC-1
数据结构名
数据结构 含义
学生信息
组成
Student sno ,sname ,sage ,ssex ,sdept ,saddres
SC-2 Course 课程信息 cno ,cname ,ccredit ,cperiod sno ,cno ,grade
SC-3 Grade 学生成绩信息
2. 概念设计阶段
2.1 引言
概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型) 的过程, 它是整个数据库设计的关键,包括概念模型设计和新系统流程两个阶段。根据需求把整个系统分化成不同的模块,每个模块完成一个特定的子功能。把这些模块结合起来组成一个整体。逐一实现各个功能。随着科学的进步与社会的发展,一些学校不断发展壮大,扩大招生规模。因此,对于学校管理者而言,学生成绩管理是一项非常繁琐和复杂并且艰巨的工作。所以,为了适应时代的发展,提高管理工作者的效率尤为重要。学生成绩管理系统的改进更好的利用了现代高科技,检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等,这些优点能够极大地提高学生成绩管理的效率,对学生负责,对本校未来的发展负责,对整个中国的教育负责,是真正朝向未来教育发展的顺应潮流的进步。
2.2 概念模型设计
(1)根据不同的对象,分别画出E -R 图:
学生实体及属性图
课程实体及属性图
成绩实体及属性图
(2)各分E -R 图中每个实体的具体属性如下所示:
学生:Student(sno,sname,sage,ssex,sdept,saddress ) ; 课程:Course (cno,cname ,ccredit ,period ) ; 学生成绩:SC (sno ,cno ,grade ); (3)合并各分E -R 图, 消除属性冲突、命名冲突、结构冲突等三类冲突,得到初步E-R 图,再消除不必要冗余,得到的基本E-R 图如下所示:
E -R 图
2.3 新系统流程
新系统流程图:
3.逻辑设计阶段
3.1逻辑设计的任务和目标
以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS 产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R 图转换为选用DBMS 产品所支持的数据模型相符合的逻辑结构。具体内容包括数据组织(将E-R 图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务
3.2数据组织
3.2.1将E-R 图转换为关系模型
具体的基本E-R 图向关系模型的转化如下:
学生:属性有(学号,姓名,年龄,性别,系别,地址) ; 课程:属性有(课号,课名,学分,学时) ; 学生成绩:属性有(学号,课号,分数)。 这些实体之间的联系如下:
一个学生可以选修多门课程,一门课程可被多名学生选修,因此,学生和课程具有多对多的联系。
一个学生可以有多门课程的成绩,一门课程的成绩可以选定多名学生,因此,学生和成绩具有多对多的联系。
一门课程对应一门成绩,一门成绩对应一门课程,因此,课程与成绩具有一对一的联系。
4.物理设计阶段
4.1物理设计阶段的目标与任务
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构; (2)对物理结构进行评价,评价的重点是时间和空间效率。
4.2数据存储方面
为数据库中各基本表建立的索引如下:
1. 由于基本表Student 的主码Sno 经常在查询条件和连接操作的连接条件中出现,
且值唯一,考虑该属性上建立唯一性索引;
2. 基本表Course 的主码Cno 经常在查询条件中出现,且它的组合值唯一,考虑在它
们之上建立组合索引;
3. 基本表SC 的属性Sno 和Cno ,经常在查询条件中出现,且经常出现在相等的比
较条件中,考虑在其之上建立聚簇索引。
5.数据库实施阶段
5.1建立数据库、数据表、视图、索引 5.1.1 建立数据库
create database Student_Score;
5.1.2 建立数据表
(1)学生基本信息表的建立: create table 学生 ( 学号 char (9) primary key , 姓名 char (20) not null , 性别 char (2) null ,
年龄 smallint null , 院系 char (20) null ,
地址 char (40) null
)
(2)课程基本信息表的建立: create table 课程 ( 课号 char (4) primary key not null , 课名 char (40) null , 课时 char (4) null , 学分 smallint null , )
(3)学生成绩基本信息表的建立:
create table 成绩表 ( 学号 char (9) not null , 课号 char (4) not null , 成绩 smallint null , primary key (学号, 课号) , foreign key (课号) references 课程 (课号), foreign key (学号) references 学生 (学号) )
5.1.3建立数据视图
学生视图的建立
create view Student (sno,sname,ssex,sage,sdept,saddress) as
Select SX.sno,SX.sname,SY.ssex,SX.sage,SY .sdept,SY.address From SX,SY
Where SX.sno=SY.sno;
6.系统调试和测试
该学生成绩管理系统具体的测试结果如下: