專利名稱::一種表達(dá)關(guān)系型在線分析處理系統(tǒng)元數(shù)據(jù)的方法
技術(shù)領(lǐng)域:
:本發(fā)明屬數(shù)據(jù)倉庫
技術(shù)領(lǐng)域:
,具體涉及一種ROLAP系統(tǒng)中元數(shù)據(jù)表達(dá)方法。
背景技術(shù):
:傳統(tǒng)的數(shù)據(jù)庫技術(shù)是以數(shù)據(jù)庫為中心進(jìn)行操作型處理,主要是指對(duì)數(shù)據(jù)庫聯(lián)機(jī)事務(wù)處理(On-LineTransactionProcessing,縮寫為OLTP)。通常是對(duì)一個(gè)或一組記錄的查詢和修改,面對(duì)企業(yè)的特定應(yīng)用服務(wù)的,人們關(guān)心的是響應(yīng)時(shí)間、數(shù)據(jù)安全性和完整性。隨著信息的不斷擴(kuò)增,人們所需要的不僅僅是簡單的事務(wù)處理,更多是匯總乃至決策信息。在日常實(shí)際決策過程中,決策者需要的信息數(shù)據(jù)往往不只是單一的某個(gè)指標(biāo)數(shù)值,而是要能夠從多個(gè)角度觀察某個(gè)指標(biāo)或多個(gè)指標(biāo)的數(shù)值,并能發(fā)現(xiàn)各指標(biāo)之間的關(guān)系。比如某個(gè)公司總經(jīng)理可能想知道“本公司最近兩年在銷售旺季(第三季度)銷售總額的對(duì)比情況,用以決策今年旺季的產(chǎn)品進(jìn)貨等有關(guān)事宜”。這是一個(gè)非常實(shí)際的問題。決策者所需要的數(shù)據(jù)總是與一些統(tǒng)計(jì)指標(biāo)如銷售額,銷售產(chǎn)品,銷售地區(qū),銷售時(shí)間等統(tǒng)計(jì)有關(guān)。這些觀察數(shù)據(jù)的角度稱之為維,這些統(tǒng)計(jì)數(shù)據(jù)是多維數(shù)據(jù),在多維數(shù)據(jù)上進(jìn)行分析是決策的主要內(nèi)容。傳統(tǒng)的數(shù)據(jù)庫很難適應(yīng)這種決策分析。近幾年新興起來的一門在線分析處理(On-LineAnalyticalProcessing,縮寫為OLAP)軟件技術(shù),是專門用于支持復(fù)雜分析操作的,它以一種直觀易懂的餅圖、曲線圖、直方圖等形式將查詢結(jié)果提供給決策人員,側(cè)重于對(duì)決策及管理人員的決策支持。目前,存在三種OLAP的體系結(jié)構(gòu)ROLAP、MOLAP和HOLAP。ROLAP(RationalOLAP,關(guān)系型在線分析處理)體系結(jié)構(gòu)充分利用了目前已有的關(guān)系數(shù)據(jù)庫來存儲(chǔ)、查詢多維數(shù)據(jù),具有較強(qiáng)的伸縮性。而MOLAP體系結(jié)構(gòu)采用了多位數(shù)組技術(shù)存儲(chǔ)數(shù)據(jù),并對(duì)稀疏數(shù)據(jù)采用壓縮技術(shù)處理,提供切片、切塊和旋轉(zhuǎn)等分析操作。這種體系結(jié)構(gòu)的缺點(diǎn)是,當(dāng)分析需求變化時(shí),數(shù)據(jù)結(jié)構(gòu)需要物理的重新組織,以便適應(yīng)用戶需求變化,這提高了建立和維護(hù)數(shù)據(jù)的困難、費(fèi)用,系統(tǒng)復(fù)雜性也相應(yīng)提高。而HOLAP體系結(jié)構(gòu)集成了ROLAP的可伸縮性和MOLAP的快速計(jì)算的特點(diǎn),將大量的詳細(xì)數(shù)據(jù)存放在RDB中,聚集數(shù)據(jù)存放在MOLAP中,從而提高系統(tǒng)的性能。但是,同時(shí),這種體系結(jié)構(gòu)的缺點(diǎn)也同樣明顯,就是比較復(fù)雜。
發(fā)明內(nèi)容本發(fā)明的目的在于提出一種具有較強(qiáng)的可伸縮性、高度的可移植性的表達(dá)ROLAP系統(tǒng)元數(shù)據(jù)的方法。對(duì)于ROLAP系統(tǒng)而言,合理表示元數(shù)據(jù)是一項(xiàng)核心技術(shù)。下面首先介紹ROLAP系統(tǒng)元數(shù)據(jù)的內(nèi)容,然后再具體介紹如何表示這些元數(shù)據(jù)。一個(gè)ROLAP系統(tǒng)至少包含四類元數(shù)據(jù),即多維數(shù)據(jù)集合、維度、級(jí)別、度量。下面介紹這些元數(shù)據(jù)。多維數(shù)據(jù)集合(Cube)多維數(shù)據(jù)集合是ROLAP中的主要對(duì)象,是一個(gè)數(shù)據(jù)集合,可以對(duì)數(shù)據(jù)倉庫中的數(shù)據(jù)進(jìn)行快速訪問。多維數(shù)據(jù)集內(nèi)的單元位置由各維度成員的交集確定,通過對(duì)度量值進(jìn)行聚合得到單元中的值。維度(Dimension)維度是分類的有組織的層次結(jié)構(gòu),它用來描述ROLAP中事實(shí)數(shù)據(jù)表的數(shù)據(jù)。維度一般描述一類成員的相似集合,用戶將基于該集合進(jìn)行分析多維數(shù)據(jù)集的基本組件。級(jí)別(Level)級(jí)別是維度層次結(jié)構(gòu)的一個(gè)元素。級(jí)別描述了數(shù)據(jù)的層次結(jié)構(gòu),從數(shù)據(jù)的最高(匯總程度最大)級(jí)別直到最低(最詳細(xì))級(jí)別。級(jí)別僅存在于維度內(nèi)。度量值(Measure)在多維數(shù)據(jù)集中,度量值是一組值,這些值基于多維數(shù)據(jù)集的事實(shí)數(shù)據(jù)表中的一列,而且通常為數(shù)字。此外,度量值是所分析的多維數(shù)據(jù)集的中心值。即,度量值是最終用戶瀏覽多維數(shù)據(jù)集時(shí)重點(diǎn)查看的數(shù)字?jǐn)?shù)據(jù)。這些元素之間的關(guān)系是1、一個(gè)多維數(shù)據(jù)集合包括一個(gè)或多個(gè)維度,一個(gè)或多個(gè)度量值。其中,維度可以是共享維度,也可以是私有維度。2、一個(gè)維度包括一個(gè)或多個(gè)級(jí)別。3、一個(gè)級(jí)別可以包括一個(gè)或者多個(gè)屬性。ROLAP系數(shù)中元數(shù)據(jù)的表示。XML文件具備良好的表達(dá)能力,因此本發(fā)明選擇使用XML文檔來表示ROLAP系統(tǒng)中的元數(shù)據(jù),其設(shè)計(jì)的DTD文檔如下<?xmlversion=″1.0″?><!ELEMENTSchema(DimensionSpecification*|CubeSpecification*)><!ATTLISTSchema<!--SIPO<DPn="2">--><dpn="d2"/>nameCDATA#REQUIREDdatasourceCDATA#REQUIRED?。荆迹LEMENTDimensionSpecification(LevelSpecification*)><!ATTLISTDimensionSpecificationhasAllCDATA#REQUIREDtablenameCDATA#REQUIREDprimaryKeyCDATA#REQUIRED!><!ELEMENTLevelSpecification(PropertySpecification*)><!ATTLISTLevelSpecificationnameCDATA#REQUIREDcolumnCDATA#REQUIREDuniqueMembers(true|false)?。荆?!ELEMENTPropertySpecificationEMPTY><!ATTLISTPropertySpecificationnameCDATA#REQUIREDcolumnCDATA#REQUIREDtypeCDATA(Numeric|Boolean|String)?。荆?!ELEMENTCubeSpecification(OuterDimensionSpecification*|DimensionSpecification*|MeasureSpecification*)><!ATTLISTCubeSpecificationnameCDATA#REQUIREDfacttableCDATA#REQUIRED?。荆?!ELEMENTOuterDimensionSpecificationEMPTY><!ATTLISTOuterDimensionSpecificationnameCDATA#REQUIREDsourceCDATA#REQUIREDforeignKeyCDATA#REQUIRED?。?lt;!--SIPO<DPn="3">--><dpn="d3"/><!ELEMENTOuterDimensionSpecificationEMPTY><!ATTLISTOuterDimensionSpecificationnameCDATA#REQUIREDsourceCDATA#REQUIREDforeignKeyCDATA#REQUIRED?。荆?!ELEMENTMeasureSpecificationEMPTY><!ATTLISTMeasureSpecificationnameCDATA#REQUIREDcolumnCDATA#REQUIRED?。綝TD文檔的詳細(xì)描述如下(1).Schema作用是整個(gè)元數(shù)據(jù)信息的根節(jié)點(diǎn)。子節(jié)點(diǎn)DimensionSpecification,CubeSpecification,屬性name數(shù)據(jù)倉庫名稱,datasource表示這個(gè)數(shù)據(jù)倉庫所對(duì)應(yīng)的物理關(guān)系數(shù)據(jù)庫;(2).DimensionSpecification作用表示一個(gè)維度信息,子節(jié)點(diǎn)LevelSpecification,屬性name維度名稱,tablename這個(gè)維度所對(duì)應(yīng)的關(guān)系表,primaryKey這個(gè)維度所對(duì)應(yīng)的tablename的主鍵;(3).LevelSpecification作用表示一個(gè)維度的所有的級(jí)別,一個(gè)維度可以有多個(gè)級(jí)別,子節(jié)點(diǎn)PropertySpecification,屬性name級(jí)別名稱,column這個(gè)級(jí)別所對(duì)應(yīng)的維度表的字段,UniqueMember這個(gè)級(jí)別中的成員是否是唯一的;(4).PropertySpecification作用表示一個(gè)級(jí)別的屬性,一個(gè)級(jí)別可以有0個(gè)或者多個(gè)屬性。子節(jié)點(diǎn)無,屬性name屬性名稱,column這個(gè)屬性所對(duì)應(yīng)的關(guān)系表的字段,type屬性的類別,分為字符串類型,數(shù)字類型等;(5).CubeSpecification作用表示一個(gè)多維數(shù)據(jù)集合,子節(jié)點(diǎn)OuterDimensionSpecification,DimensionSpecification,MeasureSpecification,屬性name多維數(shù)據(jù)集合名稱,facttable事實(shí)表名稱;(6).OuterDimensionSpecification作用表示一個(gè)外部維度,也就是一個(gè)共享維度,子節(jié)點(diǎn)無,屬性name維度名稱,source外部維度的名稱,foreignKey外鍵,對(duì)應(yīng)于一個(gè)多維數(shù)據(jù)集合的字段;(7).MeasureSpecification作用表示度量,子節(jié)點(diǎn)無屬性name名稱column這個(gè)度量所在的字段名稱。隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,數(shù)據(jù)倉庫技術(shù)也得到了越來越多的重視。而在數(shù)據(jù)倉庫中如何高效地表示元數(shù)據(jù),一直是構(gòu)建數(shù)據(jù)倉庫的核心技術(shù)之一。對(duì)比多種數(shù)據(jù)倉庫技術(shù),ROLAP技術(shù)具有最好的伸縮性。本發(fā)明提供了一種表示ROLAP系統(tǒng)的元數(shù)據(jù)的方法。這種方法具有下列的優(yōu)點(diǎn)1、具有很強(qiáng)的表達(dá)能力。XML技術(shù)是一種優(yōu)秀的表達(dá)層次結(jié)構(gòu)數(shù)據(jù)的方法,本發(fā)明基于XML技術(shù)的方法也能夠恰如其分地表示數(shù)據(jù)倉庫中的元數(shù)據(jù)信息。2、強(qiáng)伸縮性。本發(fā)明中使用了7個(gè)XML的標(biāo)簽,這些標(biāo)簽?zāi)軌驖M足表達(dá)一個(gè)ROLAP的數(shù)據(jù)倉庫的基本元數(shù)據(jù)的基本要求。當(dāng)然,隨著應(yīng)用的擴(kuò)展,適當(dāng)?shù)卦黾訕?biāo)簽?zāi)軌蚋迂S富地表示數(shù)據(jù)倉庫中的元數(shù)據(jù)。3、具備高度的可移植性。本發(fā)明中,所有的數(shù)據(jù)倉庫元數(shù)據(jù)信息均由一個(gè)XML模式文檔進(jìn)行定義。當(dāng)數(shù)據(jù)倉庫遷徙到其他主機(jī)時(shí),只需要移植這個(gè)元數(shù)據(jù)定義文檔即可。具體實(shí)施例方式通過一個(gè)實(shí)施例進(jìn)一步說明上述發(fā)明。有一個(gè)ROLAP數(shù)據(jù)庫,數(shù)據(jù)來自一個(gè)名為FoodMart的ODBC數(shù)據(jù)源。這個(gè)ROLAP數(shù)據(jù)庫中存在一個(gè)共享的維度Store,這個(gè)維度對(duì)應(yīng)于一個(gè)維度表store。這個(gè)維度包含了四個(gè)級(jí)別來表示所處的地理范疇。四個(gè)級(jí)別分別是StoreCountry,StoreState,StoreCity,和StoreName。同時(shí),這個(gè)ROLAP數(shù)據(jù)庫中包含了一個(gè)名為Sales的多維數(shù)據(jù)集合,它的事實(shí)表是sales_fact_1997。這個(gè)事實(shí)表除了使用一個(gè)共享維度(Store)之外,還有私有維度,名稱為Promotions,其對(duì)應(yīng)的維度表是promotion。另外,多維數(shù)據(jù)集合Sales包含了2個(gè)度量值,分別是UnitSales和StoreCost。這兩個(gè)度量值均是從事實(shí)表sales_fact_1997中來的。下面就是表示這個(gè)ROLAP系統(tǒng)的元數(shù)據(jù)信息。<?xmlversion=″1.0″?><!--SIPO<DPn="6">--><dpn="d6"/><Schemaname=″e(cuò)xample″datasource=″FoodMart″><DimensionSpecificationname=″Store″primaryKey=″store_id″tablename=″store″><LevelSpecificationname=″StoreCountry″column=″store_country″uniqueMembers=″true″/><LevelSpecificationname=″StoreState″column=″store_state″uniqueMembers=″true″/><LevelSpecificationname=″StoreCity″column=″store_city″uniqueMembers=″false″/><LevelSpecificationname=″StoreName″column=″store_name″uniqueMembers=″true″><Propertyname=″StoreType″column=″store_type″=type=″string″/></LevelSpecification></DimensionSpecification><CubeSpecificationname=″Sales″facttable=″sales_fact_1997″><OuterDimensionname=″Store″source=″Store″foreignKey=″store_id″/><DimensionSpecificationname=″Promotions″foreignKey=″promotion_id″primaryKey=″promotion_id″tablename=″promotion″><LevelSpecificationname=″PromotionName″column=″promotion_name″uniqueMembers=″true″/></DimensionSpecification><MeasureSpecificationname=″UnitSales″column=″unit_sales″/><MeasureSpecificationname=″StoreCost″column=″store_cost″/></CubeSpecification></Schema>權(quán)利要求1、一種ROLAP系統(tǒng)中元數(shù)據(jù)的表達(dá)方法,其特征在于使用XML文檔來表示元數(shù)據(jù),其DTD文檔描述如下(1).Schema作用是整個(gè)元數(shù)據(jù)信息的根節(jié)點(diǎn),子節(jié)點(diǎn)DimensionSpecification,CubeSpecification,屬性name數(shù)據(jù)倉庫名稱datasource表示這個(gè)數(shù)據(jù)倉庫所對(duì)應(yīng)的物理關(guān)系數(shù)據(jù)源;(2).DimensionSpecification作用表示一個(gè)維度信息,子節(jié)點(diǎn)LevelSpecification,屬性name維度名稱,tablename這個(gè)維度所對(duì)應(yīng)的關(guān)系表,primaryKey這個(gè)維度所對(duì)應(yīng)的tablename的主鍵;(3).LevelSpecification作用表示一個(gè)維度的所有的級(jí)別,子節(jié)點(diǎn)PropertySpecification,屬性name級(jí)別名稱,column這個(gè)級(jí)別所對(duì)應(yīng)的維度表的字段,UniqueMember這個(gè)級(jí)別中的成員是否是唯一的;(4).PropertySpecification作用表示一個(gè)級(jí)別的屬性,子節(jié)點(diǎn)無,屬性name屬性名稱,column這個(gè)屬性所對(duì)應(yīng)的關(guān)系表的字段,type屬性的類別,可分為字符串類型,數(shù)字類型;(5).CubeSpecification作用表示一個(gè)多維數(shù)據(jù)集合,子節(jié)點(diǎn)OuterDimensionSpecification,DimensionSpecification,MeasureSpecification,屬性name多維數(shù)據(jù)集合名稱,facttable事實(shí)表名稱;(6).OuterDimensionSpecification作用表示一個(gè)外部維度,子節(jié)點(diǎn)無,屬性name維度名稱,source外部維度的名稱,foreignKey外鍵,對(duì)應(yīng)于一個(gè)多維數(shù)據(jù)集合的字段;(7).MeasureSpecification作用表示一個(gè)度量,子節(jié)點(diǎn)無,屬性name名稱,column這個(gè)度量所在的字段名稱。全文摘要本發(fā)明為一種ROLAP系統(tǒng)中元數(shù)據(jù)的表達(dá)方法。它采用XML文檔來表示ROLAP系統(tǒng)中的元數(shù)據(jù)。其中,Schema表示整個(gè)元數(shù)據(jù)信息的根節(jié)點(diǎn),DimensionSpecification表示一個(gè)維度信息,LevelSpecification表示一個(gè)維度的所有的級(jí)別,PropertySpecification表示一個(gè)級(jí)別的屬性,CubeSpecification表示一個(gè)多維數(shù)據(jù)集合,OuterDimensionSpecification表示一個(gè)外部維度,MeasureSpecification表示度量。本發(fā)明方法具有很強(qiáng)的表達(dá)能力,很大的伸縮性和高度的可移植性。文檔編號(hào)G06F17/30GK1588360SQ20041006623公開日2005年3月2日申請(qǐng)日期2004年9月9日優(yōu)先權(quán)日2004年9月9日發(fā)明者金澈清,周傲英申請(qǐng)人:復(fù)旦大學(xué)