數(shù)據(jù)庫和數(shù)據(jù)倉庫的區(qū)別
數(shù)據(jù)庫是面向事務(wù)的設(shè)計(jì),數(shù)據(jù)倉庫是面向主題設(shè)計(jì)的。
數(shù)據(jù)庫一般存儲在線交易數(shù)據(jù),數(shù)據(jù)倉庫存儲的一般是歷史數(shù)據(jù)。
數(shù)據(jù)庫設(shè)計(jì)是盡量避免冗余,一般采用符合范式的規(guī)則來設(shè)計(jì),數(shù)據(jù)倉庫在設(shè)計(jì)是有意引入冗余,采用反范式的方式來設(shè)計(jì)。
數(shù)據(jù)庫是為捕獲數(shù)據(jù)而設(shè)計(jì),數(shù)據(jù)倉庫是為分析數(shù)據(jù)而設(shè)計(jì),它的兩個基本的元素是維表和事實(shí)表。(維是看問題的角度,比如時(shí)間,部門,維表放的就是這些東西的定義,事實(shí)表里放著要查詢的數(shù)據(jù),同時(shí)有維的ID)
數(shù)據(jù)倉庫,是在數(shù)據(jù)庫已經(jīng)大量存在的情況下,為了進(jìn)一步挖掘數(shù)據(jù)資源、為了決策需要而產(chǎn)生的,它決不是所謂的“大型數(shù)據(jù)庫”。那么,數(shù)據(jù)倉庫與傳統(tǒng)數(shù)據(jù)庫比較,有哪些不同呢?讓我們先看看W.H.Inmon關(guān)于數(shù)據(jù)倉庫的定義:面向主題的、集成的、與時(shí)間相關(guān)且不可修改的數(shù)據(jù)集合。
“面向主題的”:傳統(tǒng)數(shù)據(jù)庫主要是為應(yīng)用程序進(jìn)行數(shù)據(jù)處理,未必按照同一主題存儲數(shù)據(jù);數(shù)據(jù)倉庫側(cè)重于數(shù)據(jù)分析工作,是按照主題存儲的。這一點(diǎn),類似于傳統(tǒng)農(nóng)貿(mào)市場與超市的區(qū)別—市場里面,白菜、蘿卜、香菜會在一個攤位上,如果它們是一個小販賣的;而超市里,白菜、蘿卜、香菜則各自一塊。也就是說,市場里的菜(數(shù)據(jù))是按照小販(應(yīng)用程序)歸堆(存儲)的,超市里面則是按照菜的類型(同主題)歸堆的。
“與時(shí)間相關(guān)”:數(shù)據(jù)庫保存信息的時(shí)候,并不強(qiáng)調(diào)一定有時(shí)間信息。數(shù)據(jù)倉庫則不同,出于決策的需要,數(shù)據(jù)倉庫中的數(shù)據(jù)都要標(biāo)明時(shí)間屬性。決策中,時(shí)間屬性很重要。同樣都是累計(jì)購買過九車產(chǎn)品的顧客,一位是最近三個月購買九車,一位是最近一年從未買過,這對于決策者意義是不同的。
“不可修改”:數(shù)據(jù)倉庫中的數(shù)據(jù)并不是最新的,而是來源于其它數(shù)據(jù)源。數(shù)據(jù)倉庫反映的是歷史信息,并不是很多數(shù)據(jù)庫處理的那種日常事務(wù)數(shù)據(jù)(有的數(shù)據(jù)庫例如電信計(jì)費(fèi)數(shù)據(jù)庫甚至處理實(shí)時(shí)信息)。因此,數(shù)據(jù)倉庫中的數(shù)據(jù)是極少或根本不修改的;當(dāng)然,向數(shù)據(jù)倉庫添加數(shù)據(jù)是允許的。
數(shù)據(jù)倉庫的出現(xiàn),并不是要取代數(shù)據(jù)庫。目前,大部分?jǐn)?shù)據(jù)倉庫還是用關(guān)系數(shù)據(jù)庫管理系統(tǒng)來管理的。可以說,數(shù)據(jù)庫、數(shù)據(jù)倉庫相輔相成、各有千秋
補(bǔ)充一下,數(shù)據(jù)倉庫的方案建設(shè)的目的,是為前端查詢和分析作為基礎(chǔ),由于有較大的冗余,所以需要的存儲也較大。為了更好地為前端應(yīng)用服務(wù),數(shù)據(jù)倉庫必須有如下幾點(diǎn)優(yōu)點(diǎn),否則是失敗的數(shù)據(jù)倉庫方案。
1.效率足夠高。客戶要求的分析數(shù)據(jù)一般分為日、周、月、季、年等,可以看出,日為周期的數(shù)據(jù)要求的效率最高,要求24小時(shí)甚至12小時(shí)內(nèi),客戶能看到昨天的數(shù)據(jù)分析。由于有的企業(yè)每日的數(shù)據(jù)量很大,設(shè)計(jì)不好的數(shù)據(jù)倉庫經(jīng)常會出問題,延遲1-3日才能給出數(shù)據(jù),顯然不行的。
2.數(shù)據(jù)質(zhì)量。客戶要看各種信息,肯定要準(zhǔn)確的數(shù)據(jù),但由于數(shù)據(jù)倉庫流程至少分為3步,2次ETL,復(fù)雜的架構(gòu)會更多層次,那么由于數(shù)據(jù)源有臟數(shù)據(jù)或者代碼不嚴(yán)謹(jǐn),都可以導(dǎo)致數(shù)據(jù)失真,客戶看到錯誤的信息就可能導(dǎo)致分析出錯誤的決策,造成損失,而不是效益。
3.擴(kuò)展性。之所以有的大型數(shù)據(jù)倉庫系統(tǒng)架構(gòu)設(shè)計(jì)復(fù)雜,是因?yàn)榭紤]到了未來3-5年的擴(kuò)展性,這樣的話,客戶不用太快花錢去重建數(shù)據(jù)倉庫系統(tǒng),就能很穩(wěn)定運(yùn)行。主要體現(xiàn)在數(shù)據(jù)建模的合理性,數(shù)據(jù)倉庫方案中多出一些中間層,使海量數(shù)據(jù)流有足夠的緩沖,不至于數(shù)據(jù)量大很多,就運(yùn)行不起來了