1、资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。教务管理数据库系统课程设计目录1、 需求分析211 信息要求: 212 处理要求: 213 安全性与完整性要求: 214 系统功能的设计和划分2第一部分: 用户管理部分3第二部分: 管理员管理部分32、 概念设计32.1概念模型( E-R图) : 32.2数据字典: 5a.数据项5b、 数据结构5c、 数据流5d、 数据存储6e、 处理过程62.3 数据流图73、 逻辑结构设计73.1 E-R图向关系模型的转换( 关系的码用下横线表出) 73.2 设计用户子模式84、 物理设计841 选择存取方法842 确定数据库的存储结构843 评价
2、物理结构95、 系统实施96、 运行维护101、 需求分析11 信息要求: 教务管理系统涉及的实体有: l 教师工作证号、 姓名、 职称、 电话等; l 学生学号、 姓名、 性别、 出生年月等; l 班级班号、 最低总学分等; l 系系代号、 系名和系办公室电话等; l 课程课序号、 课名、 学分、 上课时间及名额等。这些实体之间的联系如下: l 每个学生都属于一个班, 每个班都属于一个系, 每个教师也都属于一个系。l 每个班的班主任都由一名教师担任。l 一名教师能够教多门课, 一门课能够有几位主讲老师, 但不同老师讲的同一门课其课序号是不同的( 课序号是唯一的) 。l 一名同学能够选多门课,
3、 一门课可被若干同学选中。l 一名同学选中的课若已学完, 应该记录有相应成绩。l 本单位学生、 教师都有重名, 工作证号、 学号能够作为标识。12 处理要求: 教学系统主要提供数据维护、 选课和信息查询。其中常见的查询有: 系统中各对象的基本信息查询。 查询指定班、 系的学生信息( 名单、 人数等) 。查询学生的成绩、 学分情况。查询教师授课情况和学生选课情况。13 安全性与完整性要求: l 安全性要求: 1.系统应设置访问用户的标识以鉴别是否是合法用户, 并要求合法用户设置其密码, 保证用户身份不被盗用; 2.系统应对不同的数据设置不同的访问级别, 限制访问用户可查询和处理数据的类别和内容;
4、 3.系统应对不同用户设置不同的权限, 区分不同的用户, 如学生, 教师, 系统管理员。l 完整性要求: 1.各种信息记录的完整性, 关键信息记录内容不能为空; 2.各种数据间相互的联系的正确性; 3.相同的数据在不同记录中的一致性。14 系统功能的设计和划分根据如上得到的用户需求, 我们将本系统按照所完成的功能分成以下几部分: 第一部分: 用户管理部分 1、 处理用户注册 2、 处理用户登录 3、 用户能够查询学生信息。 4、 用户能够查询快件信息。 5、 用户能够提交与查询报修信息。 6、 用户能够插入与删除用户自己的离返校信息。 7、 用户能够修改用户自己密码。第二部分: 管理员管理部分
5、各部分完成的功能如下: 1、 处理管理员登录 2、 管理员能够查询学生信息。 3、 管理员能够发布与更新快件信息。4、 管理员能够插入、 修改与查询报修信息。 5、 管理员能够插入与查询学生夜归信息。6、 管理员能够查询在校与离校学生信息。7、 管理员能够修改管理员密码。2、 概念设计2.1概念模型( E-R图) : 教师班级属于最低总学分班号电话职称姓名工作证号学生学号出生年月性别姓名系系办公室电话系名系代号属于工作隶属关系的分E-R图1n1n1n学生课程选修学号成绩出生年月性别姓名名额上课时间学分课名课序号mn选修联系的分E-R图负责联系的分E-R图班级负责最低总学分班号班主任电话职称姓名
6、工作证号11授课授课联系的分E-R图课程名额上课时间学分课名课序号教师电话职称姓名工作证号1n学生教师系班级课程选修属于属于工作授课学号成绩出生年月性别姓名名额上课时间学分课名课序号最低总学分班号系办公室电话系名系代号电话职称姓名工作证号负责教务管理系统的总E-R图1n1n1n111nmn2.2数据字典: a.数据项编号属性名存储代码类型长度备 注1学号Snochar11学生编号2姓名Snamechar20学生的姓名, 任意合法字符3性别Ssexchar2学生的性别4出生年月Sbirthdate出生时间间接表示年龄5班号Classchar6班级编号6最低总学分TotalCredit浮点数4必须
7、修足的学分总数7工作证号Tnochar6教师的编号8教师姓名Tnamechar20教师的姓名, 任意合法的字符9职称Titlechar8教师的职位称号10电话Telchar11教师的联系电话11系代号Dnochar3院系的编号12系名Departmentchar10院系的名称13系办公室电话Dphonechar11院系办公室的工作电话14课序号Cnochar6可区分不同老师教授的同一课程15课名Cnamechar20课程的名称16学分Credit浮点数2课程的学分17上课时间Ctimedatetime上课的时间18名额CnumInt课容量19成绩GradeInt选课学生某门课的成绩b、 数据结
8、构编号数据结构名组 成1学生学号、 姓名、 性别、 出生年月、 所属班级班号2教师工作证号、 教师姓名、 职称、 电话、 所在系的系号3班级班号、 最低总学分、 班主任的工作证号、 所属系的系号4系系代号、 系名、 系办公室电话5课程课序号、 课名、 学分、 上课地点、 名额、 授课教师的工作证号6选课记录课序号、 学号、 成绩c、 数据流编号数 据 流 名输 入输 出1变更学生信息变更信息学生信息2查询学生信息学号学生信息3变更教师信息变更信息教师信息4查询教师信息工作证号教师信息5变更班级信息变更信息班级信息6查询班级信息班号班级信息7变更系信息变更信息系信息8查询系信息系代号系信息9变更
9、课程信息变更信息课程信息10查询课程信息课序号课程信息11选课选课表变更信息选课信息12查询选课信息学号或课序号选课信息13查询授课信息工作证号授课信息d、 数据存储数据存储名输入数据流输出数据流说 明 部 分学生信息表修改学生信息学生信息某课程的学生信息教师信息表修改教师授课教师信息班主任信息课程信息表所有开设课程信息学生选择的课程信息教师任教的课程信息选课表学生所有的选课记录学生的选课表随机存取 记录学生本学期所选课程信息班级信息表所有班级信息班级基本信息系信息表所设系的信息系的基本信息e、 处理过程处理过程名输入数据流输 出 数 据 流选课选课信息选定课信息登记成绩成绩信息学生所选课程成
10、绩信息修改学生信息更改学生信息修改后的学生信息修改教师信息更改教师信息修改后的教师信息数据维护各信息表的修改信息修改后各信息表2.3 数据流图学生教师选课查询选课表查询查询查询查询登记成绩教师信息选课信息系信息选课信息选课信息选课信息选课信息已选课信息选课信息成绩信息成绩信息系信息班级信息学生信息成绩信息班级信息学生信息课程信息表学生信息表课程信息课程信息课程信息课程信息查询学生信息修改教师信息查询教师信息修改学生信息教师信息表学生信息学生信息教师信息教师信息教师信息系信息表班级信息表查询班级信息系信息班级信息系信息总 数 据 流 图3、 逻辑结构设计3.1 E-R图向关系模型的转换( 关系的
11、码用下横线表出) 教师( 工作证号, 姓名, 职称, 电话, 系代号) 代码表示: Teacher ( Tno, Tname, Title, Tel, Dno )此为”教师”实体对应的关系模式。其中1: n联系”工作”与此关系模式合并, Dno为外码。存在的函数依赖为Tno ( Tname, Title, Tel, Dno) , 且不存在多值依赖, 因此满足4NF。学生( 学号, 姓名, 性别, 出生年月, 班号) 代码表示: Student ( Sno, Sname, Ssex, Sbirth, Class )此为”学生”实体对应的关系模式。其中1: n联系”属于”与此关系模式合并, Cla
12、ss为外码。存在的函数依赖为Sno ( Sname, Ssex, Sbirth, Class) , 且不存在多值依赖, 因此满足4NF。系( 系代号, 系名, 系办公室电话) 代码表示: Department ( Dno, Dname, Dphone )此为”系”实体对应的关系模式。存在的函数依赖为Dno ( Dname, Dphone) , 且不存在多值依赖, 因此满足4NF。课程( 课序号, 课名, 学分, 上课时间, 名额, 工作证号) 代码表示: Course ( Cno, Cname, Credit, Ctime, Cnum, Tno )此为”课程”实体对应的关系模式。其中1: n联
13、系”授课”与此关系模式合并, 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 )此为”班级”实体对应的
14、关系模式。其中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三个表进行连接查询, 而连接是影响查询效率的
15、主要原因, 因此取消对Class的模式分解。此时Class关系模式满足2NF。3.2 设计用户子模式为了方便程序查询, 建立了如下用户视图: 1、 某系的学生信息视图( 学号, 姓名, 性别, 出生年月, 班号) 2、 某系的教师信息视图( 工作证号, 教师姓名, 职称, 电话, 负责班级) 3、 某课程的学生成绩单( 学号, 姓名, 班级, 成绩) 4、 教师授课信息表( 工作证号, 教师姓名, 职称, 教授课程, 学分, 上课时间) 5、 学生已选课表( 课序号, 课名, 学分, 授课教师, 上课时间, 名额) 4、 物理设计41 选择存取方法1、 数据库管理系统自动在每个表的主码上建立索
16、引, 一般为B + 树索引。2、 在Student表Sname列上建立Stu_name索引, 因为查询操作很多都使经过学生姓名进行的。3、 在Teacher表Tname列上建立Tea_name索引, 因为查询操作很多都使经过教师姓名进行的。42 确定数据库的存储结构1、 为了提高系统性能, 根据具体情况将数据的易变部分与稳定部分、 经常存取部分和存取频率较低部分分开存放。2、 DBMS产品一般都提供了一些系统配置变量、 存储分配参数, 根据应用环境确定这些参数值, 而且在系统运行时还要根据系统实际运行情况进行调整, 以使系统性能最佳。43 评价物理结构根据所选用的DBMS, 如SQL Serv
17、er , 从定量估算各种方案的存储空间、 存取时间和维护代价入手, 对估算结果进行权衡、 比较, 选择一个较优的合理的物理结构。5、 系统实施编写关系模式, 载入数据。分期分批地组织数据入库, 先输入小批量数据做调试用, 待试运行基本合格后, 再大批量输入数据, 逐步增加数据量, 逐步完成运行评价。需要注意的是, 要首先调试运行DBMS的恢复功能, 做好数据库的转储和恢复工作。基本SQL语言代码如下: CREATE SCHEMA TeachAffair AUTHORIZATION GaoCREATE TABLE Department (Dno CHAR(3) PRIMARY KEY, /*列级
18、完整性约束条件, 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 C
19、HAR(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是主码*/
20、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), F
21、OREIGN 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 C
22、ASCADE /* 当删除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;*/*建立索引
23、*/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为例) 的学生信息视图*/ASSELECT *FROM StudentWHERE Class IN (SELECT Class FROM Class WHERE Dname=GIS)WI
24、TH CHECK OPTION;SELECT *FROM GIS_Student;SELECT COUNT(*)FROM GIS_Student;/*查询班级的学生信息*/SELECT Sno, Sname, Ssex, BirthFROM StudentWHERE Class = 114072;SELECT COUNT(*)FROM StudentWHERE Class=114072;/*查询学生的成绩、 学分*/SELECT SC.Cno, Cname, Credit, GradeFROM Course, SCWHERE Sno = 1000500 AND SC.Cno=Course.Cn
25、o;SELECT SUM(Credit)FROM SC,CourseWHERE Sno= 1000500 AND SC.Cno=Couse.Cno;/*查询教师授课信息*/SELECT Course.*FROM CourseWHERE Tno=100123;SELECT Student.Sno,Sname,Class,GradeFROM Course,SC,StudentWHERE Tno=100123 AND Course.Cno=SC.Cno AND SC.Sno=Student.Sno;6、 运行维护1、 针对不同的应用要求制定不同的转储计划, 一旦发生故障尽快将数据库恢复到某种一致的状态, 并尽可能减少对数据库的破坏; 2、 根据实际情况修改数据库原有的安全性、 完整性控制; 3、 在数据库运行过程中, 监督系统运行, 对监测数据进行分析, 找出改进系统性能的方法; 4、 数据库运行一段时间后, 由于记录不断增、 删、 改, 会使数据库的物理存储情况变坏, 降低数据的存取效率, 数据库性能下降。这时应按原设计要求重新安排存储位置、 回收垃圾、 减少指针链等, 提高系统性能。当原有的数据库设计不能满足新的需求, 需要重构造数据库, 调整数据库的模式和内模式。