资源描述
《数据库系统概论》
综合试验汇报
(—— 第1学期)
项目名称 学生选课管理系统
学 院
学 号
姓 名
讲课教师
填表日期:
目 录
1、 需求分析 …………………………………………03
2、 概念设计 …………………………………………18
3、 逻辑设计 …………………………………………21
4、 物理设计 …………………………………………27
5、 数据库实行………………………………………29
6、 总结 ……………………………………………38
学校学生选课系统
一、需求分析阶段
需求分析分为三个部分:需求文字表述、数据流图、数据字典。
一、 需求分析
第一部分 调查顾客需求
目前,伴随各大高校扩招及信息化社会到来,学校为了合理规划人力资源运用,保证学生信息安全性,对信息化处理数据规定也越来越高。学生选课系统就是为了减少学校对信息管理工作量,增强学生选课以及成绩信息管理系统安全性双重规定下出现。学生选课排课系统用于根据教学计划、教师资源、教师资源等,制定每学期课程表及有关信息,面对顾客包括系统管理员、教师和学生。因此该系统功能模块应分为系统管理员需求、教师需求、学生需求三个部分。管理员可以通过超级顾客身份登录,对系统进行全面管理维护。老师、学生以不一样顾客身份进入不一样界面,执行不一样操作。
1.学校组织构造状况
学校下面构造可分为各个处理学校事物职能部门、多种群团组织、教辅单位、直属单位以及各个学院。而职能部门中教务处这一管理机构如下又分为招生办、教学管理科、学籍管理科以及办公室。其中教学管理科重要负责学生选课工作以及其他教务系统管理。学校负责选课这一组织机构为三类顾客服务:管理员、教师、学生。由于目前大学学生基数越来越庞大,而每一学期学生需要选修课程攻读,若是学校没有一种很好选课系统,那么上千上万学生资料整顿归纳起来都会是一种非常巨大非常困难项目。为了以便教师和学生,建立一种好选课系统是十分有必要。
学校组织构造图如下:
2.有关选课业务活动状况
当学期末快届时,学校教务处会下放告知学生选择下学期要选修课程。在学生选课之前负责选课这一模块工作教务处管理员就要整顿出学校提供所有可选课程供同学们选择,并在每一次选课之后做出调整和资料整顿。到下一学期学期末,由任课老师给出每个学生选修课程成绩,并将成绩汇报给管理员,管理员再深入整顿汇总以及将成绩告知到学生。如下是有关管理员、教师、学生三者之间关系。
3.顾客对系统规定
信息规定:
由上面分析我们可以懂得该系统重要用于学生选课和教师录入成绩,因此有关信息规定可以分为如下几方面:
(1)学生信息
包括学生学号、姓名、性别、出生日期、所在班级、专业,除了这些基本信息之外还包括学生选修课程成绩。
(2)课程信息
包括课程号、课程名称。
(3)选课信息
包括学生学号、姓名以及选修课程号、课程名称和成绩
(4)教师信息
包括教师号、姓名、性别、联络电话、所讲课程
(5)管理员信息
包括工号、姓名、性别、联络电话
处理规定:
系统应当完毕如下信息处理:
(1)系统管理员
管理员维护整个系统,设置选课阶段:
选课前:学生不可登录,同步公布教师基本状况。
选课时:a.限制最大选课人数,防止系统瓦解;
b.公布选课信息;
c.数据备份和恢复等;
选课后:a.学生只可查询,管理员对选课成果进行记录;
b.管理员查询选课状况,对学生选课申请进行处理,进行顾客管理。
(2)教师
查询课程基本状况、学生状况。
(3)学生
在选课系统中查询课程、教师信息,提交选课申请,撤销申请,查询选课状况,登录系统,进行个人信息修改等于选课有关活动。
安全性与完整性规定:
安全性规定:
(1)系统应设置访问顾客标识以鉴别与否是合法顾客,并规定合法顾客设置其密码,保证顾客身份不被盗用;
(2)系统应对不一样数据设置不一样访问级别,限制访问顾客可查询和处理数据类别和内容;
(3)系统应对不一样顾客设置不一样权限,辨别不一样顾客。如辨别学生(只能查询管理员公布课程基本信息和选修课程限制人数及目前选择人数,只能修改自己个人信息,如密码。)教师(只能查询选修该课程学生基本状况以及公布成绩。)管理员(只可以公布课程信息汇总选课状况)
完整性规定:
(1)多种信息记录完整性,信息记录内容不能为空;
(2)多种数据间互相联络对性;
(3)相似数据在不一样记录中一致性。
4.确定系统边界
经对前面需求调查和初步分析,确定由计算机完毕工作时对数据进行多种管理和处理,详细工作内容见第二部分, 由手工完毕工作重要有对原始数据录入;不能由计算机生成,多种数据更新,包括数据变化后修改,数据增长,失效数据或无用数据删除等;以及系统平常维护。
第二部分 系统功能设计和划分
系统功能模块基本将本系统划分为三大模块,即学生选课模块、教师开课模块以及管理员管理模块。
(1)学生选课模块:在这个模块中,容许学生修改个人信息,浏览基本课程;并实现重要选课功能,包括填写选课信息、查看已选课程、修改选课等。
(2)教师开课模块:这个模块重要是让教师申请教课,同步教师可以修改个人信息、浏览基本课程以及查看学生选课状况等。
(3)管理员管理模块:这个模块功能比较多,重要包括创立课程指定任课老师、设定课程人数、记录学生选课信息、发告知等等。
(4)通用功能模块:即顾客登录、密码修改等功能实现。
如下是系统功能图
总体功能需求图
二、数据流图
顶层DFD
在数据流图基础上再进行分解,对系统功能需求做深入分解:
1.顾客登录
获取顾客输入顾客名及密码;
若出现顾客名、密码错误或不匹配现象,反馈错误提醒;
在顾客名及密码都对前提下,支持密码修改。
2.选课系统
首先公布选课告知,即先对教师发出告知(教师得到告知后才可申请教课),然后对学生发出 告知(此时已安排完有关选修课所有信息);
创立课程指定任课教师;
设定课程人数和开课时间安排;
分派账号及密码(由于是管理员操作此部分)。
3.教师开课
获取教师申请教课信息,包括教师信息及其所要教课程课程信息;
提供教师浏览课程功能,即课程时间、教室等安排;并提供查询学生选课状况功能,即选此门课程名单等;
处理和记录教师对学生成绩评估。
4.学生选课
提供学生修改个人信息功能;
提供学生浏览所有选修课信息功能,然后接受学生选课操作;
获取学生及其所选课程信息后,提供学生浏览自己所选课程安排状况;
得到选课系统指令,在对应时间内可以让学生修改自己选课;
将选课系统记录好成绩信息反馈给学生供其浏览。
通过以上分析,根据不一样顾客给出如下数据流图:
如下是整体构造数据流图:
三、数据字典
根据数据流程分析,对系统数据分析和汇总,建立系统数据字典
1. 数据项(如下数据构造中)
2.数据构造
学生信息
属性名
存储代码
类型
长度
备注
学号
sno
char
10
例 :26,12代表入年份,14代表学院,第一种01代表专业名称,第二个01代表班级,26代表学号(不能为空)
姓名
sname
char
10
描述学生姓名
性别
ssex
char
2
描述学生性别(只容许填写“男”或“女”)
出生日期
sdate
char
10
例:1992-12-4
班级
sclass
char
10
例:(取学号前8位)
专业
sdept
char
20
例:信息管理与信息系统
课程信息数据字典
属性名
存储代码
类型
长度
备注
课程号
cno
char
10
例:T001,T代表所属类别,001代表课程编号(不为空)
课程名
cname
char
20
描述课程名信息。例:数据库原理与应用
任课老师
jno
char
10
任课老师教师号
课时
chour
int
描述每门科目需要学习时间。例:42
学分
credit
int
描述修完某个科目所得学分
选课成绩
属性名
存储代码
类型
长度
备注
学号
sno
char
10
不能为空
姓名
sname
char
10
描述学生姓名信息
课程号
cno
char
10
不能为空
课程名
cname
char
20
描述课程名信息
分数
grade
int
描述某一科目通过考试所获得成绩
教师信息
属性名
存储代码
类型
长度
备注
教师号
jno
char
10
描述教师代号信息,例:001(不为空)
教师姓名
jname
char
10
描述教师姓名信息
性别
jsex
char
2
描述教师性别。例:“男”或“女”
联络电话
jtel
varchar
20
描述教师联络方式
所讲课程号
cno
char
10
描述教师所教课程信息
管理员信息
属性名
存储代码
类型
长度
备注
姓名
name
char
10
描述管理员
性别
sex
char
2
描述管理员性别。例:“男”或“女”
职工号
no
char
10
描述管理员代号。
联络电话
tel
varchar
20
描述管理员联络方式
3.数据流
编号
数据流名
来源
构成
去向
数据流量
备注
1
账号密码
顾客登录处理
账号+密码
记录分析处理
小
顾客输入账号和密码
2
教师信息
管理员录入教师信息
教师
教师查询信息
大
在教师权限范围内查询信息
3
课程信息
管理员录入课程信息
课程
查询课程信息
大
录入学生选择课程
4
学生信息
管理员录入学生信息
学生
学生查询信息
大
在学生权限范围内查询信息
5
查询成果
顾客查询分析
学生、教师、选课
查询信息
小
查询老师权限范围内数据
6
学生成绩
管理员录入学生成绩
选课
学生成绩表
大
录入学生选课成绩信息
4.数据存储
编号
存储名称
输入数据流
输出数据流
构成
备注
1
教师
教师信息
教师信息
教师
存储教师信息
2
学生
学生信息
学生信息
学生
存储学生信息
3
课程
课程信息
课程信息
课程
存储课程信息
4
成绩
学生成绩
学生成绩
学生、选课
存储成绩信息
5.处理过程
处理过程
阐明
输入
输出
处理
录入教师信息
将教师信息录入系统
信息录入
教师信息
管理员将教师信息录入系统,供顾客查询及修改
录入学生信息
将学生信息录入系统
信息录入
学生信息
管理员将学生信息录入系统,供顾客查询及修改
录入课程信息
将课程信息录入系统
课程安排
课程信息
管理员将教师信息录入系统
录入学生成绩
将成绩信息录入系统
信息录入
学生成绩
选课系统提供选课信息及课程安排
查询成绩信息
顾客查询学生成绩
账号密码
成绩信息
用于学生查询自己成绩
查询课程信息
查询课程信息
账号密码
课程信息
学生将自己信息输入后,会显示出自己目前选课进程
查询学生信息
顾客查询学生信息
账号密码
学生信息
顾客登录后可以查看修改个人信息
查询教师信息
顾客查询教师信息
账号密码
教师信息
顾客登录后可以查看修改个人信息
学生选课
学生进行网上选课
账号密码
课程信息,选课进度
选课系统提供选课信息及课程安排,学生进行选课
公布课程信息
教师管理员公布课程信息
提供应管理员
课程信息
教师将所启动课程交由选课系统,管理员进行汇总整顿
二、概念设计阶段
一、数据抽象(汇集法)
二、E-R
初步E-R图
改善后E-R图(合并分E-R)
三、修改正程
1.合并分E-R图,生成总E-R图
由于各个实体和实体属性之间冲突,合并时必须消除这些冲突:
(1)属性冲突:由于设计分E-R图前有过充足讨论,因此没有属性冲突。
(2)命名冲突:教师中所讲课程即为课程中课程号
(3)构造冲突:“选课”是一种实体,不过在E-R图中却成了关系,因此在制作数据库时要把“选课”作为一种实体。
2.消除不必要冗余
由于某些联络可以导出其他联络,这种联络可以被消除。
三、逻辑构造设计阶段
一、概念模型向关系模型转换及依赖关系分析
根据总E-R图中实体与实体之间联络以及转换一般原则,如下关系:
学生(学号、姓名、性别、出生日期、班级、专业)
课程(课程号、课程名、任课老师、课时、学分)
教师(教师号、姓名、性别、电话、所讲课程)
选课(学号、课程号、课程名、成绩)
一对多关系(1:n)转换
教师(教师号、姓名、性别、电话、所讲课程)
学生(学号、姓名、性别、出生日期、班级、专业)
学生(学号、姓名、性别、出生日期、班级、专业)
课程(课程号、课程名、任课老师、课时、学分)
学生(学号、姓名、性别、出生日期、班级、专业)
课程(课程号、课程名、任课老师、课时、学分)
选课(学号、课程号、成绩)
教师(教师号、姓名、性别、电话、所讲课程)
课程(课程号、课程名、任课老师、课时、学分)
二、数据模型优化
1.确定数据依赖
2.消除冗余联络
3.确定所属范式
4.按照需求分析阶段得到多种应用对数据处理规定,分析对于这样应用环境这些模式与否合适,确定与否要对它们进行合并或分解。
(1)在关系模式学生(学号、姓名、性别、出生日期、班级、专业)中,每一种属性都不能再分,故属于1NF;
在关系模式学生(学号、姓名、性别、出生日期、班级、专业)中,主键为学号,因此,姓名,性别,专业,出生日期,班级都是非主属性。根据候选键定义可知,学号完全决定姓名,姓名,性别,专业,出生日期,班级,即每一种非主属性完全依赖于候选键,故,该关系模式属于2NF;
在关系模式学生(学号、姓名、性别、出生日期、班级、专业)中,姓名、性别、出生日期、班级、专业,都是非主属性,且每一种非主属性不传递函数依赖于候选键学号,即,学号决定姓名,但姓名不决定性别,不决定出生日期、班级、专业。故,该关系模式属于3NF;
在关系模式学生(学号、姓名、性别、出生日期、班级、专业)中,候选键为学函数依赖为学号—>姓名,学号—>性别,学号—>出生日期,学号—>班级,学号—>专业,故,该关系模式属BCNF;
由于在关系模式学生(学号、姓名、性别、出生日期、班级、专业)中不存在多值依赖,故该关系模式不属于4NF。
综上所述,关系模式学生(学号、姓名、性别、出生日期、班级、专业)为BCNF。
(2)在关系模式课程(课程号、课程名、任课老师、课时、学分)和教师(教师号、姓名、性别、电话、所讲课程)中,每一种属性都不能再分,故,属于首先满足1NF.主键分别为编号和课程号,每一种非主属性完全依赖于候选键,故,这两个关系模式首先属于2NF。且每一种非主属性不传递函数依赖于候选键学号,故属于3NF。并且,候选键编号和课程号决定一切非主属性,故,该关系模式属于BCNF。 由于关系模式中不存在多值依赖,故,不属于4NF。因此这两个关系模式属于BCNF。
(3)在关系模式选课(学号、课程号、课程名、成绩)中,每一种属性都不能再分,故,属于首先满足1NF.
在关系模式选课(学号、课程号、课程名、成绩)中,主键分别为学号和课程号码,每一种非主属性完全依赖于候选键,故,这两个关系模式首先属于2NF。且每一种非主属性不传递函数依赖于候选键学号,故属于3NF。
综上所述,关系模式选课(学号、课程号、课程名、成绩)为3NF。
5.按照需求分析阶段得到多种应用对数据处理规定,对关系模式进行必要分解,以提高数据操作效率和存储空间运用率
三、设计顾客子模式
1.对于关系模式学生(学号,姓名,性别,出生日期,班级,专业),
为学生和管理员建立视图:
学生1(学号,姓名,性别,出生日期,班级,专业)
为非学生建立视图:
学生2(学号,姓名,班级,专业)
2.对于关系模式教师(教师号,姓名,性别,电话,所讲课程),
为教师和管理员建立视图:
教师1(教师号,姓名,性别,电话,所讲课程)
为学生建立视图:
教师2(教师号,姓名,所讲课程)
3.对于关系模式选课(学号,课程号,课程名,成绩),
为教师学生和管理员建立视图:
选课1(学号,课程号,课程名,成绩)
4.对于课程(课程号,课程名,任课老师,课时,学分),
为教师和管理员建立视图:
课程1(课程号,课程名,任课老师,课时,学分)
为学生建立视图:
课程2(课程号,课程名,任课老师,学分)
四、物理设计阶段
数据库在物理上存储构造与存储措施称为数据库物理构造,它依赖于选定数据库管理系统。为一种给定逻辑数据模型选用一种最适合应用规定物理构造过程,就是物理构造设计。
数据库物理构造设计一般分为两步:
(1)确定数据库物理构造,在关系数据库中重要指存取措施和存储构造;
(2)对物理构造进行评价,评价中是时间和空间效率。
索引表
学生信息表索引表:
索引
列名
数据类型
长度
主
Sno
Char
10
无
Sname
Char
10
无
Ssex
Char
2
无
Sdate
Char
10
无
Sclass
Char
10
无
Sdept
char
20
课程信息表索引表:
索引
列名
数据类型
长度
主
Cno
char
10
无
Cname
Char
20
无
Jno
Char
10
无
Chour
Int
无
credit
int
选课信息表:
索引
列名
数据类型
长度
主
Sno
Char
10
Cno
Char
10
无
cname
Char
20
无
grade
int
无
sname
Char
10
教师信息表索引表:
索引
列名
数据类型
长度
主
Jno
Char
10
无
Jname
Char
10
无
Jsex
Char
2
无
Jtel
Char
20
(1) 在Student表Sname(姓名)列上建立一种聚簇索引,可以提高查询效率
(2) Student表按学号升序建唯一索引
(3) Course表按课程号升序建唯一索引
(4) SC表按学号升序和课程号降序建唯一索引
五、数据库实行阶段
数据库实行
建立数据库ST:
--建立数据库ST
create database ST;
--建立表student
create table student
(sno char(10) primary key not null,
sname char(10),
ssex char(2) check(ssex in('男','女')),
sdate varchar(10) check(sdate<getdate()),
sclass char(10),
sdept char(10));
\
--建立表teacher
create table teacher
(jno char(10) primary key not null,
jname char(10),
jsex char(2) check(jsex in('男','女')),
jtel char(11));
--建立表course
create table course
(cno char(10) primary key not null,
cname char(20),
jno char(10),
chour int,
credit int,
foreign key(jno) references teacher(jno));
--建立表sc
create table sc
(sno char(10) not null,
sname char(10) not null,
cno char(10),
cname char(10),
grade int,
primary key(sno,cno),
foreign key(sno) references student(sno),
foreign key(cno) references course(cno));
插入数据
--向student表中插入数据
insert
into student
values('01','乔一','男','1987-10-15','06345678','电子数控');
insert
into student
values('02','郑二','男','1989-06-22','07345678','中国学专业');
insert
into student
values('03','欧三','男','1992-10-13','','演出');
insert
into student
values('04','王四','女','1992-12-04','','信管');
insert
into student
values('05','沈五','女','1994-02-09','','信管');
insert
into student
values('06','汤六','女','1994-03-30','','信管');
insert
into student
values('07','李七','女','1994-09-15','','信管');
--向teacher表中插入数据
insert
into teacher
values('1001','乔小一','男','');
insert
into teacher
values('1002','郑小二','男','037');
insert
into teacher
values('1003','朴小三','女','067');
insert
into teacher
values('1004','欧小四','男','');
--向course表中插入数据
insert
into course
values('T001','中国学','1002','42','6');
insert
into course
values('K001','数控原理','1001','30','3');
insert
into course
values('G001','演出技巧','1003','32','5');
insert
into course
values('F001','信息管理','1004','27','4');
--向sc表中插入数据
insert
into sc
values('01','乔一','K001','数控原理','99');
insert
into sc
values('02','郑二','T001','中国学','97');
insert
into sc
values('03','欧三','G001','演出技巧','96');
insert
into sc
values('04','王四','F001','信息管理','95');
insert
into sc
values('05','沈五','F001','信息管理','94');
insert
into sc
values('06','汤六','F001','信息管理','93');
insert
into sc
values('07','李七','F001','信息管理','92');
六、总结部分
通过对学生选课系统理解和平常我们所熟悉对选课数据库应用,我们对数据库各部分设计有了感性认识,对需求分析重要性和对一种系统各部分工作流程细节有了更深入理解,对概念设计环节掌握愈加清晰,增进了对分析过程中原则规定及所得到数据成果原因认识,大体上懂得怎样对一种系统从那几种方面进行分析得到我们需要信息;逻辑设计阶段中,由于整个系统数据复杂性和实际应用中交叉性,在理论上和实际操作中无论是设计关系模型还是最终选择存储措施时都觉得时间和空间之间有较多矛盾性,最终分析选择也存在诸多局限性,对数据库设计难度有了更深认识,深感一种高效,简便数据库设计实乃非吾辈目前能力所能及也.
总之,在通过真正动手之后,我们对数据库设计无论是概念,理论,原理理解还是实际对数据库操作能力都获益匪浅,但离真正设计尚有相称距离.
小组分工:
需求分析部分:
概念设计部分:
逻辑设计部分:
物理设计部分:
数据库实行:
PPT制作:
展开阅读全文