实例2教室管理系统数据库设计.docx
- 文档编号:11810318
- 上传时间:2023-04-02
- 格式:DOCX
- 页数:34
- 大小:390.92KB
实例2教室管理系统数据库设计.docx
《实例2教室管理系统数据库设计.docx》由会员分享,可在线阅读,更多相关《实例2教室管理系统数据库设计.docx(34页珍藏版)》请在冰豆网上搜索。
实例2教室管理系统数据库设计
实例2:
教室管理系统数据库设计
1数据库设计
1.1需求设计
1.1.1引言
在大学里,教室仍然是教学的主要场所,也是学生学习的重要场所,所以教室环境和设备直接影响到教学活动的开展和学生的学习。
为了保证教室环境良好的运转,教室的管理也就显得十分的必要和重要。
但是教室的管理也并不是一件很容易的事情。
教室设备(尤其是多媒体设备)有所损坏必须及时登记,修复,否则很可能影响以后教学,造成教学事故。
教室的使用具有一定的计划性和流动性,即一个班在相应的时间里,所上的课程和使用的教室是固定的,但是不同的课程在不同的时间里会使用不同的教室,这和教务处的课程安排是密切相关的。
尤其是使用多媒体教室的时候,这就显得比较麻烦。
为了能够更系统的,更有序的,更合理的,更有效的进行教室管理,有必要利用计算机来处理各种信息,这也就需要一个更有效的教室管理系统。
为此,经过较详细的调查和慎重的思考,我决定做一个教室管理系统,来解决这些问题,使管理简化,方便而且更有效。
1.1.2目标和任务
(1)目标
充分了解用户的需求,了解工作的流程,以及可能出现的问题。
(2)任务
处理对象:
本系统总体上说涉及了三个方面的数据,职工的信息,教室的信息,课程的信息,其中职工信息包括了员工信息和清洁工信息。
此外还有值班安排信息,多媒体设备损坏纪录,常规设备损坏纪录。
处理功能要求:
教室管理系统的具体功能包括三个方面:
教室查询子系统,卫生管理子系统,设备管理子系统。
教室查询子系统主要完成空闲教室查询(无课教室),教室使用查询的功能;卫生管理子系统主要完成值班安排和修改功能和值班情况记录的功能;设备管理子系统比较麻烦,主要是接收损坏信息,通过检查其有效性,把有效的损坏信息分类并且记录,然后通知维修工,再纪录维修情况的功能。
(3)安全性和完整性要求
在这个系统中涉及到了相关人员的问题,而且同一个职工可能在不同的表中存在,要考虑到,如果辞退或者某职工辞职,那么不仅要在职工信息表中删除相应的信息,还要在其他的相关表中删除信息,这就涉及到了安全性的问题,初步打算用一个触发器来解决这个问题。
完整性也是一个重要的内容,它也涉及安全性上的问题。
1.1.3阶段结果
(1)用户调查
本系统的用户范围比较广,教室查询子系统主要针对学生,通过听取周围学生的看法和意见,以及自身的体会,比较充分的了解了学生的需求;卫生管理子系统主要针对教室管理的员工及其主任,我直接询问了相关的员工,通过对他们的询问,了解了他们的工作的基本流程,及其需求;设备管理子系统主要针对,教室管理的员工和维修工,通过对员工的咨询,了解了他们管理的工作流程和具体的需求。
(2)业务流程图
详见附录1
(3)数据流程图
下面是一个设备流程图的底层流程图:
其它的详见附录2
(4)数据字典
数据项:
表1教室信息数据项
数据项名
数据项含义说明
数据类型
长度
取值范围
取值含义
于其他数据项的逻辑关系
数据项之间的联系
Spart
校区
char
10
Rname
教室名称
char
10
Position
所在位置
char
20
Type
教室类型
char
10
Room
容量
int
4
数据项名
数据项含义说明
数据类型
长度
取值范围
取值含义
于其他数据项的逻辑关系
数据项之间的联系
Cno
课程号
char
10
Cname
课程名称
char
20
Ctime
课程学时
int
4
Weed
周次
char
10
Day
星期
char
10
Node
节次
char
20
Rname
教室名称
char
10
Mno
系号
char
10
Mname
系名
char
20
cg
班级
char
20
Number
人数
int
4
表2课程信息数据项
表3职工信息数据项
数据项名
数据项含义说明
数据类型
长度
取值范围
取值含义
于其他数据项的逻辑关系
数据项之间的联系
Pno
职工编号
char
10
等于维修工编号
Pname
姓名
char
20
等于维修工姓名
Sex
性别
char
4
Age
年龄
int
4
Jname
职业名称
char
10
Addr
住址
char
40
Tel
联系电话
char
20
Week
周次
char
10
Day
星期
char
10
Ontime
上班时间
char
20
Uptime
下班时间
char
20
表4损坏信息数据项
数据项名
数据项含义说明
数据类型
长度
取值范围
取值含义
于其他数据项的逻辑关系
数据项之间的联系
Rname
教室名称
char
10
Dlevel
损坏程度
char
10
Mend
修复难易
char
10
Mno
维修工编号
char
10
等于维修工编号
Mname
维修工姓名
char
10
等于维修工姓名
Repair
是否修复
char
10
1.1.4数据结构
表5数据结构表
数据结构名
含义说明
组成
Class(T1)
教室信息
校区名,教室名称,所在位置,教室类型,容量
Course(T2)
课程信息
课程号,课程名称,周次,星期,节次,课程学时,教室名称,系号,系名,班级,人数
Worker(D1)
职工信息
职工编号,姓名,职业名称,性别,年龄,住址,联系电话
Duty(D2)
值班
职工编号,姓名,职业名称,星期,上班时间,下班时间
State(D3)
值班情况记录
职工编号,姓名,职业名称,星期,周次
Media(P1)
多媒体设备损坏记录
教室名称,损坏程度,修复难易,维修工编号,维修工姓名,是否修复
Routine(P2)
常规设备损坏记录
教室名称,损坏程度,维修工编号,维修工姓名,是否修复
1.1.5处理逻辑描述
(1)教室查询子系统
输入:
查询条件
输出:
查询结果
处理:
按照条件,在相应的表中,查找相应的数据,然后输出
(1)卫生管理子系统
输入:
查询、插入或修改的目标
结果:
输出查询的结果,或者插入成功,或者修改成功
处理:
在相应的表中完成相应的操作。
(3)设备管理子系统
输入:
插入或修改或查询的条件或目标
结果:
输出查询结果或插入成功或修改成功
处理:
在相关表中完成相关的操作。
1.2概念设计
1.2.1引言
概念结构的实际是整个数据库设计的关键,这个阶段主要的目标是通过对用户需求进行综合、归纳和抽象,形成一个独立于DBMS的概念模型(E-R图)。
它的主要特点是:
1.能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个真实模型;2.易于理解,因此可以用它和不熟悉计算机的用户交换意见;3.易于更改,当使用环境和使用要求改变时,容易对概念模型修改和扩充;4.易于向关系、网状、层次等各种数据模型转换。
1.2.2概念模型设计
(1)设计E-R图
详见附录3
1.2.3实体的属性、联系的属性
主码表示如:
教室名称;外码表示如:
教室名称;普通属性如:
教室名称。
教室(校区名,教室名称,所在位置,教室类型,容量);
课程(课程号,教室名称,课程名称,周次,星期,节次,课程学时,系名,班级,人数);
职工(职工编号,姓名,职业名称,性别,年龄,住址,联系电话);
多媒体设备损坏(教室名称,维修工编号,损坏程度,修复难易,维修工姓名,是否修复,备注);
常规设备损坏(教室名称,维修工编号,损坏程度,维修工姓名,是否修复,备注);
值班信息(职工编号,姓名,职业名称,星期,上班时间,下班时间);
值班记录(职工编号,姓名,职业名称,星期,周次);
1.3逻辑设计
1.3.1引言
这个阶段的任务就是把概念结构设计阶段设计好的基本E-R图转换为和DBMS所支持的数据模型相符合的逻辑结构。
在这个阶段里,该系统的目标就是把基本的E-R图转换成关系数据模型。
1.3.2数据组织
(1)将E-R图转换成关系模型:
E-R图转换成关系模型应该遵循以下原则:
1.一个实体型转换为一个关系模式。
2.一个1:
1联系可以转换为一个独立的关系模式,也可以和任意一端对应的关系模式合并。
3.把一个1:
n联系转换为一个独立的关系模式。
4.一个m:
n联系转换为一个关系模式。
5.三个或三个以上实体间的一个多元联系可以转换为一个关系模式。
6.具有相同码的关系模式可合并。
(2)转换的结果:
主码表示如:
教室名称;外码表示如:
教室名称;普通属性如:
教室名称。
教室(校区名,教室名称,所在位置,教室类型,容量);
课程(课程号,教室名称,课程名称,教师编号,周次,星期,节次,课程学时,系名,班级,人数);
职工(职工编号,姓名,职业名称,性别,年龄,住址,联系电话);
多媒体设备损坏(教室名称,维修工编号,损坏程度,修复难易,维修工姓名,是否修复,备注);
常规设备损坏(教室名称,维修工编号,损坏程度,维修工姓名,是否修复,备注);
值班信息(职工编号,姓名,职业名称,星期,上班时间,下班时间);
值班记录(职工编号,姓名,职业名称,星期,周次);
该模式没有插入异常,删除异常等操作异常现象,已经达到3NF。
(3)设计用户子模式:
鉴于安全问题,每一个表都应有相应的视图。
建立相关的视图如下:
教室视图:
Class1(校区,教室名称,地点,教室类型,容量);
课程和教室视图:
Course1(校区,教室名称,教室类型,课程名称,周次,星期,节次,容量);
这两个视图包含了允许学生和员工等用户查询的属性,不允许修改,插入和删除。
为职工做视图:
值日视图:
Duty1(职工编号,职工姓名,职业名称,上班时间,下班时间);
清洁工值班记录:
State1(职工编号,职工姓名,职业名称,日期,情况);
员工值班记录:
State2(职工编号,职工姓名,职业名称,日期,情况);
职工视图:
State3(职工编号,职工姓名,职业名称,日期,情况);
常规设备损坏纪录:
Routine1(教室名称,职工编号,职工姓名,描述,是否修复,日期,备注);
多媒体设备损坏:
Media1(教室名称,职工编号,职工姓名,描述,修复难易,是否修复,日期,备注);
职工信息:
Worker1(职工编号,姓名,职业名称,性别,年龄,住址,联系电话);
在这些视图中,值日视图允许各个职工查询,但只允许管理员(主任)进行修改,插入,删除等操作;清洁工值班记录视图,除维修工外,其他各职工都可查询,员工还可进行修改操作,管理员(主任)可进行各种操作;员工值班记录只允许员工查询;常规设备损坏纪录视图允许员工和维修工进行查询,员工只对视图中的教室名称属性有修改,插入的权限,维修工对其他属性有修改权限;在多媒体设备损坏信息视图中,允许员工和多媒体维修工进行查询,员工只对教室名称有修改和插入的权限,多媒体维修工对其他的属性有修改权限。
为方便,其中的部分权限在制作过程中要直接赋给基本表。
1.3.3数据处理
见系统的功能模块图:
1.4物理设计
1.4.1引言
数据库在物理设备上的存储和存取方法称为数据库的物理结构,它依赖于给定的计算机系统。
为一个给定的逻辑数据模型选取一个最适合使用要求的物理结构的过程,就是数据库的物理设计。
1.4.2目标和任务
对数据库进行合理的物理设计,以提高其时间和空间效率。
(1)数据存取方面
确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;
对物理结构进行评价,评价的重点是时间和空间效率。
如果评价结果满足原设计的要求,则可以进入到物理实施阶段,否则就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型。
(2)功能模块
见图15所示
1.5数据库实施
1.5.1建立基本表
/*建立教室信息表*/
createtableClass
(
Spartchar(10),
Rnamechar(10)notnullunique,
Positionchar(20),
Typechar(10),
Roomint,
primarykey(Rname)
)
/*建立课程信息表*/
createtableCourse
(
Cnochar(10),
Cnamechar(20),
Rnamechar(10),
Cweekchar(10),
Cdaychar(10),
Nodechar(10),
Ctimeint,
Gradechar(10),
Roomint,
Numberint,
Sdeptchar(20)
)
/*建立职工信息表*/
createtableWorker
(
Wnochar(10)notnullunique,
Wnamechar(20),
Wsexchar(4),
Wageint,
Jnamechar(10),
Addrchar(40),
Telchar(20),
primarykey(Wno),
check(Wage>=18andWage<=60)
)
/*建立值班信息表*/
createtableDuty
(
Wnochar(10),
Wnamechar(20),
Jnamechar(10),
Ontimechar(20),
Uptimechar(20),
primarykey(Wno),
foreignkey(Wno)referencesWorker(Wno),
)
/*建立值班情况记录表*/
createtableState
(
Wnochar(10),
Wnamechar(20),
Jnamechar(10),
Wdatechar(20),
statechar(20)
)
/*建立多媒体设备损坏记录表*/
createtableMedia
(
Rnamechar(10),
Wnochar(10),
Wnamechar(20),
Describechar(20),
Dlevelchar(10),
Repairchar(4),
Mdatechar(20),
Pmarkchar(50)
)
/*建立常规设备损坏记录表*/
createtableRoutine
(
Rnamechar(10),
Wnochar(10),
Wnamechar(20),
Describechar(20),
Repairchar(4),
Mdatechar(20),
Pmarkchar(50)
)
1.5.2建立视图
/*教室信息视图*/
createviewClass1(校区,教室名称,地点,教室类型,容量)
as
select*
fromClass
/*课程信息视图*/
createviewCourse1(校区,教室名称,教室类型,课程名称,周次,星期,节次,容量)
as
selectClass.Spart,Class.Rname,Type,Cname,Cweek,Cday,Node,Class.Room
fromClass,Course
WhereClass.Rname=Course.Rname
/*职工信息视图*/
createviewWorker1(职工编号,姓名,职业名称,性别,年龄,住址,联系电话)
as
select*
fromWorker
/*值班信息视图*/
createviewDuty1(职工编号,职工姓名,职业名称,上班时间,下班时间)
as
select*
fromDuty
/*清洁工值班情况记录视图*/
createviewState1(职工编号,职工姓名,职业名称,日期,情况)
as
select*
fromState
whereJname='清洁工'
/*除清洁工外其他职工值班情况视图*/
createviewState2(职工编号,职工姓名,职业名称,日期,情况)
as
select*
fromState
whereJname!
='清洁工'
/*总的职工值班情况视图*/
createviewState3(职工编号,职工姓名,职业名称,日期,情况)
as
select*
fromState
/*常规设备损坏视图*/
createviewRoutine1(教室名称,职工编号,职工姓名,描述,是否修复,日期,备注)
as
select*
fromRoutine
/*多媒体设备损坏视图*/
createviewMedia1(教室名称,职工编号,职工姓名,描述,修复难易,是否修复,日期,备注)
as
select*
fromMedia
2.5.3查询和更新
/*员工课程查询*/
createProcedurejs_kc1
@C_Spartchar(10),
@C_Cweekchar(6),
@C_Cdaychar(4),
@C_Nodechar(5)
as
select校区,教室名称,课程名称,教室类型,容量
fromCourse1
where校区=@C_Spartand周次=@C_Cweekand星期=@C_Cday
and节次=@C_Nodeand教室类型='多媒体教室'
orderby教室名称ASC
/*学生课程查询*/
createprocedurejs_kc2
@C_Spartchar(10),
@C_Cweekchar(6),
@C_Cdaychar(4),
@C_Nodechar(5)
as
select校区,教室名称,课程名称,教室类型,容量
fromCourse1
where校区=@C_Spartand周次=@C_Cweekand星期=@C_Cdayand节次=@C_Node
orderby教室名称ASC
/*空教室查询*/
createprocedurejs_kjs1
@C_Spartchar(10),
@C_Cweekchar(6),
@C_Cdaychar(4),
@C_Nodechar(5)
as
select校区,教室名称,教室类型,容量
fromClass1
wherenotexists
(
select*
fromCourse1
where校区=@C_Spartand周次=@C_Cweekand星期=@C_Cday
and节次=@C_Nodeand教室名称=Class1.教室名称
)
/*职工值班查询*/
createprocedurejs_zb1
@S_Wnochar(10)
as
select职工编号,职工姓名,职业名称,上班时间,下班时间
fromDuty1
where职工编号=@S_Wno
/*职工值班记录查询*/
createprocedurejs_zbjl1
@S_Wnochar(10)
as
select职工编号,职工姓名,职业名称,日期,情况
fromState3
where职工编号=@S_Wno
/*员工对清洁工值班记录的插入(视图)*/
createprocedurejs_zlc1
@S_Wnochar(10),
@S_Wnamechar(20),
@S_Jnamechar(10),
@S_Wdatechar(20),
@S_statechar(20)
as
insertintoState1
values(@S_Wno,@S_Wname,@S_Jname,@S_Wdate,@S_state)
/*员工对清洁工值班记录的删除(视图)*/
createprocedurejs_zls1
@S_Wnochar(10)
as
delete
fromState1
where职工编号=@S_Wno
/*主任除清洁工外的其他职工值班记录的插入(视图)*/
createprocedurejs_zlc2
@S_Wnochar(10),
@S_Wnamechar(20),
@S_Jnamechar(10),
@S_Wdatechar(20),
@S_statechar(20)
as
insertintoState2
values(@S_Wno,@S_Wname,@S_Jname,@S_Wdate,@S_state)
/*主任除清洁工外的其他职工值班记录的删除(视图)*/
createprocedurejs_zls2
@S_Wnochar(10)
as
delete
fromState2
where职工编号=@S_Wno
/*主任对职工信息表的插入*/
createprocedurejs_zlc3
@W_Wnochar(10),
@W_Wnamechar(20),
@W_Wsexchar(4),
@W_Wageint,
@W_Jnamechar(10),
@W_Addrchar(40),
@W_Telchar(20)
as
insertintoWorker
values(@W_Wno,@W_Wname,@W_Wsex,@W_Wage,@W_Jname,@W_Addr,@W_Tel)
/*用游标完成的主任对职工信息表的修改*/
CREATEPROCEDUREjs_dmtxg1
@W_Wnochar(10),
@W_Wnamechar(20),
@W_Wsexchar(4),
@W_Wageint,
@W_Jnamechar(10),
@W_Addrchar(40),
@W_Tel
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实例 教室 管理 系统 数据库 设计