
为了更好的巩固和加强书本所学的知识,把所学的东西转化为实际应用。我们学习了IBM DB2应用程序的使用。并应用了SQL语言。对数据库的创建、修改、删除方法有了一定的了解。通过导入表和删除表、更改表学会了对于表的一些操作。为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。
当人们收集了大量的数据后,应该把它们保存起来进入近一步的处理,进一步的抽取有用的信息。当年人们把数据存放在文件柜中,可现在随着社会的发展,数据量急剧增长,现在人们就借助计算机和数据库技术科学的保存大量的数据,以便能更好的利用这些数据资源。
通过网吧管理系统的构造以及用户的信息还有电脑的相关信息制成表格,输入到数据库中,使之能够进行查询、修改、删除并且与网吧管理系统执行相同的操作。需求分析阶段就是要研究我所作的网吧管理系统的具体分类和实施过程流图。概念设计阶段要完成数据抽象与局部视图设计还有视图的集成。逻辑结构设计阶段要把E-R图转化为关系模式并且把我输入的五张表结合在一起完成一个总关系表。最后就是要运行和实施数据库。要把查询结果与过程抓几张图
关键词:SQL语言;IBM DB2;数据库设计;网吧管理系统
目录
第一章 绪论 1
1.1课题简介 1
1.2设计目的 1
1.3设计内容 1
第二章 需求分析 2
2.1 需求分析的任务 2
2.2 需求分析的过程 2
2.3数据字典与流程图 3
第三章 概念结构设计 7
3.1 概念结构设计的方法与步骤 7
3.1.1 概念结构设计的方法 7
3.1.2 概念结构设计的步骤 7
3.2 数据抽象与局部视图设计 7
3.3视图的集成 12
第四章 逻辑结构设计 13
4.1 E-R图向关系模型的转换 13
4.2 数据模型的优化 13
4.3 数据库的结构 14
第五章 数据库物理设计 16
5.1 索引的建立 16
5.2 表空间的建立 16
第六章 数据库的实施 17
6.2表的建立与数据的载入 17
6.3触发器的设计 17
6.4 数据库的运行 18
6.5 数据库的查询 22
总 结 25
参考文献 26
第一章 绪论
1.1课题简介
随着时代的发展,计算系软件和系统的成熟,用户能够方便上网成为一个影响多数人生活的问题。而建立网吧管理系统是一个很好的解决办法。经过三年的学习,我们对计算机方面的知识有了很大的提升,本着理论联系实际的宗旨,通过学校提供的这次课程设计实践的机会,在指导教师的帮助下,历经两周时间,我自行设计一套网吧管理系统,在下面的各章中,我将以这套网吧管理系统信息系统为例,谈谈其开发过程和所涉及到的问题。
1.2设计目的
应用对数据库系统原理的理论学习,通过上机实践的方式将理论知识与实践更好的结合起来,巩固所学知识。
实践和巩固在课堂教学中学习的关于DB2的有关知识,熟练掌握对于给定结构的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。
实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。
1.3设计内容
选择课题并且对课题的相关信息有一定的了解,对于我选的课题来说,我必须了解网吧管理系统的构造以及用户的信息还有网吧内电脑的相关信息。通过这些信息制成表格,输入到数据库中,使之能够进行查询、修改、删除并且与网吧管理系统执行相同的操作。需求分析阶段就是要研究我所作的网吧管理系统的具体分类和实施过程流图。概念设计阶段要完成数据抽象与局部视图设计还有视图的集成。逻辑结构设计阶段要把E-R图转化为关系模式并且把我输入的五张表结合在一起完成一个总关系表。最后就是要运行和实施数据库。要把查询结果与过程抓几张图。
第二章 需求分析
2.1 需求分析的任务
调查网吧管理系统应用领域涉及的内容,对涉及到领域的各个应用的信息要求和操作要求进行详细分析,形成需求分析说明书。最重要的是调查、收集信息、分析用户信息和上网流程。处理要求、数据的安全性与完整性要求。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。
2.2 需求分析的过程
网吧管理人员为方便用户,需开发一个网吧管理系统。为便于用户安全,快速的上网,网吧把用户信息,包括姓名、身份证号、卡号、上机时间、通过此次数据库的课程设计,进一步将理论与实际相结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对灵据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,在实验中建表,及其关系模式,关系代数的建立及理解,能将SQL语言很好的运用,增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主建与外键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也能过上网查了不少资料,也看了一些别人设计的图书馆管理信息系统的设计报告,学以致用,自我创新,完成了这份自己的报告,从中在学到用,从用又到学,不断修改,系统更新。虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,不管怎么说,对这次做的课程设计自己觉得还算满意。
下机时间、级别等信息,输入网吧管理系统的客户端程序,系统经过查询网吧内电脑信息数据服务器后,为用户安排电脑。在用户运行电脑期间,系统自动为用户计时,并根据不同用户的不同级别给出相应的单价,提示用户该缴纳的费用。同时系统还给每个电脑分配电脑的网管进行电脑的维护,方便用户上网。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。
2.3数据字典与流程图
1.业务流程分析
经过可行性分析和初步需求调查,抽象出该系统业务流程图,结合该实例具体情况,给出用户信息、电脑信息,计费信息和网管管理的信息的具体需求。
图2.1 用户上网流程图
⑴ 调查用户需求
① 用户管理需求
●功能:为每个上网用户登记信息,分配卡号,有效而且安全的管理用户的信息。
●统计功能:
◆按上网电脑统计用户人数
◆按卡号查找出用户名和级别
②费用管理需求
●交费功能:
◆交费
◆上机时间,下机时间
③ 电脑管理需求
●管理查询功能:
查询不同电脑编号的不同名称及其单价并加以管理
④ 网管管理需求
●查询功能:
◆网管编号
◆网管姓名
◆分区号
2.系统模块分析
在调查完了用户需求之后,就要开始分析用户需求。在此,我们采用自顶向下的结构化分析方法(SA方法)。首先,定义全局概念结构的框架,如图2.2所示。
图2.2网吧管理系统总框架图
各子系统需要进一步细化。旅客信息系统为例进一步细化,如图2.3所示。
图2.3用户信息系统细化
以其中的查询旅客信息功能为例进一步细化,如图2.4所示。
图2.4查询用户信息功能
图2.5电脑信息系统细化
图2.6费用信息系统细化
图2.7分区信息系统细化
图2.8网管信息系统细化
3.数据字典
将所有子系统全部细化。将所有用户需求分析完毕之后,就要开始构造数据字典了。经分析之后,本系统要用到五个基本表:用户信息表,电脑信息表,费用信息表,分区信息表,网管信息表。数据结构定义如表2.1。
表2.1 数据结构定义
| 数据结构名 | 含义说明 | 组成 |
| 用户信息 | 定义了用户的有关信息 | 卡号,身份证号,用户名,,级别 |
| 电脑信息 | 定义了电脑有关信息 | 电脑编号,电脑名称,单价 |
| 费用信息表 | 定义了上网费用 的有关信息 | 卡号,电脑编号,上机时间,下机时间 |
| 分区信息表 | 定义了电脑分区的有关信息 | 分区号,电脑编号,分区名称 |
| 网管信息表 | 定义了网管有关信息 | 网管编号,分区号,网管姓名 |
3.1 概念结构设计的方法与步骤
3.1.1 概念结构设计的方法
概念设计阶段我采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上的进行概念结构设计。对已经细化到无法再分的阶段逐步集成在一起,最终合成一个全局概念模式。
3.1.2 概念结构设计的步骤
第一步是进行局部视图的设计:由于高层的数据流图只能反映系统的概貌,而中层流图能较好的反映系统中各局部应用的子系统组成。因此我们先逐一的设计分E-R图。
第二步是进行视图的集成:各子系统的E-R图设计好之后,下一步就是要将所有的分E-R图合成一个系统的总E-R图,一般有两个方式,多个分E-R图一次集成,另一种是一次集成两个分E-R图。我想采用一次集成两个分E-R图的方式。
3.2 数据抽象与局部视图设计
按照图2.2机票预定系统总框架图,设计实体属性图以及局部E-R图。
图3.1用户信息实体属性图
图3.2费用实体属性图
图3.3电脑实体属性图
图3.4分区实体属性图
图3.5网管实体属性图
图3.6用户花费局部E-R图
图3.7用户使用电脑局部E-R图
图3.8电脑所属分区局部E-R图
图3.9网管管理电脑局部E-R图
3.3视图的集成
经过逐步细化再进行每两个一集成初步形成一个E-R图,最后得到图3.4总体概念结构E-R图。
图3.10系统总体结构E-R图
第四章 逻辑结构设计
4.1 E-R图向关系模型的转换
将图3.10总体概念结构E-R图转化成关系模型。
用户信息表(卡号,身份证号,用户名,,级别)
电脑信息表(电脑编号,电脑名称,单价)
费用信息表(卡号,电脑编号,上机时间,下机时间)
分区信息表(分区号,电脑编号,分区名称)
网管信息表(网管编号,分区号,网管姓名)
4.2 数据模型的优化
将转化的关系模式进行优化,最终达到第三范式。
1、确定数据依赖
用户信息表(卡号,身份证号,用户名,级别)根据这个关系写出数据依赖
卡号→用户名,卡号→级别,卡号→身份证号
电脑信息表(电脑编号,电脑名称,单价)
电脑编号→电脑名称,电脑编号→单价
费用信息表(卡号,电脑编号,上机时间,下机时间)
(卡号,电脑编号)→上机时间,(卡号,电脑编号)→下机时间
分区信息表(分区号,电脑编号,分区名称)
分区号→电脑编号,分区号→分区名称,
网管信息表(网管编号,分区号,网管姓名)
网管编号→分区号,网管编号→网管姓名
2、对各关系模式间数据依赖进行极小化处理,消除冗余
卡号→用户名,卡号→级别,卡号→身份证号,电脑编号→电脑名称
电脑编号→单价,(卡号,电脑编号)→上机时间,(卡号,电脑编号)→下机时间
分区号→电脑编号,分区号→分区名称,网管编号→分区号,网管编号→网管姓名
3、看这些模式是否符合要求,确定是否要对某些模式进行合并或者分解
最终分解成第三范式:
(卡号,用户名,级别,身份证号)(电脑编号,电脑名称,单价)(分区号,电脑编号,分区名称)(网管编号,分区号,网管姓名)(卡号,电脑编号,上机时间,下机时间)
4.3 数据库的结构
| Computer no | Computer name | Price | |
| varchar | pk | varchar | varchar |
| Cardno | Userno | Username | Level | |
| varchar | pk | varchar | varchar | varchar |
| Card no | Computer no | Up time | Down time | ||
| varchar | pk | varchar | pk | varchar | varchar |
| e | Computer no | Area name | ||
| varchar | pk | varchar | fk | varchar |
| Manager no | Area no | Manager name | ||
| varchar | pk | varchar | fk | varchar |
图4.1各表的结构
根据总体结构图设计各表的结构,其相应标的定义如下:
表4.1用户信息系统的结构
| 字段名 | 数据类型 | 长度 | 约束 | 描述 |
| Card no | varchar | 10 | 主键 | 卡号 |
| User no | varchar | 20 | 不为空 | 身份证号 |
| User name | varchar | 30 | 不为空 | 用户名 |
| Level | varchar | 20 | 不为空 | 级别 |
| 字段名 | 数据类型 | 长度 | 约束 | 描述 |
| Computer no | varchar | 10 | 主键 | 电脑编号 |
| Computer name | varchar | 30 | 不为空 | 电脑名称 |
| Price | varchar | 20 | 不为空 | 单价 |
| 字段名 | 数据类型 | 长度 | 约束 | 描述 |
| Card no | varchar | 10 | 主键 | 卡号 |
| Computer no | varchar | 10 | 电脑编号 | |
| Up time | varchar | 20 | 可为空 | 上机时间 |
| Down time | varchar | 20 | 可为空 | 下机时间 |
| 字段名 | 数据类型 | 长度 | 约束 | 描述 |
| Area no | varchar | 10 | 主键 | 分区号 |
| Computer no | varchar | 10 | 外键 | 电脑编号 |
| Area name | varchar | 30 | 不为空 | 分区名称 |
| 字段名 | 数据类型 | 长度 | 约束 | 描述 |
| Manager no | varchar | 10 | 主键 | 网管编号 |
| Area no | varchar | 10 | 外键 | 分区号 |
| Manager name | varchar | 30 | 不为空 | 网管名称 |
5.1 索引的建立
建立唯一索引的SQL语句:
CONNECT TO LJC26;
CREATE UNIQUE INDEX DB2ADMIN.INDEX01 ON DB2ADMIN."USER" (LEVEL ASC) PCTFREE 10 MINPCTUSED 10 ALLOW REVERSE SCANS PAGE SPLIT SYMMETRIC COLLECT SAMPLED DETAILED STATISTICS ;
CONNECT RESET;
建立聚簇索引的SQL语句:
CONNECT TO LJC26;
CREATE INDEX DB2ADMIN.INDEX02 ON QCZ.COMPUTER (PRICE ASC) PCTFREE 10 ALLOW REVERSE SCANS PAGE SPLIT SYMMETRIC COLLECT SAMPLED DETAILED STATISTICS ;
CONNECT RESET;
5.2 表空间的建立
建立表空间的SQL语句:
CONNECT TO LJC26;
CREATE REGULAR TABLESPACE DMS01 PAGESIZE 4 K MANAGED BY AUTOMATIC STORAGE EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL IBMDEFAULTBP DROPPED TABLE RECOVERY ON;
CONNECT RESET;
第六章 数据库的实施
6.2表的建立与数据的载入
建立表的SQL语句:
CONNECT TO LJC26;
CREATE TABLE DB2ADMIN."USER" ( CARDNO VARCHAR (10) NOT NULL , USERNO VARCHAR (20) NOT NULL , USERNAME VARCHAR (30) NOT NULL , LEVEL VARCHAR (20) NOT NULL , CONSTRAINT PK_USER PRIMARY KEY ( CARDNO) ) IN DMS01 INDEX IN DMS01 ;
COMMENT ON TABLE DB2ADMIN."USER" IS '用户信息';
COMMENT ON DB2ADMIN."USER" ( USERNO IS '身份证号', USERNAME IS '用户名', LEVEL IS '级别', CARDNO IS '卡号' ) ;
CONNECT RESET;
建立视图的SQL语句:
AS
SELECT COMPUTERNAME,PRICE,UPTIME,DOWNTIME
FROM COMPUTER,FEE
WHERE COMPUTER.COMPUTERNO = FEE.COMPUTERNO
检查约束的SQL语句:
CONNECT TO LJC26;
ALTER TABLE QCZ.PEOPLE ADD CONSTRAINT CCLEVEL CHECK (level in('A','B','C')) ENFORCED ENABLE QUERY OPTIMIZATION ;
CONNECT RESET;
6.3触发器的设计
CREATE TRIGGER DB2ADMIN.LJCTRIGGER NO CASCADE BEFORE UPDATE OF PRICE ON DB2ADMIN.COMPUTER REFERENCING OLD AS OROW NEW AS NROW FOR EACH ROW MODE DB2SQL
WHEN ( OROW.COMPUTERNAME='高档' )
BEGIN ATOMIC
set nrow.PRICE='5' ;
END
6.4 数据库的运行
图6.1 用户信息表
收录了10位用户的卡号,身份证号,用户姓名,级别。
图6.2电脑信息表
收录了10台电脑的电脑编号,电脑名称,单价。
图6.3费用信息表
收录了10位用户的卡号,电脑卡号,上机时间,下机时间。
图6.4 分区信息表
收录了10台电脑的分区号,电脑编号,分区名称。
图6.5 网管信息表
收录了10位网管的网管编号,分区号,网管名称。
6.5 数据库的查询
update USER set username='震哥' where userno=0718030119
图6.6对USER表进行更新操作
图6.7操作结果
select * from USER
图6.8对USER 进行查询全部信息的操作
图6.9查询结果
insert into USER values(0011,0718180218,'小红','A')
图6.10对USER进行插入操作
图6.11插入结果
delete from computer where compterno=007
图6.12对computer进行删除数据操作
图6.13删除结果
总 结
通过此次数据库的课程设计,进一步将理论与实际相结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对灵据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,在实验中建表,及其关系模式,关系代数的建立及理解,能将SQL语言很好的运用,增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主建与外键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也能过上网查了不少资料,也看了一些别人设计的图书馆管理信息系统的设计报告,学以致用,自我创新,完成了这份自己的报告,从中在学到用,从用又到学,不断修改,系统更新。虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,不管怎么说,对这次做的课程设计自己觉得还算满意。
参考文献
[1] 杨鑫华,赵慧敏等.数据库原理与DB2应用教程[M].清华大学出版社,2007.8
[2] 王珊,陈红.数据库系统原理教程[M].清华大学出版社,1998.7
[3] 郑阿奇.DB2实用教程[M].电子工业出版社,2009.8
[4] 巴克拉兹.DB2 9 for Linux, UNIX ,Windows数据库管理认证指南(原书第6版)[M].机械工业出版社,2009.4
[5] 牛新庄.DB2数据库性能调整和优化[M].清华大学出版社,2009.5
