数据库课程设计学生宿舍管理系统(1).docx

上传人:小飞机 文档编号:3560075 上传时间:2023-03-13 格式:DOCX 页数:25 大小:44.23KB
返回 下载 相关 举报
数据库课程设计学生宿舍管理系统(1).docx_第1页
第1页 / 共25页
数据库课程设计学生宿舍管理系统(1).docx_第2页
第2页 / 共25页
数据库课程设计学生宿舍管理系统(1).docx_第3页
第3页 / 共25页
数据库课程设计学生宿舍管理系统(1).docx_第4页
第4页 / 共25页
数据库课程设计学生宿舍管理系统(1).docx_第5页
第5页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《数据库课程设计学生宿舍管理系统(1).docx》由会员分享,可在线阅读,更多相关《数据库课程设计学生宿舍管理系统(1).docx(25页珍藏版)》请在三一办公上搜索。

1、数据库课程设计学生宿舍管理系统学生宿舍管理系统课程设计 摘要: 学生宿舍管理系统是应对学生宿舍管理的现代化、网络化,逐步摆脱当前学生宿舍管理的人工管理方式,提高学生宿舍管理效率而开发的,它包括宿舍学生基本信息管理、楼道工人基本信息管理、宿舍楼基本信息管理、宿舍基本信息管理、宿舍事故基本信息管理、宿舍楼物品出入基本信息管理、宿舍楼保卫处基本信息管理、宿舍配备物品及处理管理等八大功能模块,并提供了对各功能模块的查询和更新功能,且这两种功能基本上是通过存储过程来实现的,其中宿舍学生基本信息管理、宿舍基本信息管理是系统开发的重点。 该系统开发由系统需求分析、概念设计、逻辑设计、数据库实施、系统调试和测

2、试阶段组成。 目录 1、概述:. 1 2、课程设计的需求分析 . 1 2.1、设计任务: . 1 2.1、设计要求: . 2 3、概念结构设计 . 3 3.1、概念结构设计工具 . 3 3.2、入住登记子系统 . 3 3.2.1、子系统描述 . 3 3.2.2、分E-R图 . 4 3.2.3、说明 . 4 3.3、外出登记子系统 . 4 3.3.1、子系统描述 . 4 3.3.2、分E-R图 . 5 3.3.3、说明 . 5 3.4、调整宿舍子系统 . 5 3.4.1、子系统描述 . 5 3.4.2、分E-R图 . 6 3.4.3、说明 . 6 3.5、宿舍智能分配子系统 . 6 3.5.1、

3、子系统描述 . 6 3.5.2、分E-R图 . 7 3.5.3、说明 . 7 3.6、信息查询子系统 . 7 3.6.1、子系统描述 . 7 3.6.2、分E-R图 . 7 3.6.3、说明 . 8 3.7、总体E-R图 . 8 4、逻辑结构设计 . 9 4.1、关系数据模式 . 9 4.1.1、学生信息 . 9 4.1.2、宿舍信息(dorm_info) . 9 4.1.3、出入信息 . 9 4.1.4、入住信息(stay_info) . 10 4.1.5、调整信息 . 10 4.2视图的设计 . 10 4.2.1宿舍信息表视图 . 10 5、数据库物理设计与实施 . 12 5.1、数据库应

4、用的硬件、软件环境介绍 . 12 5.2、物理结构设计 . 12 5.3、索引的设计 . 12 5.4、建立数据库 . 13 5.4.1、创建宿舍信息表 . 13 5.4.2、创建学生信息表 . 14 5.4.3、创建出人登记信息表 . 14 5.4.4、创建入住信息登记表 . 15 5.4.5、创建宿舍调整登记表 . 16 5.5、加载测试数据 . 16 5.5.1、加载住宿信息 . 16 5.5.2、记载学生信息 . 17 5.5.3、加载宿舍信息 . 19 6、数据操作与实现 . 20 6.1、数据查询操作 . 21 6.2、数据更新操作 . 22 6.3、数据维护操作 . 24 6.3

5、.1同步更新触发器 . 24 6.3.2、按学院分配宿舍存储过程 . 26 7、收获、体会和建议 . 28 8、主要参考文献。 . 29 备注 . 错误!未定义书签。 任务分配 . 错误!未定义书签。 1、概述: 旧的手工纪录的宿舍管理方式已经不能适应高速发展的信息化时代,新的宿舍管理系统开发出来之后,学校的现有的宿舍信息管理将有很大的改观,由过去的人工方式转变为计算机方式,由效率低、数据冗余、易产生错误转变为检索迅速、查找方便、可靠性高、存储量大。这些优点能够极大地提高效率,也是学校科学化、正规化管理的重要条件。学生宿舍管理系统采用的是计算机化管理,系统做的尽量人性化,使用者会感到操作非常方

6、便,管理人员需要做的就是将数据输入到系统的数据库中去。由于数据库的存储容量相当大,而且比较稳定,适合较长时间的保存,也不容易丢失。这无疑是为信息存储量比较大的学校提供了一个方便、快捷的操作方式。 2、课程设计的需求分析 2.1、设计任务: 学生宿舍是同学最为熟悉的领域,假定学校有多栋宿舍楼,每栋楼有多层,每层有多个寝室,每个寝室可住多名学生,学生宿舍管理系统对学校的学生宿舍进行规范管理,其管理的对象如下: 宿舍信息:编号、楼层、床位数、单价等。 学生:学号、姓名、性别、年龄、所在院系、年级、电话等。 1 每个宿舍最多可以住4位同学,每个同学只能在一个宿舍,不同宿舍的费用标准可以不同。不同院系、

7、年级的同学可以住同一间宿舍。 2.1、设计要求: 系统要能够对宿舍、学生、住宿信息进行登记、调整,并能随时进行各种查询、统计等处理。包括: 寝室分配:根据院系、年级分配寝室。 学生管理:实现入住学生信息的登记、维护和查询功能。 信息查询:按公寓楼号、学生姓名等查询住宿信息。 出入登记:对学生进出公寓的情况进行登记、实现基本的出入监控功能 2 3、概念结构设计 3.1、概念结构设计工具 3.2、入住登记子系统 3.2.1、子系统描述 主要是学生入住的管理,包括学生入住的申请,查询是否存在该3 学生,查询是否有空余的宿舍以及宿舍的分配 3.2.2、分E-R图 3.2.3、说明 可以通过这个系统来解

8、决学生入住的申请和分配等各种问题 3.3、外出登记子系统 3.3.1、子系统描述 主要是学生外出的管理问题,包括学生外出的申请,外出的审核,外出的等级等为题。 4 3.3.2、分E-R图 3.3.3、说明 可以通过这个系统解决学生外出的登记的各种问题。 3.4、调整宿舍子系统 3.4.1、子系统描述 主要是学生宿舍的调整,宿舍表的更新问题。 5 3.4.2、分E-R图 3.4.3、说明 可以通过这个系统解决学生宿舍的调整问题,包括宿舍的申请调整,调整原因的判断以及调整后宿舍表的更新问题。 3.5、宿舍智能分配子系统 3.5.1、子系统描述 主要是学生宿舍的分配问题。 6 3.5.2、分E-R图

9、 3.5.3、说明 可以通过这个子系统来分配学生的宿舍,包括按学院分配以及按年级分配。 3.6、信息查询子系统 3.6.1、子系统描述 主要是查询学生宿舍的问题。 3.6.2、分E-R图 7 3.6.3、说明 可以通过子系统来查询学生的宿舍包括按公寓查询以及按学生名字查询。 3.7、总体E-R图 8 4、逻辑结构设计 4.1、关系数据模式 4.1.1、学生信息 字段 Stu_num name sex age fac class celphone 描述 学号 姓名 性别 年龄 所在学院 所在班级 电话 数据类型 Int varchar varchar int varchar varchar va

10、rchar date 数据长度 12 4 50 50 16 NULL N N N N N N N N Primarykey 约束 Y N N N N N N N 男/女 0-99 Entry_date 入学日期 4.1.2、宿舍信息(dorm_info) 字段 dorm_num flo Avi_bad 描述 宿舍编号 所在楼层 可用床位数 数据类型 int int Int Int float 数据长度 NULL N N N Y N Primarykey 约束 Y N N N N 0-20 =4 =4 Bad_amount 床位数 unit_price 单价 4.1.3、出入信息 字段 stu_

11、num dorm_num 描述 学号 所住宿舍 数据类型 int int Datetime Datetime varchar varchar 数据长度 50 2 NULL N N N N N N Primarykey 约束 foreignkey foreignkey N N N N 是/否 left_time 离开时间 back_time 回来时间 reason 离开原因 over_time 是否晚归 9 4.1.4、入住信息(stay_info) 字段 dorm_num stu_num Have_in in_date 描述 宿舍编号 学号 已住人数 入住日期 数据类型 int int int

12、 date 数据长度 NULL N N N N Primarykey 约束 foreignkey foreignkey N N =4 4.1.5、调整信息 字段 stu_num src dst ch_date 描述 学号 原宿舍 调后宿舍 调整日期 数据类型 int int int date varchar 数据长度 50 NULL N N N N N Primarykey 约束 Y N N N N ch_reason 调整原因 4.2视图的设计 4.2.1宿舍信息表视图 创建查看宿舍信息表的视图,其中应该包含宿舍的所有信息。并且应该按可用床位数递减 create view view_dorm

13、 AS SELECT top 100 dorm_num,flo ,bad_amount ,unit_price,avi_bad FROM dorm_info order by avi_bad desc 创建按宿舍号查看住宿信息的视图,其中应包含住宿登记时的所有信10 息,并且按照宿舍号递减排列 create view view_stay_bydorm AS SELECT top 100 dorm_num, stu_num, have_in, in_date FROM stay_info order by dorm_num desc 创建按学号查看住宿信息的视图,其中应包含住宿登记时的所有信息,

14、并且按照宿舍号递减排列 create view view_stay_bystu AS SELECT top 100 dorm_num, stu_num, have_in, in_date FROM stay_info order by stu_num desc 创建查看出入信息的视图,其中应包含出入登记时的所有信息,并且按照离开时间递减排列 create view view_io_info as SELECT top 100 stu_num, dorm_num, left_time, back_time, reason, over_time FROM dbo.inout_info order

15、by left_time 11 5、数据库物理设计与实施 5.1、数据库应用的硬件、软件环境介绍 电脑配置为AMD Athlon(速龙) II X2 260 双核 处理器,2G内存,Windows XP 专业版 32位 SP3 ( DirectX 9.0c )操作系统,安装mysql 数据库服务做测试。 5.2、物理结构设计 考虑到索引能加快查询的速度,所以在需要经常进行查询的列创建索引。 其中学生信息的学号、宿舍信息的宿舍编号、入住信息中学生的学号和宿舍的编号,这几个列都需要创建索引。由于前两项已经是主键,所以无需额外创建索引。现在为后两项创建索引。 5.3、索引的设计 为入住信息中学生的学

16、号和宿舍的编号创建索引: create unique index入住信息中学生的学号 ix_stay_info1 on stay_info(stu_num) create index宿舍的编号 ix_stay_info2 on stay_info(dorm_num) 12 5.4、建立数据库 首先创建名为sdms的学生宿舍管理数据库 ,create database sdms. 5.4.1、创建宿舍信息表 use sdms create table dorm_info( dorm_num int not null primary key, flo int not null, bad_amoun

17、t int not null , avi_bad int null , unit_price float not null ) 并且创建约束,使床位数和可用床位数不能大于4个,因为一个宿舍最多能住四个人,并且楼层数在0-20之间。 alter table dorm_info add constraint ck_bad check(bad_amount=4) alter table dorm_info add constraint ck_avi check(avi_bad=0 and flo=0 and age=99) 5.4.3、创建出人登记信息表 create table inout_inf

18、o( stu_num int not null references stu_info(stu_num) , dorm_num int not null references 14 dorm_info(dorm_num) , left_time datetime not null, back_time datetime not null, reason varchar(50) not null, over_time varchar(2) not null ) 创建约束,是否晚归字段这能选择是或者否。 alter table inout_info add constraint ck_ot che

19、ck(over_time in (是,否) 5.4.4、创建入住信息登记表 create table stay_info( dorm_num int not null references dorm_info(dorm_num), stu_num int not null references stu_info(stu_num), have_in int not null, in_date date ) 创建约束,已住人数不能超过4个. alter table stay_info add constraint ck_in check(have_in=4) 15 5.4.5、创建宿舍调整登记表

20、create table change_info ( stu_num int not null primary key, src int not null, dst int not null, ch_date date not null, ch_reason varchar(50) not null ) 5.5、加载测试数据 5.5.1、加载住宿信息 创建一个存储过程用于录入住宿信息。 USE sdms GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE dbo.insert_stay_info dorm_n

21、um int ,stu_num int ,have_in int AS 16 BEGIN SET NOCOUNT ON; insert into stay_info values(dorm_num,stu_num,have_in,GETDATE) END 其中包括要住宿的宿舍号,要住宿的学生学号,该宿舍应经住了多少人。如图所示: 单击确定后数据成功的录入到数据库的住宿信息表中,如图: 学号为1104402302的学号已经插入到住宿信息表中。 5.5.2、记载学生信息 创建一个存储过程用于录入学生信息。 USE sdms GO 17 SET ANSI_NULLS ON GO SET QUOTED

22、_IDENTIFIER ON GO CREATE PROCEDURE dbo.insert_stu_info stu_num int,name varchar(12),sex varchar(4),fac varchar(50),class varchar(50),celphone varchar(16) ,age int AS BEGIN SET NOCOUNT ON; insert into stu_info values(stu_num,name,sex,fac,class,celphone,GETDATE,age) END 其中包括要住宿的学号、姓名、性别、所在学院、班级、电话、年龄。

23、如图所示: 18 单击确定后数据成功的录入到数据库的学生信息表中,如图: 学号为1104402304的学生已经成功录入到学生信息表中。 5.5.3、加载宿舍信息 创建一个存储过程用于录入宿舍信息。 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE insert_dorm_info dorm_num int,flo int ,bad_amount int ,unit_price float,avi_bad int 19 AS BEGIN SET NOCOUNT ON; insert into dorm_info v

24、alues(dorm_num,flo,bad_amount,unit_price,avi_bad) END GO 其中包括要住宿的宿舍号、所在楼层、床位位数、单价、空余床位。如图所示: 击确定后数据成功的录入到数据库的宿舍信息表中,如图: 6、数据操作与实现 根据需求中给出的数据处理要求,设计访问数据库的具体要求,20 并用SQL语言加以实现。运行SQL语句进行测试。 6.1、数据查询操作 创建存储过程view_dorm_bydrom,实现按公寓查找宿舍的住宿信息。 CREATE PROCEDURE view_dorm_bydrom dorm_num int /定义变量用于等待用户输入宿舍号 AS BEGIN SET NOCOUNT ON; SELECT * from dorm_info where dorm_num=dorm_num /查询出与输入宿舍号相符的结果 END 结果如图: 单击确定后: 创建存储过程view_dorm_bystu,实现按学号查询学生的住宿21 信息。 CREATE PROCEDURE view_dorm_bystu stu_num int AS BEGIN SET NOCOUNT ON; SELECT * from stay_info where stu_num=stu_num END 执行存储

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号