资源描述
教务管理
数据库系统课程设计
目录
1、需求分析 2
1.1 信息要求: 2
1.2 处理要求: 2
1.3 安全性和完整性要求: 2
1.4 系统功效设计和划分 2
第一部分:用户管理部分 3
第二部分:管理员管理部分 3
2、概念设计 3
2.1概念模型(E-R图): 3
2.2数据字典: 5
a.数据项 5
b、数据结构 5
c、数据流 5
d、数据存放 6
e、处理过程 6
2.3 数据流图 7
3、逻辑结构设计 7
3.1 E-R图向关系模型转换(关系码用下横线表出) 7
3.2 设计用户子模式 8
4、物理设计 8
4.1 选择存取方法 8
4.2 确定数据库存放结构 8
4.3 评价物理结构 9
5、系统实施 9
6、运行维护 10
1、需求分析
1.1 信息要求:
教务管理系统包含实体有:
l 老师——工作证号、姓名、职称、电话等;
l 学生——学号、姓名、性别、出生年月等;
l 班级——班号、最低总学分等;
l 系——系代号、系名和系办公室电话等;
l 课程——课序号、课名、学分、上课时间及名额等。
这些实体之间联络以下:
l 每个学生全部属于一个班,每个班全部属于一个系,每个老师也全部属于一个系。
l 每个班班主任全部由一名老师担任。
l 一名老师能够教多门课,一门课能够有几位主讲老师,但不一样老师讲同一门课其课序号是不一样(课序号是唯一)。
l 一名同学能够选多门课,一门课可被若干同学选中。
l 一名同学选中课若已学完,应该统计有对应成绩。
l 本单位学生、老师全部有重名,工作证号、学号能够作为标识。
1.2 处理要求:
教学系统关键提供数据维护、选课和信息查询。其中常见查询有:系统中各对象基础信息查询。 查询指定班、系学生信息(名单、人数等)。查询学生成绩、学分情况。查询老师讲课情况和学生选课情况……。
1.3 安全性和完整性要求:
l 安全性要求:
1.系统应设置访问用户标识以判别是否是正当用户,并要求正当用户设置其密码,确保用户身份不被盗用;
2.系统应对不一样数据设置不一样访问等级,限制访问用户可查询和处理数据类别和内容;
3.系统应对不一样用户设置不一样权限,区分不一样用户,如学生,老师,系统管理员。
l 完整性要求:
1.多种信息统计完整性,关键信息统计内容不能为空;
2.多种数据间相互联络正确性;
3.相同数据在不一样统计中一致性。
1.4 系统功效设计和划分
依据如上得到用户需求,我们将本系统根据所完成功效分成以下几部分:
第一部分:用户管理部分
1、处理用户注册
2、处理用户登录
3、用户能够查询学生信息。
4、用户能够查询快件信息。
5、用户能够提交和查询报修信息。
6、用户能够插入和删除用户自己离返校信息。
7、用户能够修改用户自己密码。
第二部分:管理员管理部分
各部分完成功效以下:
1、处理管理员登录
2、管理员能够查询学生信息。
3、管理员能够公布和更新快件信息。
4、管理员能够插入、修改和查询报修信息。
5、管理员能够插入和查询学生夜归信息。
6、管理员能够查询在校和离校学生信息。
7、管理员能够修改管理员密码。
2、概念设计
2.1概念模型(E-R图):
老师
班级
属于
最低总学分
班号
电话
职称
姓名
工作证号
学生
学号
出生年月
性别
姓名
系
系办公室电话
系名
系代号
属于
工作
隶属关系分E-R图
1
n
1
n
1
n
学生
课程
选修
学号
成绩
出生年月
性别
姓名
名额
上课时间
学分
课名
课序号
m
n
选修联络分E-R图
负责联络分E-R图
班级
负责
最低总学分
班号
班主任
电话
职称
姓名
工作证号
1
1
讲课
讲课联络分E-R图
课程
名额
上课时间
学分
课名
课序号
老师
电话
职称
姓名
工作证号
1
n
学生
老师
系
班级
课程
选修
属于
属于
工作
讲课
学号
成绩
出生年月
性别
姓名
名额
上课时间
学分
课名
课序号
最低总学分
班号
系办公室电话
系名
系代号
电话
职称
姓名
工作证号
负责
教务管理系统总E-R图
1
n
1
n
1
n
1
1
1
n
m
n
2.2数据字典:
a.数据项
编号
属性名
存放代码
类型
长度
备 注
1
学号
Sno
char
11
学生编号
2
姓名
Sname
char
20
学生姓名,任意正当字符
3
性别
Ssex
char
2
学生性别
4
出生年月
Sbirth
date
出生时间间接表示年纪
5
班号
Class
char
6
班级编号
6
最低总学分
TotalCredit
浮点数
4
必需修足学分总数
7
工作证号
Tno
char
6
老师编号
8
老师姓名
Tname
char
20
老师姓名,任意正当字符
9
职称
Title
char
8
老师职位称号
10
电话
Tel
char
11
老师联络电话
11
系代号
Dno
char
3
院系编号
12
系名
Department
char
10
院系名称
13
系办公室电话
Dphone
char
11
院系办公室工作电话
14
课序号
Cno
char
6
可区分不一样老师教授同一课程
15
课名
Cname
char
20
课程名称
16
学分
Credit
浮点数
2
课程学分
17
上课时间
Ctime
datetime
上课时间
18
名额
Cnum
Int
课容量
19
成绩
Grade
Int
选课学生某门课成绩
b、数据结构
编号
数据结构名
组 成
1
学生
学号、姓名、性别、出生年月、所属班级班号
2
老师
工作证号、老师姓名、职称、电话、所在系系号
3
班级
班号、最低总学分、班主任工作证号、所属系系号
4
系
系代号、系名、系办公室电话
5
课程
课序号、课名、学分、上课地点、名额、讲课老师工作证号
6
选课统计
课序号、学号、成绩
c、数据流
编号
数 据 流 名
输 入
输 出
1
变更学生信息
变更信息
学生信息
2
查询学生信息
学号
学生信息
3
变更老师信息
变更信息
老师信息
4
查询老师信息
工作证号
老师信息
5
变更班级信息
变更信息
班级信息
6
查询班级信息
班号
班级信息
7
变更系信息
变更信息
系信息
8
查询系信息
系代号
系信息
9
变更课程信息
变更信息
课程信息
10
查询课程信息
课序号
课程信息
11
选课
选课表变更信息
选课信息
12
查询选课信息
学号或课序号
选课信息
13
查询讲课信息
工作证号
讲课信息
d、数据存放
数据存放名
输入数据流
输出数据流
说 明 部 分
学生信息表
修改学生信息
学生信息
某课程学生信息
老师信息表
修改老师
讲课老师信息
班主任信息
课程信息表
全部开设课程信息
学生选择课程信息
老师任教课程信息
选课表
学生全部选课统计
学生选课表
随机存取 统计学生本学期所选课程信息
班级信息表
全部班级信息
班级基础信息
系信息表
所设系信息
系基础信息
e、处理过程
处理过程名
输入数据流
输 出 数 据 流
选课
选课信息
选定课信息
登记成绩
成绩信息
学生所选课程成绩信息
修改学生信息
更改学生信息
修改后学生信息
修改老师信息
更改老师信息
修改后老师信息
数据维护
各信息表修改信息
修改后各信息表
2.3 数据流图
学生
老师
选课
查询
选课表
查询
查询
查询
查询
登记成绩
老师信息
选课信息
系信息
选课信息
选课信息
选课信息
选课信息
已选课信息
选课信息
成绩信息
成绩信息
系信息
班级信息
学生信息
成绩信息
班级信息
学生信息
课程信息表
学生信息表
课程信息
课程信息
课程信息
课程信息
查询学生信息
修改老师信息
查询老师信息
修改学生信息
老师信息表
学生信息
学生信息
老师信息
老师信息
老师信息
系信息表
班级信息表
查询
班级信息
系信息
班级信息
系信息
总 数 据 流 图
3、逻辑结构设计
3.1 E-R图向关系模型转换(关系码用下横线表出)
老师(工作证号,姓名,职称,电话,系代号)
代码表示:Teacher ( Tno, Tname, Title, Tel, Dno )
此为“老师”实体对应关系模式。其中1:n联络“工作”和此关系模式合并,Dno为外码。存在函数依靠为Tno → (Tname,Title,Tel,Dno),且不存在多值依靠,所以满足4NF。
学生(学号,姓名,性别,出生年月,班号)
代码表示:Student ( Sno, Sname, Ssex, Sbirth, Class )
此为“学生”实体对应关系模式。其中1:n联络“属于”和此关系模式合并,Class为外码。存在函数依靠为Sno → (Sname,Ssex,Sbirth,Class),且不存在多值依靠,所以满足4NF。
系(系代号,系名,系办公室电话)
代码表示:Department ( Dno, Dname, Dphone )
此为“系”实体对应关系模式。存在函数依靠为Dno → (Dname,Dphone),且不存在多值依靠,所以满足4NF。
课程(课序号,课名,学分,上课时间,名额,工作证号)
代码表示:Course ( Cno, Cname, Credit, Ctime, Cnum, Tno )
此为“课程”实体对应关系模式。其中1:n联络“讲课”和此关系模式合并,Tno为外码。存在函数依靠为Cno → (Cname,Credit,Ctime,Cnum,Tno),且不存在多值依靠,所以满足4NF。
选课(学号,课序号,成绩)
代码表示:SC ( Sno, Cno, Grade )
此为m:n联络“选修”所对应关系模式。Sno和Cno均为外部码。存在函数依靠为完全函数依靠(Sno,Cno) → Grade,且不存在多值依靠,所以满足4NF。
班级(班号,最低总学分,工作证号,系代号)
代码表示:Class ( Class, TotalCredit, Tno, Dno )
此为“班级”实体对应关系模式。其中1:n联络“属于”和1:1联络“负责”和此关系模式合并
Tno和Dno为外码。该关系模式中存在传输函数依靠:Class → Tno, (Tno
\
Class),Tno → Dno,可得Class → Dno,故Class 不属于3NF。处理方法是将其模式分解为:Class ( Class, TotalCredit, Tno )和T-D( Tno, Dno),分解后关系模式满足4NF,而且T-D和Teacher码相同,可合并为同一模式。不过考虑到系统要常常进行系学生信息查询,此时就不得不对Student、Class和Teacher三个表进行连接查询,而连接是影响查询效率关键原因,所以取消对Class模式分解。此时Class关系模式满足2NF。
3.2 设计用户子模式
为了方便程序查询,建立了以下用户视图:
1、某系学生信息视图(学号,姓名,性别,出生年月,班号)
2、某系老师信息视图(工作证号,老师姓名,职称,电话,负责班级)
3、某课程学生成绩单(学号,姓名,班级,成绩)
4、老师讲课信息表(工作证号,老师姓名,职称,教讲课程,学分,上课时间)
5、学生已选课表(课序号,课名,学分,讲课老师,上课时间,名额)
4、物理设计
4.1 选择存取方法
1、数据库管理系统自动在每个表主码上建立索引,通常为B + 树索引。
2、在Student表Sname列上建立Stu_name索引,因为查询操作很多全部使经过学生姓名进行。
3、在Teacher表Tname列上建立Tea_name索引,因为查询操作很多全部使经过老师姓名进行。
4.2 确定数据库存放结构
1、为了提升系统性能,依据具体情况将数据易变部分和稳定部分、常常存取部分和存取频率较低部分分开存放。
2、DBMS产品通常全部提供了部分系统配置变量、存放分配参数,依据应用环境确定这些参数值,而且在系统运行时还要依据系统实际运行情况进行调整,以使系统性能最好。
4.3 评价物理结构
依据所选择DBMS,如SQL Server ,从定量估算多种方案存放空间、存取时间和维护代价入手,对估算结果进行权衡、比较,选择一个较优合理物理结构。
5、系统实施
编写关系模式,载入数据。分期分批地组织数据入库,先输入小批量数据做调试用,待试运行基础合格后,再大批量输入数据,逐步增加数据量,逐步完成运行评价。需要注意是,要首先调试运行DBMS恢复功效,做好数据库转储和恢复工作。
基础SQL语言代码以下:
CREATE SCHEMA "TeachAffair" AUTHORIZATION Gao
CREATE TABLE Department
(Dno CHAR(3) PRIMARY KEY, /*列级完整性约束条件,Dno是主码*/
Dept CHAR(20) UNIQUE NOT NULL,
Dphone CHAR(11),
);
CREATE TABLE Teacher
(Tno CHAR(6) PRIMARY KEY, /*列级完整性约束条件,Tno是主码*/
Tname CHAR(20) NOT NULL,
Title CHAR(8),
Tel CHAR(11),
Dno CHAR(3),
FOREIGN KEY (Dno) REFERENCES Department(Dno) /*表级完整性约束条件,Dno是外码*/
);
CREATE TABLE Class
(Class CHAR(6) PRIMARY KEY, /*列级完整性约束条件,Class是主码*/
TotalCredit NUMERIC(4,1),
Tno CHAR(6),
Dno CHAR(3),
FOREIGN KEY (Tno) REFERENCES Teacher(Tno), /*表级完整性约束条件,Tno是外码*/
FOREIGN KEY (Dno) REFERENCES Department(Dno) /*表级完整性约束条件,Dno是外码*/
);
CREATE TABLE Student
(Sno CHAR(11) PRIMARY KEY, /*列级完整性约束条件,Sno是主码*/
Sname CHAR(20) NOT NULL,
Ssex CHAR(2),
Sbirth DATETIME,
Class CHAR(6),
FOREIGN KEY (Class) REFERENCES Class(Class) /*表级完整性约束条件,Class是外码*/
);
CREATE TABLE Course
(Cno CHAR(6) PRIMARY KEY, /*列级完整性约束条件,Cno是主码*/
Cname CHAR(20) NOT NULL,
Credit NUMERIC(2,1),
Ctime DATETIME,
Cnum SMALLINT,
Tno CHAR(6),
FOREIGN KEY (Tno) REFERENCES Teacher(Tno) /*表级完整性约束条件,Tno是外码*/
);
CREATE TABLE SC
(Sno CHAR(11) NOT NULL,
Cno CHAR(6) NOT NULL,
Grade SMALLINT CHECK(Grade>=0 AND Grade<=100),
PRIMARY KEY (Sno, Cno), /*主码由两个属性组成,必需作为表级完整性进行定义*/
FOREIGN KEY (Sno) REFERENCES Student(Sno) /*表级完整性约束条件,Sno是外码*/
ON DELETE CASCADE /* 当删除Student表中元组时,级连删除SC表中对应元组*/
ON UPDATE CASCADE, /*当更新Student表中Sno时,级连更新SC表中对应元组*/
FOREIGN KEY (Cno) REFERENCES Course(Cno) /*表级完整性约束条件,Sno是外码*/
ON DELETE NO ACTION /* 当删除Course表中元组造成了和SC表不一致时,拒绝删除*/
ON UPDATE CASCADE, /*当更新Course表中Cno时,级连更新SC表中对应元组*/
);
/*DROP TABLE SC;*/
/*建立索引*/
CREATE UNIQUE INDEX Stu_name ON Student(Sname);
CREATE UNIQUE INDEX Tea_name ON Teacher(Tname);
CREATE UNIQUE INDEX SCno ON SC(Sno ASC, Cno DESC);
/*查询某个系(以GIS为例)学生信息*/
CREATE VIEW GIS_Student /*建立某个系(以GIS为例)学生信息视图*/
AS
SELECT *
FROM Student
WHERE Class IN
(SELECT Class
FROM Class
WHERE Dname='GIS')
WITH CHECK OPTION;
SELECT *
FROM GIS_Student;
SELECT COUNT(*)
FROM GIS_Student;
/*查询班级学生信息*/
SELECT Sno, Sname, Ssex, Birth
FROM Student
WHERE Class = '114072';
SELECT COUNT(*)
FROM Student
WHERE Class='114072';
/*查询学生成绩、学分*/
SELECT SC.Cno, Cname, Credit, Grade
FROM Course, SC
WHERE Sno = '1000500' AND SC.Cno=Course.Cno;
SELECT SUM(Credit)
FROM SC,Course
WHERE Sno='1000500' AND SC.Cno=Couse.Cno;
/*查询老师讲课信息*/
SELECT Course.*
FROM Course
WHERE Tno='100123';
SELECT Student.Sno,Sname,Class,Grade
FROM Course,SC,Student
WHERE Tno='100123' AND
Course.Cno=SC.Cno AND
SC.Sno=Student.Sno;
6、运行维护
1、针对不一样应用要求制订不一样转储计划,一旦发生故障立即将数据库恢复到某种一致状态,并尽可能降低对数据库破坏;
2、依据实际情况修改数据库原有安全性、完整性控制;
3、在数据库运行过程中,监督系统运行,对监测数据进行分析,找出改善系统性能方法;
4、数据库运行一段时间后,因为统计不停增、删、改,会使数据库物理存放情况变坏,降低数据存取效率,数据库性能下降。这时应按原设计要求重新安排存放位置、回收垃圾、降低指针链等,提升系统性能。当原有数据库设计不能满足新需求,需要重结构数据库,调整数据库模式和内模式。
展开阅读全文