存儲過程簡單化解決事務(wù)論文

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

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

存儲過程簡單化解決事務(wù)論文

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

論文關(guān)鍵詞:金融信息化事務(wù)存儲過程

一、引言

金融信息系統(tǒng)的建設(shè)要求極高,既要高度的安全性,又要盡可能提高響應(yīng)的速度,涉及的操作多且復(fù)雜。從系統(tǒng)的易于開發(fā)和易于維護的觀點出發(fā),選擇windows平臺,使用.NET和SQLServer數(shù)據(jù)庫是一個不錯的選擇。但是如何以高效的程序?qū)崿F(xiàn)其中的復(fù)雜操作是系統(tǒng)開發(fā)中的一個較難的內(nèi)容,筆者就此難點進行一些探討。

二、方案思考

在金融業(yè)務(wù)中存在大量復(fù)雜的操作,典型的如ATM機的取款、銀行的轉(zhuǎn)賬操作等。

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

1.判斷轉(zhuǎn)賬的源賬號中是否有足夠的轉(zhuǎn)出金額。

2.如有足夠的金額,從源賬號中減去轉(zhuǎn)賬的金額,往目標(biāo)賬號中增加轉(zhuǎn)賬的金額。

3.向數(shù)據(jù)表中寫人一條轉(zhuǎn)賬記錄。

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

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

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

2.更快的執(zhí)行速度

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

3.減少網(wǎng)絡(luò)流量

一個需要數(shù)百行Transact-SQL語句的操作有時只需要執(zhí)行一條調(diào)用存儲過程的語句就可以了。在網(wǎng)絡(luò)上傳送一個調(diào)用而不是幾百行代碼,可以減少網(wǎng)絡(luò)流量,提高響應(yīng)速度。

4.增強數(shù)據(jù)庫的安全性

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

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

三、核心代碼

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

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

調(diào)用該存儲的主要代碼:

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

四、結(jié)束語

設(shè)計具有高可靠性、高響應(yīng)速度的軟件系統(tǒng)是一件很難的事情。從數(shù)據(jù)庫設(shè)計、系統(tǒng)的架構(gòu)設(shè)計到存儲過程設(shè)計和代碼的編寫,每個環(huán)節(jié)都惜惜相關(guān)。在設(shè)計過程中充分地考慮存儲過程的應(yīng)用,會給軟了設(shè)計帶來極大的便利,從而大大提高設(shè)計效率。