数据仓库中两种数据模型的分析比较
來(lái)源:http://articles.e-works.net.cn/bi/article73172.htm
?
發(fā)表時(shí)間:2009-11-7?何秉姣?來(lái)源:萬(wàn)方數(shù)據(jù)
?
數(shù)據(jù)倉(cāng)庫(kù)(DH)和聯(lián)機(jī)分析處理(OLAP)是商業(yè)數(shù)據(jù)處理領(lǐng)域中的2個(gè)重大的新技術(shù)。OLAP為用戶向數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)提出復(fù)雜查詢、提供快速、穩(wěn)定的響應(yīng)。DH是支持決策的分析型的數(shù)據(jù)庫(kù),它采集、組織和存儲(chǔ)來(lái)自地理分布、構(gòu)造各異的信息源數(shù)據(jù)。數(shù)據(jù)模型是數(shù)據(jù)庫(kù)系統(tǒng)的核心和基礎(chǔ)。本文針對(duì)支持OLAP的數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)模型進(jìn)行研究。
1 幾個(gè)重要的概念
??? 被數(shù)據(jù)倉(cāng)庫(kù)組織的數(shù)據(jù)是非常復(fù)雜的,除少數(shù)通用的結(jié)構(gòu)規(guī)整的基本數(shù)據(jù)外,大多數(shù)數(shù)據(jù)具有多維本質(zhì)特性。例如,A銷售系統(tǒng)在B地區(qū)的C產(chǎn)品年總銷售量Q,就是一個(gè)基于時(shí)間、地點(diǎn)和產(chǎn)品等多個(gè)因素有關(guān)的數(shù)據(jù),有的數(shù)據(jù)可能涉及更多的因素。這里的時(shí)間、地區(qū)和產(chǎn)品就是數(shù)據(jù)倉(cāng)庫(kù)中的維,維是一個(gè)物理特性,是訪問和表達(dá)商務(wù)信息的一個(gè)基本途徑,維一般作為識(shí)別數(shù)據(jù)的索引。屬性是在一個(gè)維內(nèi)為了提供詳細(xì)分類系統(tǒng)而定義的,是為了判別和區(qū)分特定數(shù)據(jù)而定義的,如在時(shí)間維內(nèi)有年、月、日等屬性。度是在維空間衡量商務(wù)信息的一種方法,它一般包括:以一個(gè)標(biāo)準(zhǔn)為基準(zhǔn),通過比較所得到的數(shù)量、容量或資金,如銷售量Q,這些數(shù)據(jù)用于對(duì)商務(wù)行為進(jìn)行定量衡量。
??? 1.1 維
??? (1)維的種類
??? 在數(shù)據(jù)倉(cāng)庫(kù)中根據(jù)維在各層次的取值中是否包含空間對(duì)象,可以將維分為3種:①非空間維,只包含非空間數(shù)據(jù)的維,其泛化值也是非空間的。例如時(shí)間維,它在每個(gè)層次上(年、月、日等)的取值都只包含非空間的數(shù)據(jù)。②空間——非空間維。在原始概念層次上是空間數(shù)據(jù),但其泛化值在較高的層次上就變成非空間的數(shù)據(jù)。例如,在某大型零售送奶公司中,各個(gè)客戶在地圖上的分布是用空間數(shù)據(jù)來(lái)表達(dá)的,而這些客戶數(shù)據(jù)可以被泛化為一些非空間的值,比如泛化為某個(gè)子送奶公司的客戶,其更高層次的泛化值則全部變?yōu)榉强臻g的數(shù)據(jù)。這種類型的維與非空間維所起的作用類似。③空間——空間維。原始概念層次及其所有高層次的泛化數(shù)據(jù)都是空間數(shù)據(jù)。例如,各個(gè)客戶的詳細(xì)分布情況及其泛化數(shù)據(jù),如各個(gè)客戶在小區(qū)的分布、在郵政編碼區(qū)域的分布,以及在各個(gè)行政區(qū)的分布等都是空間數(shù)據(jù)。
??? (2)生成維的方式
??? ①根據(jù)屬性間的關(guān)系或特定數(shù)據(jù)值之間的關(guān)系,由專家或用戶指定。②利用數(shù)據(jù)分析技術(shù)(諸如聚類、分類或統(tǒng)計(jì)分析等)自動(dòng)生成。③將經(jīng)過計(jì)算的度量作為數(shù)據(jù)倉(cāng)庫(kù)中的一維使用,即將銷售奶量度轉(zhuǎn)化為銷售奶量維。
??? 1.2 度
??? 在數(shù)據(jù)倉(cāng)庫(kù)中可建立兩種類型的度量:第一種是數(shù)值型度量,它僅包含數(shù)值型數(shù)據(jù)的度量。例如,在送奶數(shù)據(jù)倉(cāng)庫(kù)中,某個(gè)城區(qū)的月收入就可作為一個(gè)度最。第二種是空間度量,它包含空間數(shù)據(jù)的度量,是指向空間對(duì)象的指針集合。例如在送奶數(shù)據(jù)倉(cāng)庫(kù)中,月收入相同的城區(qū)可以作為一個(gè)度量。信息世界中的概念模型就是由維和度組成的,在數(shù)據(jù)世界中的數(shù)據(jù)模型的就是如何很好地描述概念模型中的維和度。
2 數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)模型
??? 立方體數(shù)據(jù)模型(cube)和星型數(shù)據(jù)模型都能組織數(shù)據(jù)倉(cāng)庫(kù)的維和度數(shù)據(jù),為OLAP提供支持,但它們各有一定的局限性,在數(shù)據(jù)庫(kù)開發(fā)中應(yīng)該有機(jī)結(jié)合兩種數(shù)據(jù)模型,合理使用。
??? 2.1 立方體數(shù)據(jù)模型和星型數(shù)據(jù)模型
????(1)立方體數(shù)據(jù)模型
??? 立方體模型是數(shù)據(jù)倉(cāng)庫(kù)的基本結(jié)構(gòu)。在該模型中,一部分是數(shù)字測(cè)量值(如銷售量、投資額、收入等),它們依賴于一組維,而所有維提供了全部測(cè)量值的上下文關(guān)系。例如銷售量Q與銷售地區(qū)、銷售產(chǎn)品和銷售時(shí)間等有關(guān),這些相關(guān)的“維”惟一決定了銷售量Q這個(gè)測(cè)量值。因此,多數(shù)數(shù)據(jù)視圖就可以表示為在這些由不同層次的維構(gòu)成的多維空間中存放數(shù)字測(cè)量值。如圖1中的小立方體格(即cube單元格)內(nèi)存儲(chǔ)的數(shù)據(jù),就是可口可樂等產(chǎn)品的銷售量Q數(shù)據(jù)。
圖1 一個(gè)銷售立方體數(shù)據(jù)模型
??? 圖1表示了一個(gè)銷售立方體模型,圖中陰影部分就是2001年廣州市銷售可口可樂的銷售量Q。
????(2)星型數(shù)據(jù)模型
??? 大多數(shù)數(shù)據(jù)倉(cāng)庫(kù)都采用“星型架構(gòu)”來(lái)表示多維概念模型。采用星型模型的數(shù)據(jù)庫(kù)中至少包括一張“事實(shí)表”。“事實(shí)表”中的每條記錄都包含有指向各個(gè)“維表”的外鍵和一些相應(yīng)的測(cè)量數(shù)據(jù),即數(shù)據(jù)值。對(duì)于每一維都有一張“維素”。“維表”中記錄的是有關(guān)這一維的屬性,如圖2所示。
圖2 銷售數(shù)據(jù)倉(cāng)庫(kù)的星型數(shù)據(jù)模型
??? 圖2表示了銷售數(shù)據(jù)倉(cāng)庫(kù)的星型數(shù)據(jù)模型,它包含4個(gè)維:地區(qū)維、時(shí)間維、產(chǎn)品維和部門維。它們各由相關(guān)的屬性組成,這些屬性有時(shí)也被認(rèn)為是維的層次。如圖3表示了銷售數(shù)據(jù)倉(cāng)庫(kù)各個(gè)維的概念層次結(jié)構(gòu)。中間是事實(shí)表,它由各維度的主鍵和數(shù)據(jù)倉(cāng)庫(kù)的度構(gòu)成。度數(shù)據(jù)在事實(shí)表中維護(hù),維度數(shù)據(jù)在維度表中維護(hù)。
圖3 銷售數(shù)據(jù)倉(cāng)庫(kù)中各個(gè)維的概念層次結(jié)構(gòu)
??? 在星型架構(gòu)中,將單維的維表與另一個(gè)維表聯(lián)接,這樣就構(gòu)成了關(guān)系數(shù)據(jù)庫(kù)中的多維分析空間。這些平面的表被疊加到一起,構(gòu)成了一個(gè)多維空間。疊加的核心是事實(shí)表。維表關(guān)鍵字是事實(shí)表關(guān)鍵字的一個(gè)組成部分,數(shù)據(jù)倉(cāng)庫(kù)中的關(guān)鍵字應(yīng)使用系統(tǒng)生成的代理關(guān)鍵字,而不是直接使用操作型數(shù)據(jù)庫(kù)的關(guān)鍵字,這是由數(shù)據(jù)倉(cāng)庫(kù)的穩(wěn)定性所決定的。雖然看起來(lái)使用操作環(huán)境的關(guān)鍵字作為數(shù)據(jù)倉(cāng)庫(kù)的關(guān)鍵字顯得簡(jiǎn)單、易懂,但實(shí)際上它會(huì)使數(shù)據(jù)倉(cāng)庫(kù)管理復(fù)雜化。首先,操作環(huán)境里的關(guān)鍵字的任何變化都會(huì)導(dǎo)致數(shù)據(jù)倉(cāng)庫(kù)里相應(yīng)的變化,這違反了數(shù)據(jù)倉(cāng)庫(kù)穩(wěn)定的特性。同時(shí),數(shù)據(jù)倉(cāng)庫(kù)的擴(kuò)展,必須保證在不破壞關(guān)鍵字的前提下,來(lái)自其他系統(tǒng)的數(shù)據(jù)能夠順利合并到數(shù)據(jù)倉(cāng)庫(kù)中去。
?
2.2 比較立方體數(shù)據(jù)模型和星型數(shù)據(jù)模型
?
??? (1)星型架構(gòu)中有2個(gè)基本類型的表:維表和事實(shí)表。維表的主關(guān)鍵字是事實(shí)表中的外部關(guān)鍵字、每一個(gè)表都很好地包括了多維概念數(shù)據(jù)模型中的維、度及屬性。維表是立方體數(shù)據(jù)模型的維,事實(shí)表的數(shù)據(jù)值是立方體數(shù)據(jù)模型中的單元。
??? (2)對(duì)OLAP的支持能力,其對(duì)比解釋見表1。從表1可知,2種模型都能支持OLAP的一般操作。
表1 2種數(shù)據(jù)模型的比較
??? (3)對(duì)業(yè)務(wù)決策者來(lái)說,星型數(shù)據(jù)模型中令人感興趣的部分是事實(shí)表,這就是數(shù)據(jù)所處的區(qū)域。為了訪問事實(shí)表中的數(shù)據(jù)值,必須通過維,必須通過確定維才能實(shí)現(xiàn)。立方體數(shù)據(jù)模型和星型數(shù)據(jù)模型的維是進(jìn)入點(diǎn)、當(dāng)進(jìn)行立方體數(shù)據(jù)模型的處理時(shí),通過詳細(xì)說明維的數(shù)據(jù)(坐標(biāo))訪問單元。類似的,通過維#我們定義了事實(shí)表中令人感興趣的一些字段。事實(shí)表記錄業(yè)務(wù)的行為,而任何處理均從維開始。一個(gè)人可以將維表想象為大門,業(yè)務(wù)決策者由此進(jìn)入一個(gè)包含了事實(shí)的房間,也就是事實(shí)表。
??? (4)從Cube的定義和圖1可知道Cube和Cube單元的結(jié)構(gòu)很規(guī)整。它是在數(shù)據(jù)倉(cāng)庫(kù)中概念化數(shù)據(jù)的一種公共模型,通常被作為主要的邏輯層結(jié)構(gòu)用來(lái)描述多維數(shù)據(jù)庫(kù),為決策者提供了一個(gè)理想的環(huán)境。也正是Cube的規(guī)整性,使Cube存在致命的缺陷,即在Cube中無(wú)論是否包含數(shù)據(jù),都會(huì)形成單元,結(jié)果產(chǎn)生很多單元都是空單元,造成大量的空間浪費(fèi),如特定的月份,經(jīng)銷商并沒有銷售其經(jīng)營(yíng)的商品,則就不會(huì)產(chǎn)生相應(yīng)的記錄、對(duì)于稀疏的立方體數(shù)據(jù)模型,要求有一些數(shù)據(jù)結(jié)構(gòu)方面的知識(shí),來(lái)預(yù)測(cè)將在哪些單元內(nèi)產(chǎn)生數(shù)據(jù)。星型架構(gòu)則克服了立方體數(shù)據(jù)模型中存在的許多不足之處。在相同的維數(shù)下,星型架構(gòu)占據(jù)的空間明顯少于立方體數(shù)據(jù)模型占據(jù)的空間,即星型數(shù)據(jù)模型只在需要記錄事實(shí)的時(shí)候才產(chǎn)生一個(gè)事實(shí)記錄。對(duì)稀疏的星型架構(gòu)就沒有預(yù)測(cè)的要求。
??? 星型模型是擴(kuò)展了的關(guān)系表格結(jié)構(gòu),該模型通過包含主題的事實(shí)表和多個(gè)包含事實(shí)的非正規(guī)化的維度表來(lái)執(zhí)行典型的決策支持查詢。一旦創(chuàng)建了事實(shí)表,就可以使用OLAP工具預(yù)先分析常用的訪問信息。星型架構(gòu)能很好地支持OLAP組織匯總數(shù)據(jù)的立方體,再現(xiàn)數(shù)據(jù)的多維特性,高效率地執(zhí)行分析性查詢語(yǔ)句。從圖3可以看出,每張維度表是各不相同的,其好處是能量體裁衣地為不同的維分配空間,從而節(jié)省空間,但也同時(shí)大大增加了開發(fā)和維護(hù)數(shù)據(jù)倉(cāng)庫(kù)的負(fù)擔(dān),沒有充分考慮實(shí)體的規(guī)整性。
??? 另外,為了能夠使系統(tǒng)更好地工作,在采用星型數(shù)據(jù)模型時(shí),應(yīng)該考慮下列因素:盡可能地使用星型架構(gòu)、為用戶設(shè)計(jì)維度表、維度表的設(shè)計(jì)一定要符合通常意義上的范式約束、同一種數(shù)據(jù)盡可能地使用一個(gè)事實(shí)表、對(duì)每一個(gè)關(guān)鍵字段創(chuàng)建一個(gè)索引,這樣可以提高查詢語(yǔ)句的性能,對(duì)每一個(gè)維度表,在其關(guān)鍵字列上創(chuàng)建一個(gè)索引、對(duì)于每一個(gè)事實(shí)表,在其包含維度表的外鍵列的組合列上創(chuàng)建一個(gè)索引,系統(tǒng)使用這些索引加載多維數(shù)據(jù)結(jié)構(gòu)和匯總數(shù)據(jù),可以顯著提高立方體查詢處理的性能,確保數(shù)據(jù)的參考完整性。
??? 通過分析可見,立方體數(shù)據(jù)模型運(yùn)用表達(dá)結(jié)構(gòu)有規(guī)整性的實(shí)體或維數(shù)較少的系統(tǒng),構(gòu)造數(shù)據(jù)倉(cāng)庫(kù)的基本數(shù)據(jù)結(jié)構(gòu),這限制了Cube在許多應(yīng)用環(huán)境中的推廣使用,否則就采用星型數(shù)據(jù)模型給予設(shè)計(jì)。
??? Cube模型和星型模型的優(yōu)缺點(diǎn)正好互補(bǔ)。基于此,在實(shí)際開發(fā)數(shù)據(jù)倉(cāng)庫(kù)時(shí),應(yīng)該成分發(fā)揮兩者的優(yōu)勢(shì),即用星型模型描述數(shù)據(jù)倉(cāng)庫(kù)中的復(fù)雜多維數(shù)據(jù),而Cube模型描述簡(jiǎn)單通用規(guī)整的數(shù)據(jù)。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的数据仓库中两种数据模型的分析比较的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开源ETL软件在智能化集成系统中的应用
- 下一篇: 数据仓库、商业智能的体系结构