複製鏈接
請複製以下鏈接發送給好友

聯機事務處理

鎖定
聯機事務處理(OLTP)是指利用計算機網絡,將分佈於不同地理位置的業務處理計算機設備或網絡與業務管理中心網絡連接,以便於在任何一個網絡節點上都可以進行統一、實時的業務處理活動或客户服務
工業部門一般將OLTP系統定義為表示一個特定企業機能在一個特定時間點的狀態的系統。該類型的系統包括從每分鐘處理1到2件事務的小型單機系統一直到每秒鐘處理超過30 000件事務的大規模羣集主機系統。OLTP系統是數據庫處理的傳統的主要部分。一個聯機事務處理數據庫典型的特點是,擁有大量的併發用户,這些用户積極地完成實時修改數據的任務。 [1] 
中文名
聯機事務處理
外文名
online transaction processing
別    名
數據庫事務處理
簡    稱
OLTP

聯機事務處理原理

一個好的OLTP平台,能夠大大縮短應用開發時間,提高系統“健壯性”,減少系統維護費用。
OLTP平台是運行在高可靠性操作系統之上的應用技術,它要求操作系統具有多任務處理能力、優良的網絡處理能力、較高的數據處理能力以及較好的開放性。因此一般採用Unix操作系統。
OLTP技術一般都和數據庫系統(小型機或大型機)或文件系統(容錯機)協同完成應用任務。OLTP平台由一組進程構成,採用Client/Server結構,各進程間綜合了網絡通信、共享內存、管道、IPC(事務指令)等通信方式。數據在各進程間有序流動,各進程各司其職共同完成數據的處理。
OLTP平台應用Client/Server技術:採用OLTP模式的應用一般可看作兩級Client/Server結構,OLTP進程作為數據庫服務器或其他類型服務的客户端,它負責直接同數據庫系統通信,同時,OLTP進程又是它下一級客户的Server。這樣的結構使直接與後台數據庫服務進程通信的客户較少,而真正的數據訪問客户則不受數據庫Licenses及網絡瓶頸的限制而遠超過直接同後台服務進程通信的客户數。這樣,減輕了後台服務的負載,使主機專注於事實數據的處理。 [2] 

聯機事務處理事務屬性

原子性
(Atomicity):定義工作的獨立單元。如果一個事務是分佈的,所有影響分離地點數據的子事務都必須象一個事務那樣被一起執行。為了保持在多個地點數據的一致性,需要使用下面就將介紹的雙階段認可過程。
一致性
(Consistency):一致性基本上是一種數據庫從一個狀態變到同等的另一個狀態的需求。事務監督器必須檢驗所有被影響的數據都是一致的。
孤立性
(Isolation):事務必須被孤立地執行直到完成,執行期間不受到其它事務的影響。
持續性
(Durability):這個性質是與事務的最終確認一起進行的。一旦一個事務被檢驗為對所有受影響的系統都是正確的,它就被認可並且不再需要捲回。

聯機事務處理特點

聯機事務處理OLTP(On-Line Transaction Processing)屬於客户服務器結構的應用範疇,它有兩個特徵:其一是聯機,即客户機與服務器必須能夠實時通信,由客户機發起請求,直到收到服務器的確認應答後,整個事物才能完成;其二是事務(或稱交易),即客户端與服務器之間通過交易的形式進行協作 [3] 
OLTP的特點在於事務量大,但事務內容比較簡單且重複率高。大量的數據操作主要涉及一些增加、刪除和修改操作,但一般僅僅涉及一張或幾張表的少數記錄。因此OLTP適合於處理高度結構化的信息。與其相適應,在數據組織方面OLTP以應用為核心,是應用驅動的,數據模型採用E—R模型。 [4] 

聯機事務處理設計準則

為了實現優化系統性能的目的,在設計和開發0LTP系統時,應該儘量遵守以下幾條基本準則:
(1)OLTP與決策支持工作量。如果一個企業經常既需要承擔它的聯機業務需求,又需要承擔某些決策支持或數據提煉需求,而且每一項工作都會有不同的要求,經常彼此發生衝突,那麼為了使每項工作的性能得到最大的發揮,最好是將決策支持數據轉移到一個獨立的數據庫中。決策支持數據庫物理上與OLTP數據庫處於同一個系統中,只要系統有足夠的輸入/輸出容量用於維持這兩項工作。當然分離兩個數據庫也會帶來一些問題,系統需要採取措施保持兩個數據庫的同步。
(2)數據放置與文件組。一個OLTP系統最關心的問題莫過於維持良好的輸入/輸出性能。因為經常會有大量的用户以隨機的方式訪問和修改OLTP系統的數據,所以保持輸入/輸出的均衡很關鍵。為了消除潛在的輸入/輸出瓶頸,系統應該將數據分佈到儘可能多的物理磁盤上。在sQL server中。最簡單的分佈數據的方法是使用文件組。將數據存放在多個文件和文件組中,允許跨越多個磁盤、多個磁盤控制器或RAID系統創建一個數據庫,這樣的做法可以提高數據庫的性能。
(3)調整OLTP事務。一條好的適用於0LTP系統的原則是爭取使事務儘可能地短,這會使查詢獲取鎖的持續時間減少到最小,同時提高了整個數據的同步性和性能,而且在事務中避免自由形態的用户輸入字段,因為假如事務採用了一種無法預料的輸入形式,即使輸入是合法的,但預測查詢將要訪問的數據的範圍和數量也會是很困難的。
(4)控制數據內容。幾個有關數據庫數據的策略能夠提高0LTP系統的性能。一般而言,OLTP系統不需要或很少需要它們的聯機錶的歷史數據或總計數據。很少引用的數據應該被歸檔到單獨的數據庫中,或者從頻繁被更新的表中移出,轉而移人僅包含歷史數據的表中。此策略使表和索引儘可能的短小並且會提高事務的性能。
(5)數據備份。OLTP系統的本質是一種連續操作,這意味着該系統必須在一週7天、一天24小時中都可用。0LTP系統可以停機,但必須控制在一個絕對最小值的範圍內。所以系統仍需在其利用率最低時進行備份,這樣可將備份過程對終端用户的影響減到最小。
(6)索引。對於OLTP系統,索引不是建得越多越好。實際上,應該避免為表創建過多的索引。因為每次在增加一行或修改一個索引字段時,創建的每一條索引都必須被更新。如果定義了太多不必要的索引,那麼當系統更新大量的索引數據時,它會出現巨大變化。 [1] 
參考資料
  • 1.    韓培友,董桂雲,柳虹編著.數據庫技術:西北工業大學出版社,2008.12
  • 2.    王嶽斌 嚴太山編著.全國計算機等級考試(四級)全真訓練:計算機系統組成及工作原理:清華大學出版社,2003年07月
  • 3.    阮俊傑編.軟件開發方法與管理教程:海洋出版社,2003年07月
  • 4.    王亞平主編.數據庫系統工程師教程:清華大學出版社,2004年07月