APP下载

商品销售系统Oracle数据库开发及优化

2019-10-18沈雅婷

软件导刊 2019年9期
关键词:市场管理Oracle数据库

沈雅婷

摘 要:线上商品销售应用越来越广泛,为充分发挥市场作用,并实现高效的商品及相关人员管理,在传统商品销售系统的基础上增添市场管理模块。系统管理员根据更新的市场信息及时提出商品调整方案;消费者通过查询市场信息选择正确的地点购买物美价廉的商品,实现双赢。同时为了提高系统存储和查找效率,节省系统资源开销,在以Oracle作为底层开发数据库、建立数据库关系模型实现数据交互的基础上,从数据库表结构、索引以及SQL语句等方面对数据库进行优化。实验显示,未对商品号建立索引的查询时耗是建立索引的200倍。因此,对数据库的优化可提升增删查改速度,更好地满足买卖双方的需求,具有市场管理模块的商品销售系统更利于企业发展。

关键词:Oracle数据库;商品销售;市场管理;数据库优化

DOI:10. 11907/rjdk. 191127 开放科学(资源服务)标识码(OSID):

中图分类号:TP392文献标识码:A 文章编号:1672-7800(2019)009-0176-07

Development and Optimization of Oracle Database in Commodity Sales System

SHEN Ya-ting

(School of Computer Science,Nanjing University of Science and Technology, Zijin College, Nanjing 210046, China)

Abstract: Online applications of commodity sales are more and more widely used. In order to give full play to the role of the market to realise efficient management of commodity and relevant staff, market management module is added on the basis of traditional commodity sales system. According to the updated market information, system administrators timely put forward adjustment plans for commodities, etc. Consumers choose the right place to buy high-quality and low-cost commodities by selecting market information, thus achieving a win-win situation. At the same time, in order to improve the efficiency of system storage, select and save system resources, the database is optimized from the aspects of database table structure, index and SQL statement, based on Oracle as the underlying database development and database relational model to realize data interaction. Experiments show that the query time without indexing commodity number is 200 times longer than that with indexing. Therefore the optimization of the database improves the speed of adding, deleting and modifying, and better meets the needs of buyers and sellers, and commodity sales system with market management module is more conducive to development.

Key Words: Oracle database;commodity sales;market management;database optimization

0 引言

随着线上商品销售等行业的迅猛发展,需要实现商品有效管理,包括对商品的增删改查等操作,同时也需实现对市场、部门、员工和客户的管理,满足商品管理员、市场管理员、部门管理员、客戶管理员、消费者和员工的需求,给大众生活带来便利[1],因此数据库设计重要性日益凸显。近年来,不少学者对商品销售系统进行研究,聚焦于如何进行信息资源合理利用与有效获取,从而提高工作及生活效率。普遍认为数据库可更多地掌握信息数量,成为高效利用信息资源的基础,掌控的信息越多,在实际工作、竞争中越占据有利地位[2]。商品销售系统应具有丰富的实用功能,但目前大多数商品销售系统侧重于改善商品销售模块,因为该模块能让公司获取更多可见的利润[3],所以在整个公司与企业的经营管理过程中,商品销售的作用得到业内肯定[4]。

本文系统充分发挥市场作用,在传统商品销售系统的基础上增添市场管理模块。市场管理员和消费者可以输入市场号查找对应的市场信息,此外市场管理员还可输入市场号,添加、删除市场信息及修改地点。系统管理员根据更新的市场信息对销售情况不佳的商品,及时调整产品特性与销售策略,减少市场需求较低的产品种类,增加满足市场需求的新产品种类;消费者通过查询市场信息选择正确的地点购买物美价廉的商品,实现双赢。

每一张表的修改均对其它表格产生影响,并且随着存储数据的不断增多,系统通过全表扫描查找相关信息将耗费较长时间[5]。因此对数据库进行优化开发是提升商品销售系统性能的重要内容。

本文首先介绍基于Oracle数据库的商品销售系统基本架构、功能模块,着重讲解市场管理模块,提出3种数据库优化方式,并通过实验进行验证。

1 系统概述

1.1 系统功能描述

该系统包含商品管理、市场管理、部门管理、员工管理和客户管理五大模块。商品管理模块实现了根据商品号查找对应商品信息、对应销售总额及添加商品信息、根据商品号删除商品信息和根据商品号、待修改的价格进行修改的功能[6];市场管理模块可实现根据市场号查找、添加及删除市场信息,还可实现根据市场号和待修改地点进行地点修改的功能;部门管理模块可根据部门号查找、添加及删除部门信息,还可根据部门号与待修改的经理姓名进行经理姓名修改;员工管理模块可实现根据员工号查找、添加、删除对应员工经理信息,根据员工号与员工待修改的工资进行工资修改[7];客户管理模块可根据客户号查找、添加、删除对应客户信息,根据客户号与待修改的电话进行电话修改。设计合理的相关系统表格有利于后期数据库优化。因此,在本系统数据库基本表格设计中,各表之间通过外键或中间表相连,以实现低冗余与零异常[8]。

1.2 用户群体

该系统主要面向商品管理员、市场管理员、部门管理员、客户管理员、消费者、员工和客户。系统名词和术语如表1所示。

2 功能性需求

2.1 商品销售系统数据库设计

2.1.1 商品销售系统总功能模块

本系统主要分为5个功能模块,分别为商品管理模块、市场管理模块、部门管理模块、员工管理模块和客户管理模块,并通过相应控件实现对应功能。商品销售系统总功能模块如图1所示。

2.1.2 商品销售系统总用例

本系统具有消费者、商品管理员、市场管理员等多个外部用户参与,每类用户有对应的实际用例,相互之间产生联系。商品销售系统总用例如图2所示。

2.1.3 商品销售系统总实体—联系关系

数据模型的发展先后经历了层次模型、网状模型与关系模型3个阶段,其中关系模型应用最为广泛。关系模型依据各实体自身情况建立联系,再对数据进行相关代数和逻辑关系运算[9]。本文系统关系数据库基于该模型建立,根据建立在不同表中描述相关属性数据之间关系的集合构成一个关系数据库[10]。该系统数据信息实体—联系关系如图3所示。商品属性包括:商品号、商品名称、种类、产地、价格、销售时间、销售数量。市场属性包括:市場号、市场名称、地点、建立时间。部门属性包括:部门号、部门名称、经理姓名。员工属性包括:员工号、员工姓名、性别、出生日期、职业、工资、雇佣日期、部门号。客户属性包括:客户号、客户姓名、性别、出生日期、电话。

由于商品、市场、部门众多,商品价格不断变化,商品样式也在不断更新换代,为有效管理各类信息,有必要对商品信息进行管理、对销售总额进行统计等。同时,市场部门类型各异,需对市场部门与员工进行管理。

2.1.4 商品管理模块

商品管理模块是商品销售系统的重要组成部分。该模块主要实现商品管理,包括根据商品号查找对应商品信息、对应销售总额及添加商品信息,根据商品号删除商品信息、商品号,根据待修改价格进行价格修改。该模块功能说明如表2所示。

该模块可以通过输入商品号查找对应商品信息、输入商品号查找对应销售总额及添加商品信息、输入商品号删除商品信息、输入商品号与待修改的价格进行价格修改。

2.1.5 市场管理模块

市场管理模块主要实现对市场的管理,包括根据市场号查找、添加及删除对应市场信息、根据市场号与待修改的地点进行地点修改。市场管理模块功能说明如表4所示。

2.1.6 部门管理模块

部门管理模块主要实现对部门的管理,包括根据部门号查找、添加、删除部门信息,根据部门号和待修改的经理姓名进行修改。

2.1.7 员工管理模块

员工管理模块主要实现对员工的管理,包括根据员工号查找、添加、删除对应员工、经理信息,根据员工号和待修改的工资进行修改。

2.1.8 客户管理模块

客户管理模块主要实现对客户的管理,包括根据客户号查找、添加、删除对应客户信息,根据客户号和待修改的电话进行修改。

2.1.9 备份恢复模块

备份恢复模块分为数据备份和数据恢复两部分,主要用于预防突发情况造成系统重要信息破坏[11]。该模块设置相应的默认数据备份路径,可手动或自动备份[12]。首先执行相应自动备份的SQL语句,然后数据还原扫描备份路径下的全部子文件,最后执行相应自动还原SQL语句[13]。

备份可脱机备份也可联机备份。数据库关闭的情况下进行脱机备份,当数据库处于archivelog模式时采用联机备份。备份时需要先将表空间设置为备份状态,然后备份其它数据文件,最后将表空间恢复为正常状态。

3 数据库性能优化

3.1 优化需求

数据处理和查询速度是衡量系统性能的重要指标[14]。随着商品销售系统的持续使用,数据库各表中的记录会持续增加,系统响应速度持续变缓,因此有必要对数据库进行性能优化,提高系统工作效率[15]。基于Oracle数据库的性能优化方法多样,例如选择较好的服务器、合理使用事务和批处理以及在应用程序开发时使用合适的工具等。本系统除了规范基本表结构,还通过索引优化和SQL语句优化两种方法提升系统性能[16]。

3.2 性能优化方法

3.2.1 索引优化

使用索引可大幅加快数据库查询速度。查询执行的大部分开销是I/O,索引优化可提升系统性能的主要原因是避免了全表扫描[17]。全表扫描会从磁盘读取表的所有数据页,若建立索引指向数据值,查询只需读取几次磁盘即可。但索引不能建立过多,否则会占用磁盘空间、增加数据库维护开销。建立合适的索引后系统查询时间明显缩短[18]。例如对商品表(comm)中的商品号(commno)字段建立索引,通过执行“SELECT * FROM comm WHERE commo=387652;”,SQL语句可查询商品号为287652的商品相关信息记录。查詢执行时间对比如表6所示,可以看出建立索引后系统查询时间明显缩短。

3.2.2 语句优化

对于商品销售系统而言,SQL语句独立于应用程序设计,比优化系统源代码的风险小、成本低。此外,SQL语句是操作数据库数据的唯一方式,因此优化SQL语句是提升系统性能的关键。本系统从WHERE子句、避免使用游标和分页查询3方面对SQL语句进行优化。

(1)WHERE子句。在数据查询时,通过WHERE子句限定查询条件能够避免查询大量无用数据,在WHERE涉及的列上建立索引,可以提高查询效率。同时,避免在WHERE子句中对字段进行NULL值判断,否则将导致引擎放弃使用索引而进行全表扫描[19]。

(2)避免使用游标。游标的使用能让系统对查询返回的每行结果集进行处理,能基于游标位置对表中数据删除或更新。但随着系统持续使用,数据库存储的信息越来越庞大,如果建立游标,在处理数据时相关信息会被锁定,直至数据遍历完成。鉴于使用游标处理大量数据时,效率低下、占用内存大,因此避免使用游标。

(3)分页查询。数据库中各表的记录数都很大,可能存在众多满足查询条件的记录,若将查询结果一次性显示出来会降低查询效率。通过row_number()解析函数完成分页查询可解决该类问题,即根据查询条件返回前n条记录,需要时再返回n+1条以后的记录[20]。

4 结语

本文介绍了基于Oracle数据库的商品销售系统基本架构、功能模块,系统可以完成对各类信息的查询、添加、修改、删除等功能,每一个表的修改都将影响其它表。同时,本文充分发挥市场作用,在传统商品销售系统的基础上增添市场管理模块。市场管理员和消费者可以输入市场号查找对应市场信息,此外市场管理员还可以输入市场号添加、删除市场信息以及修改地点。系统管理员根据更新的市场信息及时对商品等提出调整方案;消费者通过查询市场信息选择正确的地点购买物美价廉的商品,实现双赢。

在以Oracle作为底层开发数据库,建立数据库关系模型以实现数据交互的基础上,从数据库表结构、索引以及SQL语句等方面对数据库进行了优化。实验显示,建立索引的查询时耗明显小于未建立索引的时耗,优化提高了系统存储和查找效率,节省了系统资源开销。整体功能可满足实际设计要求,具有良好的平台无关性及拓展性。

参考文献:

[1] 蔡丹琳. 基于Asp.net的产品销售管理系统设计[J]. 电脑知识与技术, 2018, 14(11):294-295+297.

[2] 孙加兵, 施阳. 网上图书销售系统的分析与设计[J]. 微处理机, 2018, 39(1):32-35.

[3] 刘方. 基于SSH框架的农特产品网上销售系统构建[J]. 软件导刊, 2017, 16(11):94-97.

[4] 张警灿, 王缓缓. 基于商品特征属性的个性化实时推荐系统研究[J]. 软件导刊,2016,15(10):123-125.

[5] RAHMAN M M. Auditing Oracle database[J]. ISACA Journal: The source for IT governance Professionals,2014,6:44-50.

[6] ZEKRI K,TOUZI AO,ELLOUZE N. Optimized image retrieval system in Oracle DBMS[J]. International Journal of Service Science, Management, Engineering and Technology,2017,8(1):1-17.

[7] JACKSON C, SCHUMACHER H E. Essential specification guidelines for Oracle Primavera P6[J].Cost Engineering,2017,59(1):30-39.

[8] YAO S C. Optimization design scheme of Oracle database[J].Applied Mechanics and Materials,2014,3277(1217):589-592.

[9] 刘承良. 网络系统茶叶销售的设计与开发[J]. 福建茶叶,2016,38(9):58-59.

[10] 张渊博. 微信购物电子商务系统设计与实现[J]. 软件导刊, 2017,16(11):72-76.

[11] 张斌,刘胜,刘飞,等. 基于Internet的陶瓷产品销售系统的研究[J]. 工业工程, 2002, 5(4):55-58.

[12] HALFHILL T R. Oracle Sparc accelerates big data[J]. Microprocessor report,2016,30(9):14-23.

[13] 戴闽鲁,崔丰驿,雷国平,等. 基于RFID的销售管理与消费信息采集系统设计[J]. 现代电子技术,2017, 40(9):159-162.

猜你喜欢

市场管理Oracle数据库
市场的功能管理法制化
玉米种子市场管理现状及对策
我国海上救捞市场管理的困境与出路