星型模式 vs 雪花模型
多維資料建模以直觀的方式組織資料,並支援高效能的資料訪問。每一個多維資料模型由多個多維資料模式表示,每一個多維資料模式都是由一個事實表和一組維表組成的。多維模型最常見的是星形模式。在星形模式中,事實表居中,多個維表呈輻射狀分佈於其四周,並與事實表連線。 在星型的基礎上,發展出雪花模式,下面就二者的特點做比較。
[@more@]星型模式
位於星形中心的實體是指標實體,是使用者最關心的基本實體和查詢活動的中心,為資料倉儲的查詢活動提供定量資料。每個指標實體代表一系列相關事實,完成一項指定的功能。位於星形圖星角上的實體是維度實體,其作用是限制使用者的查詢結果,將資料過濾使得從指標實體查詢返回較少的行,從而縮小訪問範圍。每個維表有自己的屬性,維表和事實表透過關鍵字相關聯。
星形模式雖然是一個關係模型,但是它不是一個規範化的模型。在星形模式中,維度表被故意地非規範化了,這是星形模式與OLTP系統中的關係模式的基本區別。
使用星形模式主要有兩方面的原因:提高查詢的效率。採用星形模式設計的資料倉儲的優點是由於資料的組織已經過預處理,主要資料都在龐大的事實表中,所以只要掃描事實表就可以進行查詢,而不必把多個龐大的表聯接起來,查詢訪問效率較高。同時由於維表一般都很小,甚至可以放在快取記憶體中,與事實表作連線時其速度較快;便於使用者理解。對於非計算機專業的使用者而言,星形模式比較直觀,透過分析星形模式,很容易組合出各種查詢。
總結:
非正規化;
多維資料集中的每一個維度都與事實表連線(透過主鍵和外來鍵);
不存在漸變維度;
有冗餘資料;
查詢效率可能會比較高;
不用過多考慮正規化因素,設計維護較為簡單
雪花模式
在實際應用中,隨著事實表和維表的增加和變化,星形模式會產生多種衍生模式,包括星系模式、星座模式、二級維表和雪花模式。
雪花模式是對星形模式維表的進一步層次化,將某些維表擴充套件成事實表,這樣既可以應付不同級別使用者的查詢,又可以將源資料透過層次間的聯絡向上綜合,最大限度地減少資料儲存量,因而提高了查詢功能。
雪花模式的維度表是基於正規化理論的,因此是界於第三正規化和星形模式之間的一種設計模式,通常是部分資料組織採用第三正規化的規範結構,部分資料組織採用星形模式的事實表和維表結構。在某些情況下,雪花模式的形成是由於星形模式在組織資料時,為減少維表層次和處理多對多關係而對資料表進行規範化處理後形成的。
雪花模式的優點是:在一定程度上減少了儲存空間;規範化的結構更容易更新和維護。同樣雪花模式也存在不少缺點:雪花模式比較複雜,使用者不容易理解;瀏覽內容相對困難;額外的連線將使查詢效能下降。在資料倉儲中,通常不推薦“雪花化”。因為在資料倉儲中,查詢效能相對OLTP系統來說更加被重視,而雪花模式會降低資料倉儲系統的效能。
總結:
正規化;
資料冗餘少;
有些資料需要連線才能獲取,可能效率較低;
規範化操作較複雜,導致設計及後期維護複雜;
實際應用中,可以採取上述兩種模型的混合體:
如:中間層使用雪花結構以降低資料冗餘度,資料集市部分採用星型以方便資料提取及分析
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16723161/viewspace-1026160/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料倉儲 - 星座模型、星型模型和雪花模型的介紹模型
- 結構型:代理模式 Vs 介面卡模式 Vs 門面模式(外觀模式)模式
- 死星模式、死星架構模式架構
- 型別 VS 泛型型別泛型
- Structs vs classes(值型別vs引用型別)Struct型別
- 開源一個新的雪花演算法(雪花漂移)演算法
- 優化星型查詢優化
- 小議星型轉換
- 雪花演算法演算法
- 最佳化星型查詢
- 星型轉換實現方法
- 星型資料庫設計資料庫
- Oracle 星型模式的調優Oracle模式
- ACCESS 模擬雪花ID
- LVS 負載均衡之 VS/NAT 模式負載模式
- LVS 負載均衡之 VS/TUN 模式負載模式
- LVS 負載均衡之 VS/DR 模式負載模式
- 觀察者模式 vs 釋出訂閱模式模式
- 觀察者模式 vs 釋出-訂閱模式模式
- 容器網路模型:CNI vs CNM模型
- LVS的DR模型配置模型
- LVS(二)NAT模型配置模型
- Go Internals: Go 反射 vs Java 泛型 vs cpp 模板Go反射Java泛型
- 【C#之值型別vs引用型別】C#型別
- 全面對比:天工大模型 vs 紫東太初大模型大模型
- 蘋果 VS 三星年度財報:蘋果淨利潤超三星近4倍蘋果
- 三星vs蘋果 大牌智慧手錶哪款好?蘋果
- URL vs. HTML 錄製模式HTML模式
- Go 實現雪花演算法Go演算法
- JavaScript 雪花飄舞效果詳解JavaScript
- 雪花演算法的實現演算法
- 雪花演算法和UUID演算法UI
- Golang雜談-gorm整合雪花idGolangORM
- 分散式唯一ID生成方案選型!詳細解析雪花演算法Snowflake分散式演算法
- 設計模式-建立型-單例模式設計模式單例
- 開源一個比雪花演算法更好用的ID生成演算法(雪花漂移)演算法
- Nginx 工作模式和程式模型Nginx模式模型
- CQRS模式要好於MVC模型模式MVC模型