数据库课设学生公寓管理系统.docx
- 文档编号:4053814
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:23
- 大小:266.48KB
数据库课设学生公寓管理系统.docx
《数据库课设学生公寓管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课设学生公寓管理系统.docx(23页珍藏版)》请在冰豆网上搜索。
数据库课设学生公寓管理系统
数据库课程设计
题目:
学生公寓管理系统
学院:
信息科学与技术学院
专业:
信息与计算科学
姓名:
雷帅徐爱娟
学号:
Notableofcontentsentriesfound.谢辞........................................................................................................................................17
参考文献......................................................................................................................................17
1引言
1.1课题背景
目前,校园内的学生住宿已经逐步开始进行公寓化管理。
在管理过程中,入住学生信息、来访登记等各种信息内容复杂、数据量大,传统的手工记录方式很难完成快速、准确的查询、统计等管理工作。
开发学生公寓管理系统,利用计算机实现管理的信息化,不仅可以节省人力、物力资源,提高管理人员的工作效率,同时也加强了信息的安全性和可靠性。
1.2课程设计目的
(1)通过实践更加深入理解所学数据库理论,通过实际操作巩固所学知识。
(2)熟练掌握对于给定结构的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。
(3)实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计以及将来的系统开发打下基础。
1.3课程设计任务
本课程设计任务是通过开发一个数据库特价机票抢购系统,深入学习和理解数据库系统的设计与开发,开发工具为SQL相关软件。
通过对计算机硬件和软件解决方案的论证,对应用领域进行调查分析,参考各种资料和进行数据库系统开发实践。
在指导老师的帮助下,已经基本上成功地实现了设计任务书的要求,使得设计的数据库系统能够实现一般数据库的管理和查询功能等。
2需求分析
本系统的用户是学生公寓管理人员和负责老师,他们在日常公寓管理的主要主要工作有:
入住学生信息的查询与管理、寝室分配及调整、来访登记等。
根据上述需求进行分析,本系统在实现上应该具有如下功能:
◎学生基本信息管理,包括学生姓名、学号、所属院系班级、公寓楼号、寝室号等数据。
◎寝室使用情况统计,例如房源使用情况、空床统计情况等。
◎学生每学期的注册登记,以及住宿费、电费等缴纳情况管理。
◎人员来访登记及结束访问的详细记录。
◎提供多条件查询功能,以及方便用户对学生基本信息及楼房信息的查询。
◎添加、删除、修改用户账户的功能。
根据上述分析,可以设计出此系统的系统体系结构图
针对各模块功能不同的表实现添加记录、修改记录、删除记录以及查询显示记录等功能
学生公寓管理系统功能模块示意图
重试
否
失败失败
···················································
公寓楼管理信息
学生信息管理
缴费管理
来访登记管理
管理自己的用户信息
管理自己的用户信息
管理普通用户的用户信息
成功用户管理模块学生公寓管理模块
系统流程分析图
3系统数据库设计
3.1概念结构设计
根据需求分析抽象出信息结构,可得该系统的E-R图。
(1)学生信息的E-R图,如图3.1所示。
图3.1学生信息E-R图
(2)公寓信息的E-R图,如图3.2所示。
图3.2公寓信息E-R图
(3)寝室信息的E-R图,如图3.3所示。
图3.3寝室信息E-R图
(4)交费信息的E-R图,如图3.4所示。
图3.4交费信息E-R图
(5)来访信息的E-R图,如图3.5所示。
图3.5来访信息E-R图
(6)
操作员信息的E-R图,如图3.6所示。
图3.6操作员信息E-R图
(7)根据分E-R图和需求分析,可得总的基本E-R图,我又通过分析实际情况,对总的ER图继续进行优化,消除不必要的冗余以及我认为一些不必要的信息后得到最终总的E-R图,如图3.7所示
11n
n
1
n1
n1
1
图3.7系统总体结构E-R图
3.2逻辑结构设计
(1)将图3.7总体概念结构E-R图转化成关系模型。
关系模型:
学生(学号,id,姓名,性别,出生日期,专业,班级,联系方式,公寓号,寝室号)
公寓(公寓号,id,楼层数,房间数,启用时间)
寝室(寝室号,公寓号,id,可住人数,住宿费用,电话)
交费(id,公寓号,寝室号,交费时间,交费类型,金额)
来访(id,来访人姓名,人数,被访者姓名,所属关系,来访时间,结束时间,事由)
操作员(操作员ID,操作员姓名,密码,权限)
(2)数据模型的优化
将转化的关系模式进行优化,最终达到BCNF。
①确定数据依赖
学生(学号,id,姓名,性别,出生日期,专业,班级,联系方式,公寓号,寝室号)
学号id,学号姓名,学号性别,学号出生日期
学号专业,学号班级,学号联系方式,学号公寓号
学号寝室号(均为完全函数依赖)
公寓(公寓号,id,楼层数,房间数,启用时间)
公寓号id,公寓号楼层数,公寓号房间数
公寓号启用时间(均为完全函数依赖)
寝室(寝室号,公寓号,id,可住人数,住宿费用,电话)
由于不同的公寓楼会有相同的寝室号,所以仅仅用寝室号是无法确定一个寝室的,而一个公寓楼里的寝室号是唯一的,所以这里用公寓号和寝室号一起作主键
(寝室号,公寓号)id,(寝室号,公寓号)可住人数,(寝室号,公寓号)住宿费用,(寝室号,公寓号)电话(均为完全函数依赖)
交费(id,公寓号,寝室号,交费时间,交费类型,金额)
Id公寓号id寝室号,id交费时间
id交费类型,id金额(均为完全函数依赖)
来访(id,来访人姓名,人数,被访者姓名,所属关系,来访时间,结束时间,事由)
id来访人姓名,id人数,id被访者姓名,id所属关系
id来访时间,id结束时间,id事由(均为完全函数依赖)
操作员(操作员ID,操作员姓名,密码,权限)
操作员ID操作员姓名,操作员ID密码,操作员ID权限(均为完全函数依赖)
②对各关系模式间数据依赖进行极小化处理,消除冗余
通过分析发现其关系中都没有数据的冗余:
学生关系中学号Sno决定公寓号和寝室号,公寓关系中公寓号作为主键,而寝室关系中,虽然寝室是在公寓里的,但是这里的寝室实体是指所有学生公寓里的寝室,所以仅仅是寝室号无法唯一的确定一个寝室,这里用(寝室号+公寓号)共同作为主键来唯一确定一个寝室,交费关系中,这里用记录编号作为主键,每条记录对应一个寝室的交费信息,同样由于交费是以寝室为单元的,所以也可以用(寝室号+公寓号)为主键。
③消除传递依赖
由以上分析可知各关系中的函数依赖都是完全函数依赖,而且没有传递函数依赖,所以此关系模型满足BCNF,尽管模型可以继续优化,但在实际中此模型已经满足要求。
3.3物理结构设计
表3.1学生信息表的结构
编号
字符名称
数据类型
长度
说明
1
id
int
4
记录编号,不允许空
2
学号
nvarchar
30
学生学号,主键
3
姓名
nvarchar
20
允许空
4
性别
char
2
不允许空
5
出生日期
smalldatetime
4
允许空
6
专业
nvarchar
20
允许空
7
班级
nvarchar
20
允许空
8
联系方式
nvarchar
20
允许空
9
公寓号
nvarchar
10
允许空
10
寝室号
nvarchar
10
允许空
11
备注
nvarchar
50
允许空
表3.2公寓信息表的结构
编号
字符名称
数据类型
长度
说明
1
id
int
4
记录编号,不允许空
2
公寓号
nvarchar
10
公寓楼编号,主键
3
楼层数
int
4
允许空
4
房间数
int
4
允许空
5
启用时间
smalldatetime
4
允许空
6
备注
nvarchar
50
允许空
表3.3寝室信息表的结构
编号
字段名称
数据类型
长度
说明
1
id
int
4
记录编号,不空
2
寝室号
nvarchar
10
主键
3
可住人数
int
4
允许空
4
住宿费用
float
8
允许空
5
电话
nvarchar
10
允许空
6
公寓号
nvarchar
10
主键
7
备注
nvarchar
50
允许空
表3.4交费信息表的结构
编号
字段名称
数据类型
长度
说明
1
id
int
4
编号,主键
2
公寓号
nvarchar
10
允许空
3
寝室号
nvarchar
10
允许空
4
交费时间
smalldatetime
4
允许空
5
交费类型
smalldatetime
10
允许空
6
金额
nvarchar
8
允许空
7
备注
nvarchar
50
允许空
表3.5来访信息表的结构
编号
字段名称
数据类型
长度
说明
1
id
int
4
记录编号,主键
2
来访人姓名
nvarchar
10
允许空
3
人数
int
4
允许空
4
被访者姓名
nvarchar
10
允许空
5
所属关系
nvarchar
10
允许空
6
来访时间
smalldatetime
4
允许空
7
结束时间
smalldatetime
4
允许空
8
事由
nvarchar
50
允许空
9
值班人
nvarchar
10
允许空
表3.6操作员信息表的结构
编号
字段名称
数据类型
长度
说明
1
id
int
4
编号,主键
2
操作员ID
nvarchar
10
允许空
3
操作员姓名
nvarchar
10
允许空
4
密码
nvarchar
10
允许空
5
权限
char
6
允许空
6
备注
nvarchar
50
允许空
4.1创建学生信息表
createtableStudent--创建学生信息表
(idintnotnull,--记录编号,不空
Snonvarchar(30)primarykey,--学号,主键
Snamenvarchar(20),--姓名
Ssexchar
(2)notnull,,--性别
Sbirthsmalldatetime,--出生日期
Sdeptnvarchar(20),--专业
Sclassnvarchar(20),--班级
Sphonenvarchar(20),--联系方式
Sbuildnvarchar(10),--公寓号
Sroomnvarchar(10),--寝室号
Sothernvarchar(50),--备注
foreignkey(Sbuild)referencesBuilding(Sbuild),--学生公寓关系
FOREIGNKEY(Sroom,Sbuild)REFERENCESDorm(Sroom,Sbuild),--学生寝室关系
)
4.2创建公寓信息表
createtableBuilding--公寓信息表
(idintnotnull,--记录编号,不空
Sbuildnvarchar(10)primarykey,--公寓号,主键
floornumint,--楼层数
roomnumint,--房间数
usetimesmalldatetime,--启用时间
Bothernvarchar(50),--备注
)
4.3创建寝室信息表
createtableDorm--寝室信息表
(idintnotnull,--记录编号
Sroomnvarchar(10),--寝室号
Dnumint,--可住人数
Dfeefloat(8),--住宿费用
Dphonenvarchar(10),--电话
Sbuildnvarchar(10),--公寓号
Dothernvarchar(50),--备注
primarykey(Sroom,Sbuild),--主键
)
4.4创建交费信息表
createtablePay--交费
(idintprimarykey,--记录编号,主键
Sbuildnvarchar(10),--公寓号
Sroomnvarchar(10),--寝室号
paytimesmalldatetime,--交费时间
paytypenvarchar(10),--交费类型
Pfeefloat(8),--金额
Pothernvarchar(50),--备注
foreignkey(Sroom,Sbuild)referencesDorm(Sroom,Sbuild),--交费公寓关系
)
4.5创建来访信息表
createtableVisit--来访登记表
(idintprimarykey,--记录编号,主键
Vnamenvarchar(10),--来访人姓名
Vnumint,--来访人数
Vnamednvarchar(10),--被访人姓名
relatnvarchar(10),--所属关系
Vtimesmalldatetime,--来访时间
Vendsmalldatetime,--结束时间
reasonnvarchar(50),--事由
watchnvarchar(10),--值班人
)
4.6创建操作员信息表
createtableOperator--操作员信息表
(idintprimarykey,--记录编号,主键
Oidnvarchar(10),--操作员id
Onamenvarchar(10),--操作员姓名
Opassnvarchar(10),--密码
Olimitchar(6),--权限
Oothernvarchar(50),--备注
)
4.7关系图如下
4.8插入数据
--插入公寓楼
insertintoBuilding
values('0001','01','05','100','2000-1-2','无')
insertintoBuilding
values('0002','02','05','100','2001-4-2','无')
insertintoBuilding
values('0003','03','06','150','2002-6-12','无')
insertintoBuilding
values('0004','04','05','100','2005-10-2','无')
insertintoBuilding
values('0005','05','05','100','2007-1-12','无')
select*fromBuilding
--插入寝室信息
insertintoDorm
values('0001','1-101','4','1000','45216535','01','无')
insertintoDorm
values('0002','2-101','4','1000','45216534','01','无')
insertintoDorm
values('0003','1-101','4','1000','45256535','02','无')
insertintoDorm
values('0004','2-101','4','1000','45816535','02','无')
insertintoDorm
values('0005','1-101','6','1000','45258735','03','无')
insertintoDorm
values('0006','2-101','6','1000','41256535','03','无')
select*fromDorm
--插入学生信息
insertintoStudent
values('0001','20100001','张一','男','1991-1-2','信科','一班','45648922','01','1-101','无')
insertintoStudent
values('0002','20100002','张二','男','1991-10-2','信科','二班','45656922','01','2-101','无')
insertintoStudent
values('0003','20100003','张三','男','1992-1-2','通信','一班','45848922','02','1-101','无')
insertintoStudent
values('0004','20100004','张四','男','1994-1-12','计本','三班','45588922','02','1-101','无')
insertintoStudent
values('0005','20100005','张五','女','1991-5-2','计本','一班','45658922','03','1-101','无')
insertintoStudent
values('0006','20100006','张六','女','1991-11-2','通信','一班','45468922','03','2-101','无')
insertintoStudent
values('0007','20100007','张七','女','1990-4-2','信科','一班','45596922','03','1-101','无')
insertintoStudent
values('0008','20100008','张八','女','1991-3-1','信科','二班','45648542','03','2-101','无')
insertintoStudent
values('0009','20100009','张九','男','1991-2-9','信科','一班','41248922','01','1-101','无')
insertintoStudent
values('0010','20100010','张十','男','1991-3-5','通信','一班','45641522','02','1-101','无')
select*fromStudent
--插入缴费信息
insertintoPay
values('0001','01','1-101','2010-5-1','水电费','86','无')
insertintoPay
values('0002','01','2-101','2010-5-1','水电费','70','无')
insertintoPay
values('0003','02','1-101','2010-5-1','水电费','56','无')
insertintoPay
values('0004','03','1-101','2010-5-1','水电费','90','无')
insertintoPay
values('0005','03','2-101','2010-5-1','水电费','80','无')
select*fromPay
--插入来访信息
insertintoVisit
values('0001','李四','1','张四','朋友','2010-5-3','2010-5-3','玩','王五')
insertintoVisit
values('0002','赵六','2','张二','同学','2010-7-3','2010-7-5','玩','王五')
select*fromVisit
--插入操作员信息
insertintoOperator
values('0001','425001','李飞','001240','','')
select*fromOperator
4.9设置触发器
createtriggerInsert_or_Update_Dnum
beforeinsertorupdateonDorm
foreachrow
asbegin
if(new.Sbuild='01')and(new.Dnum>4)then
new.Dnum:
=4;
endif;
end;
对寝室人数设置触发器,当人数超过4时自动改为4,同样可对公寓楼02,03,04设置,而对公寓楼05和06设置寝室人数为6.
同时还可以对寝室费用的设置触发器,寝室费用都是1000快,当输入数据不等于1000时,自动改为1000.
五数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 学生公寓 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)