本文將會闡述如何使用IBM Rational Rose進行星型模式建模和雪花模式的數(shù)據(jù)倉庫應(yīng)用的建模。 OLTP 與數(shù)據(jù)倉庫--有何差異? Email 程序大部分都屬于不是很復(fù)雜的數(shù)據(jù)庫,但是完全可以將其看作一個在單用戶環(huán)境下的 OLTP(在線事務(wù)處理系統(tǒng))簡單示例。它使用了所有的所謂訪問數(shù)據(jù)的操作 CRUD(創(chuàng)建、讀取、更新、刪除)。當(dāng)數(shù)據(jù)存儲達到一定量的時候,規(guī)模就會幾乎保持不變,因為可以從存儲中刪除過期數(shù)據(jù)。 數(shù)據(jù)倉庫就完全是一種不同種類的應(yīng)用程序。它并不是用來運行當(dāng)前的操作,例如發(fā)送郵件。它是用來分析數(shù)據(jù)并且從現(xiàn)有數(shù)據(jù)中發(fā)現(xiàn)新的價值,主要是用來預(yù)測未來的情況。數(shù)據(jù)倉庫并不是解決所有問題的通用結(jié)構(gòu)。它必須集中于某一問題領(lǐng)域,例如航空服務(wù)、顧客收益等。 數(shù)據(jù)倉庫也有有趣的一面,那就是數(shù)據(jù)庫本身是穩(wěn)定增長的。數(shù)據(jù)沒有被刪除,也不發(fā)生變更。我們不需要將冗余數(shù)據(jù)置于數(shù)據(jù)庫之外(因為加入倉庫中的數(shù)據(jù)經(jīng)過了數(shù)據(jù)凈化的過程,該過程檢查了數(shù)據(jù)的正確性)來減少復(fù)雜性同時增強讀取操作的性能。 為了能夠?qū)?shù)據(jù)倉庫中的數(shù)據(jù)進行分析,數(shù)據(jù)存儲于一個多維結(jié)構(gòu)中,叫做星型模式。如果將星型模式擴展,就會得到雪花模式。本白皮書將會闡述如何使用IBM Rational Rose進行星型模式建模和雪花模式建模。 飛行服務(wù)數(shù)據(jù)集市的例子 我們將存儲乘客信息和每個航班的的相關(guān)數(shù)據(jù)、選擇的菜單以及乘客對飛行的滿意程度。 數(shù)據(jù)倉庫術(shù)語表 數(shù)據(jù)倉庫 數(shù)據(jù)倉庫是所有操作環(huán)境和外部數(shù)據(jù)源的快照集合。它并不需要非常精確,因為它必須在特定的時間基礎(chǔ)上從操作環(huán)境中提取出來。 數(shù)據(jù)集市 事實 事實存儲于一張表中(當(dāng)使用關(guān)系數(shù)據(jù)庫時)或者是多維數(shù)據(jù)庫中的一個單元。 每個事實包括關(guān)于事實(收入、價值、滿意記錄等)的基本信息,并且與維度相關(guān)。 在某些情況下,當(dāng)所有的必要信息都存儲于維度中時,單純的事實出現(xiàn)就是對于數(shù)據(jù)倉庫足夠的信息。我們稍后討論有關(guān)缺無事實的情況。 維度 坐標(biāo)系的一個例子就是帶有 x 維度和 y 維度的 Cartesian(笛卡爾)坐標(biāo)系。 在數(shù)據(jù)倉庫中,時間總是維度之一。 數(shù)據(jù)挖掘 分析空間 切片 切塊 星型模式 星型模式將在本白皮書中稍后進行進一步討論。 雪花模式 使用 IBM Rational Rose 進行星型模式建模 首先,我們需要理解多維空間。 多維分析空間 多維分析空間(或者數(shù)據(jù)倉庫方塊)與幾何空間中的方塊僅僅存在細節(jié)上的差異。
數(shù)據(jù)立方體需要很大的內(nèi)存以存儲所有事實。無論是否包含事實,都必須要預(yù)留單元。 這就是為什么使用關(guān)系數(shù)據(jù)庫和星型模式的原因。使用它們能夠優(yōu)化存儲并且保持數(shù)據(jù)結(jié)構(gòu)的靈活性。 星型模式 在圖3中,星型模式使用事實 Flight 表示了一個 4 維方塊(Passenger、Menu、Flight Schedulet 和 Time)。基本上,事實必須指定一個維度,以將其放入立方體的單元中。 我們的例子中的維度是:
事實 Flight 描述了乘客在唯一的 Time 的單程飛行上選擇 Menu。 分析空間可以是完整的方塊,或者我們可以根據(jù)維度將分析空間分割成小片。 每個維度根據(jù)一個對象進行描述,對象可以用類表示,這些類就是有關(guān)業(yè)務(wù)主題的名稱。這一點對于成功建立數(shù)據(jù)倉庫來說是很重要的,因為倉庫的用戶(經(jīng)理、分析員、市場)對于信息技術(shù)的術(shù)語并不是很熟悉。 事實本身就是商業(yè)智能的另一個對象,仍然通過類進行表示。 事實指每個維度。事實與維度的關(guān)聯(lián)常常是一對任意,這也就意味著每個事實都與單個維度的一個單元準(zhǔn)確對應(yīng),而維度的每個單元(每個Passenger、Time等)可以與任意數(shù)量的事實發(fā)生關(guān)聯(lián)(包括0個事實)。 使用 Rational Rose 將對象模型轉(zhuǎn)換為數(shù)據(jù)模型即完成了星型模式的實現(xiàn)。這里我們可以看到轉(zhuǎn)換后的結(jié)果。 圖4 使用Rational Rose實現(xiàn)星型模式 在圖4中,沒有顯示自動創(chuàng)建的主鍵和外鍵約束。 星型模式的維度是獨立的表。當(dāng)對象模型轉(zhuǎn)換為數(shù)據(jù)模型時,Rational Rose 可以生成維度的主鍵。 事實表指從維度表中使用鍵遷移的維度,當(dāng)生成數(shù)據(jù)模型時 Rational Rose 可以生成外鍵。 在星型模式中切片和切塊是對維度的限制(選擇)。這是一個運行時問題,而不是建模問題,但是模型必須分辨其需要。 雪花模式 維度必須進行規(guī)范化。我們不需要冗余的維度表,這只會使數(shù)據(jù)切片變得更加復(fù)雜。這種過程中我們得到的模式被稱為雪花模式。 我們來看一個簡單的雪花模式例子。我們將時間維度規(guī)范化為周、月和季度。 我們希望能夠使用附加的規(guī)范化維度將立方體切片:周、月和季度。在本例中,我們假定季度是月的平行層次,這也就意味著我們不能將季度假定為若干月的聚合。由于這個原因,我們將使用一張范化表(是對 OLAP 查詢的一項簡單附加)預(yù)先選擇時間維度。 最終雪花模式添加了規(guī)范化維度。 圖6 帶有范化維度的 Time 和事實 Flight 的雪花模式 當(dāng)然,所有的維度都可以像時間例子那樣進行規(guī)范化,這就導(dǎo)致了比較復(fù)雜的數(shù)據(jù)集市模式的出現(xiàn)。 由 Rational Rose 從雪花模式中開發(fā)的實現(xiàn)模式(數(shù)據(jù)模型)是完善的。 圖7 帶有范化 Time 維度的雪花模式的數(shù)據(jù)模型 創(chuàng)建的約束在圖中也沒有顯示。 雪花模式中可以存在切片,不僅僅在基本的 Time 維度上,也可以在規(guī)范化的 Week、Month 和 Quarter 維度上。 多對多關(guān)系 雪花模式的一種特殊形式是使用一種必要的數(shù)據(jù)結(jié)構(gòu)以滿足這項要求。 首先,我們將模型變更為事實和維度間的多對多關(guān)聯(lián)。使用 Rational Rose,這只是關(guān)聯(lián)基數(shù)的變更。 我們無法在關(guān)系數(shù)據(jù)庫中實現(xiàn)多對多關(guān)聯(lián)。實現(xiàn)多對多關(guān)聯(lián)需要使用另一種雪花模式。 在下圖中,我們關(guān)注一下已經(jīng)開發(fā)的雪花模式的一部分,該部分處理多對多維度。 Rational Rose 生成了附加的維度表 FlightMenu,它是指 Menu 維度和 Flight 事實。 確定關(guān)系用于解決多對多關(guān)聯(lián)。 對于雪花模式的架構(gòu)師來說,最重要的一點就是識別多對多關(guān)系。簡單對象視圖可能會使設(shè)計員理解概念,而生成的數(shù)據(jù)視圖有助于進一步深入有關(guān)實現(xiàn)的問題。 層次 乘客統(tǒng)計資料數(shù)據(jù)可以在 Passenger 維度的層次上構(gòu)建。乘客可以根據(jù)郵政編碼分組,然后再按國家進行分組。 層次通過使用聚合來指定。聚合定義了所包括的內(nèi)容。Country 包含了 ZIP 編碼,ZIP 編碼包含了多名 Passenger 信息。 最終通過使用外鍵實現(xiàn)了聚合。 圖11 雪花模式實現(xiàn)了 Passenger 維度的聚合 生成的約束仍然沒有在圖中表示出來。 使用聚合,維度可以在任何定義的級別上使用。分析空間可以通過 Passenger、ZIP Code或者 Country 進行切片。 一致的維度 星型或者雪花模式仍然僅僅關(guān)注于一個事實--在本例中就是Flight。那么復(fù)雜關(guān)系又是什么情況呢? 對于每個事實我們都必須設(shè)計其各自的模式。如果我們想要進行復(fù)雜查詢的話,它們就必須具有共同的維度--我們稱其為一致的維度。 讓我們使用 Pilot 作為一個維度,PilotFlight 作為一個事實來定義第二個星型模式。我們還要使用附加的 Flight Schedule 維度和 Time 維度。 第二個模式可以單獨使用或者與 Passenger 模式結(jié)合使用,從而根據(jù)使用一致維度的飛行員維度來查詢 Passenger 的滿意程度。 圖13 一致維度Time 和 Flight Schedule 即使在使用一致維度的數(shù)據(jù)倉庫的簡單結(jié)構(gòu)中,Pilot 與 Passenger 之間的關(guān)系也是簡單的。 在開發(fā)數(shù)據(jù)模型時,數(shù)據(jù)倉庫將大量小型星型模式與雪花模式相結(jié)合形成了大型的數(shù)據(jù)倉庫模式。 事實與維度的數(shù)據(jù) 如果我們想要得出一個平均記錄,那么就必須為記錄定義值以進行計算。我們可以將記錄分為 0 到 10 級。這樣就可以得到一個平均記錄。平均值應(yīng)該存儲在維度表中,以用于簡單的切片,其中我們只想進行一維切片。 Rational Rose 根據(jù)目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)類型生成了實現(xiàn)屬性。對象模型是用來定義數(shù)據(jù)庫的數(shù)據(jù)源的。 結(jié)束語 對象模型定義了有關(guān)模式的全局結(jié)構(gòu)的對象,和包括數(shù)據(jù)源的整體數(shù)據(jù)倉庫。它代表了數(shù)據(jù)倉庫中有關(guān)視圖的對象,同時隱藏了實施細節(jié)。 數(shù)據(jù)模型是數(shù)據(jù)倉庫的實現(xiàn)模型。數(shù)據(jù)模型可以從對象模型中生成,反之亦然。 Rational Rose 是設(shè)計星型模式和雪花模式的最理想工具。Rational Rose 是靈活可調(diào)整的,足以支持任何所需的數(shù)據(jù)倉庫的概念,同時也提供了數(shù)據(jù)架構(gòu)師和數(shù)據(jù)庫管理員需要的功能以對數(shù)據(jù)倉庫進行調(diào)整。 Rational Rose 為分析業(yè)務(wù)和開發(fā)用來實現(xiàn)數(shù)據(jù)倉庫的需求提供了強大動力。 |
|
來自: dingbird > 《商業(yè)智能》