存儲過程簡單化解決事務論文

時間:2022-06-28 11:30:00

導語:存儲過程簡單化解決事務論文一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

存儲過程簡單化解決事務論文

論文摘要:金融信息系統大多屬于服務性行業,這類行業對系統的響應速度和安全性要求極高。因此,研究提高系統響應速度和安全性的技術,對提高軟件開發水平有重要的意義。本文針對事務存儲過程在金融系統中的應用作了闡述,并用實例說明了利用存儲過程簡單化解決復雜事務問題的思路。

論文關鍵詞:金融信息化事務存儲過程

一、引言

金融信息系統的建設要求極高,既要高度的安全性,又要盡可能提高響應的速度,涉及的操作多且復雜。從系統的易于開發和易于維護的觀點出發,選擇windows平臺,使用.NET和SQLServer數據庫是一個不錯的選擇。但是如何以高效的程序實現其中的復雜操作是系統開發中的一個較難的內容,筆者就此難點進行一些探討。

二、方案思考

在金融業務中存在大量復雜的操作,典型的如ATM機的取款、銀行的轉賬操作等。

(一)以轉賬操作來說,每一次操作都需要完成如下的步驟:

1.判斷轉賬的源賬號中是否有足夠的轉出金額。

2.如有足夠的金額,從源賬號中減去轉賬的金額,往目標賬號中增加轉賬的金額。

3.向數據表中寫人一條轉賬記錄。

以上步驟具有典型的事務特征。如果任何一步操作不能夠完成,將造成金融機構或用戶的巨大損失。那么一個問題就提出來了,在哪個地方實現該事務操作,是在程序代碼中,還是在數據庫的存儲過程中?

(二)兩種方法相比較之下,使用存儲過程明顯具有以下優點:

1.允許模塊化編程、更便于分工創建好存儲過程后,將其存放在數據庫中,可以在程序中多次調用。并且,對數據庫的任何更新或更改都隱藏在存儲過程之中,可以由精通數據庫編程的開發人員獨立完成。

2.更快的執行速度

如果一個程序需要大量Transact-SQL代碼,或需要被反復執行,那么使用存儲過程的速度會快很多。存儲過程在創建時被解析和優化,并且存儲過程在第一次執行之后,便駐留在內存中供繼續使用。而從客戶端傳來的重復語句在每次執行時都需要做編譯和優化。

3.減少網絡流量

一個需要數百行Transact-SQL語句的操作有時只需要執行一條調用存儲過程的語句就可以了。在網絡上傳送一個調用而不是幾百行代碼,可以減少網絡流量,提高響應速度。

4.增強數據庫的安全性

一個用戶可能沒有執行存儲過程中語句的權限,但是可以被賦予執行存儲過程的權限,這就增強了數據庫的安全性。另外,可以通過存儲過程來隱藏用戶可用的數據和數據操作中涉及的商業規則,提高了數據安全級別。

下面我們就以關鍵的存儲過程為例來進行探討。

三、核心代碼

我們以轉賬操作為例,先來看操作所要涉及的表格和表格的主要字段。

存儲過程由數據庫開發人員完成,可以在存儲過程的參數命名時采用和數據庫表中字段命名完全不同的命名方式。從程序員開始對最底層的字段名等信息進行保密,降低數據庫被SQL注人攻擊的風險。

調用該存儲的主要代碼:

通過result獲得了存儲過程返回的結果,這一方法提高了程序的可測性。因為只有經過嚴格的測試,軟件系統才會具有較高的可靠性和穩定性。為了提高可測性,在代碼書寫時就必須要考慮代碼的可測性,本文不做詳解。

四、結束語

設計具有高可靠性、高響應速度的軟件系統是一件很難的事情。從數據庫設計、系統的架構設計到存儲過程設計和代碼的編寫,每個環節都惜惜相關。在設計過程中充分地考慮存儲過程的應用,會給軟了設計帶來極大的便利,從而大大提高設計效率。