网上购物系统的设计 网上购物系统总体设计
随着现代管理信息化的发展,网络及计算机的引入使管理跃上了一个新的发展平台。人们的生活方式都将向信息化方向扩展,网上购物已经成为人们生活中不可或缺的一部分,和日常生活的联系最为紧密。
为了更好的巩固和加强书本所学的知识,把所学的东西转化为实际应用。我们学习了IBM DB2应用程序的使用。并应用了SQL语言。对数据库的创建、修改、删除方法有了一定的了解。通过导入表和删除表、更改表学会了对于表的一些操作。为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。
网上购物系统,集商品制造商,商品供应商的相关信息,输入到数据库中,严格按照数据库设计的具体步骤:需求分析阶段就是要研究网上购物系统的具体分类和实施过程流图。概念设计阶段要完成数据抽象与局部视图设计还有视图的集成。逻辑结构设计阶段要把E-R图转化为关系模式并且把我输入的五张表结合在一起完成一个总关系表。最后就是要运行和实施数据库。
关键词:SQL语言;IBM DB2;数据库设计;网上购物系统
第一章 绪论 1.1课题简介
随着现代科技的高速发展,设备和管理的现代化,在实际工作中如何提高工作效率成为一个很重要的问题。而建立管理信息系统是一个很好的解决办法。经过三年的学习,我们对计算机方面的认识有了很大的提升,本着理论结合实际的宗旨,在学校提供的这次软件技术实践的机会,以及指导老师的帮助下,经过两周时间,针对软件学院的图书馆管理的现状,我自行设计一套网上购物系统,在下面的各章中,我将以这套网上购物系统为例,谈谈其开发过程和所涉及到的问题。
1.2设计目的
应用对数据库系统原理的理论学习,通过上机实践的方式将理论知识与实践更好的结合起来,巩固所学知识。
数据库应用课程实践:实践和巩固在课堂教学中学习的关于DB2的有关知识,熟练掌握对于给定结构的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。
数据库原理软件设计实践:实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。
1.3设计内容
我设计的这套网上购物管理系统可以创建商品的相关信息,涉及到商品的制造商和供应商,顾客通过网站注册信息可以选购商品,网站管理人员可以查看商品货源,制造商,查看日交易量和顾客的累计消费水平。此外,还要创建视图,方便商品的管理,概念设计阶段要完成数据抽象与局部视图设计还有视图的集成。逻辑结构设计阶段要把E-R图转化为关系模式并且把我输入的五张表结合在一起完成一个总关系表。最后就是要运行和实施数据库。要把查询结果与过程抓几张图。
1.4系统实验要求
建立三个用户:administrator,user2,user3
(1)使第一个用户user1和db2admin一起成为admin组的成员,使admin具有SYSADM的权限。
(2)使第二个用户user2拥有DBADM的权限。
(3)将创建的七张表的所有特权授予给自己建立的用户user3。相应的sql语句为:
Grant select on table clubber to USER3;
Grant select on table product to USER3;
Grant select on table SUPPLIER to USER3;
Grant select on table manufacturer to USER3;
Grant select on table delivery to USER3;
第二章 需求分析 2.1 需求分析的任务
需求分析的任务是调查应用领域,对应用领域中各应用的信息要求和操作要求进行详细设计分析,形成需求分析说明书。重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、数据的安全性与完整性要求。数据库设计的需求分析是开发数据库应用系统整个项目中需求分析的一部分。需求分析是否详细、正确,将直接影响后面各个阶段的设计,影响到设计结果是否合理和实用。
2.2 需求分析的过程
对用户进行充分调查,弄清楚他们的实际要求,然后再分析和表达这些需求。具体步骤如下:首先是调查商品和生产商及供应商以及注册顾客及它们之间的相互关系。调查的结果应该用一张详细的组织机构图来表示。其次是熟悉各部门的业务活动情况。目的是调查各部门的业务活动情况,对现行系统的功能和所需信息有一个明确的认知。例如了解超市商品输入和使用什么数据如何加工处理这些数据,输出什么信息,输出结果的格式是什么等。再次是分析用户需求。目的是通过前两项调查结果,对应用领域中各应用的信息要求和操作要求进行详细分析,从中得到信息要求,处理要求和对数据的安全性、完整性的要求。分析结果通常用一组图来表示,主要包括数据流图、数据字典和处理逻辑表达工具等。最后是确定新系统的边界。目的是确定整个系统中,哪些由计算机完成,哪些将来由计算机完成,哪些由人工完成。由计算机完成的功能就是新系统应该实现的功能。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。
2.3 数据字典
数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。以网上购物系统为例,经过可行性分析和初步需求调查,抽象出该子系统业务流程图,如图2.1所示。下面,结合该实例具体情况,给出商品 顾客 制造商和生产商的具体需求。
图2.1 网上购物业务流程图
⑴ 调查用户需求
① 顾客需求
l 查询功能:
u 按商品名字查询
u 按商品价格查询
u 按商品制造商查询
u 查询自己的消费记录
l 修改功能:可以修改自己的密码
② 商品管理需求
l 查询功能:
u 按出库存量查询商品
u 按生产商查询商品
u 按供应商查询商品
u 查看销售记录
u 查看销售量
l 插入功能:可以使用SQL语句对该表进行增加商品相关信息的插入操作
l 修改功能:可以使用SQL语句对该表进行修改操作
l 删除功能:可以使用SQL语句对该表进行商品删除操作
2.4 系统框架
在调查完了用户需求之后,就要开始分析用户需求。在此,我们采用自顶向下的结构化分析方法(SA方法)。首先,定义全局概念结构的框架,如图2.2所示
图2.2网上购物系统总框架图
各子系统需要进一步细化。以注册会员系统为例进一步细化,如图2.3所示。
图2.3子系统细化
以其中的查询商品信息功能为例进一步细化,如图2.4所示。
图2.4查询功能
以其中的查询消费记录功能为例进一步细化,如图2.5所示
图2.5查询功能
依此类推,将所有子系统全部细化。将所有用户需求分析完毕之后,就要开始构造数据字典了。
经分析之后,本系统要用到七个基本表:商品信息关系表、用户关系表、厂商关系表、供货商关系表和会员关系表。数据结构定义如表2.1所示。
表2.1 数据结构定义
数据结构名
含义说明
组成
商品信息
关系表
定义了商品的相关信息
商品编号,商品名称,价格, 库存量
会员信息关系表
定义了注册会员的相关信息
会员ID,会员姓名,会员密码,住址,账号密码
供应商
关系表
定义了供应商相关信息
供应商编号,供应商名称,
供应商地址,供应商电话
制造商关系表
定义了制造商相关信息
制造商编号, 制造商名称,
制造商地址,制造商电话
供货关系表
定义了供应商和商品的相关信息
供应商编号,商品编号,供货量,
送货时间,批发价
生产关表表
定义了生产者和商品的相关信息
制造商编号,商品编号
销售关系表
定义了顾客和商品的相关信息
会员编号,商品编号,交易时间,交易数量
第三章 概念结构设计 3.1 概念结构设计的方法与步骤
概念结构独立于数据库逻辑结构和支持数据库的DBMS。概念结构即概念模型,其主要特点是:
(1)概念模型是反映现实世界的一个真实模型。
概念模型应能真实,充分反映现实世界,能满足用户对数据的处理要求。
(2)概念模型应能易于理解。
概念模型只有被用户理解后,才可以与设计者交换意见,参与数据库的设计。
(3)概念模型应当易于更改。
由于现实世界会发生变化,这就需要改变概念模型,易于更改的概念模型有利于修改和扩充。
(4)概念模型应易于向数据模型转换。
概念模型最终要转换为数据模型。设计概念模型时应当注意,使其有利于向特定的数据模型转换。
3.1.1 概念结构设计的方法
设计概念结构通常有四类方法:
(1)自顶向下:即首先定义全局概念结构的框架,然后逐步细化。
(2)自底向上:即首先定义各局部应用的概念结构,然后将它们集成起来得到全局概念模式。
(3)逐渐扩张:首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他的概念结构,直至总体概念结构。
(4)混合策略:即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。
其中最经常采用的策略是自底向上的方法。即自顶向下地进行需求分析,然后再自底向上地设计概念结构。这个超市管理系统就用这种方法。
3.1.2 概念结构设计的步骤
概念结构的设计可分为两步:第1步是抽象数据并设计局部视图,第2步是集成局部视图,得到全局的概念结构。
3.2 数据抽象与局部视图设计
按图2.2网上购物系统总框架图,设计局部E-R图。 该超市管理系统包含七个表。
各个子系统的局部E-R图如下:
图3.1供应商关系E-R图
图3.2商品关系E-R图
图3.3制造商关系E-R图
图3.4注册会员关系E-R图
图3.5供货关系E-R图
图3.6商品销售关系E-R图
图3.7生产关系E-R图
3.3视图的集成
视图的集成通俗的理解就是把各个子E-R图集成合并。视图集成可以有两种方式:1)多个分E-R图一次集成;2)逐步集成,用累加的方式一次集成两个分E-R图。第一种方法比较复杂,做起来难度较大;第二种方法每次只集成两个分E-R图,可以降低复杂度。无论采用哪种方式,每次集成局部E-R图时都需要分两步走:1)合并。解决各分E-R图合并起来生成初步E-R图;2)修改和重构。消除不必要的冗余,生成基本E-R图。冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难,应当予以消除。消除了冗余后的初步E-R图称为基本E-R图。消除冗余主要采用的方法有:1)用分析方法消除冗余;2)用规范化理论消除冗余。
对该超市管理系统各子E-R图的集成——即该超市管理系统的总体概念结构E-R图如下图所示:
图3.5总体概念结构E-R图
第四章 逻辑结构设计 4.1 E-R图向关系模型的转换
由于概念设计的结果是ER图,DBMS一般采用关系模型,因此数据库的逻辑设计过程就是把ER图转化为关系模式的过程。
将该超市管理系统的总体概念结构E-R图转换为关系模型:
商品(商品编号,商品名称,价格,库存数量)
注册会员(会员编号, 会员姓名, 会员密码, 商品编号)
制造商(制造商编号,制造商名称,制造商地址,制造商电话)
供货商(供货商编号,供货商名称,供货商地址,供货商电话)
供货关系(供货商编号,商品编号,采购数量,采购日期,采购价格)
生产关系(制造商编号,商品编号)
销售关系 (商品编号,会员编号, 交易量,交易日期)
4.2 数据模型的优化
数据模型的优化是为了提高数据库应用系统的性能,根据应用需要适当地修改、调整关系模式。将转化的关系模式进行优化,最终达到第三范式。
由以上关系可看出,这个关系模型都已经达到第三范式,所以不需要进行优化。
4.3 数据库的结构
给出网上购物系统基本表结构图4-1。
图4-1系统基本表结构图
各表的结构如下所示:
表4-1注册会员关系表(Clubber)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
clubID
char
20
P
Not null
会员编号
clubname
char
50
Not null
会员名称
clubADDR
char
50
Not null
会员地址
clubpword
char
50
Not null
会员密码
CLUtotol
Int
4
Not null
消费总额
表4-2商品信息表(Product)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
PROID
char
20
P
Not null
商品编号
PRONAME
char
20
Not null
商品名称
PROPRICE
DOUBLE
Not null
商品价格
prorepertory
INT
4
Not null
库存数量
表4-3制造商关系表(Manufacturer)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
MANUID
char
20
P
Not null
制造商编号
MANUNAME
char
50
Not null
制造商名称
MANUADDR
char
50
Not null
制造商地址
MANUPHONE
char
50
Not null
制造商电话
表4-4供应商关系表(SUPPLIER)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
SUPID
char
20
P
Not null
供货商编号
SUPNAME
char
50
Not null
供货商名称
SUPADDR
char
50
Not null
供货商地址
SUPPHONE
char
50
Not null
供货商电话
表4-5供货关系表(Delivery)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
SUPID
char
10
P
Not null
供应商编号
PROID
Char
20
P
Not null
商品编号
delqty
Int
4
Not null
采购数量
deldate
Char
20
Not null
采购时间
delprice
DOUBLE
Not null
采购价格
表4-6生产关系表(Produce)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
MANUID
char
20
P
Not null
制造商编号
PROID
Char
20
P
Not null
商品编号
表4-7销售关系表(Retail)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
clubID
char
20
P
Not null
会员编号
PROID
char
20
P
Not null
商品编号
retime
char
20
Not null
交易时间
amount
INT
4
Not null
交易数量
第五章 数据库物理设计 5.1 索引的建立
建立索引是加快查询速度的有效手段。索引有唯一索引和聚簇索引类型:UNIQUE表示次索引的每一个索引值,只对应唯一的数据记录,不允许表中不同的行在索引列上取相同的值。
CLUSTER表示建立的索引是聚簇索引。聚簇索引是指索引的顺序与表中的记录的物理顺序一致的索引组织。要求在表PRODUCT的PRONAME列上建立唯一索引,所处位置在sms01表空间,相应的SQL语句如下:
CREATE UNIQUE INDEX ADMINISTRATOR.MYINDEX ON ADMINISTRATOR.PRODUCT (PRONAME ASC) PCTFREE 10 MINPCTUSED 10 ALLOW REVERSE SCANS PAGE SPLIT SYMMETRIC COLLECT SAMPLED DETAILED STATISTICS;
要求在表DELIVERY的PROID列上建立聚簇索引,所处位置在sms01表空间,相应的SQL语句如下:
CREATE INDEX ADMINISTRATOR.MYCLUTINDX ON ADMINISTRATOR.DELIVERY (PROID ASC) CLUSTER PCTFREE 10 ALLOW REVERSE SCANS PAGE SPLIT SYMMETRIC COLLECT SAMPLED DETAILED STATISTICS;
5.2 表空间的建立
给出表空间是用来指定数据库的物理位置的,是位于数据库和实际存放表数据的容器之间的逻辑层。表空间有两种类型:系统管理表空间和数据库管理表空间。本系统用到两个表空间dms01和sms01,dms01是数据库管理表空间,用来存放自己建立的表。sms01是系统管理表空间,用来存放建立的索引。具体SQL语言如下:
Create regular tablespace dms01
Managed by database using (FILE 'D:dmsdms01' 5120)
Create regular tablespace sms01
Managed by system using ('d:smssms01');
第六章 数据库的实施 6.1表的建立与数据的载入
需要明确数据库需要建立几张表,以及每个表中所要包括的属性。在建立表的过程中。要对每个表进行字段属性的设置。(至少包括6张表,每个表都有主键,设必要的外键;根据实际情况,设计一个Check约束;至少建立一个视图)
6.2触发器的设计
在修改商品价格的时候,新的商品价格不能超过原来价格的2倍,否则修改不成功,依此设计一个触发器。
6.3 数据库的运行
收录了9位会员的信息如图6.1。会员号,住址,姓名,消费金额。
图6.1 会员信息表
收录了8个批次的供应关系如图6.2,供应商号,产品号,数量,时间,价格
图6.2 供应关系表
收录了7家制造商信息如图6.3,制造商号,公司名称,公司所在地,电话
图6.3 制造商信息表
收录了9条制造关系信息如图6.4,制造商号,商品号
图6.4 制造关系信息表
收录了9种商品的信息如图6.5,商品号,商品名,商品价格,库存量
图6.5 商品信息表
收录了8条消费记录如图6.6,会员号,商品号,消费时间,数量
图6.6 消费关系信息表
收录了7条供应商记录如图6.7,供应商号,供应商名称,公司地址,联系电话
图6.7 供应商信息表
5.4 数据库的查询
查询消费金额大于300元的会员名字,会员号和消费金额 语句和结果如图6.8
图6.8 消费金额查询
查寻购买了三鹿奶粉的会员号,会员名字与购买数量 语句和结果如图6.9
图6.9 购买了三鹿奶粉的查询
添加两种商品 执行脚本如图6.10
图6.10 添加商品的执行脚本
添加两种商品的结果如图6.11
图6.11 添加后的商品
修改可口可乐的价格为2.5元,执行脚本如图6.12
图6.12 修改可口可乐的价格的脚本
修改可口可乐的价格为2.5元,结果如图6.13
图6.13 修改后的价格
删除商品名称为“面包”的商品,语句和结果如图6.14
图6.14 删除命令和结果
总 结
通过这次的数据库课程设计我学习并掌握了很多知识与操作。历时两个星期的设计令我受益匪浅,也对数据库这门学科有了更进一步的认识与熟悉。
一个好的软件的设计必须有一个好的需求分析。我结合自己的设计理念,出了五个表,分别是:会员信息关系表(clubber),商品信息关系表(product),厂商关系表(manufacturer),供货商关系表(SUPPLIER)和供应关系表(delivery)制造关系表(produce)和零售关系表(retail)。在各个表中我添加了若干个属性,而这些属性恰恰是我们最想知道的信息。当创建完这些表和属性后,我开始按照老师给的模板和要求写论文,写论文的过程中自行学习了用visio画E-R图及模式图,有所收获。接着是相较于我比较难的步骤,用DB2运行截图。我花了很长的时间才弄懂如何使用。我根据老师以前给的实验指导书一步一步的从头到尾开始学习操作应用DB2。弄懂了DB2后,我就开始根据老师的要求进行超市管理系统各个操作。完成之后,很有成就感,学到了很多,希望以后还可以有这样的课程设计让我进步。由于本人能力不足,会使系统出现一些不足之处,例如,网上购物系统涉及范围宽,要解决的问题多,功能复杂,实现困难,但由于限于时间,本系统只能做出其中的一部分功能。希望老师评点批评。
参考文献
[1] 杨鑫华,赵慧敏,丁传华。数据库原理与DB2应用教程:清华大学出版社,2007
[2] 萨师煊,王珊。数据库系统原理教程:高等教育出版社,2000
[3] 李志伟。DB2基础教程:清华大学出版社,2003
[4] (美)数据库原理,性能与编程。周傲英等译。机械工业出版社。2002
[5] IBM公司。微软环境DB2 UDB 7.1开发指南。北京:机械工业出版社。2001
[6] 王珊,陈红·数据库系统原理教程·清华大学出版社,1998,7
更多阅读
ui的设计教程 qt ui界面设计教程
ui的设计教程——简介 其实,我也是个初学者,这里分享下我学习的经验。请不要把这当做能够使你直接成为大师的作品。目前我学习的是VS和Android进行设计。ui的设计教程——方法——androidui的设计教程 1、 下图是我刚刚学的时候所使
梵蒂冈圣彼得广场的设计之谜 圣彼得广场284根柱子
梵蒂冈广场也称圣彼得广场,被认为是世界上最壮丽的广场之一,集合了那个时代宗教、艺术和科学的精华,是17世纪著名建筑大师贝尔尼尼花了11年时间建成的杰作。几百年来,广场上高高的方尖塔、椭圆形的柱廊,地面的图案等都被视为天主教圣物,内
基于模型的设计 基于模型的测试
前一阵参加了MathWorks公司一个关于基于模型的设计的讲座,先介绍了基于模型的设计model based design,然后是亲自动手体验;感觉很有意义,特别是其中的自动代码生成,所以在此和大家分享一下。听起来,自动生成代码好像是专门为不想多动手的
阳光房顶棚循环水幕系统的设计 阳光房顶棚材料
分享这段文字:>我的热门文章只求扎扎实实 不图轰轰烈... 家庭小花园的设计 和谐 互助 开心 我们永... 走入大芯板生产车间 捎给腾讯小马几句老人言 最不希望房价下降的是谁 飘窗的巧用 膝绕娇孙享天年 逆流而上的小舟 家有贤妻方是福
集成电路高频变压器的设计与制作性能参数 高性能集成电路
集成电路高频变压器的设计与制作性能参数脉冲变压器也可称作开关变压器,或简单地称作高频变压器。在传统的高频变压器设计中,由于磁芯材料的限制,其工作频率较低,一般在20kHz左右。随着电源技术的不断发展,电源系统的小型化、高频化和大