实例2教室管理系统数据库设计.docx

上传人:b****5 文档编号:11810318 上传时间:2023-04-02 格式:DOCX 页数:34 大小:390.92KB
下载 相关 举报
实例2教室管理系统数据库设计.docx_第1页
第1页 / 共34页
实例2教室管理系统数据库设计.docx_第2页
第2页 / 共34页
实例2教室管理系统数据库设计.docx_第3页
第3页 / 共34页
实例2教室管理系统数据库设计.docx_第4页
第4页 / 共34页
实例2教室管理系统数据库设计.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

实例2教室管理系统数据库设计.docx

《实例2教室管理系统数据库设计.docx》由会员分享,可在线阅读,更多相关《实例2教室管理系统数据库设计.docx(34页珍藏版)》请在冰豆网上搜索。

实例2教室管理系统数据库设计.docx

实例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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1