沈雅婷
摘 要:線上商品銷售應(yīng)用越來越廣泛,為充分發(fā)揮市場作用,并實現(xiàn)高效的商品及相關(guān)人員管理,在傳統(tǒng)商品銷售系統(tǒng)的基礎(chǔ)上增添市場管理模塊。系統(tǒng)管理員根據(jù)更新的市場信息及時提出商品調(diào)整方案;消費者通過查詢市場信息選擇正確的地點購買物美價廉的商品,實現(xiàn)雙贏。同時為了提高系統(tǒng)存儲和查找效率,節(jié)省系統(tǒng)資源開銷,在以O(shè)racle作為底層開發(fā)數(shù)據(jù)庫、建立數(shù)據(jù)庫關(guān)系模型實現(xiàn)數(shù)據(jù)交互的基礎(chǔ)上,從數(shù)據(jù)庫表結(jié)構(gòu)、索引以及SQL語句等方面對數(shù)據(jù)庫進行優(yōu)化。實驗顯示,未對商品號建立索引的查詢時耗是建立索引的200倍。因此,對數(shù)據(jù)庫的優(yōu)化可提升增刪查改速度,更好地滿足買賣雙方的需求,具有市場管理模塊的商品銷售系統(tǒng)更利于企業(yè)發(fā)展。
關(guān)鍵詞:Oracle數(shù)據(jù)庫;商品銷售;市場管理;數(shù)據(jù)庫優(yōu)化
DOI:10. 11907/rjdk. 191127 開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
中圖分類號:TP392文獻標(biāo)識碼: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 引言
隨著線上商品銷售等行業(yè)的迅猛發(fā)展,需要實現(xiàn)商品有效管理,包括對商品的增刪改查等操作,同時也需實現(xiàn)對市場、部門、員工和客戶的管理,滿足商品管理員、市場管理員、部門管理員、客戶管理員、消費者和員工的需求,給大眾生活帶來便利[1],因此數(shù)據(jù)庫設(shè)計重要性日益凸顯。近年來,不少學(xué)者對商品銷售系統(tǒng)進行研究,聚焦于如何進行信息資源合理利用與有效獲取,從而提高工作及生活效率。普遍認(rèn)為數(shù)據(jù)庫可更多地掌握信息數(shù)量,成為高效利用信息資源的基礎(chǔ),掌控的信息越多,在實際工作、競爭中越占據(jù)有利地位[2]。商品銷售系統(tǒng)應(yīng)具有豐富的實用功能,但目前大多數(shù)商品銷售系統(tǒng)側(cè)重于改善商品銷售模塊,因為該模塊能讓公司獲取更多可見的利潤[3],所以在整個公司與企業(yè)的經(jīng)營管理過程中,商品銷售的作用得到業(yè)內(nèi)肯定[4]。
本文系統(tǒng)充分發(fā)揮市場作用,在傳統(tǒng)商品銷售系統(tǒng)的基礎(chǔ)上增添市場管理模塊。市場管理員和消費者可以輸入市場號查找對應(yīng)的市場信息,此外市場管理員還可輸入市場號,添加、刪除市場信息及修改地點。系統(tǒng)管理員根據(jù)更新的市場信息對銷售情況不佳的商品,及時調(diào)整產(chǎn)品特性與銷售策略,減少市場需求較低的產(chǎn)品種類,增加滿足市場需求的新產(chǎn)品種類;消費者通過查詢市場信息選擇正確的地點購買物美價廉的商品,實現(xiàn)雙贏。
每一張表的修改均對其它表格產(chǎn)生影響,并且隨著存儲數(shù)據(jù)的不斷增多,系統(tǒng)通過全表掃描查找相關(guān)信息將耗費較長時間[5]。因此對數(shù)據(jù)庫進行優(yōu)化開發(fā)是提升商品銷售系統(tǒng)性能的重要內(nèi)容。
本文首先介紹基于Oracle數(shù)據(jù)庫的商品銷售系統(tǒng)基本架構(gòu)、功能模塊,著重講解市場管理模塊,提出3種數(shù)據(jù)庫優(yōu)化方式,并通過實驗進行驗證。
1 系統(tǒng)概述
1.1 系統(tǒng)功能描述
該系統(tǒng)包含商品管理、市場管理、部門管理、員工管理和客戶管理五大模塊。商品管理模塊實現(xiàn)了根據(jù)商品號查找對應(yīng)商品信息、對應(yīng)銷售總額及添加商品信息、根據(jù)商品號刪除商品信息和根據(jù)商品號、待修改的價格進行修改的功能[6];市場管理模塊可實現(xiàn)根據(jù)市場號查找、添加及刪除市場信息,還可實現(xiàn)根據(jù)市場號和待修改地點進行地點修改的功能;部門管理模塊可根據(jù)部門號查找、添加及刪除部門信息,還可根據(jù)部門號與待修改的經(jīng)理姓名進行經(jīng)理姓名修改;員工管理模塊可實現(xiàn)根據(jù)員工號查找、添加、刪除對應(yīng)員工經(jīng)理信息,根據(jù)員工號與員工待修改的工資進行工資修改[7];客戶管理模塊可根據(jù)客戶號查找、添加、刪除對應(yīng)客戶信息,根據(jù)客戶號與待修改的電話進行電話修改。設(shè)計合理的相關(guān)系統(tǒng)表格有利于后期數(shù)據(jù)庫優(yōu)化。因此,在本系統(tǒng)數(shù)據(jù)庫基本表格設(shè)計中,各表之間通過外鍵或中間表相連,以實現(xiàn)低冗余與零異常[8]。
1.2 用戶群體
該系統(tǒng)主要面向商品管理員、市場管理員、部門管理員、客戶管理員、消費者、員工和客戶。系統(tǒng)名詞和術(shù)語如表1所示。
2 功能性需求
2.1 商品銷售系統(tǒng)數(shù)據(jù)庫設(shè)計
2.1.1 商品銷售系統(tǒng)總功能模塊
本系統(tǒng)主要分為5個功能模塊,分別為商品管理模塊、市場管理模塊、部門管理模塊、員工管理模塊和客戶管理模塊,并通過相應(yīng)控件實現(xiàn)對應(yīng)功能。商品銷售系統(tǒng)總功能模塊如圖1所示。
2.1.2 商品銷售系統(tǒng)總用例
本系統(tǒng)具有消費者、商品管理員、市場管理員等多個外部用戶參與,每類用戶有對應(yīng)的實際用例,相互之間產(chǎn)生聯(lián)系。商品銷售系統(tǒng)總用例如圖2所示。
2.1.3 商品銷售系統(tǒng)總實體—聯(lián)系關(guān)系
數(shù)據(jù)模型的發(fā)展先后經(jīng)歷了層次模型、網(wǎng)狀模型與關(guān)系模型3個階段,其中關(guān)系模型應(yīng)用最為廣泛。關(guān)系模型依據(jù)各實體自身情況建立聯(lián)系,再對數(shù)據(jù)進行相關(guān)代數(shù)和邏輯關(guān)系運算[9]。本文系統(tǒng)關(guān)系數(shù)據(jù)庫基于該模型建立,根據(jù)建立在不同表中描述相關(guān)屬性數(shù)據(jù)之間關(guān)系的集合構(gòu)成一個關(guān)系數(shù)據(jù)庫[10]。該系統(tǒng)數(shù)據(jù)信息實體—聯(lián)系關(guān)系如圖3所示。商品屬性包括:商品號、商品名稱、種類、產(chǎn)地、價格、銷售時間、銷售數(shù)量。市場屬性包括:市場號、市場名稱、地點、建立時間。部門屬性包括:部門號、部門名稱、經(jīng)理姓名。員工屬性包括:員工號、員工姓名、性別、出生日期、職業(yè)、工資、雇傭日期、部門號??蛻魧傩园ǎ嚎蛻籼枴⒖蛻粜彰?、性別、出生日期、電話。
由于商品、市場、部門眾多,商品價格不斷變化,商品樣式也在不斷更新?lián)Q代,為有效管理各類信息,有必要對商品信息進行管理、對銷售總額進行統(tǒng)計等。同時,市場部門類型各異,需對市場部門與員工進行管理。
2.1.4 商品管理模塊
商品管理模塊是商品銷售系統(tǒng)的重要組成部分。該模塊主要實現(xiàn)商品管理,包括根據(jù)商品號查找對應(yīng)商品信息、對應(yīng)銷售總額及添加商品信息,根據(jù)商品號刪除商品信息、商品號,根據(jù)待修改價格進行價格修改。該模塊功能說明如表2所示。
該模塊可以通過輸入商品號查找對應(yīng)商品信息、輸入商品號查找對應(yīng)銷售總額及添加商品信息、輸入商品號刪除商品信息、輸入商品號與待修改的價格進行價格修改。
2.1.5 市場管理模塊
市場管理模塊主要實現(xiàn)對市場的管理,包括根據(jù)市場號查找、添加及刪除對應(yīng)市場信息、根據(jù)市場號與待修改的地點進行地點修改。市場管理模塊功能說明如表4所示。
2.1.6 部門管理模塊
部門管理模塊主要實現(xiàn)對部門的管理,包括根據(jù)部門號查找、添加、刪除部門信息,根據(jù)部門號和待修改的經(jīng)理姓名進行修改。
2.1.7 員工管理模塊
員工管理模塊主要實現(xiàn)對員工的管理,包括根據(jù)員工號查找、添加、刪除對應(yīng)員工、經(jīng)理信息,根據(jù)員工號和待修改的工資進行修改。
2.1.8 客戶管理模塊
客戶管理模塊主要實現(xiàn)對客戶的管理,包括根據(jù)客戶號查找、添加、刪除對應(yīng)客戶信息,根據(jù)客戶號和待修改的電話進行修改。
2.1.9 備份恢復(fù)模塊
備份恢復(fù)模塊分為數(shù)據(jù)備份和數(shù)據(jù)恢復(fù)兩部分,主要用于預(yù)防突發(fā)情況造成系統(tǒng)重要信息破壞[11]。該模塊設(shè)置相應(yīng)的默認(rèn)數(shù)據(jù)備份路徑,可手動或自動備份[12]。首先執(zhí)行相應(yīng)自動備份的SQL語句,然后數(shù)據(jù)還原掃描備份路徑下的全部子文件,最后執(zhí)行相應(yīng)自動還原SQL語句[13]。
備份可脫機備份也可聯(lián)機備份。數(shù)據(jù)庫關(guān)閉的情況下進行脫機備份,當(dāng)數(shù)據(jù)庫處于archivelog模式時采用聯(lián)機備份。備份時需要先將表空間設(shè)置為備份狀態(tài),然后備份其它數(shù)據(jù)文件,最后將表空間恢復(fù)為正常狀態(tài)。
3 數(shù)據(jù)庫性能優(yōu)化
3.1 優(yōu)化需求
數(shù)據(jù)處理和查詢速度是衡量系統(tǒng)性能的重要指標(biāo)[14]。隨著商品銷售系統(tǒng)的持續(xù)使用,數(shù)據(jù)庫各表中的記錄會持續(xù)增加,系統(tǒng)響應(yīng)速度持續(xù)變緩,因此有必要對數(shù)據(jù)庫進行性能優(yōu)化,提高系統(tǒng)工作效率[15]?;贠racle數(shù)據(jù)庫的性能優(yōu)化方法多樣,例如選擇較好的服務(wù)器、合理使用事務(wù)和批處理以及在應(yīng)用程序開發(fā)時使用合適的工具等。本系統(tǒng)除了規(guī)范基本表結(jié)構(gòu),還通過索引優(yōu)化和SQL語句優(yōu)化兩種方法提升系統(tǒng)性能[16]。
3.2 性能優(yōu)化方法
3.2.1 索引優(yōu)化
使用索引可大幅加快數(shù)據(jù)庫查詢速度。查詢執(zhí)行的大部分開銷是I/O,索引優(yōu)化可提升系統(tǒng)性能的主要原因是避免了全表掃描[17]。全表掃描會從磁盤讀取表的所有數(shù)據(jù)頁,若建立索引指向數(shù)據(jù)值,查詢只需讀取幾次磁盤即可。但索引不能建立過多,否則會占用磁盤空間、增加數(shù)據(jù)庫維護開銷。建立合適的索引后系統(tǒng)查詢時間明顯縮短[18]。例如對商品表(comm)中的商品號(commno)字段建立索引,通過執(zhí)行“SELECT * FROM comm WHERE commo=387652;”,SQL語句可查詢商品號為287652的商品相關(guān)信息記錄。查詢執(zhí)行時間對比如表6所示,可以看出建立索引后系統(tǒng)查詢時間明顯縮短。
3.2.2 語句優(yōu)化
對于商品銷售系統(tǒng)而言,SQL語句獨立于應(yīng)用程序設(shè)計,比優(yōu)化系統(tǒng)源代碼的風(fēng)險小、成本低。此外,SQL語句是操作數(shù)據(jù)庫數(shù)據(jù)的唯一方式,因此優(yōu)化SQL語句是提升系統(tǒng)性能的關(guān)鍵。本系統(tǒng)從WHERE子句、避免使用游標(biāo)和分頁查詢3方面對SQL語句進行優(yōu)化。
(1)WHERE子句。在數(shù)據(jù)查詢時,通過WHERE子句限定查詢條件能夠避免查詢大量無用數(shù)據(jù),在WHERE涉及的列上建立索引,可以提高查詢效率。同時,避免在WHERE子句中對字段進行NULL值判斷,否則將導(dǎo)致引擎放棄使用索引而進行全表掃描[19]。
(2)避免使用游標(biāo)。游標(biāo)的使用能讓系統(tǒng)對查詢返回的每行結(jié)果集進行處理,能基于游標(biāo)位置對表中數(shù)據(jù)刪除或更新。但隨著系統(tǒng)持續(xù)使用,數(shù)據(jù)庫存儲的信息越來越龐大,如果建立游標(biāo),在處理數(shù)據(jù)時相關(guān)信息會被鎖定,直至數(shù)據(jù)遍歷完成。鑒于使用游標(biāo)處理大量數(shù)據(jù)時,效率低下、占用內(nèi)存大,因此避免使用游標(biāo)。
(3)分頁查詢。數(shù)據(jù)庫中各表的記錄數(shù)都很大,可能存在眾多滿足查詢條件的記錄,若將查詢結(jié)果一次性顯示出來會降低查詢效率。通過row_number()解析函數(shù)完成分頁查詢可解決該類問題,即根據(jù)查詢條件返回前n條記錄,需要時再返回n+1條以后的記錄[20]。
4 結(jié)語
本文介紹了基于Oracle數(shù)據(jù)庫的商品銷售系統(tǒng)基本架構(gòu)、功能模塊,系統(tǒng)可以完成對各類信息的查詢、添加、修改、刪除等功能,每一個表的修改都將影響其它表。同時,本文充分發(fā)揮市場作用,在傳統(tǒng)商品銷售系統(tǒng)的基礎(chǔ)上增添市場管理模塊。市場管理員和消費者可以輸入市場號查找對應(yīng)市場信息,此外市場管理員還可以輸入市場號添加、刪除市場信息以及修改地點。系統(tǒng)管理員根據(jù)更新的市場信息及時對商品等提出調(diào)整方案;消費者通過查詢市場信息選擇正確的地點購買物美價廉的商品,實現(xiàn)雙贏。
在以O(shè)racle作為底層開發(fā)數(shù)據(jù)庫,建立數(shù)據(jù)庫關(guān)系模型以實現(xiàn)數(shù)據(jù)交互的基礎(chǔ)上,從數(shù)據(jù)庫表結(jié)構(gòu)、索引以及SQL語句等方面對數(shù)據(jù)庫進行了優(yōu)化。實驗顯示,建立索引的查詢時耗明顯小于未建立索引的時耗,優(yōu)化提高了系統(tǒng)存儲和查找效率,節(jié)省了系統(tǒng)資源開銷。整體功能可滿足實際設(shè)計要求,具有良好的平臺無關(guān)性及拓展性。
參考文獻:
[1] 蔡丹琳. 基于Asp.net的產(chǎn)品銷售管理系統(tǒng)設(shè)計[J]. 電腦知識與技術(shù), 2018, 14(11):294-295+297.
[2] 孫加兵, 施陽. 網(wǎng)上圖書銷售系統(tǒng)的分析與設(shè)計[J]. 微處理機, 2018, 39(1):32-35.
[3] 劉方. 基于SSH框架的農(nóng)特產(chǎn)品網(wǎng)上銷售系統(tǒng)構(gòu)建[J]. 軟件導(dǎo)刊, 2017, 16(11):94-97.
[4] 張警燦, 王緩緩. 基于商品特征屬性的個性化實時推薦系統(tǒng)研究[J]. 軟件導(dǎo)刊,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] 劉承良. 網(wǎng)絡(luò)系統(tǒng)茶葉銷售的設(shè)計與開發(fā)[J]. 福建茶葉,2016,38(9):58-59.
[10] 張淵博. 微信購物電子商務(wù)系統(tǒng)設(shè)計與實現(xiàn)[J]. 軟件導(dǎo)刊, 2017,16(11):72-76.
[11] 張斌,劉勝,劉飛,等. 基于Internet的陶瓷產(chǎn)品銷售系統(tǒng)的研究[J]. 工業(yè)工程, 2002, 5(4):55-58.
[12] HALFHILL T R. Oracle Sparc accelerates big data[J]. Microprocessor report,2016,30(9):14-23.
[13] 戴閩魯,崔豐驛,雷國平,等. 基于RFID的銷售管理與消費信息采集系統(tǒng)設(shè)計[J]. 現(xiàn)代電子技術(shù),2017, 40(9):159-162.