数据库设计大作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据库原理》课程大作业数据库设计与应用开发
课题名称:网吧管理系统数据库设计
学号:*********
姓名:** ** ** **
专业年级:************************
成绩:
内容与要求
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世纪也促使了一种新兴产业的蓬勃发展——网吧——它应运而生,并快速膨胀!计算机世界的摩尔定律使它的性价比越来越高,这进一步加快了网吧规模的不断扩大,从小规模到大规模,从单一经营到连锁经营,提供的服务也越来越多样化!但是,这些也带来了新的问题——网吧数据库系统越来越难以管理!
目前,网吧系统的人工管理任务量变得越来越大,已经不能适应网吧的高速发展,严重制约了网吧的成长壮大!这时,开发一套完善的网吧管理系统就成了亟待解决的首要问题!
本系统采用Microsoft SQL Server 2005作为数据库平台,负责网吧管理系统的数据库设计。
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用户信息(users)
表 3-1-2消费标准(rules)
表 3-1-3管理员信息(admin)
表 3-1-4电脑信息(compt)
表 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图转换后的关系模式如下所示,其中primary key(主键)用下划线标出消费标准 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> 创建网吧数据库
create database netbar
2> 创建消费标准表
create table rules
(
type char(2) check (type in ('0','1')) primary key, criteria money
)
3> 创建用户信息表
create table users
(
usid char(20) primary key,
type char(2)
uspw char(10) check(len(uspw)>6),
ustate int check (ustate=0 or ustate=1),
balance money,
foreign key (type) references rules(type)
)
4> 创建管理员信息表
create table admin
(
log char(20) primary key,
adpw char(10),