数据库课程设计--学生宿舍管理系统2_第1页
数据库课程设计--学生宿舍管理系统2_第2页
数据库课程设计--学生宿舍管理系统2_第3页
数据库课程设计--学生宿舍管理系统2_第4页
数据库课程设计--学生宿舍管理系统2_第5页
免费预览已结束,剩余27页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学生宿舍管理系统课程设计 摘要 学生宿舍管理系统是应对学生宿舍管理的现代化 网络化 逐 步摆脱当前学生宿舍管理的人工管理方式 提高学生宿舍管理效率 而开发的 它包括宿舍学生基本信息管理 楼道工人基本信息管理 宿舍楼基本信息管理 宿舍基本信息管理 宿舍事故基本信息管理 宿舍楼物品出入基本信息管理 宿舍楼保卫处基本信息管理 宿舍 配备物品及处理管理等八大功能模块 并提供了对各功能模块的查 询和更新功能 且这两种功能基本上是通过存储过程来实现的 其 中宿舍学生基本信息管理 宿舍基本信息管理是系统开发的重点 该系统开发由系统需求分析 概念设计 逻辑设计 数据库实 施 系统调试和测试阶段组成 目录 1 概述 1 2 课程设计的需求分析 1 2 1 设计任务 1 2 1 设计要求 2 3 概念结构设计 3 3 1 概念结构设计工具 E R 模型 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 子系统描述 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 学生信息 stu info 9 4 1 2 宿舍信息 dorm info 9 4 1 3 出入信息 inout info 9 4 1 4 入住信息 stay info 10 4 1 5 调整信息 10 4 2 视图的设计 10 4 2 1 宿舍信息表视图 10 5 数据库物理设计与实施 12 5 1 数据库应用的硬件 软件环境介绍 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 1 同步更新触发器 24 6 3 2 按学院分配宿舍存储过程 26 7 收获 体会和建议 28 8 主要参考文献 29 备注 29 任务分配 29 1 1 概述 概述 旧的手工纪录的宿舍管理方式已经不能适应高速发展的信息化 时代 新的宿舍管理系统开发出来之后 学校的现有的宿舍信息管 理将有很大的改观 由过去的人工方式转变为计算机方式 由效率 低 数据冗余 易产生错误转变为检索迅速 查找方便 可靠性高 存储量大 这些优点能够极大地提高效率 也是学校科学化 正规化 管理的重要条件 学生宿舍管理系统采用的是计算机化管理 系统 做的尽量人性化 使用者会感到操作非常方便 管理人员需要做的 就是将数据输入到系统的数据库中去 由于数据库的存储容量相当 大 而且比较稳定 适合较长时间的保存 也不容易丢失 这无疑 是为信息存储量比较大的学校提供了一个方便 快捷的操作方式 2 课程设计的需求分析 课程设计的需求分析 2 1 设计任务 设计任务 学生宿舍是同学最为熟悉的领域 假定学校有多栋宿舍楼 每 栋楼有多层 每层有多个寝室 每个寝室可住多名学生 学生宿舍 管理系统对学校的学生宿舍进行规范管理 其管理的对象如下 宿舍信息 编号 楼层 床位数 单价等 学生 学号 姓名 性别 年龄 所在院系 年级 电话等 2 每个宿舍最多可以住 4 位同学 每个同学只能在一个宿舍 不同 宿舍的费用标准可以不同 不同院系 年级的同学可以住同一间宿 舍 2 1 设计要求 设计要求 系统要能够对宿舍 学生 住宿信息进行登记 调整 并能随时 进行各种查询 统计等处理 包括 寝室分配 根据院系 年级分配寝室 学生管理 实现入住学生信息的登记 维护和查询功能 信息查询 按公寓楼号 学生姓名等查询住宿信息 出入登记 可选 对学生进出公寓的情况进行登记 实现基 本的出入监控功能 3 3 概念结构设计 概念结构设计 3 1 概念结构设计工具 概念结构设计工具 E R 模型 模型 3 2 入住登记子系统 局部 入住登记子系统 局部 3 2 1 子系统描述 子系统描述 主要是学生入住的管理 包括学生入住的申请 查询是否存在该 4 学生 查询是否有空余的宿舍以及宿舍的分配 3 2 2 分 分 E R 图图 3 2 3 说明 说明 可以通过这个系统来解决学生入住的申请和分配等各种问题 3 3 外出登记子系统 外出登记子系统 3 3 1 子系统描述子系统描述 主要是学生外出的管理问题 包括学生外出的申请 外出的 审核 外出的等级等为题 5 3 3 2 分 分 E R 图图 3 3 3 说明说明 可以通过这个系统解决学生外出的登记的各种问题 3 4 调整宿舍子系统 调整宿舍子系统 3 4 1 子系统描述子系统描述 主要是学生宿舍的调整 宿舍表的更新问题 6 3 4 2 分分 E R 图图 3 4 3 说明 说明 可以通过这个系统解决学生宿舍的调整问题 包括宿舍的申请 调整 调整原因的判断以及调整后宿舍表的更新问题 3 5 宿舍智能分配子系统 宿舍智能分配子系统 3 5 1 子系统描述 子系统描述 主要是学生宿舍的分配问题 7 3 5 2 分 分 E R 图图 3 5 3 说明 说明 可以通过这个子系统来分配学生的宿舍 包括按学院分配以及 按年级分配 3 6 信息查询子系统 信息查询子系统 3 6 1 子系统描述 子系统描述 主要是查询学生宿舍的问题 3 6 2 分 分 E R 图图 8 3 6 3 说明 说明 可以通过子系统来查询学生的宿舍包括按公寓查询以及按学生 名字查询 3 7 总体 总体 E R 图图 9 4 逻辑结构设计 逻辑结构设计 4 1 关系数据模式 关系数据模式 4 1 1 学生信息 学生信息 stu info 字段描述数据类型数据长度 NULLPrimarykey 约束 Stu num 学号 IntNY name 姓名 varchar12NN sex 性别 varchar4NN 男 女 age 年龄 intNN0 99 fac 所在学院 varchar50NN class 所在班级 varchar50NN celphone 电话 varchar16NN Entry date 入学日期 dateNN 4 1 2 宿舍信息 宿舍信息 dorm info 字段描述数据类型数据长度 NULLPrimarykey 约束 dorm num 宿舍编号 intNY flo 所在楼层 intNN0 20 Bad amount 床位数 IntNN 4 Avi bad 可用床位 数 IntYN 4 unit price 单价 floatNN 4 1 3 出入信息 出入信息 inout info 字段描述数据类型数据长度 NULLPrimarykey 约束 stu num 学号 intNforeignkey dorm num 所住宿舍 intNforeignkey left time 离开时间 DatetimeNN back time 回来时间 DatetimeNN reason 离开原因 varchar50NN over time 是否晚归 varchar2NN 是 否 10 4 1 4 入住信息 入住信息 stay info 字段描述数据类型数据长度 NULLPrimarykey 约束 dorm num 宿舍编号 intNforeignkey stu num 学号 intNforeignkey Have in 已住人数 intNN 4 in date 入住日期 dateNN 4 1 5 调整信息调整信息 字段描述数据类型数据长度 NULLPrimarykey 约束 stu num 学号 intNY src 原宿舍 intNN dst 调后宿舍 intNN ch date 调整日期 dateNN ch reason 调整原因 varchar50NN 4 2 视图的设计视图的设计 4 2 1 宿舍信息表视图宿舍信息表视图 创建查看宿舍信息表的视图 其中应该包含宿舍的所有信息 并且 应该按可用床位数递减 create view view dorm AS SELECT top 100 dorm num flo bad amount unit price avi bad FROM dorm info order by avi bad desc 创建按宿舍号查看住宿信息的视图 其中应包含住宿登记时的所有 信息 并且按照宿舍号递减排列 11 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 创建按学号查看住宿信息的视图 其中应包含住宿登记时的所有信 息 并且按照宿舍号递减排列 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 by left time 12 5 数据库物理设计与实施 数据库物理设计与实施 5 1 数据库应用的硬件 软件环境介绍 数据库应用的硬件 软件环境介绍 电脑配置为 AMD Athlon 速龙 II X2 260 双核 处理器 2G 内存 Windows XP 专业版 32 位 SP3 DirectX 9 0c 操作系统 安装 mysql 数据库服务做测试 5 2 物理结构设计 物理结构设计 考虑到索引能加快查询的速度 所以在需要经常进行查询的列创 建索引 其中学生信息的学号 宿舍信息的宿舍编号 入住信息中学生的 学号和宿舍的编号 这几个列都需要创建索引 由于前两项已经是 主键 所以无需额外创建索引 现在为后两项创建索引 5 3 索引的设计 索引的设计 为入住信息中学生的学号和宿舍的编号创建索引 create unique index 入住信息中学生的学号 ix stay info1 on stay info stu num create index 宿舍的编号 ix stay info2 on stay info dorm num 13 5 4 建立数据库 建立数据库 首先创建名为 sdms 的学生宿舍管理数据库 create database sdms 5 4 1 创建宿舍信息表 创建宿舍信息表 use sdms create table dorm info dorm num int not null primary key floint not null bad amount 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 info stu num int not null references stu info stu num dorm num int not null references 15 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 check 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 16 5 4 5 创建宿舍调整登记表 创建宿舍调整登记表 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 num int stu num int have in int AS 17 BEGIN SET NOCOUNT ON insert into stay info values dorm num stu num have in GETDATE END 其中包括要住宿的宿舍号 要住宿的学生学号 该宿舍应经住了多 少人 如图所示 单击确定后数据成功的录入到数据库的住宿信息表中 如图 学号为 1104402302 的学号已经插入到住宿信息表中 5 5 2 记载学生信息 记载学生信息 创建一个存储过程用于录入学生信息 USE sdms GO 18 SET ANSI NULLS ON GO SET QUOTED 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 其中包括要住宿的学号 姓名 性别 所在学院 班级 电话 年 龄 如图所示 19 单击确定后数据成功的录入到数据库的学生信息表中 如图 学号为 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 20 AS BEGIN SET NOCOUNT ON insert into dorm info values dorm num flo bad amount unit price av i bad END GO 其中包括要住宿的宿舍号 所在楼层 床位位数 单价 空余床位 如图所示 击确定后数据成功的录入到数据库的宿舍信息表中 如图 6 数据操作与实现 数据操作与实现 根据需求中给出的数据处理要求 设计访问数据库的具体要求 21 并用 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 结果如图 单击确定后 22 创建存储过程 view dorm bystu 实现按学号查询学生的住 宿信息 CREATE PROCEDURE view dorm bystu stu num int AS BEGIN SET NOCOUNT ON SELECT from stay info where stu num stu num END 执行存储过程结果如图所示 单击 确定 显示出学生在哪个宿舍住 该宿舍住着几个人 什么时候入住 6 2 数据更新操作 数据更新操作 宿舍调整登记 创建一个存储过程用于登记个别学生调整宿舍的 记录 同时跟新原来的住宿信息表 使得调整后学生的宿舍信息表 23 能同步进行 这里避免创建触发器的繁杂 只使用了更新的语句 CREATE PROCEDURE change dorm stu num int dst dorm int reason varchar 50 AS BEGIN SET NOCOUNT ON declare cur1 cursor for SELECT dorm num from stay info where stu num stu num 查询需要调整的人员的原来住的宿舍 open cur1 declare src int 声明游标以获取查询结果 fetch cur1 into src insert into change info stu num src dst ch date ch reason values stu num src dst dorm GETDATE reas on update stay info set dorm num dst dorm where stu num stu num 将调整的信息插入到调整登记信息表中 close cur1 END 24 执行存储过程如下 需要登记的信息成功录入到调整信息表中 原住宿信息表数据 调整宿舍后 6 3 数据维护操作 数据维护操作 6 3 1 同步更新触发器同步更新触发器 是系统使用过程中 需要使用一个触发器来同步信息 例如当有学 生要住宿时 该宿舍已住人数要增加 1 而宿舍信息中的相应空余 床位数要减 1 所以在住宿登记表中使用以下触发器 SET ANSI NULLS ON 25 GO SET QUOTED IDENTIFIER ON GO CREATE TRIGGER tri1 ON stay info AFTER INSERT AS BEGIN SET NOCOUNT ON declare dorm num int have in int declare cur2 cursor for select dorm num have in from stay info open cur2 fetch cur2 while FETCH STATUS 1 begin fetch next from cur2 into dorm num have in update stay info set have in have in 1 where dorm num dorm num 更新相应宿舍的已住人数 增加1 26 update dorm info set avi bad select avi bad from dorm info where dorm num dorm num 1 where dorm num dorm num 更新宿舍信息表中的可 用床位数 空余床位数 end close cur2 END GO 执行登记住宿信息表的存储过程 插入前 插入后 6 3 2 按学院分配宿舍存储过程 按学院分配宿舍存储过程 创建一个存储过程 用于按学院分配宿舍 使得能按同学院的学生 27 能尽量的在同一宿舍住 USE sdms GO SET ANSI NULLS ON GO SET QUOTED IDENTIFIER ON GO CREATE PROCEDURE dbo allowdorm byfac fac varchar 20 AS BEGIN declare offset int bad amount int sum int set offset 1 set bad amount 1 set sum select distinct stu num from stu info where fac fa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论