初識數據倉庫(Data Warehousing)-"掀起你的蓋頭來"
2024-07-21 02:06:39
供稿:網友
初識數據倉庫(data warehousing)-“掀起你的蓋頭來”我在這里就說說我初學的一些認識和看法,希望這些能夠作為一些簡單的介紹給那些初學的朋友們,更希望起到拋磚引玉的效果。
說到數據倉庫,我們了解一下他產生的背景。自從dbaseⅲ(dbase是dos年代發展過來得數據庫管理程序,先歸屬于borland旗下)的興起,數據庫的應用進入了個人計算機,使得中小企業也紛紛進入商業性的數據庫應用階段。這時的數據庫應用主要是進行數據的記錄,我們稱這類為oltp(線上事務處理)數據庫系統。他主要是針對事務處理而設計的,所以可以方便的進行相應的事務處理,例如:支持大量用戶進行新建或者修改數據的操作。
但當前由于數據處理的多樣化要求越來越明顯,管理人員需要對數據進行決策性的分析,需要經常訪問大量的歷史數據,雖然在傳統的數據庫結構下有經驗且熟練掌握查詢語法的管理員可以通過復雜的語句得以實現,但是就其性能和安全來說,就顯得不太實際了。并且,現實情況中,企業內的數據信息大多分布于各個不同的系統之中,所以如果進行綜合性的分析處理,就可能需要從不同類型的數據源獲得信息,這就給實際應用帶來了困難。
為了解決如上的問題,“數據倉庫”應運而生。根據數據倉庫之父bill inmon的話就是:數據倉庫是將企業的事物性數據經過提煉、加工和集成為對企業有用的信息,是面向主題的、穩定的、隨時間變化的,主要用于決策支持的數據庫系統。
簡單的講就是:數據倉庫的數據是只讀的,按照給定間隔時間取自事務處理系統,并依據分析查詢的需要進行重新的構造。
我們就數據的角度來看,他具有如下特點:
1.將分散的異質性數據整合到單一的數據源中。
2.使用適合分析查詢的結構來存放數據。
3.內含數據是經過事務性轉換后的新數據,方便決策人員進行分析。
4.數據具有穩定性。通常是每隔一段時間輸入較新的數據,不像常規的作業操作那么時常改動。
5.過濾出與分析相關的數據進行保存。
6.數據倉庫內的數據具有歷史性,往往是多年來得數據記錄。
7.其中的數據都是過去的歷史性記錄,所以一旦錄入就不需要更改,只需定期錄入新的數據即可。
數據倉庫從名字上講就是一個數據大量集合的“倉庫”,由于各個應用部門的規模和實際需要不同,數據倉庫可以分為:δ數據倉庫(數據倉庫應用的標準型,是以整個企業來構架的)
δ數據超市(規模相對于上面的較小,適合于企業中的部門,設計時應從數據倉庫的組建的角度來考慮)
δ多層次數據倉庫(是數據倉庫和數據超市的綜合,下層的數據超市由上層的數據倉庫來獲得信息。這樣保持了數據的一致性,并減小了數據倉庫的負擔)
δ聯合式數據倉庫(適用于有意日后把數據超市整合為數據倉庫的方案)
關于結構,我們大家都知道關系數據庫的模型是”e-r modal”,而數據倉庫則使用的是“維度模型”(dimensions model),而在這種維度模型中,數據倉庫結構最常用的則是“星狀”結構及其所擴展的“雪花型“結構。
(維度是組織數據倉庫數據的分類信息,例如時間、地址、負責人等。)
結構圖樣分別如下:
星狀結構是一種關系型數據庫結構,在該模式的中間是事實表,周圍是維度表,數據在事實表中維護,維度數據在維度表中維護。每一個維度表通過一個關鍵字直接與事實表關聯。
這種星型的結構是十分適合數據倉庫數據庫的設計的。原因如下:
1.這個設計在數據倉庫增長或應用改變時,便于快速修改和添加,因而具有足夠的靈活性。
2.對于開發者和最終用戶來說都易于理解。
3.模仿了最終用戶考慮和使用他們的業務數據的典型方法。
4.容易實現為物理數據庫,且很多dbms可以識別這種結構并對其進行優化,所以這個設計結構能產生高效的查詢。
看圖可知,這種結構是星狀結構的一種擴充,只是添加了一下輔助的細節。維度表存儲了正規化的數據,這種結構通過減少磁盤讀的數量而提高查詢性能。維度表分解為與事實表直接關聯的主維度表和與主維度表相關聯的次維度表。
上面簡單的介紹了數據倉庫的一些基本常識,對于數據倉庫的設計和管理,我認為是實踐性很強的工作,不僅需要充足的理論知識,更需要在應用中不斷的探索和總結。作為剛剛接觸數據倉庫的初學者來說,了解了這些,擁有的是更多的學習激情。在這里談了談這些,希望高手朋友不要見笑。如果你有更好的理解和體會,希望大家能夠一起交流一下。我相信,良好交流是我們成長的“優質鈣片“。:)