聯(lián)機事務處理
1.什么是聯(lián)機事務處理
聯(lián)機事務處理是指針對傳統(tǒng)的關系型數(shù)據(jù)庫的操作,主要是基本的、日常事務處理,例如,銀行交易。
在聯(lián)機事務處理系統(tǒng)中,事務是被立即執(zhí)行的。聯(lián)機事務處理系統(tǒng)是一種以事務元作為數(shù)據(jù)處理的單位。它能對數(shù)據(jù)進行即時更新或其他操作,使系統(tǒng)內的數(shù)據(jù)總是保持最新狀態(tài)。在數(shù)據(jù)處理過程中,用戶可將一組保持數(shù)據(jù)一致性的操作序列指定為一個事務元。
2.聯(lián)機事務處理的性質
在執(zhí)行事務元時,系統(tǒng)必須保證它具有下列性質:
1、原子性,即事務元中的操作要么全部執(zhí)行,要么全部不執(zhí)行,不允許只執(zhí)行其中的部分操作。
2、一致性,即事務元的執(zhí)行必須保證數(shù)據(jù)庫由一個一致的狀態(tài)過渡到另一個一致的狀態(tài)。
3、持久性,即事務元對數(shù)據(jù)的任何更新必須反映在如磁盤這樣的非易失性存儲器中,即使在系統(tǒng)發(fā)生故障或掉電時也能如此。
4、孤立性,即當多個事務元并發(fā)執(zhí)行時,其效果與這些事務元按某一順序的串行執(zhí)行時的效果一樣。
聯(lián)機事務處理通過終端、個人計算機或其他設備(如自動提款機等)輸入事務元,經(jīng)系統(tǒng)處理后返回結果。聯(lián)機事務處理一般具有數(shù)百乃至上千個用戶,它以交互方式為用戶提供多種服務。例如,民航訂票系統(tǒng)、銀行ATM機系統(tǒng)都是聯(lián)機事務處理系統(tǒng)的實例。
3.聯(lián)機事務處理的數(shù)據(jù)庫特征
聯(lián)機事務處理數(shù)據(jù)庫通常具有以下特征。
(1)支持大量并發(fā)用戶定期添加和修改數(shù)據(jù)。例如,銀行ATM機系統(tǒng)每天接受成千上萬的顧客同時辦理業(yè)務。
(2)反映隨時變化的單位狀態(tài),但不保存其歷史記錄。
(3)包含大量數(shù)據(jù),其中包括用于驗證事務的大量數(shù)據(jù)。
(4)具有復雜的結構。
(5)可以進行優(yōu)化以對事務活動做出響應。
(6)提供用于支持單位日常運營的技術基礎結構。
4.聯(lián)機事務處理設計注意事項
事務處理系統(tǒng)數(shù)據(jù)庫應設計為支持:
很好的數(shù)據(jù)放置
對于 OLTP 系統(tǒng),輸入/輸出瓶頸是一個尤為關心的問題,原因在于修改整個數(shù)據(jù)庫中數(shù)據(jù)的用戶很多。確定數(shù)據(jù)的可能訪問模式,并將經(jīng)常訪問的數(shù)據(jù)放在一起。在此過程中,可輔以文件組和 RAID(獨立磁盤冗余陣列)系統(tǒng)。
縮短事務以將長期鎖減至最少,提高并發(fā)性
在事務期間,避免用戶交互。無論何時,只要有可能,就通過執(zhí)行單個存儲過程來處理整個事務。在事務內對表的引用順序可能會影響并發(fā)性。將對經(jīng)常訪問的表的引用置于事務的末尾,以便將控制鎖的持續(xù)時間減至最短。
聯(lián)機備份
OLTP 系統(tǒng)通常的特征是連續(xù)操作(一天24小時,一周7天),為達到此目的,停工時間要保持絕對最短。盡管 Microsoft SQL Server 2000可以在數(shù)據(jù)庫正在使用時對其進行備份,但是應將備份過程安排在活動不頻繁時進行,以使對用戶的影響減至最小。
數(shù)據(jù)庫的高度規(guī)范化
盡可能減少冗余信息以提高更新的速度,從而提高并發(fā)性。減少數(shù)據(jù)還可以提高備份的速度,因為只需要備份更少的數(shù)據(jù)。
很少或沒有歷史或聚合數(shù)據(jù)
可以將很少引用的數(shù)據(jù)歸檔到單獨的數(shù)據(jù)庫中,或者從經(jīng)常更新的表中移出,并置于僅含歷史數(shù)據(jù)的表中。這將保持表盡可能地小,從而縮短備份時間,改善查詢性能。
小心使用索引
每次添加或修改行時,必須更新索引。若要避免對經(jīng)常更新的表進行過多的索引,索引范圍應保持較窄。請用索引優(yōu)化向導設計索引。
OLTP 系統(tǒng)需要最佳的硬件配置以處理較大并發(fā)用戶數(shù)目和快速響應時間。