云南大学软件学院学生宿舍管理系统的设计.docx
- 文档编号:3293604
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:17
- 大小:207.56KB
云南大学软件学院学生宿舍管理系统的设计.docx
《云南大学软件学院学生宿舍管理系统的设计.docx》由会员分享,可在线阅读,更多相关《云南大学软件学院学生宿舍管理系统的设计.docx(17页珍藏版)》请在冰豆网上搜索。
云南大学软件学院学生宿舍管理系统的设计
学生宿舍管理系统的设计
序号
学号
姓名
分工及任务
1
负责数据库相关需求的分析,建立E-R关系模型图,参与数据实施和文档的编写。
2
负责文档的编写和数据库相应功能的分析以及实现。
3
负责数据库的建立和相关数据的导入,同时对相应的需求进行测试分析。
一、设计目的:
1)简化宿舍管理人员手工记录数据的繁琐;
2)提高记录查询速度,缩短查询时间;
3)实现数据的安全存储。
二、需求分析
目前,我们学校的宿舍管理都是由人工管理的,信息都是由文本记录的。
针对这一实际情况,我们设计了学生宿舍管理系统。
1.1需求分析
经过实际分析调查,一个学生宿舍管理系统主要是要方便宿舍管理人员的工作,提高其工作效率,不仅可以方便广大学生,而且还可以方便于教师和相关人员。
1.1.1基本信息
学生住在宿舍楼中,每幢宿舍楼都会有若干名老师负责本宿舍楼的日常管理。
(1)学生的基本信息:
入校时,每位同学都有唯一的学号,并被分配到指定的宿舍楼和指定的宿舍,也会有一个宿舍号,同时姓名、性别和学院也属于同学的基本信息。
(2)宿舍楼的基本信息:
每间宿舍都有唯一的楼号以及一栋宿舍楼有几间房间称作房间数。
(3)管理人员基本信息:
每幢宿舍都有舍管,舍管也有一个唯一的员工号,同时舍管的姓名和性别也属于舍管的基本信息。
(4)寝室的基本信息:
寝室属于弱实体,是从属与宿舍楼,所以寝室的基本信息有楼号、寝号和入住人数。
(5)来访人员的基本信息:
来访人员的身份证号、姓名、性别、来访日期以及备注。
1.1.2功能要求
1、查询功能:
宿舍楼管理员能查询上面提到的宿舍楼的所有相关信息,包括某一学号的学生在宿舍楼中住宿的详细信息,以及报来访者的信息,以利于对整个宿舍楼的全面管理。
2、更新功能:
当学生基本信息发生变化时,宿舍楼管理员能对其进行修改。
比如,某些同学搬到其他的宿舍中去,他们在本宿舍楼中相应的记录就应该删去;若有来访人员需要及时更新来访人员的数据。
3、分析统计功能:
统计每一栋宿舍楼房间的入住情况,如有新生入学可以方便获知每一栋宿舍楼哪些房间是空的,方便给新生安排宿舍。
4、安全性与完整性要求:
A、安全性要求:
(1)系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用;
(2)系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;
(3)系统应对不同用户设置不同的权限,区分不同的用户,如区分普通用户(学生),管理员。
B、完整性要求:
(1)各种信息记录的完整性,信息记录内容不能为空;
(2)各种数据间相互的联系的正确性;
(3)相同的数据在不同记录中的一致性。
三、ER图
(0,N)(1,1)
(1,1)
(1,N)
(1,N)
(1,1)
(0,N)(1,1)
四、逻辑结构设计
4.1逻辑设计的任务和目标
以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。
4.2数据组织
4.2.1将E-R图转换为关系模型
根据E-R图中的最大基数和最小基数可以得出具体的基本E-R图向关系模型的转化如下:
管理员表:
(员工号,姓名,性别,楼号)
宿舍楼表:
(楼号,房间数)
寝室表:
(楼号,寝号,人数)
来访人员表
(身份证号,姓名,来访日期,备注,员工号)
学生表:
(学号,姓名,学院,楼号,寝号)
4.2.2逻辑结构定义
管理员表------主要记录宿舍管理员的基本信息
属性名
类型
长度
约束
备注
员工号
varchar
5
主键
标识舍管的唯一的员工号
姓名
varchar
10
非空
性别
varchar
5
男或女
楼号
varchar
10
外键—引用宿舍楼表
标识宿舍楼的唯一楼号
宿舍楼表------用于记录宿舍楼的房间数等基本信息
属性名
类型
长度
约束
备注
楼号
varchar
10
主键
标识宿舍楼的唯一楼号
房间数
int
8
非空
每栋宿舍楼有几件房间的数目
寝室表------记录每件寝室人数以及所在宿舍楼的基本信息
属性名
类型
长度
约束
备注
楼号
varchar
10
与寝号共同组成主键
寝号
varchar
10
与楼号共同组成主键,同时是外键,引用宿舍楼表
人数
int
8
非空,小于等于8人
每件寝室入住的人数
来访人员表------记录来访人员的情况
属性名
类型
长度
约束
备注
身份证号
varchar
20
主键
来访人员的身份证号
姓名
Varchar
10
非空
来访日期
Datetime
非空
来访者的日期
备注
varchar
20
非空
记录来访者的目的
员工号
varchar
5
外键,引用管理员表
学生表------记录住宿学生的基本信息
属性名
类型
长度
约束
备注
学号
varchar
20
主键
住宿学生的学号
姓名
varchar
10
非空
学院
varchar
20
非空
学生所属的学院
楼号
varchar
10
外键引用寝室表
寝号
varchar
10
外键引用寝室表
五、数据实施和维护
5.1创建数据库
createdatabaseSDM
on
(name=SDM,
filename='D:
\SQL\SDM.mdf',
size=5mb,
maxsize=10mb,
filegrowth=10%)
logon
(name=SDM_log,
filename='D:
\SQL\SDM_log.ldf',
size=5mb,
maxsize=10mb,
filegrowth=10%)
5.2创建数据库表
useSDM
createtable管理员
(员工号varchar(5)notnull,,
姓名varchar(10)notnull,
性别varchar(5)notnull,
楼号varchar(10)notnull
primarykey(员工号),
foreignkey(楼号)references宿舍楼(楼号))
useSDM
createtable宿舍楼
(楼号varchar(10)notnull,
房间数intnotnull,
primarykey(楼号))
useSDM
createtable寝室
(楼号varchar(10)notnull,
寝号varchar(10)notnull,
人数intnotnull,
primarykey(楼号,寝号),
foreignkey(楼号)references宿舍楼(楼号))
useSDM
createtable来访人员
(身份证号varchar(20)notnull,
姓名varchar(10)notnull,
来访日期datetimenotnull,
备注varchar(20)notnull,
员工号varchar(5)foreignkeyreferences管理员(员工号),
primarykey(身份证号))
useSDM
createtable学生
(学号varchar(20)notnull,
姓名varchar(10)notnull,
学院varchar(20)notnull,
楼号varchar(10)notnull,
寝号varchar(10)notnull,
primarykey(学号),
foreignkey(楼号,寝号)references寝室(楼号,寝号))
5.3建立索引
1.在学生表中对学号创建唯一性索引
useSDM
createuniqueindexindex_sno
on学生(学号ASC)
2.在管理员表中对员工号创建唯一性索引
useSDM
createuniqueindexindex_eno
on管理员(员工号ASC)
5.4建立存储过程
1.按照姓名查询对应学生的相应信息
createprocpro_sname
@snamevarchar(10)
as
select*from学生
where姓名=@sname
go
execpro_sname'赵静'
2.查询管理某栋宿舍楼的管理员
createprocpro_e
@dormitoryvarchar(10)
as
select员工号,姓名from管理员
where楼号=@dormitory
go
execpro_e'楸苑一栋'
3.查询学生表中的所有信息
createprocpro_cinfor
as
select*from来访人员
go
execpro_cinfor
5.5建立触发器
1.在学生中建立一个删除触发器,在一个学生退寝或退学时,减少该学生对应寝室的人数
createtriggersd
on学生
afterdelete
as
update寝室
set人数=人数-1
where楼号in(select楼号fromdeleted)and寝号in(select寝号fromdeleted)
2.向学生表中插入一个学生时,检查该寝室人数是否为8,是则不能往寝室添加学生
createtriggertri_insert
on学生
afterinsert
as
if((select人数from寝室where楼号in(
select楼号frominserted)and寝号in(select寝号frominserted)
)=8)
begin
print'该寝室人数已满!
'
rollback
end
3.在管理员表建立触发器,实现管理员表和来访人员表的级联删除
createtriggertri_m
on管理员
afterdelete
as
deletefrom来访人员
where员工号in(
select员工号fromdeleted)
5.6建立视图
1.查看所有软件学院学生的信息
createviews_infor
as
select*from学生
where学院='软件学院'
2.查看所有来访者的信息
createviewc_infor
as
select身份证号,姓名,来访日期,备注
from来访人员
3.查看”楸苑一栋”的所有学生信息
createviewq_sinfor
as
select姓名,寝号from学生
where楼号='楸苑一栋'
5.7创建授权
1.创建用户sdm_test,将在学生表删除插入和查询操作的权限授予该用户
createlogintest
withpassword='110',default_database=SDM
go
createusersdm_testforlogintest
go
grantdelete,insert,selecton学生tosdm_test
2.创建用户sdm_leader,将数据库表的所有管理权限授予该用户
createlogintest_leader
withpassword='119',default_database=SDM
go
createusersdm_leaderforlogintest_leader
go
grantalltosdm_leader
withgrantoption
六、总结
这两周下来,学到了不少东西,以前对SQL,只能按书上按部就班的写,写SQL语句是会了,但数据逻辑和方法方面,一点都不够到位,没有对以前的知识进行系统的了解,没有把各个部分知识整合在一起,通过这次学生宿舍管理系统课程设计,使我们对数据库设计的各个方面都加深了理解,了解到数据库是一环扣一环的,只有清楚了设计目的做好需求分析,才能进行下面的E-R图设计,中途不能有办点马虎,也体会到把知识应用于实践是不容易的,同时也学生课本所没有的东西,一些问题也只有真正做设计的时候才会出现。
由于时间比较紧,因此我们所做的设计肯定还存在许多的不足之处,程序中也存在许多小错误。
这将激励我们在以后的学习当中职累更多的经验,努力减少错误的发生。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 云南大学 软件 学院学生 宿舍 管理 系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)