- 相關(guān)推薦
SQLSERVER視圖和存儲過程在進銷存系統(tǒng)開發(fā)中的應(yīng)用
SQL Server 是Microsoft 公司推出的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2012 的大型多處理器的服務(wù)器等多種平臺使用。下面小編為大家介紹利用spl server開發(fā)的過程。
摘要:視圖和儲過程是SQLSERVER重要的數(shù)據(jù)庫對象。在進銷存管理信息系統(tǒng)開發(fā)中應(yīng)用視圖和存儲過程技術(shù)能收到提高所開發(fā)系統(tǒng)的安全性、提高執(zhí)行效率、方便代碼管理等效果。筆者就如何在.NET環(huán)境中開發(fā)通用進銷存管理系統(tǒng),以業(yè)績提成模塊為例結(jié)合應(yīng)用視圖和存儲過程技術(shù)提出自己的設(shè)想。
關(guān)鍵詞:存儲過程;視圖;進銷存系統(tǒng);開發(fā);應(yīng)用
進銷存系統(tǒng)是對企業(yè)的進貨、銷售、庫存進行統(tǒng)一管理的應(yīng)用系統(tǒng)。隨著計算機技術(shù)不斷普及、隨著市場競爭越趨激烈,現(xiàn)在中小企業(yè)普遍使用進銷存系統(tǒng)進行管理。市場上各種進銷存系統(tǒng)參差不齊。企業(yè)要想在這種大環(huán)境中取得競爭的勝利,必須依托信息系統(tǒng)。另外,企業(yè)的這些數(shù)據(jù)量非常大,能對這些數(shù)據(jù)進行統(tǒng)一管理、統(tǒng)計分析,為提高運作效率、提供決策,提供及大方便。開發(fā)一個實用、高效的管理信息系統(tǒng),為企業(yè)帶來很大幫助。存儲過程在系統(tǒng)設(shè)計中應(yīng)用,能為提高系統(tǒng)的安全性,提高執(zhí)行效率,方便代碼管理帶來很好的效果。高效的進銷存系統(tǒng)是支撐中小企業(yè)實現(xiàn)“零庫存”、極大限度降低企業(yè)運作成本、追求利益最大化的法寶。中小企業(yè)在開發(fā)進銷存系統(tǒng)軟件時,由于開發(fā)方便、部署簡單、性能優(yōu)良,通常使用SQLSERVER作為后臺數(shù)據(jù)庫管理。開發(fā)過程中需要使用SQL語句向后臺數(shù)據(jù)庫發(fā)送命令,對數(shù)據(jù)庫返回結(jié)果進行處理。進銷存數(shù)據(jù)庫中的表結(jié)構(gòu)各異,記錄規(guī)模較大.如何編寫高效的程序以實現(xiàn)與數(shù)據(jù)庫進行交互、對數(shù)據(jù)庫進行維護等復(fù)雜操作是進銷存管理軟件開發(fā)中的一個難點,F(xiàn)就在基于.NET的開發(fā)環(huán)境中,以通用進銷存系統(tǒng)業(yè)績提成統(tǒng)計模塊開發(fā)中結(jié)合應(yīng)用視圖和存儲過程作一些探討。
1 視圖和存儲過程概述
視圖相當(dāng)于創(chuàng)建的一張?zhí)摂M表或存儲查詢,視圖訪問的數(shù)據(jù)不作為獨特的對象存儲在數(shù)據(jù)庫內(nèi)。SELECT語句結(jié)果集構(gòu)成視力的內(nèi)容,在程序開發(fā)中可以使用視圖實現(xiàn)下列功能:限定用戶查詢表中的特定行或特定列上;將多個表中的列鏈接起來,使它們看起來像一個表;聚合信息。使用視圖的優(yōu)點:保護敏感數(shù)據(jù);封裝復(fù)雜查詢;滿足不同用戶對數(shù)據(jù)的需求;提供一定程度上的獨立性。在數(shù)據(jù)庫管理系統(tǒng)中使用CREATEVIEW指令來創(chuàng)建視圖。
存儲過程是在數(shù)據(jù)庫系統(tǒng)中,一組為了完成特定功能的SQL語句集,經(jīng)編譯后存儲在數(shù)據(jù)庫中,用戶通過指定存儲過程的名字并給出參數(shù)(如果該存儲過程帶有參數(shù))來執(zhí)行它。
使用存儲過程明顯具有以下優(yōu)點:允許組件式編程。存儲過程在被創(chuàng)建以后可以在程序中被多次調(diào)用而不必重新編寫該存儲過程的SQL語句,而且數(shù)據(jù)庫管理人員可隨時對存儲過程進行修改。只要過程接口不發(fā)生變化,對應(yīng)用程序源代碼并無影響,從而極大地提高了程序的可移植性;更快的執(zhí)行速度。存儲過程是預(yù)編譯的,在首次運行一個存儲過程時查詢優(yōu)化器對其進行分析、優(yōu)化,并給出最終被存在系統(tǒng)表中的執(zhí)行計劃。而采用第一種方法則需要在每次運行時都要對發(fā)送到數(shù)據(jù)庫的所有SQL語句進行編譯和優(yōu)化;降低網(wǎng)絡(luò)負載。應(yīng)用程序調(diào)用存儲過程時,網(wǎng)絡(luò)中傳送的僅是該條調(diào)用語句。而采用第一種方法將傳送多條SQL語句,從而大大增加了網(wǎng)絡(luò)流量,在對數(shù)據(jù)庫網(wǎng)絡(luò)訪問量達到一定程度時,可能造成網(wǎng)絡(luò)堵塞;增強數(shù)據(jù)庫的安全性。系統(tǒng)管理員通過對執(zhí)行某一存儲過程的權(quán)限進行限制,能夠?qū)崿F(xiàn)對相應(yīng)的數(shù)據(jù)訪問權(quán)限的限制,避免非授權(quán)用戶對數(shù)據(jù)的訪問,保證數(shù)據(jù)的安全。在數(shù)據(jù)庫管理系統(tǒng)中使用create procedure指令來創(chuàng)建存儲過程。
2 以業(yè)績統(tǒng)計為例探討視圖和存儲過程在進銷存系統(tǒng)開發(fā)中的具體應(yīng)用
現(xiàn)在中小企業(yè)的管理中,為了提高員工的積極性,常用的激勵辦法是業(yè)績提成。組合查詢業(yè)績統(tǒng)計是進銷存系統(tǒng)最復(fù)雜的邏輯,F(xiàn)以組合條件查詢業(yè)績?yōu)槔,結(jié)合視圖和存儲過程來來實現(xiàn)。例如中小企業(yè)為每個客戶公司設(shè)定一個銷售主管和銷售助理,并對銷售主管和助理設(shè)定一個提成比例,每一個員工,既可以是這個客戶的主管,也可以是其他客戶的助理,根據(jù)不同類型的客戶,其提成比例都不一致。每完成一筆對該客戶的銷售,可以分別會對銷售主管和助理按提成比例統(tǒng)計業(yè)績,F(xiàn)將實現(xiàn)這功能所需要的數(shù)據(jù)表、創(chuàng)建視圖、存儲過程及運行效果表述如下:
2.1 數(shù)據(jù)表及關(guān)系
客戶資料(數(shù)據(jù)庫表名:tb_client)用途:存放客戶相關(guān)的數(shù)據(jù);
銷售表(數(shù)據(jù)表名:tb_bill)用途:存放銷售單的數(shù)據(jù);
銷售明細表(數(shù)據(jù)表名:tb_bill_product)用途:存放銷售單中相關(guān)的貨品明細數(shù)據(jù);
貨品信息(數(shù)據(jù)庫表名:GoodsData)用途:存放貨品信息數(shù)據(jù);
用戶表(數(shù)據(jù)庫表名:Username)用途:存放系統(tǒng)用戶的數(shù)據(jù);
2.2 創(chuàng)建視圖
用CREATEVIEW指令創(chuàng)建視圖view_tj_yeji。該視圖通過鏈接多個表顯示每個客戶每個銷售單的每個商品的情況。主要包括客戶的信息、客戶的銷售單情況、銷售單包括的商品情況、商品明細信息。
SQLSERVER數(shù)據(jù)庫端創(chuàng)建視圖代碼:
2.3 創(chuàng)建存儲過程
在視圖的基礎(chǔ)上創(chuàng)建存儲過程,用CREATEPROC EDURE指令創(chuàng)建名為P_view_hjyjgw的存儲過程,進行業(yè)績提成統(tǒng)計。該存儲過程是帶參數(shù)的,其參數(shù)是輸入的組合條件,實現(xiàn)生成以員工為基準(zhǔn)的統(tǒng)計表,按照輸入的復(fù)雜條件進行統(tǒng)計。
與數(shù)據(jù)庫連接,一些相關(guān)函數(shù)的定義代碼省略。在實際應(yīng)用中,我們還可以通過帶參數(shù)的存儲過程構(gòu)建動態(tài)SQL語句,實現(xiàn)更復(fù)雜的功能,提高程序的通用性和可擴展性。
3 結(jié)語
在進銷存系統(tǒng)開發(fā)過程中,將與數(shù)據(jù)庫相關(guān)的操作通過視圖和存儲過程等方式寫到數(shù)據(jù)庫組件中,將數(shù)據(jù)呈現(xiàn)通過數(shù)據(jù)控件調(diào)用視圖或存儲過程實現(xiàn),這樣做將大大提高系統(tǒng)的開發(fā)效率,對于程序維護也相當(dāng)方便,與數(shù)據(jù)庫相關(guān)的修改直接在后臺數(shù)據(jù)改視圖和存儲過程即可,無須改程序代碼,無須重新編譯。在進銷存系統(tǒng)軟件開發(fā)過程中綜合運用存儲過程和視圖,會給軟件設(shè)計帶來極大的方便,還可以提高軟件的安全性、提高軟件的運行效率。當(dāng)然,SQLSERVER數(shù)據(jù)庫對象除了存儲過程和視圖以外,還有觸發(fā)器和索引等等,在以后應(yīng)用程序開發(fā)過程中,綜合運用上述組件,往往會帶來事半功倍的效果。
參考文獻:
[1]鄧超群,蔣永進.銷存一體化管理信息系統(tǒng)分析與設(shè)計[J].現(xiàn)代商業(yè):177-178.
[2]蘇琦,解析存儲過程孝檔案管贛件開發(fā)中的應(yīng)用[J].電腦編程技巧與維護:53-54.
[3]周峰.SQLSERVER2005基礎(chǔ)與實踐教程[M].北京:電子工業(yè)出版社,2006,7.
[4]鄭阿奇.ASP.NET實用教程[M].北京:電子工業(yè)出版社.
【SQLSERVER視圖和存儲過程在進銷存系統(tǒng)開發(fā)中的應(yīng)用】相關(guān)文章:
淺析Comet技術(shù)在Java Web實時系統(tǒng)開發(fā)中的應(yīng)用10-07
油田化學(xué)的應(yīng)用和化學(xué)品中的應(yīng)用10-08
sqlserver語句大全10-05
淺談溝通技巧在醫(yī)院藥學(xué)服務(wù)過程中的應(yīng)用的論文10-07
計算機數(shù)據(jù)存儲應(yīng)用案例論文10-08
工作過程的計算機應(yīng)用和維護開發(fā)論文10-08
計算機應(yīng)用基礎(chǔ)教學(xué)中過程性評價的研究論文10-08