摘要:文章通過(guò)對(duì)數(shù)據(jù)庫(kù)和數(shù)據(jù)倉(cāng)庫(kù)的定義及特點(diǎn)進(jìn)行描述和歸納,并從數(shù)據(jù)和系統(tǒng)開發(fā)與設(shè)計(jì)兩大方面對(duì)兩者進(jìn)行對(duì)比,達(dá)到清楚認(rèn)識(shí)數(shù)據(jù)庫(kù)和數(shù)據(jù)倉(cāng)庫(kù)的目的。
關(guān)鍵詞:數(shù)據(jù)庫(kù);數(shù)據(jù)倉(cāng)庫(kù);事務(wù)處理;決策分析
一、數(shù)據(jù)庫(kù)定義及特點(diǎn)
數(shù)據(jù)庫(kù)是長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi)有組織的大量的共享數(shù)據(jù)的集合。
數(shù)據(jù)庫(kù)中的數(shù)據(jù)是按照一定的數(shù)據(jù)模型進(jìn)行組織、描述和儲(chǔ)存的,具有較小的冗余度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并且能為各種用戶共享。
數(shù)據(jù)庫(kù)已成為現(xiàn)代信息系統(tǒng)不可缺少的重要組成部分,廣泛應(yīng)用于工業(yè)、農(nóng)業(yè)、商業(yè)、服務(wù)業(yè)、科學(xué)技術(shù)和政府等部門,已經(jīng)存儲(chǔ)了大量的數(shù)據(jù)。
二、數(shù)據(jù)倉(cāng)庫(kù)定義及特點(diǎn)
數(shù)據(jù)倉(cāng)庫(kù)的定義目前還沒有統(tǒng)一,有的將其定義為有關(guān)公司數(shù)據(jù)的數(shù)據(jù)存儲(chǔ):有的定義為與操作系統(tǒng)相分離的、帶有時(shí)間屬性的、不可更新的數(shù)據(jù)集合;其他的將數(shù)據(jù)倉(cāng)庫(kù)定義為一種體系結(jié)構(gòu)、一種數(shù)據(jù)倉(cāng)儲(chǔ),是獨(dú)立存在的并且不影響其他已經(jīng)運(yùn)行的業(yè)務(wù)系統(tǒng)。
公認(rèn)的數(shù)據(jù)倉(cāng)庫(kù)概念基本上采用了W.H.Inmon的定義:數(shù)據(jù)倉(cāng)庫(kù)是面向主題的、集成的、不可更新的、隨時(shí)間不斷變化的數(shù)據(jù)集合,用以支持經(jīng)營(yíng)管理中的決策制定過(guò)程。
綜合對(duì)數(shù)據(jù)倉(cāng)庫(kù)的各種理解,我認(rèn)為,數(shù)據(jù)倉(cāng)庫(kù)是一種體系結(jié)構(gòu)、一種環(huán)境。將來(lái)自各種數(shù)據(jù)源的數(shù)據(jù)進(jìn)行統(tǒng)一與綜合,按照主題進(jìn)行組織,并且包含大量的歷史數(shù)據(jù),為管理決策活動(dòng)提供支持。
數(shù)據(jù)倉(cāng)庫(kù)的特點(diǎn)可歸納如下:
1 面向主題。主題是一個(gè)抽象的概念,每一個(gè)主題都是決策者所關(guān)心的問題。主題是一個(gè)數(shù)據(jù)集合,對(duì)分析對(duì)象進(jìn)行了比較完整的、一致的數(shù)據(jù)描述。每個(gè)主題在數(shù)據(jù)倉(cāng)庫(kù)中都是由一組關(guān)系表來(lái)實(shí)現(xiàn)的(目前主題的實(shí)現(xiàn)依然是基于關(guān)系數(shù)據(jù)庫(kù)的),一個(gè)主題可以劃分成多個(gè)表,因此主題只是一個(gè)邏輯上的概念,同一主題的數(shù)據(jù)不必都存儲(chǔ)在同一介質(zhì)上。
面向主題是指數(shù)據(jù)倉(cāng)庫(kù)中的所有的數(shù)據(jù)都是按照主題進(jìn)行組織的,數(shù)據(jù)倉(cāng)庫(kù)的創(chuàng)建、使用都是圍繞著主題實(shí)現(xiàn)的。象顧客、產(chǎn)品、供應(yīng)商等都可作為主題。
2 數(shù)據(jù)集成。數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)具有一致、統(tǒng)一的數(shù)據(jù)結(jié)構(gòu),但是這些數(shù)據(jù)的數(shù)據(jù)源是異構(gòu)的、分散的,存在許多矛盾、不一致和重復(fù)的地方。因此。數(shù)據(jù)在進(jìn)入數(shù)據(jù)倉(cāng)庫(kù)之前,必須進(jìn)行統(tǒng)一與綜合,統(tǒng)一源數(shù)據(jù)中的字段的同名異義、異名同義、數(shù)據(jù)類型不一致、單位不一致、字長(zhǎng)不一致等所有矛盾之處。
3 相對(duì)穩(wěn)定。即是說(shuō)數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)是非易失的、不可更新的。數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)是大量的不同時(shí)間點(diǎn)的歷史數(shù)據(jù)的集合,為決策分析所用,一般情況下是不進(jìn)行修改操作的,只定期添加數(shù)據(jù)。
4 反映歷史變化。數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)從裝入數(shù)據(jù)倉(cāng)庫(kù)到最終被刪除的整個(gè)生存期內(nèi)是不斷變化的。一方面,數(shù)據(jù)倉(cāng)庫(kù)要隨著時(shí)間的變化不斷增加新的數(shù)據(jù)內(nèi)容。也就是說(shuō),當(dāng)源數(shù)據(jù)發(fā)生變化時(shí),數(shù)據(jù)倉(cāng)庫(kù)要將這種變化的數(shù)據(jù)以快照的形式增加到數(shù)據(jù)倉(cāng)庫(kù)中。并不對(duì)原數(shù)據(jù)庫(kù)快照進(jìn)行修改。另一方面,數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)是有存儲(chǔ)時(shí)限的,一旦超過(guò)這個(gè)實(shí)現(xiàn),這些數(shù)據(jù)就要被刪除。第三方面,數(shù)據(jù)倉(cāng)庫(kù)中有大量的綜合數(shù)據(jù),這些數(shù)據(jù)要隨著時(shí)間的變化不斷進(jìn)行重新綜合。
5 支持決策。數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)量大。為決策分析所用。
三、數(shù)據(jù)倉(cāng)庫(kù)與數(shù)據(jù)庫(kù)的不同之處
雖然數(shù)據(jù)倉(cāng)庫(kù)是在數(shù)據(jù)庫(kù)的基礎(chǔ)上發(fā)展起來(lái)的,但是。它和數(shù)據(jù)庫(kù)有許多不同的地方。
1 數(shù)據(jù)方面。(1)數(shù)據(jù)來(lái)源。數(shù)據(jù)庫(kù)的數(shù)據(jù)主要來(lái)自于企業(yè)外部:數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)主要來(lái)自于組織目前正在運(yùn)作的業(yè)務(wù)系統(tǒng),還來(lái)源于組織在長(zhǎng)期的信息處理過(guò)程中積累下來(lái)的歷史數(shù)據(jù)、組織內(nèi)部的辦公系統(tǒng)的數(shù)據(jù)、因特網(wǎng)上的數(shù)據(jù)、外部數(shù)據(jù)及來(lái)自于數(shù)據(jù)源的元數(shù)據(jù)等。(2)數(shù)據(jù)目標(biāo)。數(shù)據(jù)庫(kù)中數(shù)據(jù)是面向應(yīng)用的,為業(yè)務(wù)操作人員的日常業(yè)務(wù)處理提供支持;數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)是面向決策分析的,為中高層管理人員提供決策支持。(3)數(shù)據(jù)內(nèi)容。數(shù)據(jù)庫(kù)中的數(shù)據(jù)是動(dòng)態(tài)變化的,只要有業(yè)務(wù)操作發(fā)生,數(shù)據(jù)就會(huì)被更新,即數(shù)據(jù)庫(kù)中始終存儲(chǔ)當(dāng)前值數(shù)據(jù),以支持日常的業(yè)務(wù)處理;而數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)相對(duì)來(lái)說(shuō)是靜態(tài)的。不進(jìn)行更新,只進(jìn)行添加、刷新,把業(yè)務(wù)處理系統(tǒng)中變化的數(shù)據(jù)添加到數(shù)據(jù)倉(cāng)庫(kù)中來(lái)。所以數(shù)據(jù)倉(cāng)庫(kù)中存儲(chǔ)了大量的歷史值數(shù)據(jù),以支持決策分析。(4)數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)庫(kù)設(shè)計(jì)是基于某個(gè)范式的,經(jīng)過(guò)規(guī)范化的,因此,數(shù)據(jù)庫(kù)中的數(shù)據(jù)是高度結(jié)構(gòu)化的,適合操作計(jì)算:數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)為了提高性能,能更好的支持決策分析,需要進(jìn)行反規(guī)范化處理,因此,數(shù)據(jù)結(jié)構(gòu)比較簡(jiǎn)單。(5)數(shù)據(jù)的訪問與使用。數(shù)據(jù)庫(kù)中的數(shù)據(jù)使用頻率較高,完成事務(wù)處理需要訪問的數(shù)據(jù)量比較小。數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)使用頻率較相對(duì)來(lái)說(shuō)較低,完成決策分析可能要訪問大量的數(shù)據(jù)。(6)響應(yīng)時(shí)間。數(shù)據(jù)庫(kù)對(duì)響應(yīng)時(shí)間的要求非常嚴(yán)格。通常以秒為單位;數(shù)據(jù)倉(cāng)庫(kù)對(duì)響應(yīng)時(shí)間要求較寬松,有的決策分析的時(shí)間可能需要以小時(shí)為單位。
2 系統(tǒng)設(shè)計(jì)與開發(fā)方面。(1)開發(fā)需求。數(shù)據(jù)庫(kù)系統(tǒng)是面向應(yīng)用的。在開發(fā)初期就能得到用戶的較確定的開發(fā)需求;但在數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)開發(fā)初期,不能獲得用戶的較確定的開發(fā)需求,因?yàn)閿?shù)據(jù)倉(cāng)庫(kù)是面向決策分析的,用戶對(duì)決策分析處理的需求既靈活又沒有固定的模式,甚至用戶自己都不清楚要進(jìn)行哪些分析處理。(2)開發(fā)方法。在數(shù)據(jù)庫(kù)系統(tǒng)開發(fā)時(shí),由于需求在開發(fā)初期就能確定,因此一般選用結(jié)構(gòu)化開發(fā)方法,按照系統(tǒng)分析、設(shè)計(jì)、實(shí)現(xiàn)、維護(hù)等階段完成系統(tǒng)的開發(fā);在數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)開發(fā)時(shí),所需的工作量大,而且開發(fā)需求在初期不能明確。因此一般選用螺旋式開發(fā)方法,先選定用戶最關(guān)心的決策分析問題進(jìn)行開發(fā),以滿足用戶的決策分析需求,然后在此基礎(chǔ)上再進(jìn)行其他主題的開發(fā)。這樣能以較小的投人獲得較高的應(yīng)用效益。(3)開發(fā)過(guò)程。數(shù)據(jù)倉(cāng)庫(kù)的系統(tǒng)開發(fā)是一個(gè)動(dòng)態(tài)反饋和循環(huán)的過(guò)程。一方面數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)內(nèi)容、結(jié)構(gòu)、粒度、分割以及其他物理設(shè)計(jì)應(yīng)該根據(jù)用戶所返回的信息不斷地調(diào)整和完善,以提高系統(tǒng)的效率和性能。另一方面,通過(guò)不斷地理解用戶的分析需求,不斷地調(diào)整和完善,以求向用戶提供更準(zhǔn)確、更有效的決策信息。在數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí),一個(gè)生命周期可以較明確地劃分為需求分析、數(shù)據(jù)庫(kù)設(shè)計(jì)、數(shù)據(jù)庫(kù)實(shí)施及運(yùn)行維護(hù)4個(gè)階段。相比之下,數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì)不具有像數(shù)據(jù)庫(kù)設(shè)計(jì)那樣可以明確劃分的設(shè)計(jì)階段。(4)設(shè)計(jì)的方法和步驟。由于業(yè)務(wù)處理過(guò)程較規(guī)范、固定。且需求能在系統(tǒng)開發(fā)初期明確,因此數(shù)據(jù)庫(kù)系統(tǒng)的設(shè)計(jì)一般采用系統(tǒng)生命周期法(Systems Development Lift Cycle。SDLC)(如圖1);數(shù)據(jù)倉(cāng)庫(kù)的開發(fā)需求不能在初期明確,決策分析人員只能有個(gè)大致的需求,人們?yōu)榱送怀鲞@種需求不確定的開發(fā)過(guò)程,將數(shù)據(jù)倉(cāng)庫(kù)的設(shè)計(jì)方法描述成與SDLC逆序的CLDS方法(如圖2)。

傳統(tǒng)的生命周期法SDLC是需求驅(qū)動(dòng)的。為建立系統(tǒng),必須先了解需求,收集應(yīng)用需求,對(duì)應(yīng)用需求進(jìn)行分析,然后開始構(gòu)建數(shù)據(jù)庫(kù),編程實(shí)現(xiàn)數(shù)據(jù)庫(kù),之后,進(jìn)行系統(tǒng)測(cè)試,然后投入使用(如圖1)。而CLDS方法幾乎與SDLC方法相反。CLDS方法先從各種數(shù)據(jù)源中收集數(shù)據(jù),然后進(jìn)行數(shù)據(jù)倉(cāng)庫(kù)建模工作,建立適合數(shù)據(jù)倉(cāng)庫(kù)的模型,之后獲取數(shù)據(jù)并進(jìn)行集成工作,統(tǒng)一源數(shù)據(jù)中的所有矛盾和不一致的地方。構(gòu)建數(shù)據(jù)倉(cāng)庫(kù),在數(shù)據(jù)倉(cāng)庫(kù)基礎(chǔ)上進(jìn)行DSS編程。設(shè)計(jì)DSS系統(tǒng),并進(jìn)行系統(tǒng)測(cè)試工作,最后理解需求。
四、結(jié)束語(yǔ)
數(shù)據(jù)倉(cāng)庫(kù)的產(chǎn)生是信息技術(shù)發(fā)展的必然結(jié)果。數(shù)據(jù)倉(cāng)庫(kù)是在數(shù)據(jù)庫(kù)的基礎(chǔ)上發(fā)展起來(lái)的,又不同于數(shù)據(jù)庫(kù)。傳統(tǒng)數(shù)據(jù)庫(kù)曾嘗試進(jìn)行決策分析工作,但是實(shí)踐證明,這是不可行的。原因就在于:
首先,在信息型環(huán)境中,某個(gè)決策分析問題的解決可能需要連續(xù)幾個(gè)小時(shí),這樣會(huì)消耗大量的系統(tǒng)資源;而在事務(wù)型環(huán)境中,用戶對(duì)系統(tǒng)的響應(yīng)時(shí)間要求非常嚴(yán)格,對(duì)數(shù)據(jù)的操作頻率高但每次操作處理的時(shí)間非常短。在同一個(gè)系統(tǒng)環(huán)境下,進(jìn)行兩種操作顯然是不合適的。
其次,決策分析需要全面的集成數(shù)據(jù),要將來(lái)自于多個(gè)數(shù)據(jù)源中的數(shù)據(jù)進(jìn)行集成,為了提高決策分析效率,還需要存儲(chǔ)綜合數(shù)據(jù),而這在數(shù)據(jù)庫(kù)中是不允許的。數(shù)據(jù)庫(kù)中的數(shù)據(jù)是要進(jìn)行規(guī)范化的。所以,在數(shù)據(jù)庫(kù)環(huán)境下,如果將數(shù)據(jù)集成問題交給決策分析程序解決,將大大增加決策分析系統(tǒng)的負(fù)擔(dān),并且沒有必要在每次進(jìn)行決策分析時(shí)都進(jìn)行數(shù)據(jù)集成。
最后,在數(shù)據(jù)的操作方式上,決策分析人員要使用各種工具對(duì)數(shù)據(jù)進(jìn)行多種形式的操作,所以,數(shù)據(jù)庫(kù)系統(tǒng)很難滿足這一要求。
文章對(duì)數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)庫(kù)進(jìn)行了較全面的對(duì)比分析,以便對(duì)這兩者有更清楚的認(rèn)識(shí)。最后得出的結(jié)論就是:數(shù)據(jù)庫(kù)用于事務(wù)處理,數(shù)據(jù)倉(cāng)庫(kù)用于決策分析。