网吧管理系统.docx
《网吧管理系统.docx》由会员分享,可在线阅读,更多相关《网吧管理系统.docx(14页珍藏版)》请在冰豆网上搜索。
网吧管理系统
《数据库原理》课程大作业
数据库设计与应用开发
课题名称:
网吧管理系统数据库设计
学号:
101530508
姓名:
王随鹏
专业年级:
10软件工程(网络工程)2班
成绩:
内容与要求
1.结合网吧系统资料及自己的体会自行设计数据库,实现网吧的有效管理,具体功能应包括但不限于:
(1)网吧管理员可以添加不同类型的用户;
(2)用户可以查看个人信息及消费情况;
(3)用户可以在上网期间充钱,换机和退出;
(4)网吧管理员可以查看过去一段时间的消费情况;
(5)系统可以自行备份数据;
2.给出数据库设计各个阶段的详细设计报告,包括:
(1)需求分析
(2)概念结构设计
(3)逻辑结构设计
(4)物理结构设计与实施
3.写出应用系统的主要功能设计;
4.写出收获和体会,包括已解决和尚未解决的问题,进一步完善的设想和建议;
5.独自完成作业,有雷同的平分得分。
目录
1绪论1
2应用系统功能设计2
2.1业务操作流程2
2.2系统功能设计2
3数据库设计3
3.1需求分析3
3.2概念结构设计5
3.3逻辑结构设计6
3.4物理结构设计与实施6
4结束语12
4.1收获和体会12
4.2总结与展望12
1绪论
随着工业化发展的不断深入,计算机的发明与其软硬件的快速更新换代及Internet的高速发展,人类进入了网络化、信息化的时代。
信息时代的计算机在各行各业都开始扮演重要的角色,人们也越来越离不开计算机;网络化的21世纪也促使了一种新兴产业的蓬勃发展——网吧——它应运而生,并快速膨胀!
计算机世界的摩尔定律使它的性价比越来越高,这进一步加快了网吧规模的不断扩大,从小规模到大规模,从单一经营到连锁经营,提供的服务也越来越多样化!
但是,这些也带来了新的问题——网吧数据库系统越来越难以管理!
目前,网吧系统的人工管理任务量变得越来越大,已经不能适应网吧的高速发展,严重制约了网吧的成长壮大!
这时,开发一套完善的网吧管理系统就成了亟待解决的首要问题!
本系统采用MicrosoftSQLServer2005作为数据库平台,负责网吧管理系统的数据库设计。
2应用系统功能设计
2.1业务操作流程
本系统再现了网吧上网流程。
用户在网吧前台进行注册,根据不同的消费标准注册成不同的上网类型---普通用户和会员,注册完成就可以登录上网了,直到余额为零或是用户自己主动下机,这个过程中系统自行计算上网用户的消费情况并记录。
如图2-1-1所示
图2-1-1
2.2系统功能设计
本系统主要完成网吧管理人员对上机用户的数据添加,更新,删除,以及记录用户的消费信息,并对整个网吧数据库系统进行管理。
因此,本系统主要完成和实现如下功能:
如图2-2-1所示
1>初始化系统数据;
2>添加登录用户的基本信息;
3>查询用户的剩余时间;
4>计算用户的上机费用;
5>更新用户的信息;
6>备份数据
图2-2-1
3数据库设计
3.1需求分析
根据数据项的含义,我们将数据项的定义分为以下几个方面:
数据项名、类型、长度、附加说明。
主要数据项定义如表3-1-1至表3-1-5所示。
数据项名
类型
长度
说明
用户ID(usid)
字符型(char)
20
英文字母和数字的组合(主键)
用户密码(uspw)
字符型(char)
10
超过6位的英文字母与字符的组合
用户类别(type)
字符型(char)
4
会员或是普通用户
账号余额(balance)
货币型(money)
用户状态(ustate)
整型(int)
激活或是冻结状态
表3-1-1用户信息(users)
数据项名
类型
长度
说明
用户类别(type)
字符型(char)
4
会员或是普通用户(主键)
计费标准(criteria)
货币型(money)
表3-1-2消费标准(rules)
数据项名
类型
长度
说明
管理员ID(log)
字符型(char)
20
英文字母和数字的组合(主键)
管理员密码(uspw)
字符型(char)
10
超过6位的英文字母与字符的组合
用户ID(usid)
字符型(char)
20
会员或是普通用户
上班时间(begintime)
日期型(datetime)
形式:
2013-1-412:
00
下班时间(endtime)
日期型(datetime)
形式同上
表3-1-3管理员信息(admin)
数据项名
类型
长度
说明
电脑IP(IP)
字符型(char)
15
(主键)
用户ID(usid)
字符型(char)
20
英文字母和数字的组合
电脑状态(state)
字符型(char)
10
空闲或是占用状态
表3-1-4电脑信息(compt)
数据项名
类型
长度
说明
用户ID(usid)
字符型(char)
20
英文字母和数字的组合
电脑IP(IP)
字符型(char)
15
上机时间(intime)
日期型(datetime)
形式:
2013-1-412:
00
下线时间(outtime)
日期型(datetime)
形式同上
表3-1-5上网信息(surfnet)
3.2概念结构设计
根据对数据流图和数据字典的分析,可以确定本数据库中的实体、属性和实体之间的关系,并画出E-R图。
其中各实体间的联系如E-R图3-2-1所示,各实体的属性如图3-2-2所示。
E-R图3-2-1
E-R图3-2-2
3.3逻辑结构设计
由E-R图转换后的关系模式如下所示,其中primarykey(主键)用下划线标出
消费标准rules(type,criteria)
管理员信息admin(log,adpw,used,begintime,endtime)
用户信息users(usid,type,uspw,ustate,balance)
电脑信息compt(IP,usid,state)
上网信息surfnet(usid,IP,intime,outtime)
3.4物理结构设计与实施
3.4.1利用SQL语言创建系统数据库及各数据表,并定义好完整性约束
1>创建网吧数据库
createdatabasenetbar
2>创建消费标准表
createtablerules
(
typechar
(2)check(typein('0','1'))primarykey,
criteriamoney
)
3>创建用户信息表
createtableusers
(
usidchar(20)primarykey,
typechar
(2)
uspwchar(10)check(len(uspw)>6),
ustateintcheck(ustate=0orustate=1),
balancemoney,
foreignkey(type)referencesrules(type)
)
4>创建管理员信息表
createtableadmin
(
logchar(20)primarykey,
adpwchar(10),
usidchar(20),
begintimedatetime,
endtimedatetime,
foreignkey(usid)referencesusers(usid)
)
5>创建电脑信息表
createtablecompt
(
IPchar(15)primarykey,
usidchar(20),
statechar(10)check(statein('空闲','占用')),
foreignkey(usid)referencesusers(usid)
)
6>创建上网信息表
createtablesurfnet
(
usidchar(20),
IPchar(15),
intimedatetime,
outtimedatetime,
foreignkey(usid)referencesusers(usid)
ondeletecascade
onupdatecascade,
foreignkey(IP)referencescompt(IP)
ondeletecascade
onupdatecascade
)
3.4.2在数据表上定义触发器,以完成数据库
createTRIGGERout_netonsurfnetforupdate
as
DECLARE@s1char(20),@s2datetime,@s3datetime,@s4int,@s5money,@s6int
SELECT@s1=usid,@s2=intime,@s3=outtimeFROMdeleted
set@s4=
(
selectcount(*)fromsurfnet
)
set@s5=
(selectusers.balancefromusers,surfnet
whereusers.usid=surfnet.usid)
set@s6=
(selectusers.ustatefromusers,surfnet
whereusers.usid=surfnet.usid)
if(ustate=0)
begin
PRINT'您的账号未激活,请去服务台激活!
'
RollbackTRANSACTION
elseif((@s4>=200or@s4<0))
begin
PRINT'目前无空闲机器,请您耐心等待!
'
RollbackTRANSACTION
end
elseif(@s5<=0)
begin
PRINT'您的余额不足,请充值!
'
RollbackTRANSACTION
end
elseif(@@error<>0)
begin
RollbackTRANSACTION
end
else
begin
updateusers
setbalance=
(selectusers.balance-datediff(hour,intime,outtime)
fromusers,surfnet
whereusers.usid=surfnet.usid)
setustate=1
end
3.4.3列出各数据表之间的关系图
4结束语
4.1收获和体会
通过本次数据库设计,我基本明确了一个数据库系统从构思到设计,再到具体实践的一般步骤以及需要注意的地方。
这是一个对我一学期学习情况的一个明确放映,也是一个让我自学和运用知识的大好机会。
本次设计,从确定设计目标到设计出具体实施办法,都是我考虑良久才慢慢实现的,当然这之间还有同学的帮忙,他的帮忙解决了我很多难题,包括帮我审核错误以及帮我分析我的错漏之处,我很感激他。
我看到了自己的疏漏之处,我相信,下次再设计相关数据库系统,我一定会考虑的更全面,更完美,错误会更少。
4.2总结与展望
本系统经过了一些简单的测试,我也基本完成了我所期望的系统功能,但我知道,还有一些重要功能我还没实现。
一方面是我考虑的还不周全,另一方面主要是我没实现图形化操作界面。
主要也是因为我没有相应的窗体设计方面的知识,临时学习又不能达到我的目的,所以我的系统还很不成熟,只是个雏形!
但我相信,不久以后,我这个系统一定会更加完善,完整。
就目前看来,计算机的发展还是很快,相应的,网吧的规模还有很大的上升空间。
我的系统只实现了基本的功能,假若网吧的服务变得更多样的话,就变得很不适用,而目前网吧内的数据库系统必须添加新的功能才能避免被淘汰。
所以应该着眼未来,注重开拓,相信网吧系统会变得越来越庞大,功能更多样!