blog.Toby

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            130 隨筆 :: 2 文章 :: 150 評(píng)論 :: 0 Trackbacks

          維模式

          數(shù)據(jù)庫由一個(gè)或多個(gè)表組成,數(shù)據(jù)庫中所有表之間的關(guān)系統(tǒng)稱為數(shù)據(jù)庫模式。雖然有許多不同的模式設(shè)計(jì),但是用于查詢歷史數(shù)據(jù)的數(shù)據(jù)庫通常被設(shè)置為具有維模式設(shè)計(jì)(通常是星型模式或雪花模式)。采用維模式既有許多歷史方面的原因也有許多實(shí)踐方面的原因,但是,它們?cè)跊Q策支持關(guān)系數(shù)據(jù)庫方面的應(yīng)用的增長是由兩項(xiàng)主要的益處推動(dòng)的:

          • 能夠形成用來應(yīng)答業(yè)務(wù)問題的查詢。通常,查詢根據(jù)若干個(gè)業(yè)務(wù)維計(jì)算某些業(yè)績量度。
          • 在大部分 RDBMS 供應(yīng)商使用的 SQL 語言中形成這些查詢必需維模式。

          維模式在物理上將用于量化業(yè)務(wù)的量度(也稱為事實(shí))與用于描述業(yè)務(wù)和對(duì)業(yè)務(wù)進(jìn)行分類的描述性元素(也稱為)分隔開。DB2 Alphablox 多維體要求底層數(shù)據(jù)庫使用維模式;即,在物理上必須將事實(shí)數(shù)據(jù)與維數(shù)據(jù)分隔開(至少位于不同的列中)。通常,維模式具有星型模式形式、雪花模式形式或者這兩種模式的某種混合形式。盡管不是常見的情況,但維模式也可以具有單個(gè)表的形式,即事實(shí)和維僅僅是位于表的不同的列中。

          注:
          如果數(shù)據(jù)庫不符合維模式,則可以在數(shù)據(jù)庫中創(chuàng)建視圖以創(chuàng)建一個(gè)“虛擬的”維模式以便與 DB2 Alphablox 多維體配合使用。

          本節(jié)描述星型模式和雪花模式以及在這些模式中表示業(yè)務(wù)層次結(jié)構(gòu)的方式。包括下列各節(jié):

          要徹底了解維模式設(shè)計(jì)及其所有分支的背景信息,請(qǐng)閱讀由 Ralph Kimball 編著并由 John Wiley and Sons, Inc. 出版的 The Data Warehouse Toolkit

          星型模式和雪花模式

          星型模式和雪花模式設(shè)計(jì)是用來將事實(shí)和維分隔到不同的表中的機(jī)制。雪花模式將層次結(jié)構(gòu)的不同級(jí)別進(jìn)一步分隔到不同的表中。在任何一種模式設(shè)計(jì)中,每個(gè)表都通過主鍵/外鍵關(guān)系與另一表相關(guān)。在關(guān)系數(shù)據(jù)庫中,使用主鍵/外鍵關(guān)系來定義各個(gè)表之間的多對(duì)一關(guān)系。

          主鍵

          主鍵是表中的一個(gè)列或一組列,它們的值唯一地標(biāo)識(shí)表中的一行。關(guān)系數(shù)據(jù)庫設(shè)計(jì)成通過僅允許表中的一行具有給定的主鍵值來強(qiáng)制實(shí)施主鍵的唯一性。

          外鍵

          外鍵是表中的一個(gè)列或一組列,它們的值與另一個(gè)表中的主鍵值相對(duì)應(yīng)。為了添加具有給定外鍵值的行,在相關(guān)的表中必須存在具有相同主鍵值的行。

          在星型模式或雪花模式中,表之間的主鍵/外鍵關(guān)系(有時(shí)稱為多對(duì)一關(guān)系)表示 RDBMS 中將相關(guān)的表連接到一起的路徑。這些連接路徑是形成對(duì)歷史數(shù)據(jù)執(zhí)行的查詢的基礎(chǔ)。要了解有關(guān)多對(duì)一關(guān)系的更多信息,請(qǐng)參閱多對(duì)一關(guān)系

          事實(shí)表

          事實(shí)表是星型模式或雪花模式中的一個(gè)表,它存儲(chǔ)用于量度業(yè)務(wù)(如銷售量、商品成本或利潤)的事實(shí)。事實(shí)表還包含指向維表的外鍵。這些外鍵使事實(shí)表中的每個(gè)數(shù)據(jù)行與其對(duì)應(yīng)的維和級(jí)別相關(guān)。

          維表

          維表是星型模式或雪花模式中的一個(gè)表,它存儲(chǔ)用來描述維的各個(gè)方面的屬性。例如,時(shí)間表存儲(chǔ)時(shí)間的各個(gè)方面,如年份、季度、月份和天。事實(shí)表的外鍵引用多對(duì)一關(guān)系中的維表的主鍵。

          星型模式

          下圖顯示了具有單個(gè)事實(shí)表和 4 個(gè)維表的星型模式。星型模式可以具有任意數(shù)目的維表。用于連接表的鏈接末尾的分叉指示了事實(shí)表與每個(gè)維表之間的多對(duì)一關(guān)系。

          此圖顯示了一個(gè)星型模式,在此模式的中央有單個(gè)事實(shí)表,該事實(shí)表帶有指向周圍的多個(gè)維表的鏈接。從事實(shí)表到維表的鏈接末尾的分叉指示多對(duì)一關(guān)系。

          雪花模式

          下圖顯示了具有兩個(gè)維的雪花模式,其中,每個(gè)維都具有 3 個(gè)級(jí)別。雪花模式可以具有任意數(shù)目的維,并且每個(gè)維可以具有任意數(shù)目的級(jí)別。

          要了解有關(guān)維的不同級(jí)別如何形成層次結(jié)構(gòu)的詳細(xì)信息,請(qǐng)參閱層次結(jié)構(gòu)

          層次結(jié)構(gòu)

          層次結(jié)構(gòu)是一組相互之間具有多對(duì)一關(guān)系的級(jí)別,并且這一組級(jí)別共同構(gòu)成維。在關(guān)系數(shù)據(jù)庫中,層次結(jié)構(gòu)的不同級(jí)別既可以存儲(chǔ)在單個(gè)表中(如在星型模式中),也可以存儲(chǔ)在不同的表中(如在雪花模式中)。

          多對(duì)一關(guān)系

          多對(duì)一關(guān)系是指一個(gè)實(shí)體(通常是一個(gè)列或一組列)包含的值引用另一個(gè)具有唯一值的實(shí)體(一個(gè)列或一組列)。在關(guān)系數(shù)據(jù)庫中,這些多對(duì)一關(guān)系通常是由外鍵/主鍵關(guān)系強(qiáng)制實(shí)施的,并且,這些關(guān)系通常是事實(shí)表與維表之間以及層次結(jié)構(gòu)中的級(jí)別之間的關(guān)系。此關(guān)系通常用來描述分類或分組。例如,在具有表 RegionStateCity 的地理模式中,在給定的地區(qū)有許多州,但沒有任何州同時(shí)位于兩個(gè)地區(qū)。同樣,對(duì)于城市,一座城市僅位于一個(gè)州(同名但位于多個(gè)州的城市的處理方式必須略有不同)。關(guān)鍵在于每座城市都剛好位于一個(gè)州,但一個(gè)州可以有許多城市,因而符合“多對(duì)一”這個(gè)術(shù)語。

          層次結(jié)構(gòu)的不同元素(即級(jí)別)在子代級(jí)別與父代級(jí)別之間必須具有多對(duì)一關(guān)系,而無論該層次結(jié)構(gòu)在物理上是以星型模式還是以雪花模式表示的;即,數(shù)據(jù)必須遵守這些關(guān)系。強(qiáng)制實(shí)施多對(duì)一關(guān)系所需的干凈數(shù)據(jù)是維模式的一項(xiàng)重要特征。此外,這些關(guān)系使得有可能根據(jù)關(guān)系數(shù)據(jù)創(chuàng)建 DB2 Alphablox 多維體。

          http://publib.boulder.ibm.com/db2blox/82/zh_cn/cube/cube13.htm

          posted on 2009-06-28 15:09 渠上月 閱讀(234) 評(píng)論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)倉庫

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 临汾市| 屏东县| 乌海市| 石门县| 彝良县| 锦州市| 宣恩县| 达孜县| 黄冈市| 县级市| 涡阳县| 福泉市| 通州区| 青龙| 壤塘县| 湛江市| 玉环县| 辽阳县| 岑巩县| 霍州市| 甘洛县| 涿州市| 子长县| 万年县| 北辰区| 和龙市| 秀山| 平谷区| 乳山市| 景东| 文水县| 博野县| 四子王旗| 金溪县| 古蔺县| 攀枝花市| 景洪市| 融水| 莱州市| 平潭县| 锡林郭勒盟|