欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于網(wǎng)狀關(guān)系維的數(shù)據(jù)處理方法和系統(tǒng)的制作方法

文檔序號(hào):6559701閱讀:240來(lái)源:國(guó)知局

專(zhuān)利名稱(chēng)::基于網(wǎng)狀關(guān)系維的數(shù)據(jù)處理方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
:本發(fā)明一般涉及數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)的數(shù)據(jù)操縱,尤其涉及多維DBMS中由網(wǎng)狀關(guān)系維限定的聚合操作的系統(tǒng)和方法。
背景技術(shù)
:如果按照現(xiàn)有的DBMS中所操縱的維的域值來(lái)分,維通常分為兩類(lèi)。一類(lèi)為枚舉或數(shù)值型,這種維的特點(diǎn)是可以用枚舉的方式或者數(shù)值的方式定義維的域值。例如一個(gè)公司職員維中,包括屬性“員工ID”、“員工姓名”和“員工性別”。其中,“員工ID”的實(shí)例可以由包含數(shù)字和字母的字符組合構(gòu)成;“員工姓名”的實(shí)例可以由字符組合構(gòu)成;“員工性別”的實(shí)例可以用“男”或“女”這種枚舉值表示。在DBMS中,這種維可以通過(guò)“集合操作(Setoperation)”來(lái)進(jìn)行聚合操作。另一類(lèi)維是維的屬性值之間具有層次關(guān)系。在這類(lèi)維中,屬性之間具有偏序關(guān)系,即具有概括/特化(generalize/specialize)的關(guān)系。例如,在某個(gè)城市的行政區(qū)劃維中,可能包含如下屬性“區(qū)/縣”、“街道”和“社區(qū)”,其中“區(qū)/縣”是“街道”和“社區(qū)”的上一級(jí)機(jī)構(gòu),“街道”是“社區(qū)”的上一級(jí)機(jī)構(gòu)。如果將這種維的每個(gè)實(shí)例定義為一個(gè)節(jié)點(diǎn),則所有的實(shí)例將構(gòu)成一個(gè)沒(méi)有標(biāo)記的有向無(wú)環(huán)圖(DAG)(或者稱(chēng)為偏序圖)。傳統(tǒng)的聯(lián)機(jī)分析處理系統(tǒng)(OLAP)所處理和分析的維通常是所述兩類(lèi)維,并通過(guò)使用維的屬性對(duì)維表進(jìn)行聚合操作,從而產(chǎn)生符合用戶(hù)需求的分析結(jié)果。但是,多維DBMS系統(tǒng)中還有一類(lèi)維目前尚不能由傳統(tǒng)的OLAP來(lái)方便地進(jìn)行處理。這類(lèi)維我們稱(chēng)之為網(wǎng)狀關(guān)系維(NetworkedRelationalDimension)。這類(lèi)維的主要特點(diǎn)是,維的某些屬性(以后稱(chēng)之為實(shí)體或者角色)由具有傳遞特性的網(wǎng)狀關(guān)系進(jìn)行約束?,F(xiàn)在進(jìn)一步舉例說(shuō)明以上所描述的三種維的特點(diǎn)。假設(shè)圖1A是某跨國(guó)公司的子公司地址維表(Locationtable),圖1B是該跨國(guó)公司的子公司資產(chǎn)維表(Companytable),圖1C是該跨國(guó)公司的各子公司的股權(quán)關(guān)系維表(Shareholdingtable)。子公司地址維的屬性包括LID(公司地址編號(hào))、country(國(guó)家)、state(州)和city(城市)。子公司資產(chǎn)維的屬性包括CID(公司編號(hào))、location(地址)和asset(資產(chǎn))。股權(quán)關(guān)系維包括RID(股權(quán)關(guān)系編號(hào))、holder(持股人)、owner(被持股人)、type(持股類(lèi)型)和percent.(持股比例),其中DS表示派生股,PS表示衍生股。圖2A是由圖1A所示的子公司地址維表所在的維中的實(shí)體和關(guān)系所得到的實(shí)體實(shí)例的偏序圖。在該偏序圖中,按照層次關(guān)系表示出圖1A的子公司地址維中各實(shí)體實(shí)例的關(guān)系。在傳統(tǒng)的OLAP系統(tǒng)中,可以利用已有的分析技術(shù),以圖1A的子公司地址維中的公司地址作為限制條件對(duì)圖1B所示的子公司資產(chǎn)表中各子公司的資產(chǎn)進(jìn)行聚合操作。但是,當(dāng)將圖1C所示的維中的股權(quán)持有關(guān)系作為限制條件對(duì)圖1B所示的子公司資產(chǎn)表中各子公司的資產(chǎn)進(jìn)行聚合操作時(shí),傳統(tǒng)的OLAP尚沒(méi)有對(duì)這種復(fù)雜的網(wǎng)狀關(guān)系進(jìn)行有效描述的方法,也無(wú)法進(jìn)行有效的數(shù)據(jù)庫(kù)查詢(xún)。圖2B示出圖1C中的實(shí)體實(shí)例的關(guān)系圖。從該圖可以看出,實(shí)體實(shí)例A、B、C和D之間呈現(xiàn)出多種復(fù)雜的網(wǎng)狀關(guān)系,而非圖2A中所示的偏序關(guān)系。例如公司A持有公司B的50%的DS;公司B持有公司C的30%的PS;但是公司B又持有公司D的20%的DS,公司D又持有公司A的10%的PS。其中,各公司之間可能存在間接的持股關(guān)系,例如公司A間接持股公司C和D的股份。當(dāng)例如基于這種網(wǎng)狀的間接持股關(guān)系統(tǒng)計(jì)例如A公司所間接持股的那些子公司的資產(chǎn)情況時(shí),傳統(tǒng)的OLAP系統(tǒng)就無(wú)法對(duì)這種網(wǎng)狀關(guān)系維中的屬性進(jìn)行有效的聚合操作。具體而言,傳統(tǒng)的OLAP系統(tǒng)無(wú)法明確地對(duì)這種網(wǎng)狀關(guān)系維的限制條件進(jìn)行定義或描述。如果要實(shí)現(xiàn)對(duì)這種網(wǎng)狀關(guān)系維進(jìn)行操縱,需要編程人員有高超的編程技巧,和對(duì)實(shí)例關(guān)系的全面了解,而這對(duì)于復(fù)雜和龐大的網(wǎng)狀關(guān)系維而言是無(wú)法實(shí)現(xiàn)的。如何快速方便地從這種具有網(wǎng)狀結(jié)構(gòu)的實(shí)體關(guān)系中搜索出符合某些限制條件的實(shí)體關(guān)系,在現(xiàn)有的OLAP系統(tǒng)中尚未有適當(dāng)?shù)慕鉀Q方案。
發(fā)明內(nèi)容為了解決現(xiàn)有技術(shù)的上述問(wèn)題,本發(fā)明的一個(gè)目的是提供一種支持多維DBMS中由網(wǎng)狀關(guān)系維限定的聚合操作的系統(tǒng)和方法。為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種基于網(wǎng)狀關(guān)系維的數(shù)據(jù)處理方法,其特征在于,包括聚合條件描述步驟,描述對(duì)具有網(wǎng)狀關(guān)系的實(shí)體和/或所述實(shí)體之間的關(guān)系的屬性執(zhí)行的聚合作為聚合條件;限制條件描述步驟,描述該具有網(wǎng)狀關(guān)系的實(shí)體之間的關(guān)系的傳遞規(guī)則作為限制條件;轉(zhuǎn)換步驟,將所述聚合條件和所述限制條件轉(zhuǎn)換為由數(shù)據(jù)庫(kù)操縱語(yǔ)言所描述的語(yǔ)句。本發(fā)明還提供一種基于網(wǎng)狀關(guān)系維的數(shù)據(jù)處理系統(tǒng),其特征在于,包括聚合條件描述裝置,描述對(duì)具有網(wǎng)狀關(guān)系的實(shí)體和/或所述實(shí)體之間的關(guān)系的屬性執(zhí)行的聚合作為聚合條件;限制條件描述裝置,描述該具有網(wǎng)狀關(guān)系的實(shí)體之間的關(guān)系的傳遞規(guī)則作為限制條件;轉(zhuǎn)換裝置,將所述聚合條件和所述限制條件轉(zhuǎn)換為由數(shù)據(jù)庫(kù)操縱語(yǔ)言所描述的語(yǔ)句。本發(fā)明使用簡(jiǎn)潔的描述方式對(duì)網(wǎng)狀關(guān)系維進(jìn)行描述,并能夠高效地將該描述轉(zhuǎn)換為標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)操縱語(yǔ)言。根據(jù)本發(fā)明,可以自動(dòng)生成復(fù)雜的數(shù)據(jù)庫(kù)查詢(xún),減輕用戶(hù)所需要承受的編程技巧和人力上的負(fù)擔(dān)。根據(jù)本發(fā)明,可以對(duì)超大量具有復(fù)雜的網(wǎng)狀關(guān)系結(jié)構(gòu)的數(shù)據(jù)表進(jìn)行數(shù)據(jù)操縱。根據(jù)本發(fā)明,增強(qiáng)了多維數(shù)據(jù)建模的能力,為進(jìn)行數(shù)據(jù)挖掘提供一種有效的手段。通過(guò)以下結(jié)合附圖對(duì)本發(fā)明的最佳實(shí)施方式的詳細(xì)說(shuō)明,本發(fā)明的這些以及其他優(yōu)點(diǎn)將更加明顯。圖1A是某跨國(guó)公司的子公司地址維表。圖1B是跨國(guó)公司的子公司資產(chǎn)維表。圖1C是跨國(guó)公司的各子公司的股權(quán)關(guān)系維表。圖2A是由圖1A所得到的實(shí)體實(shí)例的偏序圖。圖2B示出圖1C中的實(shí)體實(shí)例的關(guān)系圖。圖3是根據(jù)本發(fā)明的方法流程圖。圖4是根據(jù)本發(fā)明的第一實(shí)施方式的系統(tǒng)方框圖。圖5示出進(jìn)行聚合條件描述的流程圖。圖6示出進(jìn)行限制條件描述的流程圖。圖7示出了根據(jù)本發(fā)明將限制條件描述翻譯為SQL查詢(xún)語(yǔ)句的處理流程圖。圖8示出了根據(jù)本發(fā)明構(gòu)造結(jié)構(gòu)化查詢(xún)語(yǔ)言的查詢(xún)語(yǔ)句中的WHERE語(yǔ)句的處理流程圖。圖9示出了圖8中A部分的處理流程圖。圖10示意性地表示了其中可以實(shí)現(xiàn)本發(fā)明的第一實(shí)施方式的計(jì)算機(jī)系統(tǒng)。圖11示出根據(jù)本發(fā)明第二實(shí)施方式的系統(tǒng)方框圖。具體實(shí)施例方式下面的描述中,提供大量具體的細(xì)節(jié)以幫助徹底了解本發(fā)明。然而,很顯然對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō),即使沒(méi)有這些具體細(xì)節(jié),并不影響對(duì)本發(fā)明的理解。并且應(yīng)該認(rèn)識(shí)到,使用如下的任何具體術(shù)語(yǔ)僅僅是為了方便描述,因此,本發(fā)明不應(yīng)當(dāng)局限于只用在這樣的術(shù)語(yǔ)所標(biāo)識(shí)和/或暗示的任何特定應(yīng)用中。比如下文僅以持股的例子進(jìn)行說(shuō)明,但是本發(fā)明也可以任何對(duì)任何具有網(wǎng)狀關(guān)系的維表進(jìn)行操作,如包含賣(mài)方和買(mǎi)方的買(mǎi)賣(mài)關(guān)系,包含保險(xiǎn)人和被保險(xiǎn)人的保險(xiǎn)關(guān)系等的網(wǎng)狀關(guān)系維表。除非另有說(shuō)明,本發(fā)明所述的功能可用硬件或軟件或它們的結(jié)合來(lái)運(yùn)行。然而,在優(yōu)選實(shí)施列中,除非另有說(shuō)明,這些功能是由處理器,如計(jì)算機(jī)或電子數(shù)據(jù)處理器,按照編碼,如計(jì)算機(jī)程序編碼,的集成電路來(lái)執(zhí)行的。一般來(lái)說(shuō),為了實(shí)現(xiàn)本發(fā)明的實(shí)施方式而執(zhí)行的方法可以是操作系統(tǒng)或特定應(yīng)用程序的一部分、程序、模塊、對(duì)象或指令序列。本發(fā)明的軟件通常包括將由本地計(jì)算機(jī)呈現(xiàn)成機(jī)器可讀格式的眾多指令,因此是可執(zhí)行指令。此外,程序包括相對(duì)于程序來(lái)說(shuō)駐留在本地或在存儲(chǔ)器中找到的變量和數(shù)據(jù)結(jié)構(gòu)。下面詳細(xì)描述本發(fā)明的第一實(shí)施方式。在圖1C中,假設(shè)持股人(holder)為角色(role)1,被持股人(owner)為角色2。就像圖1C中所示出的那樣,在網(wǎng)狀關(guān)系維中,角色1和角色2之間存在復(fù)雜的傳遞關(guān)系(transitiverule),這些關(guān)系可能包括(1)角色1和角色2之間存在直接傳遞關(guān)系;例如,圖1C中第一條記錄中,A和B之間具有直接的傳遞關(guān)系。(2)角色1和角色2之間存在間接傳遞關(guān)系;例如,在圖1C的記錄中,A和C之間具有間接傳遞關(guān)系。這是通過(guò)第一條記錄中A和B之間具有的直接傳遞關(guān)系以及第二條記錄中B和C之間具有的直接傳遞關(guān)系得出的。另外,在上述間接傳遞關(guān)系中,還可以進(jìn)而分成有環(huán)間接傳遞關(guān)系和無(wú)環(huán)間接傳遞關(guān)系。例如,如圖2B所示,A、B和C形成無(wú)環(huán)間接傳遞關(guān)系,而A、B和D形成有環(huán)間接傳遞關(guān)系。通過(guò)后面的描述將能夠理解,區(qū)分實(shí)體之間的間接傳遞關(guān)系是否有環(huán)或者無(wú)環(huán),對(duì)于防止最后轉(zhuǎn)換得到的數(shù)據(jù)庫(kù)查詢(xún)程序的執(zhí)行陷入死循環(huán)具有很大的意義。本發(fā)明能夠根據(jù)如上所述那樣的角色1和角色2之間的網(wǎng)狀關(guān)系所限定的限定條件進(jìn)行聚合操作。請(qǐng)注意,這里網(wǎng)狀關(guān)系維中包含有兩類(lèi)屬性,一類(lèi)我們稱(chēng)之為角色(role)或者實(shí)體(entity),網(wǎng)狀關(guān)系維就是對(duì)這一類(lèi)屬性的關(guān)系進(jìn)行描述,這類(lèi)屬性通常具有傳遞特征;另一類(lèi)屬性我們稱(chēng)之為值屬性(value)(以下簡(jiǎn)稱(chēng)為屬性),是網(wǎng)絡(luò)關(guān)系維中除了角色屬性之外的屬性,這類(lèi)屬性可以包括實(shí)體(角色)的屬性或者關(guān)系的屬性,例如表示類(lèi)型的屬性或者表示數(shù)值的屬性。在這種網(wǎng)狀關(guān)系維中,實(shí)體(角色)具有將被進(jìn)行聚合操作的屬性。將實(shí)體聯(lián)系起來(lái)的關(guān)系是用來(lái)進(jìn)行聚合操作的條件。而且關(guān)系本身還具有可以被進(jìn)行限制或者聚合的屬性。在這類(lèi)維中,實(shí)例空間表示的實(shí)體關(guān)系具有網(wǎng)狀結(jié)構(gòu)。如果將實(shí)體的實(shí)例表示為頂點(diǎn),將關(guān)系的實(shí)例表示為邊,則這些頂點(diǎn)和邊構(gòu)成帶標(biāo)記和帶權(quán)重的圖(labeledandweightedgraph)。例如,在圖1C中,在從A到B的關(guān)系實(shí)例中,其標(biāo)記屬性(即類(lèi)型屬性)為DS,其權(quán)重屬性(數(shù)值屬性)為50%。本發(fā)明試圖從這種具有網(wǎng)狀結(jié)構(gòu)的圖中搜索出符合某些限制條件的子圖(subgraph)。圖3示出根據(jù)本發(fā)明的方法的流程圖。在步驟S301,對(duì)實(shí)體的屬性進(jìn)行聚合條件描述,即描述對(duì)于實(shí)體(角色)的哪些屬性(或者度量)進(jìn)行何種形式的聚合。在步驟S302,描述網(wǎng)狀關(guān)系維的限制條件,即描述網(wǎng)狀關(guān)系維的實(shí)體關(guān)系傳遞規(guī)則以及其他屬性的限制條件。在步驟S303,根據(jù)所存儲(chǔ)的轉(zhuǎn)換規(guī)則將限制條件描述轉(zhuǎn)換為用標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)操縱語(yǔ)言例如SQL進(jìn)行描述的SQL查詢(xún)語(yǔ)句。在步驟S304,根據(jù)所存儲(chǔ)的轉(zhuǎn)換規(guī)則將聚合條件描述轉(zhuǎn)換為用標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)操縱語(yǔ)言例如SQL進(jìn)行描述的SQL查詢(xún)語(yǔ)句。在步驟S305,將在步驟S303和S304所得到的SQL查詢(xún)語(yǔ)句合并起來(lái),形成SQL程序,作為執(zhí)行聚合操作所得到的結(jié)果。SQL程序例如是直接的SQL查詢(xún)語(yǔ)句(Select)或者視圖(CreatView)等以供以后使用。對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō),對(duì)于上述步驟可以進(jìn)行任意的組合。例如,將步驟S301和S302合并起來(lái),構(gòu)成描述步驟;將步驟S303和S304,進(jìn)而S305合并起來(lái),構(gòu)成轉(zhuǎn)換步驟。以下將結(jié)合本發(fā)明的系統(tǒng)對(duì)上述每個(gè)步驟進(jìn)行詳細(xì)說(shuō)明。圖4示出本發(fā)明的系統(tǒng)的概略框圖。根據(jù)本發(fā)明進(jìn)行聚合操作的系統(tǒng)包括聚合條件描述單元401,限制條件描述單元402,限制條件轉(zhuǎn)換單元403,聚合條件轉(zhuǎn)換單元404,限制條件轉(zhuǎn)換規(guī)則庫(kù)405,聚合條件轉(zhuǎn)換規(guī)則庫(kù)406和,合并和輸出單元407。聚合條件描述單元401進(jìn)行聚合條件的描述。具體而言,是確定聚合操作的目標(biāo),描述對(duì)于哪些屬性(attribute)(或者度量(measure))進(jìn)行何種形式的聚合。根據(jù)本發(fā)明,可以使用常規(guī)的描述語(yǔ)言,例如SQL、已有的OLAP語(yǔ)言或者Datalog等LogicProgram來(lái)進(jìn)行這種描述。下面以圖1A-1C的表為例解釋如何進(jìn)行聚合條件描述。例如現(xiàn)在想要按照持股類(lèi)型(type)對(duì)于所有被A公司間接持股的那些子公司的資產(chǎn)的資產(chǎn)總額進(jìn)行求和的聚合操作。使用Datalog對(duì)聚合條件的描述如下?(t,sum<a>):-IndirectSharehold(holder:“A”,owne:x,type:t),Company(cID:x,asset:a).其中在頭部描述希望對(duì)哪些屬性進(jìn)行何種聚合操作,在此處是希望對(duì)于類(lèi)型t統(tǒng)計(jì)資產(chǎn)a的總額。在體部分具體描述哪些維的哪些屬性和角色被使用來(lái)進(jìn)行聚合操作。在此處,是具有網(wǎng)狀關(guān)系的Sharholding維和普通的Company維被使用來(lái)進(jìn)行聚合操作。而且Sharholding維中的屬性“type”被使用,角色“holder”和角色“owner”被使用,而Company維中的屬性“asset”被使用,角色“cID”被使用。根據(jù)本發(fā)明,在進(jìn)行聚合條件描述時(shí),還可以執(zhí)行迭代聚合,即在一個(gè)聚合結(jié)果集上進(jìn)一步進(jìn)行聚合操作。例如,假設(shè)現(xiàn)在希望對(duì)holder為“A”的那些間接Owner的資產(chǎn)(asset),求出其中最大的,則這種迭代聚合條件可以描述為?(max<s>):-AssetSum(sum:s).AssetSum(type:t,sum<a>):-IndirectSharehold(holder:“A”,owner:x,type:t),Company(cID:x,asset:a).以上的例子是兩重迭代。但是即使聚合操作大于兩重迭代,本領(lǐng)域技術(shù)人員也能夠了解,可以通過(guò)如下方式來(lái)實(shí)現(xiàn)迭代操作即,在前一個(gè)聚合結(jié)果集上進(jìn)一步進(jìn)行下一步聚合操作,直到所有的聚合操作都完成。圖5示出進(jìn)行聚合條件描述的流程圖。首先,在步驟S501,描述當(dāng)前的聚合操作。其次在步驟S502,判斷是否存在聚合迭代操作。如果存在則步驟返回S501繼續(xù)進(jìn)行下一個(gè)聚合操作的描述。如果不存在則結(jié)束處理。限制條件描述單元402用于對(duì)聚合操作的限制條件進(jìn)行描述。具體而言,限制條件描述單元402描述聚合條件描述的體部分中所描述的維的限制條件。網(wǎng)狀關(guān)系維的限制條件的描述包括角色之間的雙向關(guān)系(bi-aryrelations)的傳遞規(guī)則(transitiverule)的描述。這里的傳遞規(guī)則應(yīng)當(dāng)理解為用來(lái)描述角色之間的傳遞關(guān)系的邏輯規(guī)則。傳遞規(guī)則是在從網(wǎng)狀關(guān)系維表中搜索具體實(shí)體實(shí)例(子圖)時(shí)的限制條件。另外,在進(jìn)行限制條件描述時(shí),還可以對(duì)網(wǎng)狀關(guān)系維的一些屬性進(jìn)行描述作為搜索具體實(shí)體實(shí)例(于圖)時(shí)的其它限制條件。對(duì)其它屬性進(jìn)行限制包括對(duì)多標(biāo)記和多權(quán)重的圖中的標(biāo)記(類(lèi)別屬性)和權(quán)重(數(shù)值屬性)(相當(dāng)于關(guān)系的屬性)進(jìn)行限制,以及對(duì)于角色本身的屬性進(jìn)行限制。所謂多標(biāo)記,是指圖3B所示的角色之間的關(guān)系的類(lèi)別屬性,所謂權(quán)重是角色之間的關(guān)系的數(shù)值屬性。具體而言,屬性“type”是角色“holder”和角色“owner”之間的標(biāo)記,而屬性“percent.”是角色“holder”和角色“owner”之間的權(quán)重。圖6示出進(jìn)行限制條件描述的流程圖。首先,在步驟S601,對(duì)于聚合條件描述的體部分中的角色之間的一種傳遞關(guān)系進(jìn)行描述;然后,在步驟S602,判斷是否需要對(duì)聚合條件中涉及該傳遞關(guān)系的其它屬性進(jìn)行描述。如果判斷結(jié)果為是,則前進(jìn)到步驟S603,對(duì)于其它屬性進(jìn)行描述。否則前進(jìn)到步驟S604。在步驟S604,判斷聚合條件描述的體部分中的角色之間是否還存在其它傳遞關(guān)系。如果判斷結(jié)果為是,則處理返回到步驟S601繼續(xù)進(jìn)行描述。否則處理結(jié)束。根據(jù)上述處理過(guò)程,對(duì)于在上述聚合操作描述中的“Indirect_sharehold(Holder:“A”,Owner:x,Type:t)”的具體限制條件可以描述如下IndirectSharehold(holder:x,owner:y,type:t):-Shareholding(holder:x,owner:y,type:t).IndirectSharehold(holder:x,owner:y,type:t):-IndirectSharehold(holder:x,owner:z,type:t),Shareholding(holder:z,owner:y,type:t).上述描述的前兩行描述了具有直接傳遞關(guān)系的角色x和角色y的傳遞規(guī)則和對(duì)“type”屬性的限制。我們稱(chēng)這種具有直接傳遞關(guān)系的x和y的傳遞規(guī)則為非遞歸傳遞規(guī)則(non-recursiverule)。上述描述的后三行描述了具有間接傳遞關(guān)系的角色x、角色y和角色z的傳遞規(guī)則和對(duì)“type”屬性的限制。我們稱(chēng)這種具有間接傳遞關(guān)系的x和y的傳遞規(guī)則為遞歸傳遞規(guī)則(recursiverule)。在進(jìn)行限制條件描述時(shí),例如還可以加上對(duì)于其它屬性,例如值屬性的限制等,例如這種限制是“percent.”屬性不小于預(yù)定值。這需要根據(jù)聚合操作要求而確定。對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō),可以采用任意的邏輯描述語(yǔ)言來(lái)進(jìn)行上述描述,而不限于以上的舉例。限制條件轉(zhuǎn)換規(guī)則庫(kù)405和聚合條件轉(zhuǎn)換規(guī)則庫(kù)406中分別存儲(chǔ)將限制條件描述和聚合條件描述轉(zhuǎn)換為用標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)操縱語(yǔ)言進(jìn)行描述所使用的那些轉(zhuǎn)換規(guī)則。限制條件轉(zhuǎn)換單元403根據(jù)限制條件轉(zhuǎn)換規(guī)則庫(kù)405中所存儲(chǔ)的轉(zhuǎn)換規(guī)則將限制條件描述轉(zhuǎn)換為用標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)操縱語(yǔ)言進(jìn)行描述。聚合條件轉(zhuǎn)換單元404根據(jù)聚合條件轉(zhuǎn)換規(guī)則庫(kù)406中所存儲(chǔ)的轉(zhuǎn)換規(guī)則將聚合條件描述轉(zhuǎn)換為用標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)操縱語(yǔ)言進(jìn)行描述。在限制條件轉(zhuǎn)換規(guī)則庫(kù)405中,具體存儲(chǔ)了進(jìn)行如下的轉(zhuǎn)換處理的規(guī)則(1)每個(gè)非遞歸傳遞規(guī)則用關(guān)系代數(shù)表示,因此都可以被轉(zhuǎn)換為SQL的SELECT查詢(xún)語(yǔ)句。(2)SELECT塊按照如下規(guī)則構(gòu)造使用限制條件描述的頭部中與體部分的謂詞中的變?cè)P(guān)聯(lián)起來(lái)的變?cè)诘谋砻Q(chēng)和列名稱(chēng)。(3)FROM塊按照如下規(guī)則構(gòu)造使用限制條件描述的體部分中的謂詞所指代的表的表名稱(chēng)。如果一個(gè)表名被多次使用,則可以在FROM塊中定義該表的別名。(4)WHERE塊按照如下規(guī)則構(gòu)造如果限制條件描述的體部分中的謂詞是比較謂詞,則將該內(nèi)部操作作為條件部分加入;如果限制條件中體部分的謂詞變?cè)g有關(guān)聯(lián)關(guān)系,則用“=”操作將該關(guān)聯(lián)作為條件部分加入。(5)SQLUNIONALL操作符當(dāng)限制條件的描述中包括多條傳遞規(guī)則的定義時(shí),SQLUNIONALL操作符將各傳遞規(guī)則的結(jié)果合并。(6)遞歸傳遞規(guī)則使用SQL99標(biāo)準(zhǔn)所支持的CTEs(commonTableExpression)來(lái)表達(dá),并且被轉(zhuǎn)換為SQLWITH...AS查詢(xún)語(yǔ)句。(7)為了避免死循環(huán)的事情出現(xiàn),或者為了記錄環(huán)狀關(guān)系,在SELECT塊中使用變?cè)皃ath”和“l(fā)oop”來(lái)記錄遞歸謂詞中可變變量的路徑。限制條件轉(zhuǎn)換單元403根據(jù)上述限制條件轉(zhuǎn)換規(guī)則庫(kù)405中所存儲(chǔ)的轉(zhuǎn)換規(guī)則將限制條件描述轉(zhuǎn)換為用標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)操縱語(yǔ)言例如SQL進(jìn)行描述的SQL查詢(xún)語(yǔ)句。下面將參考圖7到圖9詳細(xì)描述限制條件轉(zhuǎn)換單元403如何將限制條件描述轉(zhuǎn)換為SQL查詢(xún)語(yǔ)句。圖7示出了根據(jù)本發(fā)明將限制條件描述翻譯為SQL查詢(xún)語(yǔ)句的處理過(guò)程。在步驟S704中,構(gòu)造限制條件描述的當(dāng)前傳遞規(guī)則(通常一個(gè)傳遞規(guī)則可以作為最小單位翻譯成一個(gè)SQL查詢(xún)語(yǔ)句或者翻譯成聚合操作的SQL語(yǔ)句的一部分)的SQL查詢(xún)語(yǔ)句的SELECT部分。在限制條件描述頭部的參量(變量)受到位于限制條件描述體部分中(當(dāng)前傳遞規(guī)則中)的、包含該參量的謂詞的限制。因此,在該步驟中,使用對(duì)應(yīng)于限制條件描述頭部的參量的表名稱(chēng)和列名稱(chēng)來(lái)作為跟隨關(guān)鍵字SELECT的屬性。在步驟S706中,構(gòu)造當(dāng)前傳遞規(guī)則的SQL查詢(xún)語(yǔ)句的FROM部分。在FROM部分中必須包括的表的名稱(chēng)是在限制條件描述體部分中涉及的那些謂詞所對(duì)應(yīng)的表的名稱(chēng)。在步驟S708中,構(gòu)造當(dāng)前傳遞規(guī)則的SQL查詢(xún)語(yǔ)句的WHERE部分。WHERE部分的構(gòu)造是比較復(fù)雜的,在圖8和圖9中示出根據(jù)本發(fā)明一種實(shí)施方式的構(gòu)造WHERE部分的處理流程。后文將參照?qǐng)D8和圖9對(duì)構(gòu)造WHERE部分的處理進(jìn)行詳細(xì)說(shuō)明。在步驟S710中,判斷是否已經(jīng)處理了限制條件描述中的所有傳遞規(guī)則。如果判斷結(jié)果為“是”,則執(zhí)行步驟S718。如果判斷結(jié)果為“否”,則執(zhí)行步驟S714。在步驟S714中,在當(dāng)前構(gòu)造的SQL查詢(xún)語(yǔ)句后加入運(yùn)算符關(guān)鍵字“UNIONALL”(加合)。在步驟S716中,選取該限制條件描述中的下一傳遞規(guī)則。然后,處理返回步驟S704繼續(xù)執(zhí)行。在步驟S718中,輸出為限制條件描述所構(gòu)造的SQL查詢(xún)語(yǔ)句。以下參考圖8和圖9,說(shuō)明在根據(jù)本發(fā)明一個(gè)實(shí)施方式中用于構(gòu)造SQL查詢(xún)語(yǔ)句的WHERE部分的處理流程。結(jié)合圖7中所描述的內(nèi)容,在以下的描述中所述的限制條件描述體可以理解為僅包括限制條件描述的一個(gè)傳遞規(guī)則。圖8示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的構(gòu)造結(jié)構(gòu)化查詢(xún)語(yǔ)言的查詢(xún)語(yǔ)句中的WHERE語(yǔ)句的處理流程圖。如圖8所示,在步驟S800中,開(kāi)始該處理流程。在步驟S802中,取限制條件描述體部分中一個(gè)未處理的謂詞,設(shè)該謂詞為m。在步驟S804中,判斷當(dāng)前謂詞是否為內(nèi)置謂詞。如果判斷結(jié)果為“是”,則處理轉(zhuǎn)到A部分(將在后文參照?qǐng)D9予以說(shuō)明)。如果判斷結(jié)果為“否”,則處理繼續(xù)執(zhí)行步驟S806。在步驟S806中,取謂詞m的一個(gè)未處理參量。設(shè)該參量為a。在步驟S808中,判斷當(dāng)前參量a是否為常量。如果判斷結(jié)果為“是”則執(zhí)行步驟S816。如果判斷結(jié)果為“否”,則執(zhí)行步驟S810。在步驟S816中,向WHERE語(yǔ)句部分添加“m.列名稱(chēng)=a”。之后,該處理繼續(xù)執(zhí)行步驟S818。其中,該“列名稱(chēng)”是指當(dāng)前參量a對(duì)應(yīng)的列名稱(chēng)。在步驟S810中,判斷當(dāng)前參量是否出現(xiàn)在之前處理過(guò)的任意謂詞n中。如果判斷結(jié)果為“是”,則執(zhí)行步驟S812。如果判斷結(jié)果為“否”,則執(zhí)行步驟S814。在步驟S812中,向WHERE語(yǔ)句部分添加“n.列名稱(chēng)=m.列名稱(chēng)”。該“列名稱(chēng)”是指當(dāng)前參量a在謂詞n和m中分別對(duì)應(yīng)的列名稱(chēng)。在步驟S814中,記憶當(dāng)前參量a,和其所處當(dāng)前謂詞m。在步驟S818中,判斷當(dāng)前謂詞m是否還有其它參量。如果判斷結(jié)果為“是”,則該處理返回步驟S806繼續(xù)執(zhí)行。如果判斷結(jié)果為“否”,則執(zhí)行步驟S820。在步驟S820中,判斷該限制條件描述體部分中是否還有未處理的謂詞。如果判斷結(jié)果為“是”,則該處理返回步驟S802繼續(xù)執(zhí)行。如果判斷結(jié)果為“否”,則處理流程結(jié)束。圖9示出了圖8中A部分的處理流程圖。如圖9所示,在步驟S902中,判斷該內(nèi)置謂詞m是否為關(guān)系操作謂詞,例如==、<>、>、≥=、<、≤=等。本領(lǐng)域的技術(shù)人員可以理解,在WHERE語(yǔ)句部分中,只有內(nèi)置謂詞中的關(guān)系操作謂詞才需要考慮。這樣的關(guān)系操作謂詞通常只有兩個(gè)變?cè)?。因此,如果在該步驟中判斷結(jié)果為“否”,則處理返回圖8中的步驟S802,繼續(xù)取下一個(gè)未處理的謂詞;如果判斷結(jié)果為“是”,則執(zhí)行步驟S904。在步驟S904中,取謂詞m的兩個(gè)參量a1、a2。在步驟S906中,判斷參量a1和a2是否均為變量。如果判斷結(jié)果為“否”,則執(zhí)行步驟S908。如果判斷結(jié)果為“是”,則執(zhí)行步驟S910。在步驟S908中,設(shè)參量a1或者a2出現(xiàn)在謂詞n中,則向WHERE語(yǔ)句部分加入“n.列名稱(chēng)1sql操作符m.al”或者“n.列名稱(chēng)2sql操作符m.a2”。其中,列名稱(chēng)1為參量a1對(duì)應(yīng)的謂詞n所對(duì)應(yīng)的表中的列名稱(chēng),列名稱(chēng)2為參量a2對(duì)應(yīng)的謂詞n所對(duì)應(yīng)的表中的列名稱(chēng);sql操作符為該關(guān)系操作謂詞對(duì)應(yīng)的sql操作符。在步驟S910中,設(shè)參量a1出現(xiàn)在謂詞n中,并且a2出現(xiàn)在謂詞l中,則向WHERE語(yǔ)句部分加入“n.列名稱(chēng)1sql操作符l.列名稱(chēng)2”。其中,列名稱(chēng)1為參量a1對(duì)應(yīng)的謂詞n所對(duì)應(yīng)的表中的列名稱(chēng),列名稱(chēng)2為參量a2對(duì)應(yīng)的謂詞l所對(duì)應(yīng)的表中的列名稱(chēng);sql操作符為該關(guān)系操作謂詞對(duì)應(yīng)的sql操作符。在執(zhí)行步驟S908或者S910之后,該流程返回圖8,繼續(xù)執(zhí)行步驟S820。SQL標(biāo)準(zhǔn)在SQL99標(biāo)準(zhǔn)中,已經(jīng)能夠支持遞歸的查詢(xún)。因此,根據(jù)SQL99標(biāo)準(zhǔn)遞歸的限制條件描述可以表達(dá)為公共表表達(dá)式(CommonTableExpression,CTE)。根據(jù)本發(fā)明的實(shí)施方式,可以將遞歸的限制條件描述翻譯為這種公共表表達(dá)式,其中使用“WITH表名稱(chēng)(a1,a2,...)AS”來(lái)定義整個(gè)遞歸查詢(xún)語(yǔ)句。在該遞歸查詢(xún)語(yǔ)句中,可以按照與對(duì)非遞歸限制條件描述進(jìn)行翻譯相同的處理流程來(lái)生成SELECT、FROM以及WHERE語(yǔ)句部分,并且可以在這些語(yǔ)句中引用該WITH語(yǔ)句部分中定義的“表名稱(chēng)”。最后,產(chǎn)生SELECT語(yǔ)句部分以便產(chǎn)生在遞歸查詢(xún)結(jié)果中所需的列。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,為了避免在執(zhí)行所翻譯的遞歸查詢(xún)語(yǔ)句時(shí)產(chǎn)生死循環(huán)的情況,可以在該WITH語(yǔ)句部分中增加兩個(gè)參量(也即增加列),一個(gè)用于記錄在遞歸查詢(xún)過(guò)程中遞歸變化的變量所經(jīng)歷的路徑(例如定義為參量“path”),另一個(gè)用于標(biāo)記當(dāng)前該變量的值是否曾經(jīng)出現(xiàn)在所記錄的參量“path”中(例如,定義為布爾值的參量“l(fā)oop”)??梢岳斫猓绻?dāng)前變量的值曾經(jīng)出現(xiàn)在所記錄的“path”中,則表明該遞歸查詢(xún)已經(jīng)陷入死循環(huán);反之,則表明當(dāng)前該遞歸查詢(xún)是安全的。按照上述所說(shuō)明的轉(zhuǎn)換方法,上述實(shí)例的限制條件描述被轉(zhuǎn)換為如下的SQL查詢(xún)語(yǔ)句請(qǐng)注意,下述的例舉中使用了“path”和“l(fā)oop”來(lái)避免死循環(huán)的發(fā)生。WITHIndirectSharehold(holder,owner,type,path,loop)AS(SELECTsh.holder,sh.owner,sh.type,HEX(sh.owner),0FROMShareholdingshUNIONALLSELECTish.holder,sh.owner,sh.type,ish.path||sh.owner,LOCATE_BLOCK(sh.owner,ish.path)FROMIndirectShareholdish,ShareholdingshWHEREsh.holder=ish.ownerandsh.type=ish.typeandish.loop=0)SELECTholder,owner,typeFROMIndirectSharehold其中,||表示將兩個(gè)字符串進(jìn)行合并的操作符,LOCATE_BLOCK()為預(yù)先定義的功能函數(shù),用于實(shí)現(xiàn)在一個(gè)字符串中定位另一個(gè)字符串并返回布爾值的功能。還可以在翻譯后的SQL查詢(xún)語(yǔ)句中使用其它SQL本身支持或再開(kāi)發(fā)的功能函數(shù),以提供所生成的SQL查詢(xún)語(yǔ)句的性能。這可以通過(guò)對(duì)遞歸邏輯規(guī)則進(jìn)行翻譯的具體計(jì)算機(jī)算法或程序來(lái)實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員基于以上所描述的對(duì)遞歸邏輯規(guī)則進(jìn)行的SQL翻譯的策略,可以設(shè)計(jì)各種計(jì)算機(jī)算法或程序來(lái)具體實(shí)現(xiàn)其處理流程。為了簡(jiǎn)潔的目的,這里不再對(duì)具體處理流程進(jìn)行詳細(xì)描述,但應(yīng)理解,各種具體處理流程均包括在本發(fā)明的范圍之內(nèi)。在聚合條件轉(zhuǎn)換轉(zhuǎn)換規(guī)則庫(kù)406中,具體存儲(chǔ)了進(jìn)行如下的轉(zhuǎn)換處理的規(guī)則(1)構(gòu)造SELECT塊、FROM塊和WHERE塊的方式與將限制條件描述進(jìn)行轉(zhuǎn)換時(shí)所遵守的規(guī)則相同。(2)在一個(gè)SQL查詢(xún)語(yǔ)句中,使用臨時(shí)表來(lái)獲得滿(mǎn)足網(wǎng)狀關(guān)系維限定的實(shí)體實(shí)例結(jié)果集。(3)在SELECT塊中插入具有DISTINCT關(guān)鍵字的聚合功能函數(shù)式(functor)(sum,avg,......)。(4)使用SQLSELECT...GROUP進(jìn)行聚合限制,其中“GROUP”后填入被聚合的屬性。聚合條件轉(zhuǎn)換單元404根據(jù)上述聚合條件轉(zhuǎn)換規(guī)則庫(kù)406中所存儲(chǔ)的轉(zhuǎn)換規(guī)則將限制條件描述轉(zhuǎn)換為用標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)操縱語(yǔ)言例如SQL進(jìn)行描述的SQL查詢(xún)語(yǔ)句。下面是按照上述規(guī)則將例舉的聚合條件描述進(jìn)行轉(zhuǎn)換后所產(chǎn)生的SQL查詢(xún)語(yǔ)句。WITHIndirectSharehold(holder,owner,type,path,loop)AS(SELECTsh.holder,sh.owner,sh.type,HEX(sh.owner),0FROMShareholdingshUNIONALLSELECTish.holder,sh.owner,sh.type,ish.path||sh.owner,LOCATE_BLOCK(sh.owner,ish.path)FROMIndirectShareholdish,ShareholdingshWHEREsh.holder=ish.ownerandsh.type=ish.typeandish.loop=0)SELECTish.type,SUM(DISTINCTc.asset)FROMCompanyc,IndirectShareholdishWHEREish.owner=c.cidandish.holder=“A”GROUPBYish.type對(duì)聚合后的結(jié)果再進(jìn)行聚合操作(雙重聚合或者多重聚合等迭代聚合)可以使用同樣的方法,示例如下WITHIndirectSharehold(holder,owner,type,path,loop)AS(SELECTsh.holder,sh.owner,sh.type,HEX(sh.owner),0FROMShareholdingshUNIONALLSELECTish.holder,sh.owner,sh.type,ish.path||sh.owner,LOCATE_BLOCK(sh.owner,ish.path)FROMIndirectShareholdish,ShareholdingshWHEREsh.holder=ish.ownerandsh.type=ish.typeandish.loop=0),AssetSum(type,sum)AS(SELECTish.type,SUM(DISTINCTc.asset)FROMCompanyc,Indirect_shareholdishWHEREish.owner=c.cidandish.holder=“A”GROUPBYish.type)SELECTMAX(sum)FROMAssetSum此例中,臨時(shí)表“AssetSum”(資產(chǎn)總和)被當(dāng)作臨時(shí)表用于二次聚合操作中。合并和輸出單元407將限制條件轉(zhuǎn)換單元403和聚合條件轉(zhuǎn)換單元404所產(chǎn)生的結(jié)果合并起來(lái),生成SQL程序,例如直接的SQL查詢(xún)語(yǔ)句(Select),或者視圖(CreatView)。根據(jù)本發(fā)明,可以通過(guò)簡(jiǎn)單的聚合描述和轉(zhuǎn)換實(shí)現(xiàn)對(duì)網(wǎng)狀關(guān)系維的聚合操作。對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō),將所述限制條件轉(zhuǎn)換單元403和聚合條件轉(zhuǎn)換單元404合并成一個(gè)轉(zhuǎn)換單元實(shí)現(xiàn)它們兩者的功能,和/或者將所述限制條件轉(zhuǎn)換規(guī)則庫(kù)405和聚合條件轉(zhuǎn)換轉(zhuǎn)換規(guī)則庫(kù)406合并成一個(gè)轉(zhuǎn)換規(guī)則庫(kù),將所有的轉(zhuǎn)換規(guī)則放入一個(gè)轉(zhuǎn)換規(guī)則庫(kù)中都是可行的。另外,合并和輸出單元407也可以和所述兩個(gè)轉(zhuǎn)換單元合并而以一個(gè)功能單元的方式實(shí)現(xiàn)。圖10示意性地表示了其中可以實(shí)現(xiàn)本發(fā)明的實(shí)施方式的計(jì)算機(jī)系統(tǒng)。圖10中所示的計(jì)算機(jī)系統(tǒng)包括CPU(中央處理單元)1001、RAM(隨機(jī)存取存儲(chǔ)器)1002、ROM(只讀存儲(chǔ)器)1003、系統(tǒng)總線(xiàn)1004,HD(硬盤(pán))控制器1005、鍵盤(pán)控制器1006、串行接口控制器1007、并行接口控制器1008、顯示器控制器1009、硬盤(pán)1010、鍵盤(pán)1011、串行外部設(shè)備1012、并行外部設(shè)備1013和顯示器1014。在這些部件中,與系統(tǒng)總線(xiàn)1004相連的有CPU1001、RAM1002、ROM1003、HD控制器1005、鍵盤(pán)控制器1006,串行接口控制器1007,并行接口控制器1008和顯示器控制器1009。硬盤(pán)1010與HD控制器1005相連,鍵盤(pán)1011與鍵盤(pán)控制器1006相連,串行外部設(shè)備1012與串行接口控制器1007相連,并行外部設(shè)備1013與并行接口控制器1008相連,以及顯示器1014與顯示器控制器1009相連。圖10中每個(gè)部件的功能在本
技術(shù)領(lǐng)域
內(nèi)都是眾所周知的,并且圖10所示的結(jié)構(gòu)也是常規(guī)的。這種結(jié)構(gòu)不僅用于個(gè)人計(jì)算機(jī),而且用于手持設(shè)備,如PalmPC、PDA(個(gè)人數(shù)據(jù)助理)、移動(dòng)電話(huà)等等。在不同的應(yīng)用中,圖10中所示的某些部件可以被省略。圖10中所示的整個(gè)系統(tǒng)由通常作為軟件存儲(chǔ)在硬盤(pán)1010中、或者存儲(chǔ)在EPROM或者其它非易失性存儲(chǔ)器中的計(jì)算機(jī)可讀指令控制。軟件也可從網(wǎng)絡(luò)(圖中未示出)下載。或者存儲(chǔ)在硬盤(pán)1010中,或者從網(wǎng)絡(luò)下載的軟件可被加載到RAM1002中,并由CPU1001執(zhí)行,以便完成由軟件確定的功能。盡管圖10中描述的計(jì)算機(jī)系統(tǒng)能夠支持根據(jù)本發(fā)明的由網(wǎng)狀關(guān)系維限定的聚合操作的方法,但是該計(jì)算機(jī)系統(tǒng)只是計(jì)算機(jī)系統(tǒng)的一個(gè)例子。本領(lǐng)域的熟練技術(shù)人員可以理解,許多其它計(jì)算機(jī)系統(tǒng)設(shè)計(jì)也能實(shí)現(xiàn)本發(fā)明。本發(fā)明還可以實(shí)現(xiàn)為一種例如由圖10所示計(jì)算機(jī)系統(tǒng)所使用的計(jì)算機(jī)程序產(chǎn)品,其包含有用于本發(fā)明的方法的代碼。在使用之前,可以把代碼存儲(chǔ)在其它計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器中,例如,存儲(chǔ)在硬盤(pán)或諸如光盤(pán)或軟盤(pán)的可移動(dòng)的存儲(chǔ)器中,或者經(jīng)由因特網(wǎng)或其它計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行下載。第二實(shí)施方式根據(jù)本發(fā)明的第二實(shí)施方式,將描述處理和轉(zhuǎn)換處理分別放在客戶(hù)機(jī)和服務(wù)器處執(zhí)行。圖11示出根據(jù)本發(fā)明第二實(shí)施方式的系統(tǒng)方框圖。其中,與圖4相同的部分使用相同的附圖標(biāo)記,并且省略其描述。在第二實(shí)施方式中,客戶(hù)機(jī)1包括聚合條件描述單元401,限制條件描述單元402,和收發(fā)器1101。服務(wù)器2包括限制條件轉(zhuǎn)換單元403,聚合條件轉(zhuǎn)換單元404,限制條件轉(zhuǎn)換規(guī)則庫(kù)405,聚合條件轉(zhuǎn)換規(guī)則庫(kù)406,合并和輸出單元407和收發(fā)器1102。根據(jù)第二實(shí)施方式,在客戶(hù)機(jī)1,聚合條件描述單元401和限制條件描述單元402所產(chǎn)生的描述結(jié)果通過(guò)收發(fā)器1101發(fā)送給服務(wù)器2。服務(wù)器2通過(guò)收發(fā)器1102接收描述結(jié)果,收發(fā)器1102將描述結(jié)果轉(zhuǎn)發(fā)給限制條件轉(zhuǎn)換單元403,聚合條件轉(zhuǎn)換單元404進(jìn)行轉(zhuǎn)換處理。合并和輸出單元407將轉(zhuǎn)換結(jié)果通過(guò)收發(fā)器1102發(fā)送給客戶(hù)機(jī)??蛻?hù)機(jī)1的收發(fā)器1接所接收到的結(jié)果存儲(chǔ)到未示出的存儲(chǔ)器進(jìn)行存儲(chǔ)或者交給未圖示的處理器進(jìn)行處理。根據(jù)第二實(shí)施方式,客戶(hù)機(jī)本身不需要具有轉(zhuǎn)換功能。僅需將描述發(fā)送給服務(wù)器進(jìn)行處理即可,從而節(jié)約了客戶(hù)機(jī)端的處理成本。在客戶(hù)機(jī)端和服務(wù)器端的計(jì)算機(jī)系統(tǒng)可以采用圖10所示的計(jì)算機(jī)系統(tǒng)或者其它已知的數(shù)據(jù)處理裝置。應(yīng)該注意的是,上面所描述的實(shí)施方式只是用于說(shuō)明本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。雖然結(jié)合附圖詳細(xì)描述了本發(fā)明的實(shí)施方式,但是對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),仍可以對(duì)所述實(shí)施方式作出各種修改和變更而不改變本發(fā)明的實(shí)質(zhì)和范圍。因此,本發(fā)明的范圍僅由所附權(quán)利要求限定。權(quán)利要求1.一種基于網(wǎng)狀關(guān)系維的數(shù)據(jù)處理方法,其特征在于,包括聚合條件描述步驟,描述對(duì)具有網(wǎng)狀關(guān)系的實(shí)體和/或所述實(shí)體之間的關(guān)系的屬性執(zhí)行的聚合作為聚合條件;限制條件描述步驟,描述該具有網(wǎng)狀關(guān)系的實(shí)體之間的關(guān)系的傳遞規(guī)則作為限制條件;轉(zhuǎn)換步驟,將所述聚合條件和所述限制條件轉(zhuǎn)換為由數(shù)據(jù)庫(kù)操縱語(yǔ)言所描述的語(yǔ)句。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述限制條件描述步驟中,還描述實(shí)體的屬性或者實(shí)體之間的關(guān)系的屬性作為限制條件。3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述傳遞規(guī)則包括遞歸型傳遞規(guī)則和非遞歸型傳遞規(guī)則,當(dāng)所述數(shù)據(jù)庫(kù)操縱語(yǔ)言為SQL語(yǔ)言時(shí),所述非遞歸型傳遞規(guī)則被翻譯為SQLSELECT查詢(xún)語(yǔ)句,所述遞歸型傳遞規(guī)則被翻譯為SQLWITH...AS查詢(xún)語(yǔ)句。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述轉(zhuǎn)換步驟,還記錄所述遞歸型傳遞規(guī)則的傳遞路徑,以防止死循環(huán)。5.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述聚合條件描述包括迭代型聚合條件描述,用于基于前一個(gè)聚合操作的結(jié)果集進(jìn)一步進(jìn)行聚合操作。6.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,當(dāng)所述數(shù)據(jù)庫(kù)操縱語(yǔ)言為SQL語(yǔ)言時(shí),在所述轉(zhuǎn)換步驟,將所述聚合條件描述翻譯為SQLSELECT...GROUPBY語(yǔ)句。7.一種基于網(wǎng)狀關(guān)系維的數(shù)據(jù)處理系統(tǒng),其特征在于,包括聚合條件描述裝置,用于描述對(duì)具有網(wǎng)狀關(guān)系的實(shí)體和/或所述實(shí)體之間的關(guān)系的屬性執(zhí)行的聚合作為聚合條件;限制條件描述裝置,用于描述該具有網(wǎng)狀關(guān)系的實(shí)體之間的關(guān)系的傳遞規(guī)則作為限制條件;轉(zhuǎn)換裝置,用于將所述聚合條件和所述限制條件轉(zhuǎn)換為由數(shù)據(jù)庫(kù)操縱語(yǔ)言所描述的語(yǔ)句。8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述限制條件描述裝置,還描述實(shí)體的屬性或者實(shí)體之間的關(guān)系的屬性作為限制條件。9.根據(jù)權(quán)利要求7或8所述的系統(tǒng),其特征在于,所述傳遞規(guī)則包括遞歸型傳遞規(guī)則和非遞歸型傳遞規(guī)則,當(dāng)所述數(shù)據(jù)庫(kù)操縱語(yǔ)言為SQL語(yǔ)言時(shí),所述非遞歸型傳遞規(guī)則被翻譯為SQLSELECT查詢(xún)語(yǔ)句,所述遞歸型傳遞規(guī)則被翻譯為SQLWITH...AS查詢(xún)語(yǔ)句。10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述轉(zhuǎn)換裝置,還記錄所述遞歸型傳遞規(guī)則的傳遞路徑,以防止死循環(huán)。11.根據(jù)權(quán)利要求7或8所述的系統(tǒng),其特征在于,所述聚合條件描述包括迭代型聚合條件描述,用于基于前一個(gè)聚合操作的結(jié)果集進(jìn)一步進(jìn)行聚合操作。12.根據(jù)權(quán)利要求7或8所述的系統(tǒng),其特征在于,當(dāng)所述數(shù)據(jù)庫(kù)操縱語(yǔ)言為SQL語(yǔ)言時(shí),所述轉(zhuǎn)換裝置將所述聚合條件描述翻譯為SQLSELECT...GROUPBY語(yǔ)句。13.一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的程序代碼,所述程序代碼用于完成權(quán)利要求1-6中任何一個(gè)權(quán)利要求的方法的操作。全文摘要本發(fā)明提供一種基于網(wǎng)狀關(guān)系維的數(shù)據(jù)處理方法和系統(tǒng)。其中,描述應(yīng)對(duì)具有網(wǎng)狀關(guān)系的實(shí)體和/或所述實(shí)體之間的關(guān)系的屬性執(zhí)行的聚合作為聚合條件;描述具有網(wǎng)狀關(guān)系的實(shí)體之間的關(guān)系的傳遞規(guī)則作為限制條件;將所述聚合條件和所述限制條件轉(zhuǎn)換為由數(shù)據(jù)庫(kù)操縱語(yǔ)言所描述的語(yǔ)句。本發(fā)明使用簡(jiǎn)潔的描述方式對(duì)網(wǎng)狀關(guān)系維進(jìn)行描述,并能夠高效地將該描述轉(zhuǎn)換為標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)操縱語(yǔ)言。文檔編號(hào)G06F17/30GK101093495SQ200610094080公開(kāi)日2007年12月26日申請(qǐng)日期2006年6月22日優(yōu)先權(quán)日2006年6月22日發(fā)明者侯雪橋,胡崗,李波,劉濤,潘越申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
韶关市| 嘉禾县| 宁夏| 尼勒克县| 桂林市| 比如县| 稻城县| 鲁山县| 克拉玛依市| 万安县| 瓮安县| 日喀则市| 达尔| 青川县| 翼城县| 蓝田县| 安远县| 泰来县| 张北县| 麟游县| 丰顺县| 伊吾县| 陈巴尔虎旗| 清涧县| 张家口市| 定西市| 监利县| 高陵县| 金坛市| 集贤县| 龙游县| 喀喇| 舟山市| 富民县| 来凤县| 庐江县| 深州市| 孝昌县| 米泉市| 稷山县| 唐山市|