【廣告】
數(shù)據(jù)模型應(yīng)滿足三方面要求:一是能較好地模擬現(xiàn)實(shí)世界;二是容易為人所理解;三是便于在計(jì)算機(jī)中實(shí)現(xiàn)。一種數(shù)據(jù)模型要很好地、滿足這三方面要求目前還很困難。因此,在數(shù)據(jù)庫(kù)系統(tǒng)中針對(duì)不同的使用對(duì)象和應(yīng)用目的,應(yīng)采用不同的數(shù)據(jù)模型。如同在建筑設(shè)計(jì)和施工的不同階段需要不同的圖紙一樣,在開(kāi)發(fā)實(shí)施數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中也需要使用不同的數(shù)據(jù)模型。
維度建模
1、維度和指標(biāo)的概念
按照維度表、事實(shí)表構(gòu)建數(shù)據(jù)模型,通過(guò)指標(biāo)評(píng)價(jià)企業(yè)經(jīng)營(yíng)活動(dòng)。
維度一般包括:地區(qū)、時(shí)間、部門、產(chǎn)品等等。
指標(biāo)一般包括:銷售數(shù)量、銷售金額、平均銷售金額等等。
2、星型模型
星型模是一種多維的數(shù)據(jù)關(guān)系,它由一個(gè)事實(shí)表和一組維表組成。每個(gè)維表都有一個(gè)維作為主鍵,所有這些維的主鍵組合成事實(shí)表的主鍵。強(qiáng)調(diào)的是對(duì)維度進(jìn)行預(yù)處理,將多個(gè)維度集合到一個(gè)事實(shí)表,形成一個(gè)寬表。這也是我們?cè)谑褂?hive 時(shí),經(jīng)常會(huì)看到一些大寬表的原因,大寬表一般都是事實(shí)表,包含了維度關(guān)聯(lián)的主鍵和一些度量信息,而維度表則是事實(shí)表里面維度的具體信息,使用時(shí)候一般通過(guò) join 來(lái)組合數(shù)據(jù),相對(duì)來(lái)說(shuō)對(duì)OLAP 的分析比較方便。
雪花模型
當(dāng)有一個(gè)或多個(gè)維表沒(méi)有直接連接到事實(shí)表上,而是通過(guò)其他維表連接到事實(shí)表上時(shí),其圖解就像多個(gè)雪花連接在一起,故稱雪花模型。雪花模型是對(duì)星型模型的擴(kuò)展。它對(duì)星型模型的維表進(jìn)一步層次化,原有的各維表可能被擴(kuò)展為小的事實(shí)表,形成一些局部的 "層次 " 區(qū)域,這些被分解的表都連接到主維度表而不是事實(shí)表。雪花模型更加符合數(shù)據(jù)庫(kù)范式,減少數(shù)據(jù)冗余,但是在分析數(shù)據(jù)的時(shí)候,操作比較復(fù)雜,需要 join 的表比較多所以其性能并不一定比星型模型高。