用于生成非關(guān)系數(shù)據(jù)庫的模式的方法和設(shè)備的制作方法
【專利摘要】本發(fā)明的實施例公開了用于生成非關(guān)系數(shù)據(jù)庫的模式的方法和設(shè)備。在本發(fā)明的實施例中,可以非關(guān)系數(shù)據(jù)庫的至少一個條目中的鍵之間的關(guān)系,基于所確定的關(guān)系將這些鍵劃分到至少一個分組中,然后根據(jù)至少一個分組生成非關(guān)系數(shù)據(jù)庫的模式。
【專利說明】用于生成非關(guān)系數(shù)據(jù)庫的模式的方法和設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的實施例涉及數(shù)據(jù)庫領(lǐng)域,更具體地,涉及一種用于生成非關(guān)系數(shù)據(jù)庫的模式的方法和設(shè)備。
【背景技術(shù)】
[0002]如本領(lǐng)域所已知,數(shù)據(jù)庫在現(xiàn)代信息技術(shù)中發(fā)揮著重要作用。例如,作為數(shù)據(jù)庫的重要類型之一,關(guān)系數(shù)據(jù)庫系統(tǒng)被廣泛地應(yīng)用于存儲和檢索各類信息。然而,在當(dāng)今不斷發(fā)展的信息技術(shù)中,存在著對數(shù)據(jù)庫高并發(fā)讀寫的需求、對海量數(shù)據(jù)的高效率存儲和訪問的需求以及對數(shù)據(jù)庫的高可擴展性和高可用性的需求,對此,關(guān)系數(shù)據(jù)庫已經(jīng)顯得力不從心并存在很多難以克服的問題。例如,在應(yīng)付Web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的SNS類型的Web2.0純動態(tài)網(wǎng)站方面,關(guān)系數(shù)據(jù)庫越來越不適于應(yīng)用。
[0003]針對這一問題,業(yè)界提出了非關(guān)系數(shù)據(jù)庫(NoSQL)。非關(guān)系數(shù)據(jù)庫具有自組織、自管理、低成本、高可擴展性、高并發(fā)性、查詢關(guān)系簡單等特點。具體而言,關(guān)系數(shù)據(jù)庫中的表通常存儲格式化的數(shù)據(jù)結(jié)構(gòu),每個條目字段的組成相同,即使不是每個條目都需要所有的字段,關(guān)系數(shù)據(jù)庫也會為每個條目分配所有的字段,這樣的結(jié)構(gòu)是關(guān)系型數(shù)據(jù)庫性能瓶頸的一個因素。不同的是,非關(guān)系數(shù)據(jù)庫以鍵值對存儲,它的結(jié)構(gòu)不固定,每一個條目可以有不一樣的字段,每個條目可以根據(jù)需要增加一些自己的鍵值對,這樣就不會局限于固定的結(jié)構(gòu),可以減少一些時間和空間的開銷。
[0004]目前,由于非關(guān)系數(shù)據(jù)庫沒有類似于關(guān)系數(shù)據(jù)庫那樣的模式(Schema),所以無法根據(jù)Schema來對關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫進行數(shù)據(jù)匹配、數(shù)據(jù)整合、數(shù)據(jù)交換等方面的處理,從而難以實現(xiàn)對關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫二者的整合。
【發(fā)明內(nèi)容】
[0005]鑒于現(xiàn)有技術(shù)中存在的上述問題,本領(lǐng)域中需要一種能夠獲取非關(guān)系數(shù)據(jù)庫中的模式的解決方案。為此,本發(fā)明的實施例提供了一種用于生成非關(guān)系數(shù)據(jù)庫的模式的方法和設(shè)備。
[0006]根據(jù)本發(fā)明的一個方面,提供了一種用于生成非關(guān)系數(shù)據(jù)庫的模式的方法。該方法可以包括:確定非關(guān)系數(shù)據(jù)庫的至少一個條目中的鍵之間的關(guān)系;基于所確定的關(guān)系將所述鍵劃分到至少一個分組中;以及根據(jù)所述至少一個分組生成所述非關(guān)系數(shù)據(jù)庫的模式。
[0007]根據(jù)本發(fā)明的另一個方面,提供了一種用于生成非關(guān)系數(shù)據(jù)庫的模式的設(shè)備。該設(shè)備可以包括:確定器,配置用于確定非關(guān)系數(shù)據(jù)庫的至少一個條目中的鍵之間的關(guān)系;分組器,配置用于基于所確定的關(guān)系將所述鍵劃分到至少一個分組中;以及生成器,配置用于根據(jù)所述至少一個分組生成所述非關(guān)系數(shù)據(jù)庫的模式。
[0008]通過下文描述將會理解,利用本發(fā)明的實施例,可以高效便捷地生成NoSQL的Schema,從而極大地便利了關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫二者進行數(shù)據(jù)匹配、數(shù)據(jù)整合、數(shù)據(jù)交換等處理。
【專利附圖】
【附圖說明】
[0009]通過結(jié)合附圖對本公開示例性實施方式進行更詳細的描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標(biāo)號通常代表相同部件。
[0010]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算系統(tǒng)100的框圖;
[0011]圖2示出了根據(jù)本發(fā)明一個示例性實施例的用于生成非關(guān)系數(shù)據(jù)庫的模式的方法200的示意性流程圖;
[0012]圖3示出了根據(jù)本發(fā)明一個示例性實施例的用于生成非關(guān)系數(shù)據(jù)庫的模式的方法300的示意性流程圖;
[0013]圖4示出了根據(jù)本發(fā)明一個示例性實施例的用于生成非關(guān)系數(shù)據(jù)庫的模式的方法400的示意性流程圖;
[0014]圖5示出了根據(jù)本發(fā)明一個示例性實施例的用于生成非關(guān)系數(shù)據(jù)庫的模式的設(shè)備500的示意性框圖;
[0015]圖6示出了根據(jù)本發(fā)明的實施例的非關(guān)系數(shù)據(jù)庫600的示意圖;
[0016]圖7示出了表示根據(jù)本發(fā)明的實施例的層級信息700的示意圖;
[0017]圖8A示出了根據(jù)本發(fā)明的實施例的根據(jù)鍵的層級信息將鍵劃分到分組中的過程810的不意圖;
[0018]圖SB示出了根據(jù)本發(fā)明的另一實施例的根據(jù)鍵的層級信息將鍵劃分到分組中的過程820的不意圖;
[0019]圖SC示出了根據(jù)本發(fā)明的實施例的根據(jù)分組生成非關(guān)系數(shù)據(jù)庫的模式的過程830的不意圖;以及
[0020]圖9示出了根據(jù)本發(fā)明的實施例的用于生成非關(guān)系數(shù)據(jù)庫的模式的過程900的示意圖。
【具體實施方式】
[0021]下面將參照附圖更詳細地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開的優(yōu)選實施方式,然而應(yīng)該理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施方式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達給本領(lǐng)域的技術(shù)人員。
[0022]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明可以實現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。因此,本公開可以具體實現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實施例中,本發(fā)明還可以實現(xiàn)為在一個或多個計算機可讀介質(zhì)中的計算機程序產(chǎn)品的形式,該計算機可讀介質(zhì)中包含計算機可讀的程序代碼。
[0023]可以采用一個或多個計算機可讀的介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計算機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0024]計算機可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質(zhì)還可以是計算機可讀存儲介質(zhì)以外的任何計算機可讀介質(zhì),該計算機可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0025]計算機可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、電線、光纜、RF等等,或者上述的任意合適的組合。
[0026]可以以一種或多種程序設(shè)計語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計算機程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言一諸如Java、Smalltalk、C++,還包括常規(guī)的過程式程序設(shè)計語言一諸如”C”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務(wù)器上執(zhí)行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0027]下面將參照本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機器,這些計算機程序指令通過計算機或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。
[0028]也可以把這些計算機程序指令存儲在能使得計算機或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計算機可讀介質(zhì)中,這樣,存儲在計算機可讀介質(zhì)中的指令就產(chǎn)生出一個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instructionmeans)的制造品(manufacture)。
[0029]也可以把計算機程序指令加載到計算機、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計算機、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機實現(xiàn)的過程,從而使得在計算機或其它可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。
[0030]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機系統(tǒng)/服務(wù)器12的框圖。圖1顯示的計算機系統(tǒng)/服務(wù)器12僅僅是一個示例,不應(yīng)對本發(fā)明實施例的功能和使用范圍帶來任何限制。
[0031]如圖1所示,計算機系統(tǒng)/服務(wù)器12以通用計算設(shè)備的形式表現(xiàn)。計算機系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統(tǒng)存儲器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18。
[0032]總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲器總線或者存儲器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)局域總線以及外圍組件互連(PCI)總線。
[0033]計算機系統(tǒng)/服務(wù)器12典型地包括多種計算機系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被計算機系統(tǒng)/服務(wù)器12訪問的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動的和不可移動的介質(zhì)。
[0034]系統(tǒng)存儲器28可以包括易失性存儲器形式的計算機系統(tǒng)可讀介質(zhì),例如隨機存取存儲器(RAM) 30和/或高速緩存存儲器32。計算機系統(tǒng)/服務(wù)器12可以進一步包括其它可移動/不可移動的、易失性/非易失性計算機系統(tǒng)存儲介質(zhì)。僅作為舉例,存儲系統(tǒng)34可以用于讀寫不可移動的、非易失性磁介質(zhì)(圖1未顯示,通常稱為“硬盤驅(qū)動器”)。盡管圖1中未示出,可以提供用于對可移動非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動器,以及對可移動非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動器。在這些情況下,每個驅(qū)動器可以通過一個或者多個數(shù)據(jù)介質(zhì)接口與總線18相連。存儲器28可以包括至少一個程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個)程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實施例的功能。
[0035]具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在例如存儲器28中,這樣的程序模塊42包括——但不限于——操作系統(tǒng)、一個或者多個應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實施例中的功能和/或方法。
[0036]計算機系統(tǒng)/服務(wù)器12也可以與一個或多個外部設(shè)備14(例如鍵盤、指向設(shè)備、顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機系統(tǒng)/服務(wù)器12交互的設(shè)備通信,和/或與使得該計算機系統(tǒng)/服務(wù)器12能與一個或多個其它計算設(shè)備進行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接口 22進行。并且,計算機系統(tǒng)/服務(wù)器12還可以通過網(wǎng)絡(luò)適配器20與一個或者多個網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20通過總線18與計算機系統(tǒng)/服務(wù)器12的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,可以結(jié)合計算機系統(tǒng)/服務(wù)器12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動器、冗余處理單元、外部磁盤驅(qū)動陣列、RAID系統(tǒng)、磁帶驅(qū)動器以及數(shù)據(jù)備份存儲系統(tǒng)等。
[0037]在本發(fā)明的實施例中,“條目”可以是非關(guān)系數(shù)據(jù)庫中的一個記錄,也可以認為是非關(guān)系數(shù)據(jù)庫中一個數(shù)據(jù)對象實例。一個條目可以擁有唯一的標(biāo)識符(ID),并可以包含零個或多個鍵/值(Key/Value)對。根據(jù)本發(fā)明的實施例,各個鍵/值對之間可以通過預(yù)先定義的區(qū)分符來進行區(qū)分,例如,可以通過逗號等來將不同的鍵/值對進行區(qū)分;同時,每個鍵/值對內(nèi)的“鍵”和“值”可以通過預(yù)先定義的分隔符進行分隔,例如通過冒號來進行分隔,因此可以根據(jù)分隔符來從一個鍵/值對中確定其中的鍵。同時,可以通過預(yù)先定義的擴展符來擴展鍵/值對中的“值”,例如可以利用中括號來表示一個鍵/值對中的“值”包含兩個以上的屬性。所述兩個以上的屬性中的每個屬性既可以是一個真正的“值”,也可以是一個鍵/值對,并且該鍵/值對中的“值”還可以繼續(xù)包含一個或多個屬性。另外,還可以利用分組符將兩個或兩個以上的鍵/值對進行分組,例如可以利用大括號作為分組符。
[0038]圖6示出了根據(jù)本發(fā)明的實施例的非關(guān)系數(shù)據(jù)庫600的示意圖。如圖6所示,非關(guān)系數(shù)據(jù)庫600可以包含多條記錄,每一條記錄表示一個條目。非關(guān)系數(shù)據(jù)庫600本身可以具有一個標(biāo)識符,以對自己進行表征并將自己與其他非關(guān)系數(shù)據(jù)庫區(qū)分。例如,非關(guān)系數(shù)據(jù)庫600的標(biāo)識符可以是“Blog”。根據(jù)本發(fā)明的實施例,可以將非關(guān)系數(shù)據(jù)庫的標(biāo)識符也認為是一個鍵。所以,在構(gòu)建各個鍵的層級信息時,可以將其作為層級信息的中的一個鍵進行考慮。現(xiàn)在回到圖6,在與第一條記錄對應(yīng)的條目中,“author: ‘don’”是一個鍵/值對,其中鍵是 “author”,值為 “don”。另外,該條目中的 “comments: [ {author: ‘mary’,comment:‘I disagree,}, {author:‘a(chǎn)lice,,comment:‘good post,}]” 也是一個鍵 / 值對,其中鍵是“comments,,,值為 “ [{author: ‘mary,,comment: ‘I disagree,},{author: ‘a(chǎn)lice,,comment: ‘good post’ }]”,可見該值中還可以嵌套一個或多個鍵/值對。根據(jù)區(qū)分符、分隔符、擴展符等可以確定各個鍵之間的層級信息,從而確定各個鍵之間的關(guān)聯(lián)關(guān)系。
[0039]在根據(jù)本發(fā)明的一些實施例中,鍵之間的關(guān)系可以包括鍵之間的關(guān)聯(lián)關(guān)系。在根據(jù)本發(fā)明的另外一些實施例中,鍵之間的關(guān)系還可以包括鍵之間的關(guān)聯(lián)度。在上述例子中,鍵“comments”對應(yīng)的值嵌套有“author”和“comment”這兩個鍵。因此,對于這三個鍵而言,鍵“comments”與鍵“author”具有關(guān)聯(lián)關(guān)系,并且鍵“comments”與鍵“comment”也具有關(guān)聯(lián)關(guān)系。同時,由于在該條目中鍵“comments”與鍵“author”共同出現(xiàn)了兩次,因此可以認為鍵“comments”與鍵“author”的關(guān)聯(lián)度是2。
[0040]以下通過圖2-圖4所示的流程圖介紹根據(jù)本發(fā)明的實施例的用于生成非關(guān)系數(shù)據(jù)庫的模式的方法。本領(lǐng)域的技術(shù)人員完全可以理解,本發(fā)明所提出的技術(shù)方案并不限于這些圖中所示的具體實施例,這些實施例僅僅是示意性的,而不是限制性的。
[0041]圖2示出了根據(jù)本發(fā)明一個示例性實施例的用于生成非關(guān)系數(shù)據(jù)庫的模式的方法200的示意性流程圖。
[0042]在步驟S201,確定非關(guān)系數(shù)據(jù)庫的至少一個條目中的鍵之間的關(guān)系。
[0043]根據(jù)本發(fā)明的實施例,可以通過多種方式來確定非關(guān)系數(shù)據(jù)庫的條目中的鍵之間的關(guān)系。在根據(jù)本發(fā)明的一個實施例中,可以提取非關(guān)系數(shù)據(jù)庫中的所有條目中的每個條目中包含的鍵,確定所提取的鍵在每個條目中的層級信息,以及根據(jù)該層級信息確定鍵之間的關(guān)聯(lián)關(guān)系。在根據(jù)本發(fā)明的一個實施例中,可以提取非關(guān)系數(shù)據(jù)庫中的部分條目(例如按照某種預(yù)定準(zhǔn)則或條件選擇的一個或多個條目)中的每個條目中包含的鍵,確定所提取的鍵在每個條目中的層級信息,以及根據(jù)該層級信息確定鍵之間的關(guān)聯(lián)關(guān)系。以下將結(jié)合圖3更詳細地描述這一實施例。
[0044]在步驟S202,基于所確定的關(guān)系將鍵劃分到至少一個分組中。
[0045]根據(jù)本發(fā)明的實施例,可以通過多種方式來基于所確定的關(guān)系將鍵劃分到至少一個分組中。在根據(jù)本發(fā)明的一個實施例中,可以從所確定的關(guān)系中提取各個鍵之間的關(guān)聯(lián)關(guān)系,將具備關(guān)聯(lián)關(guān)系的鍵劃分到同一分組中。以下將結(jié)合圖3更詳細地描述這一實施例。
[0046]在步驟S203,根據(jù)至少一個分組生成非關(guān)系數(shù)據(jù)庫的模式。
[0047]根據(jù)本發(fā)明的實施例,非關(guān)系數(shù)據(jù)庫的模式可以根據(jù)多種方式生成。在根據(jù)本發(fā)明的一個實施例中,可以獲取至少一個分組中的有效分組及其權(quán)重,然后可以基于有效分組及其權(quán)重來生成非關(guān)系數(shù)據(jù)庫的模式。
[0048]在根據(jù)本發(fā)明的一個實施例中,可以通過多種實施方式來從至少一個分組中獲取有效分組及其權(quán)重。例如,可以在至少一個分組中確定重復(fù)的分組;將重復(fù)的分組設(shè)定為一個有效分組,并將這樣得到的有效分組的權(quán)重設(shè)定為該重復(fù)的分組的重復(fù)次數(shù);同時,可以將不重復(fù)的分組分別設(shè)定為一個有效分組,并將如此設(shè)定有效分組的權(quán)重設(shè)定為一個預(yù)設(shè)權(quán)重。根據(jù)本發(fā)明的實施例,該預(yù)設(shè)權(quán)重例如可以為I。
[0049]在根據(jù)本發(fā)明的一個實施例中,還可以將分組的權(quán)重小于預(yù)定權(quán)重閾值的有效分組過濾掉,從而僅使用權(quán)重較大的有效分組來生成非關(guān)系數(shù)據(jù)庫的模式。例如,可以將每個有效分組的權(quán)重與預(yù)定權(quán)重閾值進行比較,根據(jù)比較結(jié)果從有效分組中選擇一個或多個目標(biāo)分組,然后基于所選擇的目標(biāo)分組來生成非關(guān)系數(shù)據(jù)庫的模式。通過這種實施方式,可以過濾掉一些出現(xiàn)頻率較低的鍵,從而避免了為非關(guān)系數(shù)據(jù)庫生成的模式的規(guī)模過于龐大。
[0050]通過步驟S201-S203所示的步驟,本發(fā)明的實施例可以生成NoSQL的Schema,方便了本領(lǐng)域技術(shù)人員對于非關(guān)系數(shù)據(jù)庫的結(jié)構(gòu)進行了解,促進了關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫二者進行數(shù)據(jù)匹配、數(shù)據(jù)整合、數(shù)據(jù)交換等處理。
[0051]此外,在實際應(yīng)用中,非關(guān)系數(shù)據(jù)庫的條目或數(shù)據(jù)對象經(jīng)常是按照一定時間順序進行存儲的,此時這些條目或數(shù)據(jù)對象可能被設(shè)置一個時間戳或者其他時間標(biāo)記。根據(jù)本發(fā)明的進一步的實施例,可以基于該時間順序信息或時間戳(例如,按照I天、2天、I周或其他適當(dāng)?shù)臅r間段)來針對非關(guān)系數(shù)據(jù)庫生成一個或多個中間模式,然后根據(jù)這些中間模式之間的關(guān)系來為非關(guān)系數(shù)據(jù)庫生成一個更準(zhǔn)確和完善的模式。
[0052]在根據(jù)本發(fā)明的一個實施例中,可以在步驟S201中,確定至少一個條目中的每個條目的時間戳,按照確定的時間戳將NoSQL的至少一個條目進行分類,提取每個類中的每個條目中包含的鍵,然后確定每個類中的鍵之間的關(guān)聯(lián)關(guān)系。在步驟S202中,可以基于所確定的每個類中的鍵之間的關(guān)聯(lián)關(guān)系,將每個類中的鍵劃分到至少一個分組中。在步驟S203,可以根據(jù)每個類中的鍵被劃分到其中的至少一個分組,生成與每個類相關(guān)聯(lián)的模式,然后可以計算與每個類相關(guān)聯(lián)的模式之間的相似度,并將相似度大于預(yù)定相似度閾值的模式進行合并。通過上述過程,可以根據(jù)按照時間演化的若干中間模式來確定針對非關(guān)系數(shù)據(jù)庫的模式。以下將結(jié)合圖4更詳細地描述這一實施例。
[0053]根據(jù)本發(fā)明的實施例,還可以獲取非關(guān)系數(shù)據(jù)庫的歷史模式,例如在某一時段或時刻針對該非關(guān)系數(shù)據(jù)庫生成的模式,然后可以根據(jù)例如按照步驟S201-S203生成的模式與該歷史模式之間的相似度將二者進行合并,或者根據(jù)該生成的模式的時間戳和該歷史模式的時間戳將二者進行合并。在一個實施例中,可以計算生成的模式與歷史模式之間的相似度,并在相似度大于預(yù)定閾值時將二者進行合并。通過這種方式,可以不必合并差異較大的模式,從而節(jié)約了運行開銷,提高了處理效率,同時還可以向用戶直觀地提供模式的變化過程。在另一個實施例中,可以首先確定與所生成的模式相關(guān)的時間戳(例如該模式生成的時間段),同時確定與歷史模式相關(guān)的時間戳,然后對這兩個時間戳進行比較,如果二者時間戳之差小于預(yù)定閾值,也即這兩個模式生成的時間相隔較短,則可以將所生成的模式與該歷史模式合并。
[0054]圖3示出了根據(jù)本發(fā)明一個示例性實施例的用于生成非關(guān)系數(shù)據(jù)庫的模式的方法300的示意性流程圖。圖3所示的實施例是圖2所示的方法的一種實施方式。[0055]在步驟S301,提取非關(guān)系數(shù)據(jù)庫的至少一個條目中的每個條目中包含的鍵。
[0056]根據(jù)本發(fā)明的實施例,非關(guān)系數(shù)據(jù)庫可以包括至少一個條目??梢酝ㄟ^首先在這至少一個條目中選擇一個條目集合,然后確定這個條目集合中的每個條目中包含哪些鍵/值對,然后從所確定的鍵/值對中來提取其中的鍵,從而完成對這個條目集合中的中的每個條目中的鍵的提取過程。當(dāng)這個條目集合包含非關(guān)系數(shù)據(jù)庫中所有條目時,所提取的鍵則是非關(guān)系數(shù)據(jù)庫中每個條目中包含的鍵。
[0057]在圖6所示的示例性非關(guān)系數(shù)據(jù)庫中,通過逗號對不同的鍵/值對進行了區(qū)分,并通過冒號對每個鍵/值對內(nèi)的“鍵”和“值”進行了分隔。由此,可以從該非關(guān)系數(shù)據(jù)庫的第I個條目中提取其所包含的以下鍵:author, created, Title, Text, tags, comments,comment。類似地,可以分別提取該非關(guān)系數(shù)據(jù)庫中的第2,3,......,N個條目中包含的鍵。
[0058]在步驟S302,確定提取的鍵在每個條目中的層級信息。
[0059]根據(jù)本發(fā)明的實施例,可以根據(jù)區(qū)分符、分隔符、擴展符、分組符等確定各個鍵之間的層級信息,從而確定各個鍵之間的關(guān)聯(lián)關(guān)系。區(qū)分符、分隔符、擴展符、分組符等都可以是預(yù)先定義的。在圖6所示的示例性非關(guān)系數(shù)據(jù)庫中,將逗號示例性地用作了區(qū)分符、將冒號示例性地用作了分隔符、將中括號示例性地用作了擴展符、并將大括號示例性地用作了分組符。因此,可以根據(jù)這些符號的出現(xiàn)來確定一個條目中的各個鍵的層級信息。針對圖6所示的非關(guān)系數(shù)據(jù)庫(例如,將其命名為“Blog”)第一個條目例子,可以確定各個鍵的層級信息。圖7示出了表示根據(jù)本發(fā)明的實施例的層級信息700的示意圖,該圖中的一個節(jié)點對應(yīng)于一個鍵。
[0060]在步驟S303,根 據(jù)層級信息確定鍵之間的關(guān)聯(lián)關(guān)系。
[0061]在圖7所示的層級信息的示意圖中,以樹形結(jié)構(gòu)示出了從步驟S301提取的鍵,例如 author, created, Title, Text, tags, comments, comment 等鍵,之間的層級信息。假設(shè)Blog 為根節(jié)點,author, created, Title, Text, tags, comments 這些鍵分別是根節(jié)點的一級子節(jié)點;其中,一級子節(jié)點comments還具有兩個子節(jié)點,也即author和comment這兩個鍵,它們同時分別是根節(jié)點的二級子節(jié)點。
[0062]根據(jù)本發(fā)明的實施例,一級子節(jié)點是直接與根節(jié)點具有關(guān)聯(lián)關(guān)系的子節(jié)點,二級子節(jié)點是直接與一級子節(jié)點具有關(guān)聯(lián)關(guān)系的子節(jié)點,據(jù)此類推,N級子節(jié)點是直接與N-1級子節(jié)點具有關(guān)聯(lián)關(guān)系的子節(jié)點。例如,在第一個條目中,author, created, Title, Text,tags, comments這些鍵都直接與非關(guān)系數(shù)據(jù)庫具有關(guān)聯(lián)關(guān)系,因此分別都是一級子節(jié)點;由于與 co_ents 這個鍵對應(yīng)的值包含{author:‘mary’,comment: iI disagree’}和{author:‘a(chǎn)lice’,comment: ^good post’ },所以這個值中包含的 author 和 co_ent 這兩個鍵分別與comments這個鍵直接具有關(guān)聯(lián)關(guān)系,而與根節(jié)點沒有直接的關(guān)聯(lián)關(guān)系,因此author和comment這兩個鍵是二級子節(jié)點。
[0063]由此可見,可以根據(jù)步驟S302得到的層級信息來確定各個子節(jié)點之間的關(guān)聯(lián)關(guān)系,從而可以相應(yīng)地確定各個鍵之間的關(guān)聯(lián)關(guān)系。
[0064]在步驟S304,將具備關(guān)聯(lián)關(guān)系的鍵劃分到同一分組中。
[0065]根據(jù)本發(fā)明的實施例,存在多種方案來將具備關(guān)聯(lián)關(guān)系鍵劃分到同一分組中。在根據(jù)本發(fā)明的一些實施例中,可以根據(jù)鍵的層級信息確定一條或多條路徑,將具備關(guān)聯(lián)關(guān)系的鍵劃分到同一條路徑中,來完成分組。例如,在圖7中,可以按照每一條路徑來進行分組,每條路徑可以包括若干級子節(jié)點,每條路徑從根節(jié)點開始、到末端葉節(jié)點也即最后一級子節(jié)點結(jié)束,并且每條路徑不能完全相同。在圖7所示的示意圖中,Blog和created可以被劃分到一個分組,構(gòu)成一條路徑Blog- > created ;Blog、Comments和author可以被劃分到一個分組,構(gòu)成一條路徑 Blog- > Comments- > author ;Blog、Comments 和 comment 可以被劃分到一個分組,構(gòu)成一條路徑Blog- > Comments- > comment ;等等,其他不再贅述。
[0066]在根據(jù)本發(fā)明的一些實施例中,可以根據(jù)鍵的層級信息確定一個或多個碼字,每個碼字包括一個或多個具備關(guān)聯(lián)關(guān)系的鍵,這些具備關(guān)聯(lián)關(guān)系的鍵可以被預(yù)先定義的間隔標(biāo)識進行間隔,以便彼此區(qū)分。例如,針對圖7所示的層級信息,Blog和created可以被劃分到一個分組,構(gòu)成一個碼字,例如,Blog, created。根據(jù)本發(fā)明的實施例,可以利用簡單或者容易辨識的標(biāo)記來代表每個鍵,例如可以用字母“A”代表鍵Blog,利用字母“B”代表鍵created,從而上述碼字可以簡記為“A.B”。在另一個例子中,Blog、Comments和author可以被劃分到一個分組,構(gòu)成碼字,例如,Blog.Comments, author。當(dāng)利用字母“C”代表鍵Comments,并利用字母“D”代表鍵author時,上述碼字可以簡記為“A.C.D”。
[0067]圖8A示出了根據(jù)本發(fā)明的實施例的根據(jù)鍵的層級信息將鍵劃分到分組中的過程810的示意圖。在圖8A所示的層級信息中,每個鍵所對應(yīng)的節(jié)點分別由A、B、C、D和E表示。根據(jù)所示的層級信息,可以將各個鍵劃分到3個分組中,從而得到圖8A所示的3個碼字 “A.B.D”、“A.B.E” 和 “A.C”。
[0068]圖SB示出了根據(jù)本發(fā)明的另一實施例的根據(jù)鍵的層級信息將鍵劃分到分組中的過程820的示意圖。在圖SB所示的層級信息中,每個鍵所對應(yīng)的節(jié)點分別由A、B、C和F表示。根據(jù)所示的層級信息,可以將各個鍵劃分到2個分組中,從而得到圖SB所示的2個碼字 “A.B.F,,和 “A.C”。
[0069]在步驟S305,獲取分組中的有效分組及其權(quán)重。
[0070]在此步驟中,可以首先統(tǒng)計步驟S304所劃分的各個分組中的哪些是重復(fù)的分組。繼而,可以將重復(fù)的分組確定為一個有效分組,其權(quán)重是這些重復(fù)的分組的重復(fù)次數(shù);同時,可以將每個不重復(fù)的分組分別確定為一個有效分組,其權(quán)重為一個預(yù)設(shè)權(quán)重,例如I。
[0071]根據(jù)本發(fā)明的實施例,對于N個分組,如果它們各自包含相同的鍵并且這些鍵之間具有相同的關(guān)系,則可以認為這N個分組是重復(fù)的。此時,可以將這N個分組合并或縮減為一個分組作為有效分組,同時可以將這個分組的權(quán)重確定為N,其中N為大于I的整數(shù)。例如,在圖8A和圖SB中碼字(也即分組)“A.C”出現(xiàn)了 2次,也即,在所示的多個分組中存在一個重復(fù)了 2次的分組。因此,可以對這兩個碼字進行合并,得到一個有效分組“A.C”;同時,根據(jù)碼字“A.C”出現(xiàn)的次數(shù),可以確定它的權(quán)重是2。此外,關(guān)于圖8A和圖SB示出的碼字“A.B.D”、“A.B.E”和“A.B.F”,由于這些碼字分別僅出現(xiàn)了一次,因此它們都是不重復(fù)的分組,所以無需對它們進行合并操作,并可以確定它們的權(quán)重各自為I。
[0072]在步驟S306,基于有效分組及其權(quán)重生成非關(guān)系數(shù)據(jù)庫的模式。
[0073]圖SC示出了根據(jù)本發(fā)明的實施例的根據(jù)分組生成非關(guān)系數(shù)據(jù)庫的模式的過程830的示意圖。在圖8C中,箭頭左側(cè)是根據(jù)步驟S305獲取的有效分組及其權(quán)重,其中“A.C(2) ”表示分組(或碼字)“A.C”,它的權(quán)重是2 ;“A.B.D(I) ”表示分組“A.B.D”,它的權(quán)重是I ;“A.B.E(I) ”表示分組“A.B.E”,它的權(quán)重是I ;“A.B.F(I) ”表示分組“A.B.F”,它的權(quán)重是I。根據(jù)箭頭左側(cè)的這些分組,可以確定一個圖,如圖8C中箭頭右側(cè)的樹形結(jié)構(gòu)所示,從而得到非關(guān)系數(shù)據(jù)庫的模式。
[0074]根據(jù)本發(fā)明的實施例,在步驟S306的執(zhí)行期間,還可以對有效分組進行過濾,以選擇需要的有效分組作為目標(biāo)分組,然后利用所選擇的目標(biāo)分組而不是所有有效分組來生成非關(guān)系數(shù)據(jù)庫??梢詫⒚總€有效分組的權(quán)重與一個預(yù)定權(quán)重閾值進行比較,該預(yù)定權(quán)重閾值可以是根據(jù)設(shè)計要求或經(jīng)驗值來設(shè)定的。在一種實施方式中,預(yù)定權(quán)重閾值例如可以設(shè)定為I ;如果一個有效分組的權(quán)重大于1,則可以用于后續(xù)構(gòu)建非關(guān)系數(shù)據(jù)庫的模式。
[0075]圖4示出了根據(jù)本發(fā)明一個示例性實施例的用于生成非關(guān)系數(shù)據(jù)庫的模式的方法400的示意性流程圖。圖4所示的實施例是圖2所示的方法的一種實施方式。在圖4所示的實施例中可以按照預(yù)定條件(例如,數(shù)據(jù)生成的時間段)對非關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)進行分類,對每個類中的數(shù)據(jù)應(yīng)用權(quán)利要求2所示的方法,得到與每個類相關(guān)聯(lián)的模式;然后,可以根據(jù)這些模式之間的關(guān)系(例如,是否相似)對其進行合并,從而得到更完善和全面的非關(guān)系數(shù)據(jù)庫模式。
[0076]在步驟S401,確定非關(guān)系數(shù)據(jù)庫的至少一個條目中的每個條目的時間戳。
[0077]在目前的非關(guān)系數(shù)據(jù)庫中,通常每個條目都會被分配一個時間標(biāo)志或者與該條目生成時間有關(guān)的標(biāo)識符。在根據(jù)本發(fā)明的實施例中,使用“時間戳”這一術(shù)語來表示上述時間標(biāo)志或者與該條目生成時間有關(guān)的標(biāo)識符,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,此處使用的數(shù)據(jù)“時間戳”不一定必須是某個特定或固定的形式,而可以是本領(lǐng)域常用的任何其他適當(dāng)?shù)男问健?br>
[0078]在步驟S402,按照時間戳將該至少一個條目進行分類。
[0079]圖9示出了根據(jù)本發(fā)明的實施例的用于生成非關(guān)系數(shù)據(jù)庫的模式的過程900的示意圖。在該示例性非關(guān)系數(shù)據(jù)庫中包含若干NoSQL數(shù)據(jù),它們以條目的形式存儲在該數(shù)據(jù)庫中。根據(jù)本發(fā)明的實施例,可以將時間戳相同或相近的條目歸為一類。例如,第I個條目至第5個條目都是第一天生成的數(shù)據(jù),因此,可以將這5個條目分到一個類中,這個類例如可以由圖9中的“第I天的數(shù)據(jù)”所表示。另外,圖9中的“第2天的數(shù)據(jù)”也是一個類,其可能包括非關(guān)系數(shù)據(jù)庫中的第100個條目至第200個條目;“第3天的數(shù)據(jù)”可能包括非關(guān)
系數(shù)據(jù)庫中的第20個條目至第35個條目,依此類推......;“第N天的數(shù)據(jù)”可能包括非
關(guān)系數(shù)據(jù)庫中的第1000個條目至第2000個條目。因此,根據(jù)這些條目的時間戳,可以將它們分到一個或多個類中。
[0080]在步驟S403,提取每個類中的每個條目中包含的鍵。
[0081]如上所述,每個類中可能包括一個或多個條目,因此針對每個類,可以根據(jù)圖2和圖3所示的實施方式來從該類中的各個條目中分別提取每個條目所包含的鍵。作為備選,也可以采用本領(lǐng)域技術(shù)人員可用的其他適當(dāng)方式來提取各類內(nèi)每個條目中包含的鍵。
[0082]在步驟S404,確定每個類中的鍵之間的關(guān)系,并基于該關(guān)系將每個類中的鍵劃分到至少一個分組中。
[0083]針對每個類內(nèi)所提取的鍵,可以采用類似圖2和圖3所示的實施方式來從確定這些鍵之間的關(guān)系,并基于該關(guān)系將這些鍵劃分到至少一個分組中,具體不再贅述。
[0084]在步驟S405,根據(jù)該至少一個分組,生成與每個類相關(guān)聯(lián)的模式。
[0085]由于在步驟S404中是將每個類中的鍵劃分到至少一個分組中,所以步驟S405中用于生成模式的這些分組是與每個類相關(guān)聯(lián)的分組,而不是與非關(guān)系數(shù)據(jù)庫的全部數(shù)據(jù)相關(guān)聯(lián)的分組。相應(yīng)地,根據(jù)這至少一個分組生成的模式不是整個非關(guān)系數(shù)據(jù)庫的模式,而是與每個類相關(guān)聯(lián)的模式。
[0086]如圖9所示,模式I是所生成的與“第I天的數(shù)據(jù)”這個類相關(guān)聯(lián)的模式,模式2是所生成的與“第2天的數(shù)據(jù)”這個類相關(guān)聯(lián)的模式,模式3是與“第3天的數(shù)據(jù)”這個類相關(guān)聯(lián)的模式,.....模式N是與“第N天的數(shù)據(jù)”這個類相關(guān)聯(lián)的模式。
[0087]在步驟S406,計算與每個類相關(guān)聯(lián)的模式之間的相似度。
[0088]根據(jù)本發(fā)明的實施例,對于每兩個類,在步驟S405中可以生成分別與其中一個類相關(guān)聯(lián)的模式,例如圖9中的模式I和模式2,在步驟S406中可以計算模式I和模式2之間的相似度。
[0089]可以通過夾角余弦、戴斯系數(shù)、Ch1-square、對數(shù)似然率、類Flmeasure或者本領(lǐng)域技術(shù)人員已知的任何適當(dāng)?shù)南嗨贫扔嬎惴椒▉碛嬎闩c每個類相關(guān)聯(lián)的模式之間的相似度。
[0090]在步驟S407,將相似度大于預(yù)定相似度閾值的模式進行合并。
[0091]如果兩個模式之間的相似度較大,例如大于一個預(yù)定相似度閾值,則可能表示這兩個模式的結(jié)構(gòu)較為相近,也即非關(guān)系數(shù)據(jù)庫在與這兩個模式相關(guān)聯(lián)的時間段具有比較小的結(jié)構(gòu)變化,因此可以將這兩個模式進行合并,以完善該數(shù)據(jù)庫的模式。與此對應(yīng),如果兩個模式之間的相似度較小,則可能表示非關(guān)系數(shù)據(jù)庫在與這兩個模式相關(guān)聯(lián)的時間段的結(jié)構(gòu)差異較大,因此可以不進行合并操作,從而減少系統(tǒng)開銷,提高運行效率。
[0092]圖5示出了根據(jù)本發(fā)明一個示例性實施例的用于獲取屏幕快照中的內(nèi)容的設(shè)備500的示意性框圖。
[0093]根據(jù)本發(fā)明的實施例,設(shè)備500可以包括:確定器510,配置用于確定非關(guān)系數(shù)據(jù)庫的至少一個條目中的鍵之間的關(guān)系;分組器520,配置用于基于所確定的關(guān)系將鍵劃分到至少一個分組中;以及生成器530,配置用于根據(jù)至少一個分組生成非關(guān)系數(shù)據(jù)庫的模式。
[0094]根據(jù)本發(fā)明的實施例,確定器510可以包括:第一提取單元,配置用于提取至少一個條目中的每個條目中包含的鍵;第一確定單元,配置用于確定提取的鍵在每個條目中的層級信息;以及第二確定單元,配置用于根據(jù)層級信息確定鍵之間的關(guān)聯(lián)關(guān)系。
[0095]根據(jù)本發(fā)明的實施例,分組器520可以包括:第二提取單元,配置用于從所確定的關(guān)系中提取鍵之間的關(guān)聯(lián)關(guān)系;以及第一分組單元,配置用于將具備關(guān)聯(lián)關(guān)系的鍵劃分到同一分組中。
[0096]根據(jù)本發(fā)明的實施例,生成器530可以包括:第一獲取單元,配置用于獲取至少一個分組中的有效分組及其權(quán)重;以及第一生成單元,配置用于基于有效分組及其權(quán)重,生成非關(guān)系數(shù)據(jù)庫的模式。
[0097]根據(jù)本發(fā)明的實施例,生成器530的第一獲取單元可以包括:第三確定單元,配置用于確定至少一個分組中的重復(fù)的分組;第一設(shè)定單元,配置用于將重復(fù)的分組設(shè)定為一個有效分組,其中有效分組的權(quán)重為重復(fù)的分組的重復(fù)次數(shù);第二設(shè)定單元,配置用于將不重復(fù)的分組分別設(shè)定為一個有效分組,其中有效分組的權(quán)重為預(yù)設(shè)權(quán)重,例如I。
[0098]根據(jù)本發(fā)明的實施例,生成器530的第一生成單元可以包括:比較單元,配置用于比較權(quán)重與預(yù)定權(quán)重閾值;選擇單元,配置用于根據(jù)比較結(jié)果從有效分組中選擇一個或多個目標(biāo)分組;以及第二生成單元,配置用于基于目標(biāo)分組生成非關(guān)系數(shù)據(jù)庫的模式。
[0099]根據(jù)本發(fā)明的實施例,確定器510可以包括:第四確定單元,配置用于確定至少一個條目中的每個條目的時間戳;分類單元,配置用于按照所述時間戳將所述至少一個條目進行分類;第三提取單元,配置用于提取每個類中的每個條目中包含的鍵;以及第五確定單元,配置用于確定每個類中的鍵之間的關(guān)聯(lián)關(guān)系。
[0100]根據(jù)本發(fā)明的實施例,所述分組器520可以包括:第二分組單元,配置用于基于所確定的每個類中的鍵之間的關(guān)聯(lián)關(guān)系,將每個類中的鍵劃分到至少一個分組中。
[0101 ] 根據(jù)本發(fā)明的實施例,生成器530可以包括:第三生成單元,配置用于根據(jù)每個類中的鍵被劃分到的至少一個分組,生成與每個類相關(guān)聯(lián)的模式;計算單元,配置用于計算與每個類相關(guān)聯(lián)的模式之間的相似度;以及合并單元,配置用于將相似度大于預(yù)定相似度閾值的模式進行合并。
[0102]根據(jù)本發(fā)明的實施例,設(shè)備500還可以可選地包括:獲取器(未示出),配置用于獲取非關(guān)系數(shù)據(jù)庫的歷史模式;以及合并器(未示出),配置用于根據(jù)生成的模式與歷史模式之間的相似度將生成的模式與歷史模式進行合并,或者根據(jù)生成的模式的時間戳和歷史模式的時間戳將生成的模式與歷史模式進行合并。
[0103]應(yīng)當(dāng)理解,上文參考圖5描述的設(shè)備500包含的各個裝置及其包含的可選子裝置分別可以對應(yīng)于上文參考圖2-4描述的任一方法200、300和400的各個步驟。由此,上文針對方法200、300和400描述的所有特征和操作同樣分別適用于設(shè)備500,故在此不再贅述。
[0104]特別地,設(shè)備500中裝置和可選子裝置的劃分不是限制性的而是示例性的。例如,在圖5中所示的單個裝置的功能可以由多個裝置來實現(xiàn)。反之,在這些圖所示的多個裝置亦可由單個裝置來實現(xiàn)。本發(fā)明的范圍在此方面不受限制。
[0105]還應(yīng)當(dāng)理解,設(shè)備500中包含的各裝置和子裝置可以利用各種方式來實現(xiàn),包括軟件、硬件、固件或其任意組合。例如,在某些實施例中,設(shè)備500的各裝置可以利用軟件和/或固件模塊來實現(xiàn)。備選地或附加地,設(shè)備500的各裝置也可以利用硬件模塊來實現(xiàn)。例如,設(shè)備500的各裝置可以實現(xiàn)為集成電路(IC)芯片或?qū)S眉呻娐?ASIC)。設(shè)備500的各裝置也可以實現(xiàn)為片上系統(tǒng)(SOC)?,F(xiàn)在已知或者將來開發(fā)的其他方式也是可行的,本發(fā)明的范圍在此方面不受限制。
[0106]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
[0107]以上已經(jīng)描述了本發(fā)明的各實施例,上述說明是示例性的,并非窮盡性的,并且也不限于所披露的各實施例。在不偏離所說明的各實施例的范圍和精神的情況下,對于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說許多修改和變更都是顯而易見的。本文中所用術(shù)語的選擇,旨在最好地解釋各實施例的原理、實際應(yīng)用或?qū)κ袌鲋械募夹g(shù)的技術(shù)改進,或者使本【技術(shù)領(lǐng)域】的其它普通技術(shù)人員能理解本文披露的各實施例。
【權(quán)利要求】
1.一種用于生成非關(guān)系數(shù)據(jù)庫的模式的方法,包括: 確定非關(guān)系數(shù)據(jù)庫的至少一個條目中的鍵之間的關(guān)系; 基于所確定的關(guān)系將所述鍵劃分到至少一個分組中;以及 根據(jù)所述至少一個分組生成所述非關(guān)系數(shù)據(jù)庫的模式。
2.根據(jù)權(quán)利要求1所述的方法,其中確定非關(guān)系數(shù)據(jù)庫的至少一個條目中的鍵之間的關(guān)系包括: 提取所述至少一個條目中的每個條目中包含的鍵; 確定所述提取的鍵在所述每個條目中的層級信息;以及 根據(jù)所述層級信息確定所述鍵之間的關(guān)聯(lián)關(guān)系。
3.根據(jù)權(quán)利要求1或2所述的方法,其中基于所確定的關(guān)系將所述鍵劃分到至少一個分組中包括: 從所確定的關(guān)系中提取所述鍵之間的關(guān)聯(lián)關(guān)系;以及 將具備關(guān)聯(lián)關(guān)系的鍵劃分到同一分組中。
4.根據(jù)權(quán)利要求1所述的方法,其中根據(jù)所述至少一個分組生成所述非關(guān)系數(shù)據(jù)庫的模式包括: 獲取所述至少一個分組中的有效分組及其權(quán)重;以及 基于所述有 效分組及其權(quán)重,生成所述非關(guān)系數(shù)據(jù)庫的模式。
5.根據(jù)權(quán)利要求4所述的方法,其中獲取所述至少一個分組中的有效分組及其權(quán)重包括: 確定所述至少一個分組中的重復(fù)的分組; 將重復(fù)的分組設(shè)定為一個有效分組,其中所述有效分組的權(quán)重為所述重復(fù)的分組的重復(fù)次數(shù);以及 將不重復(fù)的分組分別設(shè)定為一個有效分組,其中所述有效分組的權(quán)重為預(yù)設(shè)權(quán)重。
6.根據(jù)權(quán)利要求4所述的方法,其中基于所述有效分組及其權(quán)重,生成所述非關(guān)系數(shù)據(jù)庫的模式包括: 比較所述權(quán)重與預(yù)定權(quán)重閾值; 根據(jù)比較結(jié)果從所述有效分組中選擇一個或多個目標(biāo)分組;以及 基于所述目標(biāo)分組生成所述非關(guān)系數(shù)據(jù)庫的模式。
7.根據(jù)權(quán)利要求1所述的方法,其中確定非關(guān)系數(shù)據(jù)庫的至少一個條目中的鍵之間的關(guān)系包括: 確定所述至少一個條目中的每個條目的時間戳; 按照所述時間戳將所述至少一個條目進行分類; 提取每個類中的每個條目中包含的鍵;以及 確定每個類中的鍵之間的關(guān)聯(lián)關(guān)系。
8.根據(jù)權(quán)利要求7所述的方法,其中基于所確定的關(guān)系將所述鍵劃分到至少一個分組中包括: 基于所確定的每個類中的鍵之間的關(guān)聯(lián)關(guān)系,將所述每個類中的鍵劃分到至少一個分組中。
9.根據(jù)權(quán)利要求8所述的方法,其中根據(jù)所述至少一個分組生成所述非關(guān)系數(shù)據(jù)庫的模式包括: 根據(jù)所述每個類中的鍵被劃分到的所述至少一個分組,生成與所述每個類相關(guān)聯(lián)的模式; 計算與所述每個類相關(guān)聯(lián)的模式之間的相似度;以及 將相似度大于預(yù)定相似度閾值的模式進行合并。
10.根據(jù)權(quán)利要求1所述的方法,還包括: 獲取所述非關(guān)系數(shù)據(jù)庫的歷史模式;以及 根據(jù)生成的模式與所述歷史模式之間的相似度將生成的模式與所述歷史模式進行合并,或者根據(jù)生成的模式的時間戳和所述歷史模式的時間戳將生成的模式與所述歷史模式進行合并。
11.一種用于生成非關(guān)系數(shù)據(jù)庫的模式的設(shè)備,包括: 確定器,配置用于確定非關(guān)系數(shù)據(jù)庫的至少一個條目中的鍵之間的關(guān)系; 分組器,配置用于基于所確定的關(guān)系將所述鍵劃分到至少一個分組中;以及 生成器,配置用于根據(jù)所述至少一個 分組生成所述非關(guān)系數(shù)據(jù)庫的模式。
12.根據(jù)權(quán)利要求11所述的設(shè)備,其中所述確定器包括: 第一提取單元,配置用于提取所述至少一個條目中的每個條目中包含的鍵; 第一確定單元,配置用于確定所述提取的鍵在所述每個條目中的層級信息;以及 第二確定單元,配置用于根據(jù)所述層級信息確定所述鍵之間的關(guān)聯(lián)關(guān)系。
13.根據(jù)權(quán)利要求11或12所述的設(shè)備,其中所述分組器包括: 第二提取單元,配置用于從所確定的關(guān)系中提取所述鍵之間的關(guān)聯(lián)關(guān)系;以及 第一分組單元,配置用于將具備關(guān)聯(lián)關(guān)系的鍵劃分到同一分組中。
14.根據(jù)權(quán)利要求11所述的設(shè)備,其中所述生成器包括: 第一獲取單元,配置用于獲取所述至少一個分組中的有效分組及其權(quán)重;以及 第一生成單元,配置用于基于所述有效分組及其權(quán)重,生成所述非關(guān)系數(shù)據(jù)庫的模式。
15.根據(jù)權(quán)利要求14所述的設(shè)備,其中所述第一獲取單元包括: 第三確定單元,配置用于確定所述至少一個分組中的重復(fù)的分組; 第一設(shè)定單元,配置用于將重復(fù)的分組設(shè)定為一個有效分組,其中所述有效分組的權(quán)重為所述重復(fù)的分組的重復(fù)次數(shù);以及 第二設(shè)定單元,配置用于將不重復(fù)的分組分別設(shè)定為一個有效分組,其中所述有效分組的權(quán)重為預(yù)設(shè)權(quán)重。
16.根據(jù)權(quán)利要求14所述的設(shè)備,其中所述第一生成單元包括: 比較單元,配置用于比較所述權(quán)重與預(yù)定權(quán)重閾值; 選擇單元,配置用于根據(jù)比較結(jié)果從所述有效分組中選擇一個或多個目標(biāo)分組;以及 第二生成單元,配置用于基于所述目標(biāo)分組生成所述非關(guān)系數(shù)據(jù)庫的模式。
17.根據(jù)權(quán)利要求11所述的設(shè)備,其中所述確定器包括: 第四確定單元,配置用于確定所述至少一個條目中的每個條目的時間戳; 分類單元,配置用于按照所述時間戳將所述至少一個條目進行分類; 第三提取單元,配置用于提取每個類中的每個條目中包含的鍵;以及 第五確定單元,配置用于確定每個類中的鍵之間的關(guān)聯(lián)關(guān)系。
18.根據(jù)權(quán)利要求17所述的設(shè)備,其中所述分組器包括: 第二分組單元,配置用于基于所確定的每個類中的鍵之間的關(guān)聯(lián)關(guān)系,將所述每個類中的鍵劃分到至少一個分組中。
19.根據(jù)權(quán)利要求18所述的設(shè)備,其中所述生成器包括: 第三生成單元,配置用于根據(jù)所述每個類中的鍵被劃分到的所述至少一個分組,生成與所述每個類相關(guān)聯(lián)的模式; 計算單元,配置用于計算與所述每個類相關(guān)聯(lián)的模式之間的相似度;以及 合并單元,配置用于將相似度大于預(yù)定相似度閾值的模式進行合并。
20.根據(jù)權(quán)利要求11所述的設(shè)備,還包括: 獲取器,配置用于獲取所述非關(guān)系數(shù)據(jù)庫的歷史模式;以及 合并器,配置用于根據(jù)生成的模式與所述歷史模式之間的相似度將生成的模式與所述歷史模式進行合并,或者根據(jù)生成的模式的時間戳和所述歷史模式的時間戳將生成的模式與所述歷史模式進行合 并。
【文檔編號】G06F17/30GK103714086SQ201210379457
【公開日】2014年4月9日 申請日期:2012年9月29日 優(yōu)先權(quán)日:2012年9月29日
【發(fā)明者】鄒嘉, 史巨偉, 王晨, 王嵐君 申請人:國際商業(yè)機器公司