【摘要】本文研究在客戶/服務器模式數據庫應用程序開發中,通過使用存儲在數據庫服務器中的存儲過程,將復雜操作封裝起來。需要數據庫提供相應服務時,只需要調用該存儲過程即可。存儲過程可以有效減少網絡流量,提高數據安全,使功能簡化、流程優化,提高工作效率和質量。
【關鍵詞】客戶/服務器模式存儲過程數據庫應用程序開發
一、引言
在開發客戶/服務器模式數據庫應用程序過程中,SQL語句是應用程序與數據庫之間使用的主要編程接口。應用程序與數據庫交互執行操作有兩種方式:一種是在應用程序中存儲一系列操作命令,應用程序在執行的過程中向數據庫發送每一條命令;另一種操作方式是在數據庫中定義存儲過程,在存儲過程中記錄了一系列的操作命令,每次應用程序只需要調用該過程就可以完成所有操作。
二、在數據庫應用程序開發中使用存儲過程的優勢
在客戶/服務器模式數據庫應用程序中開發者盡量不使用存儲在客戶計算機本地的SQL程序,而是將常用的或很復雜的工作預先用SQL語句寫好,并用一個指定的名稱存儲起來,那么以后要求數據庫提供與已定義好的存儲過程的功能相同的服務時,只要調用這個存儲過程就可以了。使用存儲過程完成操作有很大優勢。
(1)符合模塊化程序設計思想。存儲過程是根據實際功能需要而創建的一個程序模塊,它存儲在數據庫服務器中,所有用戶要完成存儲過程的功能,只要在程序中調用該存儲過程即可。并且存儲過程可以重復使用,這也減少數據庫開發人員的工作量。當對數據庫進行復雜操作時,將操作用存儲過程封裝起來,與數據庫提供的事務處理結合一起使用。
(2)提高數據庫應用程序的執行效率。存儲過程只在創建時就進行編譯和優化,以后每次執行存儲過程都不需再重新編譯,所以調用存儲過程可提高數據庫執行速度。這能大大改善系統的性能。
(3)減少網絡流量。一個復雜的操作可能需要數百行T-SQL代碼的操作,應用程序向數據庫服務器發送每一條指令,并對返回的數據進行處理。如果將其創建成存儲過程,那么使用一條調用存儲過程的語句就可完成所有操作,這樣就可避免在網絡上發送數百行的代碼,從而減少了網絡負荷。
(4)存儲過程安全性高。數據庫管理員可以設定指定用戶具有對指定存儲過程的使用權限,而且管理員可以不授予用戶訪問存儲過程中涉及的表的權限,而只授予執行存儲過程的權限。這樣,可以保證用戶通過存儲過程操縱數據庫中的數據,又可以保證用戶不能直接訪問涉及的表。用戶通過存儲過程來訪問表,所能進行的操作是有限制的,從而有效保證表中數據的安全性。
三、在客戶/服務器模式數據庫應用程序開發中用戶存儲過程的創建及執行
存儲過程類似于編程語言中的過程和函數,用戶存儲過程可以使用T-SQL語句CREATE PROCEDURE來創建,使用T-SQL語句EXECUTE(或EXEC)來執行存儲過程。
在學生圖書借閱管理數據庫系統中,圖書管理最重要的兩項事務是:借書過程和還書過程。為了提高工作效率,創建如下借書存儲過程和還書存儲過程:
在學生圖書借閱管理數據庫系統中,將兩個復雜的操作借書過程和還書過程用存儲過程實現。在應用程序中,只需要量輸入借書相關信息和還書相關信息,調用存儲過程,利用參數傳遞即可完成相應的事務操作。
四、結論
存儲過程應用較廣,它存儲在數據庫中,能提高客戶/服務器模式數據庫應用系統的性能,能大大增強系統的執行效率和數據的安全性,減少網絡流量,減輕數據庫服務器的負擔。可見,編寫用戶存儲過程將是客戶/服務器模式下數據庫應用程序開發中T-SQL編程的一個最主要應用。