学生宿舍管理系统 数据库课程设计.docx
《学生宿舍管理系统 数据库课程设计.docx》由会员分享,可在线阅读,更多相关《学生宿舍管理系统 数据库课程设计.docx(30页珍藏版)》请在冰豆网上搜索。
![学生宿舍管理系统 数据库课程设计.docx](https://file1.bdocx.com/fileroot1/2023-2/17/2e560510-1a20-47a6-9df6-0cbf35c31920/2e560510-1a20-47a6-9df6-0cbf35c319201.gif)
学生宿舍管理系统数据库课程设计
摘要
学生宿舍管理系统是应对学生宿舍管理的现代化、网络化,逐步摆脱当前学生宿舍管理的人工管理方式,提高学生宿舍管理效率而开发的,它包括基本信息管理、住宿管理、服务管理、来访者管理等四大功能模块。
该系统开发由需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库实施与维护阶段等阶段组成。
一需求分析
目前,我们学校的宿舍管理都是由人工管理的,信息都是由文本记录的。
针对这一实际情况,我们设计了学生宿舍管理系统。
需求分析
经过实际分析调查,一个学生宿舍管理系统主要是要方便宿舍管理人员的工作,提高其工作效率,不仅可以方便广大学生,而且还可以方便于教师和相关人员。
1.1.1基本信息
学生住在宿舍楼中,每幢宿舍楼都会有若干名老师负责本宿舍楼的日常管理。
(1)学生的基本信息:
入校时,每位同学都有唯一的学号,并被分配到指定的宿舍楼和指定的宿舍,也会有一个宿舍号,其入校时间就是他的入住时间。
(2)宿舍的基本信息:
每间宿舍都有唯一的楼号和宿舍号,入校时,宿舍会装公用电话机,相应地就有宿舍电话号码。
(3)工作人员基本信息:
每幢宿舍都有驻楼阿姨和保洁阿姨的编号。
(4)报修的基本信息:
宿舍楼中经常出现财产的损坏,比如灯泡坏了,厕所的马桶出故障了等,这时,同学们需要将财产损坏情况报告给宿舍楼管理员,以便学校派人进行维修。
这时,需要记录报修的宿舍号和损坏的财产编号,同时记录报修的时间和损坏的原因。
当损坏的财产维修完毕后,应记录解决时间,表示该报修成功解决。
(5)来访者基本信息
每幢宿舍对于每一次的人员来访都要做好相应的登记。
包括来访者和被访者的信息。
1.1.2用户对系统要求
1、信息要求:
宿舍楼管理员能查询上面提到的宿舍楼的所有相关信息,包括某一学号的学生在宿舍楼中住宿的详细信息,报修的所有信息和来访者的信息,以利于对整个宿舍楼的全面管理。
2、处理要求:
当学生基本信息发生变化时,宿舍楼管理员能对其进行修改。
比如,某些同学搬到其他的宿舍中去,他们在本宿舍楼中相应的记录就应该删去;当宿舍财产报修及时解决后,管理员应登记解决时间,表明该报修问题已成功解决。
3、安全性与完整性要求:
A、安全性要求:
(1)系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用;
(2)系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;
(3)系统应对不同用户设置不同的权限,区分不同的用户,如区分普通用户(学生),管理员。
B、完整性要求:
(1)各种信息记录的完整性,信息记录内容不能为空;
(2)各种数据间相互的联系的正确性;
(3)相同的数据在不同记录中的一致性。
系统功能分析:
本系统主要有以下功能:
基本信息管理、住宿管理、服务管理、来访者管理。
基本信息管理包括学生信息、宿舍信息、工作人员信息;住宿信息包括入住、调房、退房;服务管理包括租赁、水费、电费、维修;来访者管理包括来访者信息登记、来访者查询。
数据库操作功能:
查询、删除、修改、插入;
业务流程概述
系统的业务是系统要达到的业务目标,业务流程分析是系统分析中的基础环节。
根据以上系统功能的分析,我们将学生宿舍管理业务分成基本信息管理、住宿管理、服务管理、来访者管理四个模块。
1.基本信息管理
宿舍信息管理:
主要是记录宿舍的基本状况,可住人数,已住人数,电话号码,便于工作人员分配寝室以及联系。
学生信息管理:
宿舍的学生信息主要来自学生处提供的,对于已住进宿舍的学生,工作人员从学生处提取相关信息,进行统一管理,如果学生退房之后,相应的信息也将被删除。
员工信息管理:
记录在宿舍、楼管处工作的员工信息,及时增、删、改,便于有个统一的收集、管理、宿舍更好的运作。
2.住宿管理
新生入住:
新生向楼管处提出入住申请,工作人员进行查询宿舍相关信息之后,再根据学生的信息相应的给新生安排宿舍,登记和修改相关信息。
调房:
学生向楼管处提出宿舍调房申请,楼管处根据学生的所要调房的信息,给予核实确认之后,查询宿舍信息之后,满足条件就给予学生办理调房,并修改相应信息,否则不办理。
退房:
学生向楼管处提出退房申请,楼管处核实证件准确无误之后,办理退房手续,并删除学生的相关信息。
3.服务管理
水电费:
楼管处在每个月下旬记录每个宿舍的水,电使用情况,根据收费标准,结算出每个宿舍所需支付的费用,再由每个宿舍在月底之前进行付费。
临时设备的租赁:
学生把所需的临时设备向楼管处进行租赁申请,再由工作人员核实,确定之后,给予学生批准,并收取相应的租赁费用。
报修:
学生把需要维修的设备向楼管处提出申请,填写相应的维修单,支付相应的费用,工作人员根据维修单派发维修员工对设备进行维修,楼管处再把已修信息反馈给学生。
4.外来人员管理
外来访客登记来访信息,楼管处根据外来访客所登记的信息表,从宿舍、工作人员信息、学生信息这三张表单中,查询外来访客所要访问的人员的基本信息,最后经过核实,确定其是否可以访问。
数据流程图
数据流程图是全面描述信息系统逻辑模型的工具,它抽象概括地把信息系统中各种业务处理过程联系起来。
根据以上的业务流程的分析,以及学生宿舍的特点,我们给出了以下学生宿舍管理信息系统的数据流程图。
由于学生宿舍主要涉及学生的入住和退缩问题,以及住宿的管理,我们将学生宿舍管理系统的顶层设计如下:
将顶层进行细分,主要是工作人员管理宿舍,接收和处理各种事务,包括学生,宿舍,以及工作人员的基本信息管理,学生住宿管理,宿舍的服务管理,来访者管理,得到以下的第一层数据流程图如下:
针对每个事务的管理,我们进行了分类,即第二层数据流程图如下:
第二层1:
第二层2:
第二层3:
第二层4:
以上当中的住宿管理事务,有学生的入住管理,调房管理,退房管理,由于这三个事务都有相似性,首先都需要学生提出申请,再经过管理者的审核,通过查询宿舍表,了解住宿情况之后再考虑是否满足学生的申请,申请通过之后,相应的调整学生住宿表和宿舍表的信息,所以我们就以学生入住管理为例,其流程图如下:
数字字典
1.5.1数据项
住宿学生数据字典
属性名
类型
长度
备注
学号
char
8
住宿学生学号
姓名
Varchar
10
住宿学生姓名
性别
char
2
男/女
专业
Varchar
20
学生专业
联系方式
char
11
联系方式
员工数据字典
属性名
类型
长度
备注
员工号
char
4
员工姓名
Varchar
10
年龄
smallint
2
性别
char
2
职位
Varchar
20
联系方式
char
11
宿舍数据字典
属性名
类型
长度
备注
楼号
char
2
宿舍号
char
3
宿舍电话
char
12
可住人数
smallint
2
已住人数
smallint
2
临时设备租赁数据字典
属性名
类型
长度
备注
设备号
char
8
设备名
Varchar
20
租赁日期
Datetime
8
所租的日期
归还日期
Datetime
8
归还设备日期
租赁费用
decimal
5
租赁设备的费用
报修数据字典
属性名
类型
长度
备注
楼号
char
2
宿舍号
char
3
报修人宿舍号
物品号
varchar
8
报修物品编号
报修原因
char
50
物品损坏原因
提交日期
datetime
8
报修提交日期
解决日期
datetime
8
问题解决日期
报修费用
decimal
5
报修的费用
水电费数字字典
属性名
类型
长度
备注
楼号
char
2
宿舍号
char
3
月份
Varchar
4
用电量
decimal
(5,2)
电费
decimal
(5,2)
用水量
decimal
(5,2)
水费
decimal
(5,2)
来访者数字字典
属性名
类型
长度
备注
来访人姓名
Varchar
10
被访人姓名
Varchar
10
所属关系
Varchar
20
证件名称
Varchar
20
来访日期
Datetime
8
来访时间
Datetime
8
结束时间
Datetime
8
备注
Varchar
50
1.5.2数据结构
数据结构名
组成
学生住宿信息
学号,姓名,性别,专业,联系方式,入住时间
员工信息
员工号,姓名,年龄,性别,职位,家庭地址,联系方式
宿舍信息
楼号,宿舍号,宿舍电话,可住人数,已住人数
临时设备信息
设备号,设备名,租赁日期,归还日期,租赁费用
报修信息
楼号,宿舍号,物品号,报修原因,提交日期,解决日期,报修费用
水电费信息
楼号,宿舍号,月份,用电量,电费,用水量,水费
来访者信息
来访人姓名,被访人姓名,所属关系,证件名称,来访日期,来访时间,结束时间,备注
1.5.3数据流
数据流名
数据流来源
数据流去向
组成
登记报修信息
学生
报修信息表
报修信息
查询报修信息
报修信息表
管理员
报修信息
登记已修信息
管理员
报修信息表
已修信息
登记设备租赁信息
学生
设备租赁信息表
设备租赁信息
查询设备租赁信息
设备租赁信息表
学生
设备租赁信息
登记设备归还信息
管理员
管理员
设备归还信息
登记来访者信息
来访者
来访者信息表
来访信息
查询来访者信息
管理员
来访者信息表
来访信息
登记来访结束信息
管理员
来访者信息表
来访结束信息
1.5.4数据存储
数据存储名
输入的数据流
输出的数据流
组成
报修信息表
报修信息
已修信息
报修信息
报修信息
已修信息
设备租赁信息表
设备租赁信息
设备归还信息
设备租赁信息
设备租赁信息
设备归还信息
来访者信息表
来访信息
来访结束信息
来访信息
来访信息
来访结束信息
1.5.5处理过程
处理过程名
输入数据流
输出数据流
登记报修
报修信息
报修信息
查询报修
报修信息
报修信息
登记已修信息
已修信息
已修信息
登记设备租赁信息
设备租赁信息
设备租赁信息
查询设备租赁
设备租赁信息
设备租赁信息
登记设备归还信息
设备归还信息
设备归还信息
登记来访者信息
来访者信息
来访者信息
查询来访者信息
来访者信息
来访者信息
登记来访结束信息
来访结束信息
来访结束信息
二概念结构设计
概念结构是将需求分析抽象为信息结构即概念模型的过程,这样才能更好地、更准确的用某一DBMS实现这些需求,是整个数据库设计的关键,它主要特点是能真实、充分地反映现实社会,包括事物和事物之间的联系,能满足用户对数据的处理需求,是对现实世界的一个真实模型,而且还易于理解,也方便用户的操作,对数据的修改和各种模型的转换。
从以上的数据流程图中,我们选择了第二层数据流程图作为设计E-R图的出发点,从分析数据流图和数字字典中可以看出,整个系统功能是围绕“学生住宿”问题进行处理,学生住进宿舍,工作人员管理宿舍,处理宿舍提供的各种服务,另外,还有来访者对学生的来访。
ER图见附件。
三逻辑结构设计
逻辑设计的任务和目标
以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。
数据组织
3.2.1将E-R图转换为关系模型
由于宿舍与学生是1:
n关系,可以将其之间的联系与n端实体学生合并,宿舍和员工,学生和临时设备,学生和来访者也是1:
n关系,同样也将其之间的联系与n端实体员工,临时设备,来访者合并,具体的基本E-R图向关系模型的转化如下:
学生住宿表:
(学号,姓名,性别,专业,入住时间,联系方式,楼号,宿舍号)
宿舍表:
(楼号,宿舍号,电话号码,可住人数,已住人数)
员工表:
(员工号,员工姓名,性别,职位,家庭地址,联系方式,楼号)
临时设备租赁表:
(设备号,设备名,租赁日期,归还日期,租赁费用,学号)
报修表:
(楼号,宿舍号,物品号,报修原因,提交日期,解决日期,报修费用)
水电费表:
(楼号,宿舍号,月份,用电量,电费,用水量,水费)
来访者表:
(来访人姓名,被访人姓名,所属关系,证件名称,来访日期,来访时间,结束时间,学号)
3.2.2逻辑结构定义
由以上分析,得出上述7个表格结构如下:
学生住宿表,主要记录学生住宿的基本信息。
属性名
类型
长度
完整性约束
备注
学号
char
8
主码
住宿学生学号
姓名
Varchar
10
非空
住宿学生姓名
性别
char
2
男或女,默认值男
学生性别
专业
Varchar
20
非空
学生专业
联系方式
char
11
可以为空
联系方式
入住时间
datetime
8
非空
新生搬入时间
楼号
char
2
外码
学生住的楼号
宿舍号
char
3
外码
学生住的宿舍号
员工表,主要记录员工的基本信息。
属性名
类型
长度
完整性约束
备注
员工号
char
4
主码
员工姓名
Varchar
10
非空
年龄
smallint
2
大于18,小于65
楼号
char
2
非空
性别
char
2
男或女
职位
Varchar
20
非空
联系方式
char
11
可以为空
宿舍表,主要记录宿舍的入住信息。
属性名
类型
长度
完整性约束
备注
楼号
char
2
非空
宿舍号
char
3
非空
宿舍电话
char
12
非空
可住人数
smallint
2
非空
已住人数
smallint
2
非空
设备租赁表,主要记录设备的租赁信息。
属性名
类型
长度
完整性约束
备注
设备号
char
8
主码
设备名
Varchar
20
非空
租赁日期
Datetime
8
非空
所租的日期
归还日期
Datetime
8
非空
归还设备日期
租赁费用
decimal
(5,2)
非空
租赁设备的费用
学号
char
8
外码
租设备学生学号
报修表,主要记录物品的报修信息。
属性名
类型
长度
完整性约束
备注
楼号
char
2
非空
宿舍号
char
3
非空
报修人宿舍号
物品号
varchar
8
非空
报修物品编号
报修原因
char
50
非空
物品损坏原因
提交日期
datetime
8
非空
报修提交日期
解决日期
datetime
8
非空
问题解决日期
报修费用
decimal
(5,2)
非空
报修的费用
水电费表,主要是每个月记录各个宿舍的水电使用情况以及相应的费用。
属性名
类型
长度
完整性约束
备注
楼号
char
2
非空
宿舍号
char
3
非空
月份
Varchar
4
非空
用电量
decimal
(5,2)
非空
电费
decimal
(5,2)
非空
用水量
decimal
(5,2)
非空
水费
decimal
(5,2)
非空
来访者表,主要记录来访者的信息。
属性名
类型
长度
完整性约束
备注
来访人姓名
Varchar
10
主码
被访人姓名
Varchar
10
非空
所属关系
Varchar
20
非空
证件名称
Varchar
20
非空
来访日期
Datetime
8
非空
来访时间
Datetime
8
非空
结束时间
Datetime
8
非空
学号
char
8
外码
四物理结构设计
物理设计阶段的目标与任务
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率。
数据存储方面
为数据库中各基本表建立的索引如下:
(1)由于基本表学生住宿表的主码学号经常在查询条件和连接操作的连接条件中出现,且它的值唯一,考虑在学号这个属性上建立唯一性索引;
(2)宿舍表的主码楼号,宿舍号经常在查询条件中出现,且它们的组合值唯一,考虑在它们之上建立组合索引;
(3)基本表学生住宿表的一属性姓名,经常在查询条件中出现,且经常出现在相等的比较条件中,考虑在其之上建立聚簇索引;
(4)由于员工表,报修表,设备租赁表,水电费表,来访者表的属性值经常发生变化,权衡系统为维护索引付出的代价,暂考虑不建立索引;
五数据实施和维护
建立数据库、数据表、视图、索引、导入数据
5.1.1建立数据库
createdatabase学生宿舍管理系统;
5.1.2建立数据表
宿舍表
Createtable宿舍表
(楼号char
(2),
宿舍号char(3),
primarykey(楼号,宿舍号),
宿舍电话char(12)notnull,
可住人数smallintnotnull,
已住人数smallintnotnull,
);
学生住宿表
Createtable学生住宿表
(学号char(8)primarykey,
姓名varchar(10)notnull,
性别char
(2)default'男'check(性别in('男','女')),
专业varchar(20)notnull,
联系方式char(11),
入住时间datetimenotnull,
楼号char
(2)notnull,
宿舍号char(3)notnull,
foreignkey(楼号,宿舍号)references宿舍表(楼号,宿舍号),
);
员工的基本信息表
Createtable员工表
(员工号char(4)primarykey,
员工姓名varchar(10)notnull,
年龄smallintcheck(年龄>14and年龄<65),
楼号char
(2),
性别char
(2)check(性别in('男','女')),
职位varchar(20)notnull,
联系方式char(11),
);
设备的租赁信息表
Createtable设备租赁表
(设备号char(8)primarykey,
设备名Varchar(20)notnull,
租赁日期Datetimenotnull,
归还日期Datetimenotnull,
租赁费用decimal(5,2)notnull,
学号char(8)foreignkeyreferences学生住宿表(学号),
);
报修信息表
createtable报修表
(楼号char(6)notnull,
宿舍号char(6)notnull,
物品号char(8)notnull,
保修原因char(50)notnull,
提交日期datetimenotnull,
解决日期datetimenotnull,
保修费用decimal(5,2)notnull,
);
水电费表
Createtable水电费表
(楼号char
(2)notnull,
宿舍号char(3)notnull,
月份Varchar(4)notnull,
用电量decimal(5,2)notnull,
电费decimal(5,2)notnull,
用水量decimal(5,2)notnull,
水费decimal(5,2)notnull,
);
来访者信息表
Createtable来访者表
(来访者姓名varchar(10)notnull,
被访者姓名varchar(10)notnull,
所属关系Varchar(20)notnull,
证件名称Varchar(20)notnull,
来访日期Datetimenotnull,
来访时间Datetimenotnull,
结束时间Datetimenotnull,
备注Varchar(50),
学号char(8)foreignkeyreferences学生住宿表(学号),
);
5.1.3建立视图
1.建立物流管理专业的学生住宿的视图
Createview物流管理学生住宿表
As
Select学号,姓名,楼号,宿舍号
From学生住宿表
Where专业=’物流管理’;
2.建立住在22号楼的学生信息的视图
Createview22号楼学生住宿表
As
Select学号,姓名,专业
From学生住宿表
Where楼号=’22’;
3.建立职位是管理员的员工信息的视图
Createview管理员信息表
As
Select*
From员工表
Where职位=’管理员’;
4.建立4月份各个宿舍的水电使用情况的视图
Createview4月水电表
As
Select*
From水电表
Where月份=’4’;
5.建立22号楼各个宿舍的信息的视图
Createview22号楼宿舍信息表
As
Select*
From宿舍表
Where楼号=’22’;
5.1.4建立索引
createuniqueindex住宿_学号on学生住宿表(学号);
createuniqueindex宿舍楼_宿舍号on宿舍表(楼号,宿舍号);
createclusterindex学生_姓名on学生住宿表(姓名);
CreateuniqueindexIX_员工号on员工表(员工号);
CreateuniqueindexIX_设备号on设备租赁表(设备号);
5.1.5导入数据
1./*宿舍表格记录插入*/