数据库课设学生公寓管理系统Word文件下载.docx
- 文档编号:16969864
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:23
- 大小:266.48KB
数据库课设学生公寓管理系统Word文件下载.docx
《数据库课设学生公寓管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库课设学生公寓管理系统Word文件下载.docx(23页珍藏版)》请在冰豆网上搜索。
针对各模块功能不同的表实现添加记录、修改记录、删除记录以及查询显示记录等功能
学生公寓管理系统功能模块示意图
重试
否
失败失败
·
公寓楼管理信息
学生信息管理
缴费管理
来访登记管理
管理自己的用户信息
管理自己的用户信息
管理普通用户的用户信息
成功用户管理模块学生公寓管理模块
系统流程分析图
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权限(均为完全函数依赖)
②对各关系模式间数据依赖进行极小化处理,消除冗余
通过分析发现其关系中都没有数据的冗余:
学生关系中学号Sno决定公寓号和寝室号,公寓关系中公寓号作为主键,而寝室关系中,虽然寝室是在公寓里的,但是这里的寝室实体是指所有学生公寓里的寝室,所以仅仅是寝室号无法唯一的确定一个寝室,这里用(寝室号+公寓号)共同作为主键来唯一确定一个寝室,交费关系中,这里用记录编号作为主键,每条记录对应一个寝室的交费信息,同样由于交费是以寝室为单元的,所以也可以用(寝室号+公寓号)为主键。
③消除传递依赖
由以上分析可知各关系中的函数依赖都是完全函数依赖,而且没有传递函数依赖,所以此关系模型满足BCNF,尽管模型可以继续优化,但在实际中此模型已经满足要求。
3.3物理结构设计
表3.1学生信息表的结构
编号
字符名称
数据类型
长度
说明
1
id
int
4
记录编号,不允许空
2
学号
nvarchar
30
学生学号,主键
3
姓名
20
允许空
性别
char
不允许空
5
出生日期
smalldatetime
6
专业
7
班级
8
联系方式
9
公寓号
10
寝室号
11
备注
50
表3.2公寓信息表的结构
编号
字符名称
数据类型
长度
说明
公寓楼编号,主键
楼层数
房间数
启用时间
表3.3寝室信息表的结构
字段名称
记录编号,不空
主键
可住人数
住宿费用
float
5
电话
表3.4交费信息表的结构
编号,主键
交费时间
交费类型
金额
表3.5来访信息表的结构
记录编号,主键
来访人姓名
人数
被访者姓名
所属关系
来访时间
结束时间
事由
值班人
表3.6操作员信息表的结构
操作员ID
操作员姓名
密码
权限
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),--电话
Dothernvarchar(50),--备注
primarykey(Sroom,Sbuild),--主键
)
4.4创建交费信息表
createtablePay--交费
(idintprimarykey,--记录编号,主键
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'
无'
0002'
02'
2001-4-2'
0003'
03'
06'
150'
2002-6-12'
0004'
04'
2005-10-2'
0005'
2007-1-12'
select*fromBuilding
--插入寝室信息
insertintoDorm
1-101'
4'
1000'
45216535'
2-101'
45216534'
45256535'
45816535'
6'
45258735'
0006'
41256535'
select*fromDorm
--插入学生信息
insertintoStudent
20100001'
张一'
男'
1991-1-2'
信科'
一班'
45648922'
20100002'
张二'
1991-10-2'
二班'
45656922'
20100003'
张三'
1992-1-2'
通信'
45848922'
20100004'
张四'
1994-1-12'
计本'
三班'
45588922'
20100005'
张五'
女'
1991-5-2'
45658922'
20100006'
张六'
1991-11-2'
45468922'
0007'
20100007'
张七'
1990-4-2'
45596922'
0008'
20100008'
张八'
1991-3-1'
45648542'
0009'
20100009'
张九'
1991-2-9'
41248922'
0010'
20100010'
张十'
1991-3-5'
45641522'
select*fromStudent
--插入缴费信息
insertintoPay
2010-5-1'
水电费'
86'
70'
56'
90'
80'
select*fromPay
--插入来访信息
insertintoVisit
李四'
1'
朋友'
2010-5-3'
玩'
王五'
赵六'
2'
同学'
2010-7-3'
2010-7-5'
select*fromVisit
--插入操作员信息
insertintoOperator
425001'
李飞'
001240'
'
select*fromOperator
4.9设置触发器
createtriggerInsert_or_Update_Dnum
beforeinsertorupdateonDorm
foreachrow
asbegin
if(new.Sbuild='
)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)