mondrianSchema編寫指南_第1頁
mondrianSchema編寫指南_第2頁
mondrianSchema編寫指南_第3頁
mondrianSchema編寫指南_第4頁
mondrianSchema編寫指南_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、如何設(shè)計(jì)一個(gè)蒙德里安架構(gòu)1. 什么是架構(gòu)?2. schema文件1. 注解3. 邏輯模型1. 立方體2. 措施3. 維度,層次,水平1. 上表的映射維度和層次結(jié)構(gòu)2. “全部”成員3. 時(shí)間維度4. 命令和顯示級(jí)別5. 多層次結(jié)構(gòu)6. 退化的維度7. 內(nèi)聯(lián)表8. 會(huì)員性能和格式化9. 近似水平基數(shù)10. 默認(rèn)度量屬性11. 函數(shù)依賴的優(yōu)化12. 表提示4. 星型和雪花模式1. 共享維度2. 加入優(yōu)化5. 先進(jìn)的邏輯結(jié)構(gòu)1. 虛擬多維數(shù)據(jù)集2. 父子層次結(jié)構(gòu)1. 調(diào)整父子層次結(jié)構(gòu)2. 暫停辦理股份過戶表格3. 填充關(guān)閉表3. 成員屬性4. 計(jì)算成員5. 命名集6. 插件1. 用戶定義的函數(shù)2.

2、會(huì)員讀者3. 手機(jī)閱讀器4. 手機(jī)格式化5. 會(huì)員格式化6. 物業(yè)格式化7. 架構(gòu)處理器8. 數(shù)據(jù)源的變化監(jiān)聽器9. 動(dòng)態(tài)數(shù)據(jù)源xmla的servlet7. 國際化8. 聚合表9. 訪問控制1. 定義角色2. 匯總政策3. 聯(lián)盟的作用4. 設(shè)置一個(gè)連接的作用10. 附錄a:xml元素1。什么是架構(gòu)?一個(gè)模式定義了一個(gè)多維數(shù)據(jù)庫。它包含了一個(gè)邏輯模型,由立方體,層次結(jié)構(gòu)和成員組成的,這個(gè)模型到物理模型的映射。的邏輯模型的構(gòu)造用于在mdx語言編寫查詢:立方體,維度,層次,水平,和成員組成。的物理模型是通過邏輯模型的數(shù)據(jù)源。它通常是一個(gè)星型模式,它是一組在關(guān)系數(shù)據(jù)庫中的表后,我們將看到其它類型的映射

3、的例子。2。schema文件蒙德里安架構(gòu)是在一個(gè)xml文件中表示。一個(gè)例子模式,包含幾乎所有的結(jié)構(gòu),我們?cè)谶@里討論,提供作為演示/ foodmart.xml在蒙德里安分布。該數(shù)據(jù)集來填充這個(gè)模式中的分布。目前,只有這樣,才能創(chuàng)建一個(gè)模式是在文本編輯器中編輯一個(gè)架構(gòu)的xml文件。xml語法不是太復(fù)雜,所以這并不困難,因?yàn)樗穆曇簦貏e是如果你使用的foodmart模式為指導(dǎo)的例子。的xml文檔的結(jié)構(gòu)如下所示:aggelementsaggelements關(guān)系有關(guān): =關(guān)系aggelement : =注:xml元素的順序是非常重要的。例如,的的元素有發(fā)生內(nèi)的元素后所有集合,和元素。如果包括它前第一元

4、素,其余的架構(gòu)將被忽略。每個(gè)xml元素的內(nèi)容在附錄a中的xml架構(gòu)。2.1注釋主要元素類型(模式,多維數(shù)據(jù)集,虛擬多維數(shù)據(jù)集,共享維度,維度,層次結(jié)構(gòu),水平,測(cè)量,計(jì)算成員)支持注釋。注解是一個(gè)用戶定義的屬性相關(guān)聯(lián)的元數(shù)據(jù)元素的方式,特別是,允許工具來添加元數(shù)據(jù),而不延伸官方蒙德里安架構(gòu)。創(chuàng)建一個(gè)希望注釋的元素(通常是第一個(gè)子元素,但檢查的架構(gòu)定義詳細(xì)信息)的一個(gè)子元素,包括一個(gè)數(shù)量的元素。元素的名稱在他們的元素必須是唯一的。如果您要添加注釋,以支持你保持一個(gè)特定的工具,仔細(xì)選擇注釋的名稱,以確保它們不沖突具有與其他工具所使用的注釋。以下示例顯示了“作者”和“日期”標(biāo)注連接到一個(gè)對(duì)象。弗雷德打

5、火石 10,000 bc.3。邏輯模型最重要的組成模式的多維數(shù)據(jù)集,措施和尺寸: 一個(gè)多維數(shù)據(jù)集是一個(gè)集合在一個(gè)特定的學(xué)科領(lǐng)域的尺寸和措施。 一個(gè)措施是,你有興趣在測(cè)量的數(shù)量,例如,單位銷售的產(chǎn)品或存貨項(xiàng)目的成本價(jià)。 一個(gè)維度是屬性或?qū)傩约?,通過它可以劃分成子類的措施。例如,您可能希望打破產(chǎn)品銷售它們的顏色,性別的顧客,商店在出售該產(chǎn)品,膚色,性別,和存儲(chǔ)所有尺寸。讓我們來看看在xml定義一個(gè)簡單的模式。尺寸名稱=“時(shí)間”foreignkey =的“time_id”和層次hasall =“假”的primarykey =的“time_id”此架構(gòu)包含一個(gè)多維數(shù)據(jù)集,名為“銷售”。銷售多維數(shù)據(jù)集有

6、兩個(gè)維度,“時(shí)間”,“性別”和四項(xiàng)措施,“銷量”,“店鋪銷售”,“存儲(chǔ)成本”和“利潤”。在此模式中,我們可以寫一個(gè)mdx查詢:select 措施 銷量,措施。店面銷售 on columns, 后代(時(shí)間。1997 q1) on rowsfrom 銷售where 性別。 f這個(gè)查詢是指銷售多維數(shù)據(jù)集(銷售),每個(gè)尺寸措施,時(shí)間,性別,和各成員的那些尺寸。結(jié)果如下:時(shí)間措施 單位銷售措施 店面銷售1997 q1001997 q1 2010年12月001997 q1 2010年12月001997年 q1 日00現(xiàn)在,讓我們來看看更詳細(xì)的架構(gòu)定義。3.1立方多維數(shù)據(jù)集(見)的命名集合的措施和尺寸。的措

7、施和尺寸有共同的一件事是事實(shí)表,在這里“sales_fact_1997”。正如我們將要看到的,事實(shí)表保存列計(jì)算哪些措施,并包含持有的尺寸表。.該事實(shí)表定義使用元素的。如果事實(shí)表是不是在默認(rèn)模式中,你可以使用“模式”屬性提供一個(gè)明確的模式,例如您也可以使用建設(shè),以建立更復(fù)雜的sql語句。不支持結(jié)構(gòu)的事實(shí)表。3.2措施銷售多維數(shù)據(jù)集定義了若干措施,包括“單位銷售”和“店鋪銷售”。每個(gè)測(cè)量(見)都有一個(gè)名字,在事實(shí)表中的列和聚合。聚合通常是“求和”,但“計(jì)數(shù)”,“最小值”,“最大值”,“平均”,和“不同的數(shù)”也是允許的,“不同的數(shù)”有一定的局限性,如果您的多維數(shù)據(jù)集包含父父子層次結(jié)構(gòu)??蛇x的數(shù)據(jù)類型

8、屬性指定單元格的值表示在蒙德里安的緩存,以及它們是如何通過xml返回分析。數(shù)據(jù)類型屬性的值可以有“字符串“,”整數(shù)“,”數(shù)字“,”布爾“,”日期“,”時(shí)間“和”時(shí)間戳“。默認(rèn)值是“數(shù)字“,除了”數(shù)“和”獨(dú)特的計(jì)數(shù)“的措施,這是”整數(shù)“。一個(gè)可選的formatstring屬性指定的值是如何被打印。在這里,我們選擇了輸出單元的銷售沒有小數(shù)位(因?yàn)樗且粋€(gè)整數(shù)),以及同店銷售額(因?yàn)樗且粋€(gè)貨幣值)小數(shù)點(diǎn)后兩位。,和。符號(hào)是語言環(huán)境敏感,所以如果你是在意大利,同店銷售額可能會(huì)出現(xiàn)“48.123,45”。您可以實(shí)現(xiàn)更野的影響,采用先進(jìn)的格式字符串。一項(xiàng)措施可以有一個(gè)標(biāo)題的名稱member.getcap

9、tion()方法,而不是要返回的屬性。定義一個(gè)特定的標(biāo)題有一定道理特殊字母(如:或)要顯示:的措施,而不是來自一列,可以使用一個(gè)細(xì)胞器,或測(cè)量可以使用sql表達(dá)式來計(jì)算其價(jià)值?!按龠M(jìn)銷售”的措施是一個(gè)這樣的例子。(時(shí)sales_fact_1997.promotion_id =0,那么0的其他sales_fact_1997.store_sales結(jié)束)在這種情況下,銷售僅包括在求和,如果它們對(duì)應(yīng)到一個(gè)促進(jìn)銷售??梢允褂萌我獾膕ql表達(dá)式,包括子查詢。但是,基本的數(shù)據(jù)庫必須能夠支持sql表達(dá)式的一個(gè)總的背景下。不同的數(shù)據(jù)庫之間的語法變化是由指定的sql標(biāo)簽的方言。為了提供一個(gè)特定的格式的單元格的值

10、,這一措施可以使用一個(gè)信元格式化器。3.3尺寸,層級(jí),級(jí)別一些更多的定義: 一個(gè)成員是由一組特定的屬性值的維度內(nèi)的一個(gè)點(diǎn)。性別等級(jí)的兩名成員“m”和“f”?!芭f金山”,“加州”和“美國”的存儲(chǔ)層次結(jié)構(gòu)的所有成員。 一個(gè)層次是一組的成員組織成一個(gè)結(jié)構(gòu),方便地進(jìn)行分析。例如,存儲(chǔ)層次結(jié)構(gòu)由商店的名稱,城市,州和國家。層次結(jié)構(gòu)允許你形成中間小計(jì)的分的總的狀態(tài)是在該州的所有的城市總數(shù)的總和,其中每個(gè)子的門店總數(shù)的總和這個(gè)城市。 甲水平的部件具有相同的距離從該層次結(jié)構(gòu)的根目錄是一個(gè)集合。 一個(gè)維度是一家集區(qū)分同一的事實(shí)表的屬性(比方說,當(dāng)天發(fā)生的銷售)的層次結(jié)構(gòu)。對(duì)于均勻性的原因,措施被視為一個(gè)特殊的維

11、度成員,被稱為“辦法”。一個(gè)例子讓我們來看看一個(gè)簡單的尺寸。此維由一個(gè)單一的層次結(jié)構(gòu),它由一個(gè)單一的稱為性別。(正如我們將要看到以后,有一個(gè)特殊的稱為(所有)包含總計(jì))。從性別“列的值的尺寸來在客戶表?!靶詣e”列包含兩個(gè)值,f和m,因此性別維包含的成員性別 f和性別 m。對(duì)于任何給定的銷售,性別層面的性別,購買的顧客。加入的事實(shí)表“sales_fact_1997.customer_id的”,以尺寸表“customer.customer_id的”,這是表示。3.3.1到表的映射維度和層次結(jié)構(gòu)通過一對(duì)列,一個(gè)事實(shí)表,維度表中的其他維度是加入到多維數(shù)據(jù)集。的元素有一個(gè)的foreignkey的屬性,這

12、是一個(gè)事實(shí)表中的列的名稱,在元素有一個(gè)primarykey的屬性。如果層次結(jié)構(gòu)中有一個(gè)以上的表,你可以消除歧義使用primarykeytable屬性。列屬性定義的關(guān)鍵水平。它必須是水平的表中的列的名稱。如果該鍵是一個(gè)表達(dá)式,你可以改用的元素內(nèi)的水平。以下是等同于上述的例子: customer.gender 其他屬性的,的有相應(yīng)的嵌套元素:父元素屬性等效嵌套元素描述柱關(guān)鍵的水平。的namecolumn表達(dá)式定義此級(jí)別的成員的名稱。如果未指定,水平的關(guān)鍵。ordinalcolumn表達(dá)式定義的成員順序。如果未指定,水平的關(guān)鍵。captioncolumn形成的標(biāo)題成員的表達(dá)。如果未指定,則使用級(jí)別名

13、稱。parentcolumn表達(dá)一個(gè)父子層次結(jié)構(gòu)中的子成員引用他們的父成員。中未指定的定期的層次結(jié)構(gòu)。柱sql表達(dá)式來計(jì)算的測(cè)量值(sql聚合函數(shù)的參數(shù))。柱sql表達(dá)式來計(jì)算屬性的值。uniquemembers屬性是用來優(yōu)化sql生成。如果你知道一個(gè)給定的維度表中的列的值是唯一的,所有其他值在該列在的父級(jí),然后設(shè)置uniquemembers的“真”,否則,設(shè)置為“假”。例如,一個(gè)時(shí)間維度,如年,月有uniquemembers =“假”,在每月的水平,在同一個(gè)月出現(xiàn)在不同年份。另一方面,如果你有一個(gè)產(chǎn)品類別 產(chǎn)品名稱層次,和你一定產(chǎn)品名稱是獨(dú)一無二的,那么你可以設(shè)置uniquemembers

14、=“true”。如果你不知道,然后設(shè)置uniquemembers =“假”。在頂層,這將永遠(yuǎn)是uniquemembers =“true”,有沒有父級(jí)。highcardinality屬性用于通知蒙德里安有此維度的元素的數(shù)量是不確定的和非常高的??山邮艿闹凳钦婊蚣俚模ㄗ詈笠粋€(gè)是默認(rèn)值)。維度元素在整個(gè)組執(zhí)行的動(dòng)作時(shí),不能執(zhí)行使用highcardinality =“true”的。3.3.2“所有”成員默認(rèn)情況下,每個(gè)層次都包含一個(gè)頂級(jí)水平,被稱為“(全部)“,其中包含一個(gè)單一的成員被稱為”(所有的hierarchyname)。此會(huì)員是父母的所有其他成員的層次結(jié)構(gòu),從而代表了總計(jì)。它也是默認(rèn)成員的層次

15、結(jié)構(gòu)中,即,用于計(jì)算單元格的值時(shí)不包括一個(gè)軸或在限幅器的層次結(jié)構(gòu)的構(gòu)件,其。的allmembername和alllevelname屬性將覆蓋所有級(jí)別和所有成員的默認(rèn)名稱。如果元件具有hasall =“假”,“所有”的電平被抑制。該維度的默認(rèn)成員將現(xiàn)在的第一級(jí)中的第一個(gè)成員,例如,它會(huì)在時(shí)間層次結(jié)構(gòu),層次結(jié)構(gòu)中的第一年。更改默認(rèn)的成員可以是混亂的,因此你通常應(yīng)該使用hasall =“true”。元素也有defaultmember的屬性,覆蓋的層次結(jié)構(gòu)的默認(rèn)成員:.3.3.3時(shí)間維度時(shí)間維度不同編碼的年/月/周/日的基礎(chǔ)上的蒙德里安架構(gòu)中,由于mdx與時(shí)間相關(guān)的功能,例如: parallelper

16、iod(水平,指數(shù)注冊(cè)會(huì)員) periodstodate(級(jí)成員) wtd(成員) mtd(成員) qtd(成員) ytd(成員) lastperiod(指數(shù)注冊(cè)會(huì)員)時(shí)間維度鍵入=“timedimension”,。的電平在時(shí)間維度中的作用是由水平的leveltype的屬性,其允許的值如下所示:leveltype值意思timeyears級(jí)為一年timequarters級(jí)為四分之一timemonths級(jí)為一個(gè)月timeweeks級(jí)為一個(gè)星期timedays級(jí)別代表天下面是一個(gè)例子的時(shí)間維度:尺寸名稱=“時(shí)間”類型=“timedimension”層次hasall =“true”allmembern

17、ame =“期間”的primarykey =的“dateid”3.3.4順序和顯示的水平請(qǐng)注意,在上面的例子的ordinalcolumn的namecolumn屬性的元素的時(shí)間層次。這些影響的結(jié)果顯示在水平如何。ordinalcolumn屬性指定層次結(jié)構(gòu)表中的一列,提供的順序在一個(gè)給定的水平,而名稱列指定 的列將顯示。例如,在上面本月水平,datehierarchy表具有個(gè)月(1 . 12)和month_name(一月,二月,.)的列。將在內(nèi)部使用的mdx月列的列值,所以有效的成員規(guī)格的形式為:時(shí)間 2005。q1。1。月水平的成員,將顯示的順序一月,二月,等在父子層次結(jié)構(gòu),成員總是按層次結(jié)構(gòu)順

18、序。ordinalcolumn屬性控制的順序出現(xiàn)在他們的父母兄弟姐妹。序列可能是任何數(shù)據(jù)類型,可以合法地使用在order by子句中。訂購的范圍是每母公司,因此,在上面的例子中,day_in_month列應(yīng)周期的每一個(gè)月。返回值的jdbc驅(qū)動(dòng)程序應(yīng)該非空的情況下,java.lang.comparable的其中產(chǎn)量所需的訂貨時(shí),他們的cpareto方法被調(diào)用。級(jí)別包含一個(gè)類型屬性,它可以有值“字符串“,”整數(shù)“,”數(shù)字“,”布爾“,”日期“,”時(shí)間“和”時(shí)間戳“。默認(rèn)值是“數(shù)字”,因?yàn)殒I列通常有一個(gè)數(shù)字類型。如果它是一個(gè)不同的類型,蒙德里安需要知道,這樣它可以正確生成s

19、ql語句,例如,字符串值,將產(chǎn)生單引號(hào)括起來:其中,productsku = 123-455-aa3.3.5多層次結(jié)構(gòu)維度可以包含多個(gè)層次:尺寸名稱=“時(shí)間”foreignkey =的“time_id”和層次hasall =“假”的primarykey =的“time_id”層次名稱=“時(shí)代周刊”hasall,“假”的primarykey =的“time_id”請(qǐng)注意,第一層次不有一個(gè)名字。默認(rèn)情況下,層次結(jié)構(gòu)具有相同的名稱作為它的尺寸,因此,第一層次是所謂的“時(shí)間”。這些層次都沒有太多的共同之處-他們甚至不具有相同的表!-除了他們加入事實(shí)數(shù)據(jù)表中的同一列,的“time_id”。主要的原因是因

20、為它把兩個(gè)在同一維度中的層次結(jié)構(gòu)更有意義的最終用戶,最終用戶都知道,它是沒有意義的“時(shí)代”一軸“時(shí)代周刊”的層次上層次另一軸。如果兩個(gè)層次都是一樣的尺寸,mdx語言的強(qiáng)制執(zhí)行常識(shí),不允許你在同一查詢中使用它們。3.3.6退化的維度一個(gè)退化的維度是一個(gè)維度是如此簡單,這是不值得創(chuàng)建自己的尺寸表。例如,請(qǐng)考慮以下事實(shí)數(shù)據(jù)表:產(chǎn)品資料time_idpayment_methodcustomer_idstore_iditem_count美元5520040106信用1232233.54美元7820040106現(xiàn)金8922120.00美元19920040107自動(dòng)取款機(jī)32222.99美元552004010

21、6現(xiàn)金1222211.18美元并假設(shè)我們創(chuàng)造了一個(gè)維度表的值在payment_method列:payment_method信用現(xiàn)金自動(dòng)取款機(jī)這是相當(dāng)沒有意義的維度表中。它有3個(gè)值,不會(huì)增加任何額外的信息,和一個(gè)額外的連接所產(chǎn)生的成本。相反,你可以創(chuàng)建一個(gè)退化的維度。要做到這一點(diǎn),不表,申報(bào)的尺寸和蒙德里安將承擔(dān)來自事實(shí)數(shù)據(jù)表的列。多維數(shù)據(jù)集名稱=“結(jié)帳”表名=“結(jié)帳”請(qǐng)注意,因?yàn)闆]有加入,“foreignkey屬性尺寸是沒有必要的,并且層 次元素沒有的子元素或primarykey的屬性。3.3.7內(nèi)聯(lián)表inlinetable結(jié)構(gòu)允許你定義一個(gè)數(shù)據(jù)集架構(gòu)中的文件。您必須聲明的名字列,列類型(“字

22、符串”或“數(shù)字”),以及一組行。和,你必須提供一個(gè)唯一的別名,參考的數(shù)據(jù)集。下面是一個(gè)例子:columndef名稱=“desc”類型=“字符串”/ 1 高 2 中 3 這具有相同的效果,如果你有一個(gè)表,在你的數(shù)據(jù)庫被稱為“嚴(yán)重程度”:id遞減1高2中3低和聲明要指定null值的列,省略的,該列,該列的值將默認(rèn)為null。3.3.8會(huì)員性能和格式化正如我們將在后面看到的,水平清晰度也可以定義成員屬性和成員格式化。3.3.9近似水平基數(shù)元素允許,指定可選屬性“approxrowcount”的。指定approxrowcount可以提高性能,減少了需要來確定級(jí)別,層次結(jié)構(gòu)和尺寸基數(shù)。通過xmla連接時(shí)

23、,蒙德里安,這可以有一個(gè)顯著的影響。3.3.10默認(rèn)度量屬性的和元素讓指定可選屬性的“defaultmeasure”的。指定defaultmeasure元素,允許用戶顯式地指定任何基礎(chǔ)的措施,作為一個(gè)默認(rèn)的措施。指定defaultmeasure元素,讓用戶,明確地指定任何virtualcube的測(cè)量,作為一個(gè)默認(rèn)的措施。需要注意的是,如果未指定一個(gè)默認(rèn)的措施,它采取的第一項(xiàng)措施中定義的多維數(shù)據(jù)集作為默認(rèn)的措施。在虛擬多維數(shù)據(jù)集的情況下,便拿起一壘措施的第一個(gè)多維數(shù)據(jù)集內(nèi)定義的默認(rèn)。指定defaultmeasure明確的情況下,你會(huì)想拿起一個(gè)計(jì)算成員作為默認(rèn)的措施將是有益的。為方便起見,計(jì)算出的

24、構(gòu)件可以被定義在一個(gè)基地立方體,并指定為在虛擬數(shù)據(jù)集defaultmeasure。多維數(shù)據(jù)集的名稱=“銷售”defaultmeasure中“單位銷售”. 措施 銷售賣場(chǎng) - 措施 保存費(fèi)用 .virtualcube名稱=“倉庫及銷售”defaultmeasure,“利潤”.3.3.11函數(shù)依賴的優(yōu)化在某些情況下,有可能通過利用已知的函數(shù)依賴于正在處理的數(shù)據(jù),以優(yōu)化性能。這種依賴是典型的生產(chǎn)數(shù)據(jù)系統(tǒng)相關(guān)的業(yè)務(wù)規(guī)則的結(jié)果,往往并不能推斷說,只是看數(shù)據(jù)本身。功能依賴關(guān)系被宣布為蒙德里安使用的dependsonlevelvalue的元素的屬性和屬性的元素uniquekeylevelname的。的dep

25、endsonlevelvalue屬性的成員屬性是用來表示的成員屬性的值在功能上依賴于該成員屬性被定義的的價(jià)值。換言之,對(duì)于一個(gè)給定的電平值,該屬性值是不變的。的uniquekeylevelname一個(gè)屬性用于指示給定的電平的(如果有的話)一起在層次結(jié)構(gòu)中的所有較高級(jí)別作為一個(gè)獨(dú)特的候補(bǔ)鍵,確保這些電平值的任何獨(dú)特的組合,是完全有一個(gè)組合值低于它的級(jí)別。為了說明這一點(diǎn),考慮的層次結(jié)構(gòu)模型的構(gòu)建和許可在美國的汽車:在上面的例子中,我們知道,一個(gè)給定的生產(chǎn)廠只存在于一個(gè)單一的城市和國家,一個(gè)給定的車只有一個(gè)配色方案和一個(gè)修剪水平,并與一個(gè)單一的國家,許可證號(hào)。因此,我們可以說,所有的這些成員屬性在功

26、能上依賴于相關(guān)的值。此外,我們知道車輛識(shí)別號(hào)碼唯一地標(biāo)識(shí)每節(jié)車廂,每節(jié)車廂只有一個(gè)許可證。因此,我們知道的品牌,型號(hào),生產(chǎn)廠,以及車輛識(shí)別號(hào)碼的組合唯一地標(biāo)識(shí)每個(gè)車輛的牌照號(hào)碼是多余的。這些特點(diǎn)使優(yōu)化的group by子句中的sql語句蒙德里安產(chǎn)生。如果沒有任何功能依賴信息,一個(gè)典型的查詢的汽車尺寸上看起來是這樣的:選擇automotive_dimmake_id為c0,automotive_dim。model_id為c1,automotive_dim。plant_id為c2,automotive_dim。plant_state_id為c3,automotive_dim。plant_city_i

27、d為c4,automotive_dim。vehicle_id為c5,automotive_dim。color_idc6,automotive_dim。trim_id為c7,automotive_dim。license_id為c8,automotive_dim。license_state_id為c9從automotive_dim:automotive_dim,group byautomotive_dim。make_id,automotive_dim。model_id,automotive_dim。plant_id,automotive_dim。plant_state_id,automotive_

28、dim。plant_city_id,automotive_dim。vehicle_id,automotive_dim。color_id,automotive_dim。trim_id,automotive_dim。license_id,automotive_dim。license_state_idorder by.然而,由于功能的依賴屬性的架構(gòu)上面的例子中,我們知道該查詢選擇的深度,包括“唯一鍵”的水平,而且所有屬性的查詢功能也依賴于他們的水平。在這種情況下,group by子句是多余的,完全可能會(huì)被淘汰,顯著提高sql查詢的性能在某些數(shù)據(jù)庫:選擇automotive_dimmake_id為c0

29、,automotive_dim。model_id為c1,automotive_dim。plant_id為c2,automotive_dim。plant_state_id為c3,automotive_dim。plant_city_id為c4,automotive_dim。vehicle_id為c5,automotive_dim。color_idc6,automotive_dim。trim_id為c7,automotive_dim。license_id為c8,automotive_dim。license_state_id為c9從automotive_dim:automotive_dim,order

30、 by.如果查詢沒有得到足夠深,包括“唯一鍵”的水平,或有任何成員屬性不優(yōu)化功能依賴于自己的水平,這是不可能的。在某些情況下,不同的優(yōu)化可以由那里是沒有“唯一鍵”電平,但成員屬性中的一些或所有的功能依賴于他們的水平。有些數(shù)據(jù)庫(尤其是mysql)的允許被列在select子句中不也出現(xiàn)在group by子句中的列。在這樣的數(shù)據(jù)庫中,蒙德里安可以簡單地離開功能相關(guān)的成員屬性的group by,這可能會(huì)降低sql查詢處理時(shí)間明顯:選擇automotive_dimmake_id為c0,automotive_dim。model_id為c1,automotive_dim。plant_id為c2,autom

31、otive_dim。plant_state_id為c3,automotive_dim。plant_city_id為c4,automotive_dim。vehicle_id為c5,automotive_dim。color_idc6,automotive_dim。trim_id為c7,automotive_dim。license_id為c8,automotive_dim。license_state_id為c9從automotive_dim:automotive_dim,group byautomotive_dim。make_id,automotive_dim。model_id,automotive

32、_dim。plant_id,automotive_dim。vehicle_id,automotive_dim。license_id,order by.請(qǐng)注意重大變化預(yù)計(jì)將在蒙德里安4.0語法的模式,包括一種新的方法來聲明函數(shù)依賴。雖然期待的是,與蒙德里安3.1架構(gòu)開發(fā)的4.0架構(gòu)的處理器將保持向后兼容性,這些都是過渡性的屬性,在此期間推出可支持4.0將不會(huì)向后兼容。因此,使用這些屬性的任何模式都需要升級(jí)到蒙德里安4.0的一部分遷移到新的語法。3.3.12表提示蒙德里安支持一組有限的數(shù)據(jù)庫特定的提示的元素,然后將其傳遞給sql查詢的表。這些提示如下:數(shù)據(jù)庫提示類型允許的值描述mysql的forc

33、e_index該表上的索引的名稱強(qiáng)制選擇電平值時(shí),從該表中使用的命名的索引。例如: my_index 與依賴的功能優(yōu)化,支持表提示是一個(gè)過渡階段,有可能改變,在蒙德里安4.0。任何使用它們的架構(gòu),可能需要遷移到新的架構(gòu)語法升級(jí)到蒙德里安4.0的一部分。4。星型和雪花模式前面我們看到如何建立一個(gè)基于多維數(shù)據(jù)集的事實(shí)表和事實(shí)表中的(“付款方式”),并在一個(gè)表中的尺寸,加入到事實(shí)表(“性別”)。這是最常見的一種映射,被稱為一個(gè)星型模式。但尺寸可以根據(jù)一個(gè)以上的表,有一個(gè)明確的路徑加入到這些表到事實(shí)表中。這種尺寸被稱為雪花,是指用加入操作符。例如:.加入leftkey =“product_class_key”的rightalias 的“product_class”rightkey =的“product_class_id”加入leftkey =“product_type_id的”rightkey =的“product_type_id”這定義了一個(gè)“產(chǎn)品”維度,包括三個(gè)表。事實(shí)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論