專利名稱:用于聯(lián)機(jī)分析處理的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及由計(jì)算機(jī)執(zhí)行的數(shù)據(jù)庫管理系統(tǒng),尤其是涉及相應(yīng)的OLAP(聯(lián)機(jī)分析處理)和數(shù)據(jù)倉庫應(yīng)用。更具體地,本發(fā)明涉及一種方法和系統(tǒng),用于產(chǎn)生被包含在這樣的數(shù)據(jù)庫管理系統(tǒng)內(nèi)的數(shù)據(jù)記錄的用戶定義的呈現(xiàn)或視圖。更具體地,本發(fā)明涉及具有非常大量數(shù)據(jù)記錄的數(shù)據(jù)庫管理系統(tǒng)。
背景技術(shù):
數(shù)據(jù)倉庫和聯(lián)機(jī)分析處理(OLAP)應(yīng)用強(qiáng)調(diào)需要快速的方法來存儲(chǔ)和檢索多維數(shù)據(jù)。數(shù)據(jù)倉庫是企業(yè)的各種商業(yè)系統(tǒng)收集的全部數(shù)據(jù)或這些數(shù)據(jù)的重要部分的中央儲(chǔ)存庫。有時(shí)使用術(shù)語“信息倉庫”來取代它。典型地,數(shù)據(jù)倉庫被安置在企業(yè)的主機(jī)服務(wù)器上。來自各種聯(lián)機(jī)事務(wù)處理(OLTP)應(yīng)用和其它源的數(shù)據(jù)被有選擇地提取出來并被組織在數(shù)據(jù)倉庫數(shù)據(jù)庫上以便由分析應(yīng)用和用戶查詢使用。數(shù)據(jù)倉庫存儲(chǔ)強(qiáng)調(diào)為了有用的分析和訪問從不同源捕捉數(shù)據(jù),但是一般不從可能需要訪問專門化的、有時(shí)是本地?cái)?shù)據(jù)庫的終端用戶或知識(shí)工作者的角度出發(fā)。后一種技術(shù)通常被稱為數(shù)據(jù)商場(chǎng),數(shù)據(jù)挖掘、Web挖掘和決策支持系統(tǒng)(DSS)是可以使用數(shù)據(jù)倉庫的3種類型的應(yīng)用。
OLAP是使得用戶可以容易地和有選擇地從不同角度提取和觀看數(shù)據(jù)的計(jì)算機(jī)處理。例如,用戶可以請(qǐng)求對(duì)數(shù)據(jù)進(jìn)行分析以便顯示電子表格,該電子表格示出一個(gè)電信公司在當(dāng)年特定月份內(nèi)在一個(gè)國家里銷售的所有移動(dòng)電話產(chǎn)品,將收入數(shù)字與以前月份中的同樣產(chǎn)品的收入數(shù)字進(jìn)行比較,并且然后查看在該國家內(nèi)在同一時(shí)間段內(nèi)的其它產(chǎn)品銷售的比較。
為了便于完成這種分析,OLAP數(shù)據(jù)被存儲(chǔ)在多維數(shù)據(jù)庫內(nèi)。關(guān)系型數(shù)據(jù)庫可以被想象為是兩維的,而多維數(shù)據(jù)庫可以將每個(gè)數(shù)據(jù)屬性,通常被稱為“數(shù)據(jù)鍵”,諸如產(chǎn)品、地理銷售區(qū)域和時(shí)間段作為單獨(dú)的“維度”考慮。OLAP軟件可以定位維度的交集,例如“在某個(gè)時(shí)間段內(nèi)在東部區(qū)域內(nèi)以高于某個(gè)價(jià)格銷售的所有產(chǎn)品”,并且顯示它們。諸如時(shí)間段的屬性可以被分解為子屬性。
與數(shù)據(jù)倉庫類似,OLAP可以被用于數(shù)據(jù)挖掘或發(fā)現(xiàn)數(shù)據(jù)項(xiàng)之間以前未認(rèn)識(shí)到的關(guān)系。由于不是全部的事務(wù)數(shù)據(jù)都需要進(jìn)行趨勢(shì)分析,所以O(shè)LAP數(shù)據(jù)庫不必象數(shù)據(jù)倉庫那樣大。使用開放數(shù)據(jù)庫連接(ODBC),數(shù)據(jù)可以被從已經(jīng)存在的關(guān)系型數(shù)據(jù)庫中導(dǎo)入,以便為OLAP創(chuàng)建多維數(shù)據(jù)庫。
如上所述,OLAP功能主要由支持終端用戶的分析和導(dǎo)航活動(dòng)的對(duì)合并數(shù)據(jù)的動(dòng)態(tài)多維分析確定,包括-跨維度、貫穿分層和/或跨成員地應(yīng)用的計(jì)算和建模;-在連續(xù)的時(shí)間段上進(jìn)行的趨勢(shì)分析;-為屏幕上的查看劃分子集;-對(duì)合并的更深層次的鉆研;-對(duì)底層的詳細(xì)數(shù)據(jù)的研究;和-在查看區(qū)域中樞紐到新的維度比較。
OLAP通常被實(shí)現(xiàn)在多用戶客戶機(jī)/服務(wù)器環(huán)境中,并且試圖提供對(duì)數(shù)據(jù)庫訪問的一致地快速響應(yīng),而不論數(shù)據(jù)庫的大小和復(fù)雜程度是怎樣的。由這種數(shù)據(jù)庫訪問遞送的數(shù)據(jù)共同地被以底層數(shù)據(jù)庫的部分或甚至是整個(gè)內(nèi)容的交叉表或樞紐(pivot)呈現(xiàn)或視圖的方式呈現(xiàn)給終端用戶,底層數(shù)據(jù)庫或視圖主要由被呈現(xiàn)的數(shù)據(jù)記錄的單元的布置定義。這種布置,在使用平面計(jì)算機(jī)監(jiān)視器的典型情況下,必須是兩維的。樞紐呈現(xiàn)的另一個(gè)例子是被提供在計(jì)算機(jī)存儲(chǔ)器、數(shù)據(jù)庫之類內(nèi)的二維數(shù)據(jù)數(shù)組。
如圖1所示,底層數(shù)據(jù)庫的每個(gè)數(shù)據(jù)記錄由若干數(shù)據(jù)屬性或數(shù)據(jù)鍵構(gòu)成,其中同樣地,數(shù)據(jù)記錄的維度以及因此整個(gè)數(shù)據(jù)庫的維度由數(shù)據(jù)鍵的數(shù)目確定。
一個(gè)特定的樞紐呈現(xiàn)通常依賴于預(yù)先指定的用戶對(duì)例如顧客信息、被賣給這些顧客的相應(yīng)商品和銷售每件商品的時(shí)間的數(shù)據(jù)記錄內(nèi)容的特定的鍵布置的偏好。因此通常需要將不同數(shù)據(jù)記錄的內(nèi)容或給定的數(shù)據(jù)記錄的數(shù)據(jù)鍵元素匯總到所述樞紐呈現(xiàn)的單元中。
存在有多種用于產(chǎn)生多維數(shù)據(jù)庫中的數(shù)據(jù)記錄的樞紐呈現(xiàn)的方法。第一種方法是使用公知的簡(jiǎn)單查詢語言(SQL)以便通過數(shù)據(jù)庫查詢獲得已經(jīng)存在的數(shù)據(jù)庫的用戶定義的樞紐視圖。但是因?yàn)榇鎯?chǔ)在數(shù)據(jù)庫中的所有數(shù)據(jù)記錄都必須被訪問以便檢查它們是否滿足底層查詢條件,所以在大型數(shù)據(jù)庫中樞紐視圖的計(jì)算需要相當(dāng)多的處理資源。
作為第二種方法,存在有公知的OLAP軟件工具,其中數(shù)據(jù)記錄被在內(nèi)部使用超立方體數(shù)據(jù)結(jié)構(gòu)處理,因此需要大量的存儲(chǔ)容量以便存儲(chǔ)內(nèi)部產(chǎn)生的OLAP信息。
根據(jù)第三種方法,上面討論的第一種和第二種方法被結(jié)合以便提供一種相應(yīng)的混合概念。但是目前所述的第三種方法也有缺點(diǎn),因?yàn)槠湫阅軙?huì)產(chǎn)生相當(dāng)大的變化并且極其依賴于實(shí)際的樞紐呈現(xiàn)。
發(fā)明內(nèi)容
因此本發(fā)明的一個(gè)目的是提供一種以計(jì)算機(jī)實(shí)現(xiàn)的方法和系統(tǒng),用于產(chǎn)生被包含在數(shù)據(jù)庫管理系統(tǒng)內(nèi)的數(shù)據(jù)記錄的用戶定義的n維矩陣呈現(xiàn)或視圖,所述的方法和系統(tǒng)更加高效,并且因此與根據(jù)現(xiàn)有技術(shù)的方法相比執(zhí)行得更快,并且避免了上面所述的現(xiàn)有技術(shù)的方法的缺點(diǎn)。
本發(fā)明的另一個(gè)目的是提供一種相應(yīng)方法和系統(tǒng),所述方法和系統(tǒng)可以被用于具有適當(dāng)?shù)捻憫?yīng)時(shí)間的聯(lián)機(jī)分析處理(OLAP)環(huán)境中。
本發(fā)明的再一個(gè)目的是提供一種相應(yīng)方法和系統(tǒng),所述的方法和系統(tǒng)僅需要最少的處理資源用于產(chǎn)生所述的矩陣呈現(xiàn)或視圖。
由本發(fā)明的獨(dú)立權(quán)利要求的特征實(shí)現(xiàn)了上述目的。從屬權(quán)利要求的主題是有利的實(shí)施例。
本發(fā)明的一個(gè)基礎(chǔ)思想是以連續(xù)的數(shù)據(jù)序列的方式串行化多維數(shù)據(jù)庫的底層數(shù)據(jù)記錄,多維數(shù)據(jù)庫例如被布置成m維事實(shí)表。因此這個(gè)序列由優(yōu)選地是整數(shù)的占位符值組成,其中每個(gè)這些占位符值被通過參考表或向量鏈接到底層的未改變的m維事實(shí)表。然而,所述矩陣呈現(xiàn)的維度n可以等于所述的維度m。
所述的基礎(chǔ)機(jī)制特別地包括這樣的步驟除了作為索引值的記錄號(hào)之外,將屬于有限的數(shù)據(jù)鍵的所有數(shù)據(jù)值字段的內(nèi)容轉(zhuǎn)換為索引值,并且基于所述的索引值執(zhí)行用于產(chǎn)生最終矩陣呈現(xiàn)的所有排序步驟,即,所述的整個(gè)排序機(jī)制或整個(gè)排序引擎僅使用這些索引值。
應(yīng)當(dāng)說明的是,所述n維矩陣呈現(xiàn)的“基數(shù)”在示例的二維的情況下的含義是所述二維矩陣的列和行的數(shù)目。在多維即,n>=2的情況下,所述基數(shù)相應(yīng)地定義了必要的呈現(xiàn)資源。
在優(yōu)選實(shí)施例中,將被在底層矩陣呈現(xiàn)的單個(gè)單元,例如,一個(gè)二維呈現(xiàn)矩陣的一行中呈現(xiàn)的數(shù)據(jù)記錄被連續(xù)地布置在包括各所述占位符值的子序列中。因此使用相應(yīng)的所述子序列產(chǎn)生所述樞紐呈現(xiàn)的這些單個(gè)單元。結(jié)果,對(duì)于一個(gè)單元的樞紐視圖,可以使用數(shù)據(jù)記錄的整個(gè)序列的一個(gè)數(shù)據(jù)子序列。由所述序列中的開始點(diǎn)具體定義用戶指定的樞紐呈現(xiàn)所需的這些單元中的每一個(gè)單元,通過所述的開始點(diǎn)訪問將被呈現(xiàn)的事實(shí)表的所需的數(shù)據(jù)。
使用這樣的數(shù)據(jù)序列產(chǎn)生最終矩陣呈現(xiàn),從而對(duì)n維的事實(shí)表的參考僅使用所提到的占位符值。換言之,因此使用虛擬的二維矩陣獲得所述矩陣呈現(xiàn)。
在優(yōu)選實(shí)施例中,所述的數(shù)據(jù)序列被以線性向量實(shí)現(xiàn),所述的線性向量包含上面所述的優(yōu)選地由整數(shù)組成的序列。因此,借助于所述的序列向量為各用戶定義的樞紐配置對(duì)例如被包括在事實(shí)表中的每個(gè)維度(組)的數(shù)據(jù)記錄進(jìn)行新的布置。由于使用所述序列向量訪問實(shí)際的數(shù)據(jù)記錄是這樣使用數(shù)據(jù)記錄索引號(hào)完成的,所以可以為用戶實(shí)時(shí)地,即,聯(lián)機(jī)地,即,沒有任何延遲或僅以非常短的延遲或響應(yīng)時(shí)間地執(zhí)行被用于特定樞紐呈現(xiàn)的單元,即將被在特定樞紐視圖中呈現(xiàn)的列和行的計(jì)算。
根據(jù)本發(fā)明的另一實(shí)施例,底層事實(shí)表首先被轉(zhuǎn)換為參考表,基于該參考表產(chǎn)生序列。為了確定數(shù)據(jù)記錄的所述維度中的兩個(gè)維度之間的轉(zhuǎn)換,在另一實(shí)施例中,使用了計(jì)數(shù)向量。
因此根據(jù)本發(fā)明的機(jī)制,不需要出于計(jì)算可能的樞紐呈現(xiàn)的目的對(duì)數(shù)據(jù)庫的數(shù)據(jù)記錄進(jìn)行預(yù)處理,例如,以預(yù)先匯總所有的數(shù)據(jù)記錄的方式,這需要相當(dāng)多的數(shù)據(jù)處理和數(shù)據(jù)存儲(chǔ)資源。
此外,由于內(nèi)部的串行化步驟,數(shù)據(jù)記錄的數(shù)量以及因此數(shù)據(jù)庫的大小可以被擴(kuò)展而不會(huì)對(duì)可能的樞紐呈現(xiàn)(視圖)產(chǎn)生任何影響,其中所需要的處理時(shí)間與底層數(shù)據(jù)庫的大小線性地成比例。因此,第一維度被映射到數(shù)據(jù)記錄的所述至少兩個(gè)維度的至少第二維度上。因此,數(shù)據(jù)庫的數(shù)據(jù)記錄的任意維度可以被彼此映射到對(duì)方之上,從而可以通過插入數(shù)據(jù)記錄的其它維度或甚至其全部分層來擴(kuò)展已有的數(shù)據(jù)庫。
與上面討論的現(xiàn)有技術(shù)的方法相比,根據(jù)本發(fā)明的機(jī)制不需要類似于在大的數(shù)據(jù)集合之間進(jìn)行比較以便計(jì)算樞紐呈現(xiàn)這樣的操作。
此外,數(shù)據(jù)庫的特定數(shù)據(jù)記錄維度可以被在樞紐呈現(xiàn)的不同匯總階段多次使用而不會(huì)出現(xiàn)任何運(yùn)行時(shí)問題。由于對(duì)給定的數(shù)據(jù)庫的后續(xù)的不同樞紐視圖僅使用向量運(yùn)算,前面產(chǎn)生的用于提供用戶定義的樞紐視圖的數(shù)據(jù)記錄的序列被保持為對(duì)于隨后的樞紐視圖來說是有效的,并且因此,下一個(gè)樞紐視圖總是被從已經(jīng)存在的樞紐視圖中推演出來,因此不會(huì)破壞已經(jīng)存在的樞紐視圖。
在本發(fā)明的另一個(gè)方面,所選擇的二維樞紐呈現(xiàn)通?;谟闪泻托械臄?shù)目確定的虛擬的二維矩陣。因此所提出的樞紐呈現(xiàn)機(jī)制為給定的樞紐呈現(xiàn)提供了列和行的所述數(shù)量,以及,除此之外,在子序列的所提到的序列中列和行的交叉點(diǎn)。因此,可以使用單元的列和行索引簡(jiǎn)單地完成虛擬矩陣的單元的呈現(xiàn)。
因此,可以非??斓貜臄?shù)據(jù)庫記錄中產(chǎn)生任意用戶定義的樞紐呈現(xiàn),這是因?yàn)閮H使用單純的參考和計(jì)數(shù)技術(shù)和在整數(shù)值上執(zhí)行的簡(jiǎn)單的線性(一維)向量運(yùn)算產(chǎn)生或計(jì)算所述的樞紐呈現(xiàn)。
要強(qiáng)調(diào)的是,根據(jù)本發(fā)明的樞紐呈現(xiàn)機(jī)制不限于二維,而是也可以被應(yīng)用于n維樞紐呈現(xiàn)。然而在n維的情況下,上面提到的序列向量是(n-1)維的。
下面,將結(jié)合附圖更加詳細(xì)地說明本發(fā)明,從圖中可以明了本發(fā)明的其它特征和優(yōu)點(diǎn)。
在附圖中圖1a,b給出了現(xiàn)有技術(shù)中公知的示例性真實(shí)事實(shí)表和相應(yīng)的樞紐視圖;圖2a-c以表的方式示出了根據(jù)本發(fā)明的用于產(chǎn)生樞紐視圖的機(jī)制的基本原理;圖3a-c示出了根據(jù)本發(fā)明用于產(chǎn)生樞紐視圖的機(jī)制的進(jìn)一步的細(xì)節(jié);圖4a-c示出了根據(jù)本發(fā)明用于產(chǎn)生序列向量的典型的向量運(yùn)算;圖5-6g示出了總覽表的圖,用于說明根據(jù)本發(fā)明如何對(duì)真實(shí)事實(shí)數(shù)據(jù)進(jìn)行排序以便獲得所希望的樞紐視圖;圖7給出了根據(jù)本發(fā)明的最終結(jié)果置換表;和圖8-10給出了根據(jù)本發(fā)明的最終排序步驟。
具體實(shí)施例方式
下面說明了對(duì)于給定的在多數(shù)情況下被以二維的真實(shí)事實(shí)表表示的真實(shí)事實(shí)量,根據(jù)本發(fā)明如何產(chǎn)生任意的樞紐表(交叉表)視圖。要強(qiáng)調(diào)的是,所述的底層樞紐表產(chǎn)生機(jī)制也可以被用于產(chǎn)生n維數(shù)據(jù)集合的m維矩陣呈現(xiàn)。此外,該機(jī)制可以被以最小的代價(jià)和時(shí)間花費(fèi)實(shí)現(xiàn),并且僅需要最少的計(jì)算資源并且因此允許高性能的產(chǎn)生。
此處假設(shè)所述真實(shí)事實(shí)量包括數(shù)據(jù)鍵和包括在每個(gè)鍵維度中的數(shù)據(jù)值,每個(gè)數(shù)據(jù)鍵定義了一個(gè)鍵維度。如下面更詳細(xì)地說明的,由所述鍵維度的用戶選擇的有序的布置、所述鍵維度在所述樞紐視圖的呈現(xiàn)出的維度中的布置以及可能的匯總層給出所述事實(shí)量的樞紐視圖。
圖1a和1b中示出了在本情況中以真實(shí)事實(shí)表表示的這種示例的事實(shí)量和該真實(shí)事實(shí)表的示例的樞紐視圖。在這個(gè)例子中,所述真實(shí)事實(shí)表包括被以鍵維度“顧客”100、“商品”110和“月份”120布置的銷售數(shù)字130。在圖1b中示出的相應(yīng)的示例樞紐視圖以“顧客”/“商品”/“月份”150-170(示出的左邊的3列)的順序給出了圖1a中示出的真實(shí)事實(shí)表的(事實(shí))數(shù)據(jù)值140作為所述銷售(右列)的總計(jì)140。因此,鍵維度“顧客”150和“商品”160被呈現(xiàn)在垂直方向上,其中鍵維度“月份”被匯總為日歷季度值“Q1”-“Q4”170,并且被呈現(xiàn)在樞紐視圖的水平方向上。
用于產(chǎn)生這種樞紐視圖的基本機(jī)制基于這樣的概念,將由用戶選擇的每個(gè)任意的樞紐呈現(xiàn)減少為底層事實(shí)量的數(shù)據(jù)值的連續(xù)的有序的布置(例如,序列向量)。以圖2a-c示出了這種機(jī)制的優(yōu)選實(shí)施例。
如圖2a所示,在本實(shí)施例中,底層真實(shí)事實(shí)表首先被以連續(xù)的索引值200(左列)擴(kuò)展,在本例中它提供了所述事實(shí)的從“1”到“20”的連續(xù)的編號(hào)。在圖2b中示出的結(jié)果樞紐視圖中,在每個(gè)單元210中給出了這些事實(shí)的索引,其銷售值必須在相應(yīng)單元內(nèi)被總計(jì)。
如前所述,基于序列向量產(chǎn)生圖2b中示出的樞紐視圖。圖2c給出了圖2b的樞紐視圖的底層序列向量,該向量由兩列260、270組成,左邊的列260在本例中也包含從“1”到“20”的連續(xù)數(shù)字,并且右邊的列270包括在圖2a中以有序的布置給出的前面提到的索引值275,該有序布置使得能夠隨后建立圖2b的樞紐視圖。
為了更好地理解所述的序列向量,所述序列向量的內(nèi)容被以相反的方向示出,即,從圖2b中給出的樞紐視圖開始。因此,如在所述樞紐視圖的前兩行中由箭頭250所指示的,在所述樞紐呈現(xiàn)的單元210中一行一行地并且從左到右地匯總所述索引,得到了圖2c中給出的序列向量。
如前所述,僅使用向量運(yùn)算產(chǎn)生樞紐視圖,底層向量?jī)H包含整數(shù)值。因此,由于在下面所述的處理步驟中不使用諸如文字鍵值、文本或任意其它真實(shí)事實(shí)值的實(shí)際數(shù)據(jù)鍵值,目前獲得了相當(dāng)大的性能增益。在所有這些處理步驟中,僅使用了上面說明的整數(shù)(參考)值。僅當(dāng)結(jié)束了這些整數(shù)處理步驟時(shí),被包含在結(jié)果序列向量中的參考值被借助后面說明的分配或參考(查找)表轉(zhuǎn)換回相應(yīng)的真實(shí)事實(shí)值。
在第一個(gè)步驟中,如圖3a中給出的真實(shí)事實(shí)表所示,被包含在所述事實(shí)表中的不同鍵維度的所有數(shù)據(jù),諸如顧客名稱“Miller”和“Brown”被在該鍵維度中以唯一的參考值300替代,其中這些唯一的參考值被用作占位符值。圖3a中示出了被轉(zhuǎn)換到所說的參考號(hào)之后的圖2a中示出的示例的真實(shí)事實(shí)表的事實(shí)量。
圖3b中示出了用于對(duì)所述的參考號(hào)進(jìn)行轉(zhuǎn)換的基礎(chǔ)機(jī)制。它基于若干個(gè)分配(或參考)表350-370,分配(或參考)表350-370被用于借助于公知的查找表機(jī)制將不同鍵維度的真實(shí)事實(shí)分配到所說的參考值。圖3b中針對(duì)鍵維度“顧客”350、“商品”360和“月份”370示出了這種情況。如圖3c所示,另一個(gè)鍵維度“季度”380被用于匯總分層,以便能夠?qū)︽I維度“月份”390進(jìn)一步匯總。
對(duì)于圖2a中給出的真實(shí)事實(shí)表的每個(gè)鍵維度,第一整數(shù)向量410提供了相對(duì)于相應(yīng)的鍵維度底層事實(shí)列的事實(shí)的排序順序和元素(參考值)在鍵維度中的出現(xiàn)。第二個(gè)整數(shù)向量400提供了第一塊元素(FBE),它為鍵維度元素(例如“Brown”)的每次出現(xiàn)指出排序序列410內(nèi)它的相應(yīng)的塊的首個(gè)元素?,F(xiàn)在參考圖4a-4c對(duì)此進(jìn)行說明。因此,圖4a-4c的左邊給出的表為每個(gè)鍵維度提供了右邊給出的排序向量?jī)?nèi)的第一項(xiàng)的參考索引。因此對(duì)于圖4a中示出的鍵維度“顧客”的例子來說,鍵“Brown”的所有事實(shí)號(hào)420排列在行1到7,鍵“Jones”的所有事實(shí)號(hào)430排列在行8到14中,并且鍵“Miller”的所有事實(shí)號(hào)440排列在行15到該表的結(jié)尾中。
在本說明書的結(jié)尾處更詳細(xì)地說明了用于獲得包括所述排序順序的第一整數(shù)向量410和包含所述第一塊元素索引的第二整數(shù)向量400的必要步驟。
值得注意的是,鍵維度“季度”的相應(yīng)的呈現(xiàn)可以從用于“月份”的向量中容易地得到,并且因此沒有在此處說明。
現(xiàn)在參考圖5和圖6a-6g,下面說明了如何使用前面所述的整數(shù)向量計(jì)算技術(shù)對(duì)真實(shí)事實(shí)數(shù)據(jù)進(jìn)行排序,以便獲得所希望的樞紐視圖。以提供了被用于最終排序的事實(shí)的第一個(gè)逐塊的排序的預(yù)排序步驟開始,排序被在這些塊中一步一步地計(jì)算,即,按每個(gè)所述樞紐呈現(xiàn)的鍵維度計(jì)算,以便揭示最終的排序順序。通過這些處理步驟,對(duì)于每個(gè)要被排序的鍵維度,新的組被產(chǎn)生,所述的組起隨后的排序步驟的基礎(chǔ)的作用,并且用于在計(jì)算的結(jié)尾處提供樞紐呈現(xiàn)單元的內(nèi)容。
在本例中,通過對(duì)鍵維度“顧客”進(jìn)行排序揭示了所述的預(yù)排序塊。基于有關(guān)的向量,這些圖中示出的被指定為“映射”和“排序位置指針”的表被如圖5中所示那樣初始化。要強(qiáng)調(diào)的是,圖5中示出的表僅是一個(gè)快照(snapshot),其給出了整個(gè)排序處理“顧客”-“商品”-“季度”中的“顧客”-“商品”的具體排序步驟。要說明的是,所有的這些表被遞歸地處理,其中在每個(gè)排序步驟的結(jié)尾,被包含在“結(jié)果置換”表中的字段“事實(shí)#NewGrp”中的事實(shí)被在相應(yīng)的下一個(gè)排序步驟期間在“映射”表和“排序位置指針”表中重新使用。然而,對(duì)于這些表在第一個(gè)排序步驟之前的初始化而言,“映射”表和“排序位置指針”表的列被如下初始化。
“映射”表的“TmpGrp”列的每個(gè)字段被以排序序列的第一維度填充,在當(dāng)前“顧客”的例子中,即,使用以前說明的“真實(shí)事實(shí)”表的唯一參考值300填充。此外,“排序位置指針”表的“NextPos”列的每個(gè)字段被使用相應(yīng)維度的以前說明的FBE表400的“Pos”列初始化。
在全部排序步驟中,“已排序序列”表的“事實(shí)#”列被以相應(yīng)維度410,即相應(yīng)的排序序列步驟中的右邊的維度的“已排序序列”表的“事實(shí)”列填充。結(jié)果,在前面所說明的兩個(gè)初始化步驟之后“結(jié)果置換”的內(nèi)容被刪除,從而這些字段在下面的排序步驟中可以被重新填充。該表中的行數(shù)與被包含在真實(shí)事實(shí)表中的事實(shí)數(shù)相同。下面進(jìn)行的處理步驟以在圖中被指定為“已排序的順序”的與鍵維度“商品”相關(guān)的排序順序確定。
在圖6a-6g中示出的圖示序列中更加詳細(xì)地說明了所述排序機(jī)制本身。這些圖中的每一個(gè)示出了單個(gè)排序步驟,以這樣的順序示出的排序步驟的整個(gè)序列從而僅示出了整個(gè)排序程序的一部分。所述完整的程序基于示出的4個(gè)表的內(nèi)部鏈接。
首先被指定從前面對(duì)鍵維度“顧客”的排序步驟中得到的被指定為“已排序序列”的鍵維度“商品”的表被以參數(shù)“Pseq”從“1”到“20”的順序處理。特別地,對(duì)于被包含在“事實(shí)#”列中的每個(gè)事實(shí)號(hào),在映射表中確定被指定為“TmpGrp”的相應(yīng)的索引。
得到的索引,在圖6a中示出的排序步驟中具體是得到的整數(shù)值“3”,被在“排序位置指針”表中使用,以便確定下一個(gè)位置“NextPos”的值,即,結(jié)果置換表中的目標(biāo)索引,通過該目標(biāo)索引可以識(shí)別當(dāng)前事實(shí)號(hào)的值。另外,被包含在映射表的列“LDGrp”中的相應(yīng)的值被與被包含在“已排序序列”表中的相應(yīng)的值“DGrp”比較。如果這兩個(gè)值不同,這個(gè)索引被在“結(jié)果置換”表的“開始”列中標(biāo)記為“TRUE”,從而定義新組的開始。應(yīng)當(dāng)說明的是,在圖6a中,參數(shù)“NextPos”在示出的程序狀態(tài)中還沒有被增量。
圖6b-6f示出了另外的5個(gè)步驟,并且省略了步驟7-19,并且圖6g是最終獲得的被指定“結(jié)果置換”的置換表(向量)。從而以“商品”-“顧客”排序的步驟的結(jié)果被存儲(chǔ)在圖6g中示出的“結(jié)果置換”表的“事實(shí)#”列中。
在圖7中,再次示出了圖6g中給出的最終結(jié)果置換表。它在有關(guān)的排序序列中表示了目標(biāo)樞紐序列。在“NewGrp”列中,從第一行開始,通過對(duì)組索引加1為每行分配一個(gè)值。如果在“Start”列中的相應(yīng)行被標(biāo)記為布爾值“TRUE”,即,被標(biāo)記為新組的開始,則構(gòu)造所述增量完成。這些組與真實(shí)事實(shí)所提供的鍵維度“顧客”和“商品”的可能的不同組合有關(guān)。在上面的程序的執(zhí)行過程中,可以容易地確定和管理在所述鍵維度中相應(yīng)于這些組的參考號(hào),所述的參考號(hào)提供了對(duì)真實(shí)事實(shí)的最終呈現(xiàn)所需的各底層鍵文本的訪問。
進(jìn)一步參考圖8,給出了從前面的排序步驟“顧客”對(duì)“商品”的結(jié)果開始的下一個(gè)排序步驟“顧客”-“商品”-“季度”的初始化。應(yīng)說明的是,包括了一個(gè)附加的匯總步驟,其中維度“月份”被匯總到“季度”?!芭判蛭恢弥羔槨北淼摹癗extPos”列被以指示值的出現(xiàn)的相應(yīng)的“Pseq”號(hào)初始化,在本實(shí)施例中,該指示值為“結(jié)果置換”表的“開始”列中的布爾“TRUE”值。
從“結(jié)果置換”表的“事實(shí)#”列開始,該列中的每個(gè)字段被用作一個(gè)項(xiàng)點(diǎn),用于以“結(jié)果置換”表的“NewGrp”字段中的相應(yīng)的值填充圖8中示出的“映射”表的“TemGrp”列。
在圖8到10中,根據(jù)前面的圖給出了本實(shí)施例的如此揭示了最終的樞紐呈現(xiàn)的最終排序步驟。因此基于在“事實(shí)#”列中提供的事實(shí)號(hào)和在“NewGrp”列中提供的組索引,另一個(gè)相應(yīng)的“映射”表和“排序位置指針”被如前所述地再次初始化,它們使得可以對(duì)鍵維度“季度”進(jìn)行下面的排序序列。圖8中給出了這個(gè)初始化得到的表。在圖9a-f中,示出了前5個(gè)步驟和最終排序序列的最后一個(gè)排序步驟。這些圖相應(yīng)于類似的圖6b-g,并且因此此處不再更詳細(xì)地說明。
整個(gè)排序程序利用圖10中給出的“樞紐序列”表的計(jì)算完成。因此整個(gè)程序揭示了有序的鍵維度“顧客”-“商品”-“季度”的當(dāng)前樞紐呈現(xiàn)的一個(gè)順序序列向量。這個(gè)順序序列向量被存儲(chǔ)在“結(jié)果置換”表的“事實(shí)#”列中。在“NewGrp”列中被提供的底層組索引與所述底層樞紐呈現(xiàn)或視圖的相應(yīng)單元有關(guān)?;诹小笆聦?shí)#”中的各項(xiàng),可以容易地確定其它相應(yīng)的事實(shí)參考。
上面給出的例子僅包括一個(gè)鍵維度,它被用于樞紐視圖的水平規(guī)定項(xiàng)。應(yīng)當(dāng)說明的是,所述的排序程序不限于被用于樞紐規(guī)定項(xiàng)的任何數(shù)目的鍵維度。
整個(gè)程序?yàn)槊總€(gè)樞紐維度確定單獨(dú)的排序序列。通過對(duì)單獨(dú)產(chǎn)生的序列使用所述的排序程序,如上所述以第一個(gè)的結(jié)果開始并且以下一個(gè)作為“映射”表和“排序位置指針”表的輸入,產(chǎn)生整個(gè)序列。
整個(gè)排序處理當(dāng)然也可作用于圖3a中示出的“真實(shí)事實(shí)”表的子集。應(yīng)當(dāng)說明的是,圖5中示出的“映射”表的行數(shù)相應(yīng)于“已排序序列”表的“事實(shí)#”列的最大可能值,即,“真實(shí)事實(shí)”表的事實(shí)行的數(shù)目。在例如由于過濾準(zhǔn)則只有所述事實(shí)的子集被用于所述的排序處理的情況下,“映射”表的大小能夠被減小到所選擇的事實(shí)的大小。這可以在“已排序序列”表的“事實(shí)#”列的每個(gè)上述的初始化在相應(yīng)的子序列中使用真實(shí)事實(shí)索引的相關(guān)索引時(shí)被實(shí)現(xiàn)。排序處理的結(jié)果存儲(chǔ)在“結(jié)果置換”表的“事實(shí)#”列中,它需要被轉(zhuǎn)換回真實(shí)事實(shí)索引。
如上所述,“第一塊元素”(FBE)整數(shù)向量400和“排序順序”整數(shù)向量410被用于每個(gè)排序步驟的初始化。在圖3a中示出的“真實(shí)事實(shí)”表的鍵維度310上計(jì)算LBE索引向量。作為第一個(gè)步驟,所述的計(jì)數(shù)向量被計(jì)算,其中所述計(jì)數(shù)向量的每個(gè)項(xiàng)包含“真實(shí)事實(shí)#”表中的相應(yīng)鍵維度的相應(yīng)參考號(hào)的出現(xiàn)次數(shù)。計(jì)數(shù)向量中的每個(gè)值反映了相應(yīng)參考號(hào)的塊長(zhǎng)度。通過從第一個(gè)字段到最后一個(gè)字段對(duì)其值進(jìn)行累加對(duì)計(jì)數(shù)向量進(jìn)行處理,為每個(gè)步驟提供了相應(yīng)組的開始位置。其結(jié)果被存儲(chǔ)在FBE索引向量400中。
使用所述的排序程序計(jì)算“排序順序”整數(shù)向量410。在該情況下,“已排序序列”表的“DGrp”列的每個(gè)字段被以相同的值,例如,“1”填充?!笆聦?shí)#”列的每個(gè)字段被以“Pseq”列的相應(yīng)值填充?!坝成洹北淼摹癟mpGrp”列的每個(gè)字段被以圖3a中所示的相應(yīng)的維度鍵的值填充?!芭判蛭恢弥羔槨北淼摹癗extPos”列被以相應(yīng)的維度鍵的“FBE”整數(shù)向量400填充。在該初始化上執(zhí)行所述排序程序在“結(jié)果置換”表的“事實(shí)#”列中提供了“排序順序”整數(shù)向量410。
應(yīng)當(dāng)說明的是,當(dāng)分層的層例如“季度”被在當(dāng)前的樞紐規(guī)定項(xiàng)中使用時(shí),同樣的程序被使用。當(dāng)相應(yīng)維度鍵例如“月份”的真實(shí)事實(shí)列被轉(zhuǎn)換到所述分層的層的參考號(hào)時(shí),可以計(jì)算“FBE”和“排序順序”整數(shù)向量。
最后,再參考圖2b和7,更加詳細(xì)地說明了根據(jù)本發(fā)明如何計(jì)算所述的項(xiàng)指針。最終樞紐呈現(xiàn)的基數(shù),例如,二維樞紐呈現(xiàn)中的列和行數(shù)是所述排序程序的另一個(gè)結(jié)果。對(duì)于樞紐視圖的每個(gè)所述維度,相應(yīng)的樞紐視圖維度的基數(shù)取決于所述樞紐規(guī)定項(xiàng)和作為所述樞紐視圖的輸入的事實(shí)。在給出的例子中,在“顧客”-“商品”的排序步驟之后可以得到垂直維度的基數(shù)?!敖Y(jié)果置換”表的“NewGrp.”列的最后一個(gè)字段(見圖6g)包含所得到的組的數(shù)目。這個(gè)數(shù)目等于得到的樞紐視圖的垂直維度的基數(shù)。因此,對(duì)每個(gè)樞紐維度進(jìn)行獨(dú)立處理,提供了相應(yīng)的樞紐維度的所需的基數(shù)。
權(quán)利要求
1.一種用于產(chǎn)生m維數(shù)據(jù)庫的至少一部分的任意的n維矩陣呈現(xiàn)的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述的m維數(shù)據(jù)庫由具有至少一個(gè)鍵維度和至少一個(gè)相應(yīng)的數(shù)據(jù)值字段的真實(shí)數(shù)據(jù)記錄組成,所述方法包括如下步驟根據(jù)所述的n維矩陣呈現(xiàn),計(jì)算所述數(shù)據(jù)值字段的項(xiàng)的排序序列;為所述n維矩陣呈現(xiàn)的每個(gè)維度,計(jì)算在所述的排序序列中的相應(yīng)的項(xiàng)點(diǎn)信息;基于所述的計(jì)算出的排序序列和所述的計(jì)算出的項(xiàng)點(diǎn)信息,計(jì)算所述n維矩陣呈現(xiàn)的基數(shù);基于所述的基數(shù)產(chǎn)生所述的任意的n維矩陣呈現(xiàn),其中基于所述的排序序列和所述的項(xiàng)點(diǎn)信息處理所述的數(shù)據(jù)值字段。
2.如權(quán)利要求1的方法,其中將所有數(shù)據(jù)記錄的鍵維度轉(zhuǎn)換為索引值,所述的索引值標(biāo)注所述鍵維度的相應(yīng)鍵的項(xiàng)的屬性,并且其中將已排序的索引值再次轉(zhuǎn)換回所述的真實(shí)數(shù)據(jù),以便產(chǎn)生所述的任意的矩陣呈現(xiàn)。
3.如權(quán)利要求2的方法,其中以向量表示一個(gè)鍵維度的所述索引值。
4.如權(quán)利要求2或3的方法,其中以整數(shù)表示所述的索引值。
5.如前面任意一個(gè)權(quán)利要求的方法,包括如下特定的步驟為所述數(shù)據(jù)庫的每個(gè)維度產(chǎn)生參考表,所述的參考表僅包括所述的整數(shù)值,其中所述的參考表包括每個(gè)數(shù)據(jù)記錄的記錄標(biāo)識(shí)符,從而保持了所述數(shù)據(jù)庫的維度結(jié)構(gòu);基于所述的參考表,以標(biāo)量向量運(yùn)算基于所述任意矩陣呈現(xiàn)的維度結(jié)構(gòu)產(chǎn)生序列向量;基于所述的參考表,產(chǎn)生計(jì)數(shù)向量,計(jì)數(shù)向量提供了被包括在數(shù)據(jù)記錄的所述至少一個(gè)維度中的一個(gè)維度內(nèi)的數(shù)據(jù)記錄的數(shù)量,從而定義了數(shù)據(jù)的所述至少一個(gè)維度中的不同維度之間的轉(zhuǎn)換;呈現(xiàn)所述數(shù)據(jù)庫的所述任意矩陣呈現(xiàn),其中使用所述的記錄標(biāo)識(shí)符,利用被包含在所述序列向量和所述計(jì)數(shù)向量中的真實(shí)數(shù)據(jù),對(duì)數(shù)據(jù)記錄的所述至少一個(gè)維度進(jìn)行分組。
6.如權(quán)利要求5的方法,其中所述的序列向量?jī)H包含整數(shù)。
7.如前面任意一個(gè)權(quán)利要求的方法,其中對(duì)所述項(xiàng)點(diǎn)信息的計(jì)算基于第一塊元素(FBE)索引和/或最后一個(gè)塊元素(LBE)索引。
8.如前面任意一個(gè)權(quán)利要求的方法,其中將真實(shí)數(shù)據(jù)記錄的所述至少一個(gè)維度的第一維度映射到真實(shí)數(shù)據(jù)記錄的所述至少一個(gè)維度的至少第二維度。
9.如權(quán)利要求5到8的任意一個(gè)權(quán)利要求的方法,其中所述參考表是基于真實(shí)事實(shí)表產(chǎn)生的,真實(shí)事實(shí)表首先被用連續(xù)的索引值擴(kuò)展,所述的連續(xù)的索引值提供了所述真實(shí)事實(shí)的連續(xù)的編號(hào)。
10.如權(quán)利要求5到9的任意一個(gè)權(quán)利要求的方法,其中所述的序列向量包括兩個(gè)列,左邊的列包含所述的連續(xù)的整數(shù),并且右邊的列包含有序排列的所述的索引值,該有序排列使得可以順序地建立所述的任意的矩陣呈現(xiàn)。
11.如前面任意一個(gè)權(quán)利要求的方法,其中為產(chǎn)生所述的任意的矩陣呈現(xiàn)僅執(zhí)行基于整數(shù)的向量計(jì)算。
12.如權(quán)利要求9到11的任意一個(gè)權(quán)利要求的方法,其中執(zhí)行預(yù)排序步驟,它提供了被用于以后的排序步驟的真實(shí)事實(shí)的第一逐塊排序,其中在這些塊中按所述樞紐呈現(xiàn)的每個(gè)鍵維度一步一步地計(jì)算所述的排序,以便揭示任意的排序順序。
13.如權(quán)利要求9到12中任意一個(gè)權(quán)利要求的方法,其中從所述排序步驟中得到的索引值被在排序位置指針表中使用,以便確定結(jié)果置換表中目標(biāo)索引的值,當(dāng)前真實(shí)事實(shí)值可以用該值標(biāo)識(shí)。
14.如權(quán)利要求13的方法,其中所述的結(jié)果置換表在有關(guān)的排序序列中表示目標(biāo)矩陣序列。
15.一種用于在數(shù)據(jù)處理系統(tǒng)中執(zhí)行的數(shù)據(jù)處理程序,包括軟件代碼部分,當(dāng)所述程序被在所述計(jì)算機(jī)上運(yùn)行時(shí),用于執(zhí)行根據(jù)權(quán)利要求1到14中任意一個(gè)權(quán)利要求的方法。
16.一種存儲(chǔ)在計(jì)算機(jī)可用介質(zhì)上的計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)可讀的程序裝置,當(dāng)所述程序被在所述計(jì)算機(jī)上運(yùn)行時(shí),用于使計(jì)算機(jī)執(zhí)行根據(jù)權(quán)利要求1到14中任意一個(gè)權(quán)利要求的方法。
17.一種聯(lián)機(jī)分析處理(OLAP)系統(tǒng),用于借助于數(shù)據(jù)庫的至少一部分的任意n維矩陣呈現(xiàn)分析被包含在所述數(shù)據(jù)庫中的真實(shí)事實(shí)數(shù)據(jù),其中所述的數(shù)據(jù)庫包括數(shù)據(jù)記錄的至少一個(gè)維度,每個(gè)數(shù)據(jù)記錄包括至少一個(gè)數(shù)據(jù)鍵和相應(yīng)的數(shù)據(jù)值字段,所述的OLAP系統(tǒng)的特征在于如權(quán)利要求1的方法。
全文摘要
公開了一種用于產(chǎn)生被包含在數(shù)據(jù)庫中的數(shù)據(jù)記錄的用戶定義的樞紐視圖的方法和系統(tǒng),其中,如圖2a所示,底層真實(shí)事實(shí)表首先被以連續(xù)的索引值(200)擴(kuò)展,連續(xù)索引值提供了所述事實(shí)的從“1”到“x”(在本例中x=20)的連續(xù)的編號(hào)。在圖2b中所示的結(jié)果樞紐視圖中,這些事實(shí)的索引被在每個(gè)單元(210)中呈現(xiàn),它的銷售值必須被在相應(yīng)的單元中被總計(jì)。借助于序列向量產(chǎn)生所述的樞紐視圖。圖2c中給出了圖2b中的樞紐視圖的底層序列向量,并且該向量包括兩個(gè)列(260、270),左邊的列(260)包括從“1”到“x”的連續(xù)數(shù)字,并且右邊的列(270)包括圖2a中以有序的排列示出的所提到的索引值(275),該有序的排列使得能夠順序地建立圖2b的樞紐視圖。
文檔編號(hào)G06F17/30GK1688998SQ03824283
公開日2005年10月26日 申請(qǐng)日期2003年9月11日 優(yōu)先權(quán)日2002年10月18日
發(fā)明者帕特里克·阿爾拉斯, 阿爾馮·斯坦因霍夫 申請(qǐng)人:國際商業(yè)機(jī)器公司