數據倉庫與事務型數據庫

咱們爲某個程序建立的特定的數據庫通常稱爲事務型數據庫(Transaction Database), 它和Data Warehouse(DW)仍是有很大差異的.數據庫

1. 事務數據庫幫助人們執行活動,而數據倉庫幫助人們作計劃。例如,事務數據庫可能顯示航班的哪些座位是空的,這樣旅客能夠進行預約。而數據倉庫用於展現空座率狀況的歷史信息,以讓航班管理員決定在將來是否要調度航班。併發

2. 事務數據庫關注細節,而數據倉庫關注高層次的彙集。例如,一個大人只想購買最流行的兒童圖書而不關心它的庫存狀況。但負責圖書在書架上排列的管理員也關心圖書的銷售狀況和變化趨勢。這之間的不一樣的隱含區別在於數據倉庫中的數據一般都是數值類型,它可用於彙總。性能

3. 事務數據庫一般爲特定的程序而設計,而數據倉庫用於整合不一樣來源的數據。例如訂單處理程序——數據庫會包含每筆訂單的折扣信息,但不會包含產品的成本超支狀況。相應地產品管理程序會包含詳細的成本信息但不會包含銷售折扣。但能夠把這兩樣信息組合到一個數據倉庫中,你就能夠計算產品的實際銷售利潤。優化

4. 事務數據庫關注如今,而數據倉庫關注於歷史。例如一個銀行賬戶,每一次事務——即每次的存款與取款都會改變賬戶餘額的值,但事務系統不多會維護歷史餘額。但在數據倉庫中,你能夠存儲不少年的事務數據(可能被彙總的),還會存儲餘額快照。這樣容許你把當前值與歷史進行比較。在進行決策時,能夠查看歷史趨勢。spa

5. 事務數據庫是可變的,這很容易理解。但數據倉庫是穩定的;它的信息會以固定的間隔進行更新(多是每個月,每星期或每小時),並且理想狀況下,更新只會爲新的時間段添加新值,而不會改變先前存儲的值。設計

6. 事務數據庫必須提供對詳細信息的快速獲取和更新,而數據倉庫必須對高彙總信息的快速獲取或更新。因此事務數據庫的設計優化與數據倉庫的設計優化可能不一樣。並且,以管理目的查詢一個事務數據庫生成報表能夠會致使該事務程序運行性能降低對象

 

數據庫事務的四大特性(簡稱ACID)是: 事務

(1) 原子性(Atomicity)

事務的原子性指的是,事務中包含的程序做爲數據庫的邏輯工做單位,它所作的對數據修改操做要麼所有執行,要麼徹底不執行。這種特性稱爲原子性。ci

例如銀行取款事務分爲2個步驟(1)存摺減款(2)提取現金。不可能存摺減款,卻沒有提取現金。2個步驟必須同時完成或者都不完成。產品

(2)一致性(Consistency)    

事務的一致性指的是在一個事務執行以前和執行以後數據庫都必須處於一致性狀態。這種特性稱爲事務的一致性。假如數據庫的狀態知足全部的完整性約束,就說該數據庫是一致的。

例如完整性約束a+b=10,一個事務改變了a,那麼b也應隨之改變。

(3)分離性(亦稱獨立性Isolation)

分離性指併發的事務是相互隔離的。即一個事務內部的操做及正在操做的數據必須封鎖起來,不被其它企圖進行修改的事務看到。假如併發交叉執行的事務沒有任何控制,操縱相同的共享對象的多個併發事務的執行可能引發異常狀況。

(4)持久性(Durability)

持久性意味着當系統或介質發生故障時,確保已提交事務的更新不能丟失。即一旦一個事務提交,DBMS保證它對數據庫中數據的改變應該是永久性的,即對已提交事務的更新能恢復。持久性經過數據庫備份和恢復來保證。

相關文章
相關標籤/搜索