許多應用程序屬於數據庫應用程序的兩種主要類型:
聯機事務處理 (OLTP):聯機事務處理 (OLTP)為在機構的全部業務事務發生時進行記錄而設計的數據處理系統。OLTP 系統的特征是許多並發用戶動態地添加和修改數據。
決策支持 :決策支持為支持發現業務趨勢所需的復雜分析而設計的系統。從這些系統檢索的信息使管理者得以根據對業務趨勢的及時准確的分析作出經營決策。
這兩種應用程序類型的特征對數據庫的設計考慮事項有很大的影響。
聯機事務處理
聯機事務處理數據庫應用程序最適合於管理變化的數據,通常,這種應用程序有大量的用戶同時執行更改實時數據的事務。盡管用戶對數據的單個請求一般只引用少量記錄,但是,這些請求有許多是同時發生的。這些類型的數據庫的常見例子是航空訂票系統和銀行事務系統。在這種類型的應用程序中,主要關心的是並發性和原子性。
數據庫系統中的並發性控制確保兩個用戶不能更改同一數據,或者一個用戶不能在另一個用戶對數據操作完成之前對其進行更改。例如,如果您正在與一位航空訂票代理聯系預訂某航班上最後一個可用座位,該代理開始用您的姓名進行座位的預訂處理,這時,其他代理應該不能再告訴其他乘客還可以預訂該座位。
原子性確保事務中包括的所有步驟都作為一個組成功地完成。如果一個步驟失敗,則不應完成其它步驟。例如,某個銀行事務可能包括兩個步驟:從您的支票帳戶中取出資金,然後將其放入您的存款帳戶中。如果從您的支票帳戶中成功地移走了資金,就需要確保將該資金放入您的存款帳戶中或重新放回到您的支票帳戶中。
聯機事務處理設計注意事項
事務處理系統數據庫應設計為支持:
很好的數據放置。
對於OLTP系統,輸入/輸出瓶頸是一個尤為關心的問題,原因在於修改整個數據庫中數據的用戶很多。確定數據的可能訪問模式,並將經常訪問的數據放在一起。在此過程中,可輔以文件組和 RAID(獨立磁盤冗余陣列)系統。
縮短事務以將長期鎖減至最少,提高並發性。
在事務期間,避免用戶交互。無論何時,只要有可能,就通過執行單個存儲過程來處理整個事務。在事務內對表的引用順序可能會影響並發性。將對經常訪問的表的引用置於事務的末尾,以便將控制鎖的持續時間減至最短。
聯機備份。
OLTP 系統通常的特征是連續操作(一天 24 小時,一周 7 天),為達到此目的,停工時間要保持絕對最短。盡管 Microsoft SQL Server 2000 可以在數據庫正在使用時對其進行備份,但是應將備份過程安排在活動不頻繁時進行,以使對用戶的影響減至最小。
數據庫的高度規范化。
盡可能減少冗余信息以提高更新的速度,從而提高並發性。減少數據還可以提高備份的速度,因為只需要備份更少的數據。
很少或沒有歷史或聚合數據。
可以將很少引用的數據歸檔到單獨的數據庫中,或者從經常更新的表中移出,並置於僅含歷史數據的表中。這將保持表盡可能地小,從而縮短備份時間,改善查詢性能。