用于非關系與關系型數據庫間數據交互的方法和裝置制造方法【專利摘要】本發(fā)明公開了一種用于非關系和關系型數據庫間數據及數據結構交互的方法和裝置,其中該方法包括:獲取源數據庫的第一物理模型;定義第一物理模型對應的數據庫的數據特征和查詢特征;根據第一物理模型、數據特征和查詢特征生成中間模型;根據預設策略、中間模型的數據結構及中間模型所包含的數據特征和查詢特征,將中間模型轉換為目標數據庫的第二物理模型;建立第一物理模型-中間模型-第二物理模型的映射關系,并根據映射關系將源數據庫中的數據導出到目標數據庫中。本發(fā)明實施例的方法,在關系型數據庫的數據模型和非關系型數據庫的存儲結構間建立中間模型,從而為在關系型數據庫和非關系型數據庫之間進行存儲結構和數據轉換提供模型支撐。【專利說明】用于非關系與關系型數據庫間數據交互的方法和裝置【
技術領域:
】[0001]本發(fā)明涉及互聯(lián)網【
技術領域:
】,尤其涉及一種用于非關系與關系型數據庫間數據及數據結構交互的方法和裝置?!?br>背景技術:
】[0002]隨著互聯(lián)網的快速發(fā)展,互聯(lián)網中數據的種類和規(guī)模都在以驚人的速度增長,“大數據”時代的來臨已經成為現實。目前,由于傳統(tǒng)的關系型數據庫在應對大數據的存儲、查詢和分析等需求時,出現了性能和規(guī)模上的瓶頸,因此各種非關系型數據庫(NoSQL數據庫)應運而生,成為數據存儲和分析領域的一支新生力量。[0003]NoSQL為非關系型數據存儲的廣義定義,它打破了長久以來關系型數據庫與ACID(一種數據庫事務正確執(zhí)行的四個基本要素的縮寫,四個基本要素為:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability))理論大一統(tǒng)的局面。非關系型數據庫的數據存儲不需要固定的表結構,通常也不存在連接操作,并且,在大數據存取上具備關系型數據庫無法比擬的性能優(yōu)勢。非關系型數據庫以不同的存儲結構為分類依據,可分為Key-Value數據庫、列族數據庫、文檔型數據庫和圖數據庫等。雖然各種非關系型數據庫在存儲結構和存儲方式上有極大的區(qū)別,但是共通之處都為采取靈活的存儲結構、面向應用、有較高的性能。[0004]面對非關系型數據庫的存儲性能和規(guī)模優(yōu)勢,越來越多的互聯(lián)網應用商開始轉向非關系型數據庫。例如,在同一個應用中同時使用關系型數據庫和非關系型數據庫、或是將數據在關系型數據庫和非關系型數據庫之間進行導入導出、分析非關系型數據庫的數據結構等,都是非關系型數據庫研究和應用的重要研究方向。[0005]但是,由于非關系型數據庫一般沒有固定的存儲規(guī)則(或模型),因此,將數據從關系型數據庫導入非關系型數據庫時,需要通過應用的性能和規(guī)模需求動態(tài)設計存儲方式。而當數據從非關系型數據庫導入關系型數據庫時,因非關系型數據庫的非結構化特性,將在關系型數據庫中建立相應的表結構,以及將數據從非關系型數據庫映射到關系型數據庫的表結構,都是十分困難的問題。因此,如何在關系型數據庫系統(tǒng)與非關系型數據庫系統(tǒng)之間進行模型轉換,并實現兩類系統(tǒng)之間數據的有效遷移已成為學術界和工業(yè)界研究的重點?!?br/>發(fā)明內容】[0006]本發(fā)明旨在至少在一定程度上解決相關技術中的技術問題之一。[0007]為此,本發(fā)明的第一個目的在于提出一種用于非關系與關系型數據庫間數據及數據結構交互的方法。該方法在關系型數據庫的數據模型和非關系型數據庫的存儲結構間建立中間模型,從而為在關系型數據庫和非關系型數據庫之間進行存儲結構和數據轉換提供模型支撐。[0008]本發(fā)明的第二個目的在于提出一種用于非關系與關系型數據庫間數據及數據結構交互的裝置。[0009]為了實現上述目的,本發(fā)明第一方面實施例的用于非關系與關系型數據庫間數據及數據結構交互的方法,包括:獲取源數據庫的第一物理模型;定義所述第一物理模型對應的數據庫的數據特征和查詢特征;根據所述第一物理模型、所述數據特征和查詢特征生成中間模型;根據預設策略、所述中間模型的數據結構及所述中間模型所包含的數據特征和查詢特征,將所述中間模型轉換為目標數據庫的第二物理模型;建立所述第一物理模型-中間模型-第二物理模型的映射關系,并根據所述映射關系將所述源數據庫中的數據導出到所述目標數據庫中。[0010]根據本發(fā)明實施例的用于非關系與關系型數據庫間數據及數據結構交互的方法,可根據源數據庫中的第一物理模型、源數據庫中的數據特征和查詢特征生成中間模型,并根據預設策略、中間模型的數據結構及中間模型包含的數據特征和查詢特征,將中間模型轉換為目標數據庫的第二物理模型,以及建立第一物理模型-中間模型-第二物理模型的映射關系,并根據映射關系將源數據庫中的數據導出到目標數據庫中,以實現不同類型數據庫之間數據及數據結構的交互,至少具有以下優(yōu)點:(1)在非關系型數據庫尚不具備統(tǒng)一完備的數據模型的情況下,本發(fā)明能夠完成從關系型數據庫到非關系型數據庫的模型和數據的映射和遷移工作,具有很強的新穎性和獨創(chuàng)性;(2)通過依據中間模型中的數據特征和查詢特征,動態(tài)地將中間模型轉化為不同的目標數據庫的存儲模型,提高了實用性和通用性。[0011]為了實現上述目的,本發(fā)明第二方面實施例的用于非關系與關系型數據庫間數據及數據結構交互的裝置,包括:獲取模塊,用于獲取源數據庫的第一物理模型;定義模塊,用于定義所述第一物理模型對應的數據庫的數據特征和查詢特征;生成模型,用于根據所述第一物理模型、所述數據特征和查詢特征生成中間模型;轉換模塊,用于根據預設策略、所述中間模型的數據結構及所述中間模型所包含的數據特征和查詢特征,將所述中間模型轉換為目標數據庫的第二物理模型;建立模塊,用于建立所述第一物理模型-中間模型-第二物理模型的映射關系,并根據所述映射關系將所述源數據庫中的數據導出到所述目標數據庫中。[0012]根據本發(fā)明實施例的用于非關系與關系型數據庫間數據及數據結構交互的裝置,可根據源數據庫中的第一物理模型、源數據庫中的數據特征和查詢特征生成中間模型,并根據預設策略、中間模型的數據結構及中間模型包含的數據特征和查詢特征,將中間模型轉換為目標數據庫的第二物理模型,以及建立第一物理模型-中間模型-第二物理模型的映射關系,并根據映射關系將源數據庫中的數據導出到目標數據庫中,以實現不同類型數據庫之間數據及數據結構的交互,至少具有以下優(yōu)點:(I)在非關系型數據庫尚不具備統(tǒng)一完備的數據模型的情況下,本發(fā)明能夠完成從關系型數據庫到非關系型數據庫的模型和數據的映射和遷移工作,具有很強的新穎性和獨創(chuàng)性;(2)通過依據中間模型中的數據特征和查詢特征,動態(tài)地將中間模型轉化為不同的目標數據庫的存儲模型,提高了實用性和通用性。[0013]本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。【專利附圖】【附圖說明】[0014]圖1是根據本發(fā)明一個實施例的用于非關系與關系型數據庫間數據及數據結構交互的方法的流程圖;[0015]圖2是根據本發(fā)明實施例的中間模型的結構示意圖;[0016]圖3是根據本發(fā)明實施例的中間模型的示意圖;[0017]圖4是根據本發(fā)明實施例的關系型數據庫的實體-關系模型的示意圖;[0018]圖5是根據本發(fā)明實施例的具有“大數據量”標簽的關系的兩個實體進行模型轉換后得到的物理模型的示意圖;[0019]圖6是根據本發(fā)明一個實施例的用于非關系與關系型數據庫間數據及數據結構交互的裝置的結構示意圖。【具體實施方式】[0020]下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,旨在用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。[0021]目前,在現有理論成果中,對關系型數據庫已有關系模型(Relationalmodel)作為邏輯模型及實體-關系模型((Entity-relationshipmodel)作為概念模型可對其進行完備的描述。通常地,可以用實體-關系圖對一個關系型數據庫的模型進行描述。而對關系型數據庫的以行-列為基礎的表結構及表之間的關系,可用表關系圖進行表示,其中,在數據庫表關系圖中,每個實體可代表關系型數據庫的一張表,實體的屬性可代表表的列,而實體間的關系可代表與表間的鍵關系。[0022]對于非關系型數據庫,由于其存儲數據結構的多樣性(如KeyValue/文檔形式/列族形式等),目前尚未有一個統(tǒng)一的數據模型能夠描述其數據結構。但其數據結構都可歸類于包含層次的復合鍵值對結構。[0023]本發(fā)明圍繞將數據在關系型數據庫系統(tǒng)和非關系型數據庫之間進行導入導出的問題,在非關系型數據庫的模型構建與模型應用方面提出了新的思想。[0024]下面參考附圖描述根據本發(fā)明實施例的用于非關系與關系型數據庫間數據及數據結構交互的方法和裝置。[0025]圖1是根據本發(fā)明一個實施例的用于非關系與關系型數據庫間數據及數據結構交互的方法的流程圖。[0026]如圖1所示,該用于非關系與關系型數據庫間數據及數據結構交互的方法可以包括:[0027]S101,獲取源數據庫的第一物理模型。[0028]其中,在本發(fā)明的實施例中,源數據庫可為關系型數據庫和非關系型數據庫中的任意一種;第一物理模型可為實體-關系模型和層次模型中的任意一種。當源數據庫為關系型數據庫時,源數據庫的第一物理模型可為實體-關系模型;當源數據庫為非關系型數據庫時,第一物理模型可為層次模型。[0029]舉例而言,以源數據庫為關系型數據庫為例,可通過現有的模型提取工具從關系型數據庫中提取出該關系型數據庫的物理模型(即實體-關系模型)。其中,在本發(fā)明的實施例中,現有的模型提取工具可為官方提供的數據庫管理工具,如Mysql對應的管理工具可為phpMyAdmin、SQLServer對應的管理工具可為MicrosoftSQLServer的各種版本等。[0030]應當理解,當源數據庫為非關系型數據庫時,如Hypertable、MongoDB>ApacheCassandra等,所指的模型提取工具一般均為第三方提供的,且大多為開源軟件,如mongodb-Variety等,數據建模人員可自定義這些開源的提供工具以便于數據庫的開發(fā)及使用。[0031]S102,定義第一物理模型對應的數據庫的數據特征和查詢特征。[0032]在本發(fā)明的實施例中,第一物理模型可具有多個對象,每個對象均可包含若干的數據特征和查詢特征。數據特征和查詢特征均可有其固定的名字,并可以以標注的形式與對應的對象關聯(lián)。其中,數據特征可描述在實際數據存儲中對應的對象的存儲特點,如一個實體的“大數據量”特征,表示在實際存儲的數據中,被標注的對象擁有較大的數據量。此夕卜,查詢特征可描述在實際數據系統(tǒng)應用中,在進行查詢和分析等操作時,對應的對象涉及的查詢特點,如一個屬性的“常被查詢”特征,表示該屬性在實際數據應用當中常被進行查詢操作。[0033]S103,根據第一物理模型、數據特征和查詢特征生成中間模型。[0034]具體而言,在源數據庫中,由于各個實體可能會存在多種數據特征和查詢特征,所以,可先將這些數據特征和查詢特征進行挖掘以獲取第一物理模型對應的數據庫中的數據特征和查詢特征,之后可將這些數據特征和查詢特征附加至該第一物理模型中以生成中間模型。[0035]其中,在本發(fā)明的實施例中,中間模型可具有多個對象,每個對象可包含多個數據特征和查詢特征,數據特征和查詢特征均可以以標注的形式與對應的對象關聯(lián)。例如,圖2是根據本發(fā)明實施例的中間模型的結構示意圖,如圖2所示,中間模型可包含對象,還可包含實體、屬性、關系等,“實體”、“屬性”、“關系”均為對象的一種繼承。實體可表示一個離散的對象,可以代表對實際生產中一類對象的總稱,如學生、雇員、公司、班級等。關系可描述兩個或更多實體間相互如何關聯(lián),如在公司和雇員之間有名為“雇傭”的關聯(lián)。此外,實體可以擁有屬性,一個實體擁有的屬性數是固定的,屬性可描述實體的特征,如學生可擁有學號、姓名、身高、體重等屬性。[0036]舉例而言,如圖3所示,在該中間模型中,包含mb_UserInfo(用戶信息)、mb_Blog(博客)、mb_Tag(標簽)三個實體,這三個實體分別包含對應的屬性,如mb_UserInfo(用戶信息)包括nickName(姓名)、Phone(電話)、Email(郵箱地址)、City(城市)等,mb_Blog(博客)包括Uid(用戶ID(Identity,身份標識號碼))、MessageContent(信息內容)、DateTime(日期)等,mb_Tag(標簽)包括MID(標簽ID(Identity,身份標識號碼))、tagContent(標簽內容)、dateTime(日期)等。而mb_UserInfo(用戶信息)、和mb_Blog(博客)、mb_Blog(博客)和mb_Tag(標簽)間,分別存在關系。本中間模型的重點是在各對象上標注了數據特征和查詢特征,如在mb_Tag實體上含有“常被添加的”標注,說明該實體在數據庫實際存儲中常被進行添加(append)操作。[0037]S104,根據預設策略、中間模型的數據結構及中間模型所包含的數據特征和查詢特征,將中間模型轉換為目標數據庫的第二物理模型。[0038]其中,在本發(fā)明的實施例中,預設策略可理解為約定俗成的經驗、數據模型轉換所遵循的準則和/或規(guī)則等。[0039]應當理解,在本發(fā)明的實施例中,由于中間模型是由源數據庫中的數據特征和查詢特征附加到第一物理模型中以生成的,因此,中間模型所包含的數據特征和查詢特征與源數據庫中定義的數據特征和查詢特征是一致的。[0040]具體地,在生成中間模型之后,可根據中間模型的數據結構及其包括的數據特征和查詢特征,可以通過預設策略,將中間模型自動地轉換為目標數據庫的第二物理模型,從而在進行數據和模型遷移時,該中間模型可以映射成符合應用要求的不同的數據庫的物理模型。其中,在本發(fā)明的實施例中,目標數據庫可為關系型數據庫和非關系型數據庫中的任意一種;第二物理模型可為實體-關系模型和層次模型中的任意一種。應當理解,當目標數據庫為非關系型數據庫時,目標數據庫的第二物理模型可為層次模型;當目標數據庫為關系型數據庫時,第二物理模型可為實體-關系模型。[0041]需要說明的是,本發(fā)明的實施例主要應用于非關系型數據庫與關系型數據庫之間數據及數據結構的交互,即從關系型數據庫遷移數據到非關系型數據庫、或從非關系型數據庫遷移數據到關系型數據庫以實現不同類型數據庫之間數據及數據結構的交互。也就是說,當源數據庫為關系型數據庫時,目標數據庫可為非關系型數據庫,第一物理模型可為實體-關系模型,第二物理模型可為層次模型;當源數據庫為非關系型數據庫時,目標數據庫可為關系型數據庫,第一物理模型可為層次模型,第二物理模型可為實體-關系模型。[0042]S105,建立第一物理模型-中間模型-第二物理模型的映射關系,并根據映射關系將源數據庫中的數據導出到目標數據庫中。[0043]具體地,中間模型中具有一系列的數據特征和查詢特征,可根據這些數據特征和查詢特征以及目標數據庫,通過預設策略進行模型的轉換和映射,以建立第一物理模型-中間模型-第二物理模型的映射關系,之后可根據該映射關系將源數據庫中的數據導出到目標數據庫中,以實現不同類型數據庫之間數據及數據結構的交互。[0044]根據本發(fā)明實施例的用于非關系與關系型數據庫間數據及數據結構交互的方法,可根據源數據庫中的第一物理模型、源數據庫中的數據特征和查詢特征生成中間模型,并根據預設策略、中間模型的數據結構及中間模型包含的數據特征和查詢特征,將中間模型轉換為目標數據庫的第二物理模型,以及建立第一物理模型-中間模型-第二物理模型的映射關系,并根據映射關系將源數據庫中的數據導出到目標數據庫中,以實現不同類型數據庫之間數據及數據結構的交互,至少具有以下優(yōu)點:(I)在非關系型數據庫尚不具備統(tǒng)一完備的數據模型的情況下,本發(fā)明能夠完成從關系型數據庫到非關系型數據庫的模型和數據的映射和遷移工作,具有很強的新穎性和獨創(chuàng)性;(2)通過依據中間模型中的數據特征和查詢特征,動態(tài)地將中間模型轉化為不同的目標數據庫的存儲模型,提高了實用性和通用性。[0045]為了使得本發(fā)明的描述更加清楚,下面舉例說明。[0046]例如,以從關系型數據庫遷移數據到非關系型數據庫為例,對于一個存儲用戶信息、用戶撰寫的博客及博客的標簽的關系型數據庫來說,可提取出其實體-關系模型。如圖4所示,為關系型數據庫的實體-關系模型,具有mb_userinfo(用戶信息)、mb_blog(博客)和mb_tag(標簽)這三個實體,以及這三個實體對應的屬性、實體之間的關系。在該實體-關系模型當中,各實體可能存在多種數據特征和查詢特征,可將這些數據特征和查詢特征進行挖掘,并附加到該實體-關系模型中,即可得到用于數據遷移的中間模型。如圖3所示,在該中間模型中,定義了一系列數據特征和查詢特征,可根據這些數據特征和查詢特征,以及非關系型數據庫,通過預設策略進行模型的轉換和映射,之后可根據該映射將關系型數據庫中的數據導出到非關系型數據庫中,以實現不同類型數據庫間數據及數據結構的交互。[0047]需要說明的是,在本發(fā)明的實施例中,當中間模型中實體間的關系包含特殊的數據特征和/或查詢特征時,應采取特殊的策略對其進行模型轉換。例如,如圖3所示,在該中間模型中,mb_Blog(博客)與mb_Tag(標簽)間的關系包含“大數據量”標簽,表明這兩個實體間的關系量較大。對于多數非關系型數據庫(如MongoDB等),處理這種具有緊密關系的情況時,可將這兩個實體存儲在同一個MongoDB集合內,以滿足查詢性能。因此,可通過中間模型的數據特征以及預設策略,即可得到非關系型數據庫(以MongoDB為例)的物理模型??梢姡谀繕藬祿斓奈锢砟P椭?,mb_Tag集合按照數據特征可被存儲在mb_Blog集合中(如圖5所示),滿足了MongoDB的查詢性能。[0048]為了實現上述實施例,本發(fā)明還提出一種用于非關系與關系型數據庫間數據及數據結構交互的裝置。[0049]圖6是根據本發(fā)明一個實施例的用于非關系與關系型數據庫間數據及數據結構交互的裝置的結構示意圖。[0050]如圖6所示,該用于非關系與關系型數據庫間數據及數據結構交互的裝置可以包括:獲取模塊10、定義模塊20、生成模塊30、轉換模塊40和建立模塊50。[0051]具體地,獲取模塊10用于獲取源數據庫的第一物理模型。其中,在本發(fā)明的實施例中,源數據庫可為關系型數據庫和非關系型數據庫中的任意一種;第一物理模型可為實體-關系模型和層次模型中的任意一種。當源數據庫為關系型數據庫時,源數據庫的第一物理模型可為實體-關系模型;當源數據庫為非關系型數據庫時,第一物理模型可為層次模型。[0052]舉例而言,以源數據庫為關系型數據庫為例,獲取模塊10可通過現有的模型提取工具從關系型數據庫中提取出該關系型數據庫的物理模型(即實體-關系模型)。其中,在本發(fā)明的實施例中,現有的模型提取工具可為官方提供的數據庫管理工具,如Mysql對應的管理工具可為phpMyAdmin、SQLServer對應的管理工具可為MicrosoftSQLServer的各種版本等。[0053]應當理解,當源數據庫為非關系型數據庫時,如Hypertable、MongoDB>ApacheCassandra等,所指的模型提取工具一般均為第三方提供的,且大多為開源軟件,如mongodb-Variety等,數據建模人員可自定義這些開源的提供工具以便于數據庫的開發(fā)及使用。[0054]定義模塊20用于定義第一物理模型對應的數據庫的數據特征和查詢特征。在本發(fā)明的實施例中,第一物理模型可具有多個對象,每個對象均可包含若干的數據特征和查詢特征。數據特征和查詢特征均可有其固定的名字,并可以以標注的形式與對應的對象關聯(lián)。[0055]其中,在本發(fā)明的實施例中,數據特征可描述在實際數據存儲中對應的對象的存儲特征,如一個實體的“大數據量”特征,表示在實際存儲的數據中,被標注的對象擁有較大的數據量。此外,查詢特征可描述在實際數據系統(tǒng)應用中,在進行查詢和分析等操作時,對應的對象涉及的查詢特點,如一個屬性的“常被查詢”特征,表示該屬性在實際數據應用當中常被進行查詢操作。[0056]生成模塊30用于根據第一物理模型、數據特征和查詢特征生成中間模型。具體而言,在源數據庫中,由于各個實體可能會存在多種數據特征和查詢特征,所有,生成模塊30可先將這些數據特征和查詢特征進行挖掘以獲取第一物理模型對應的數據庫中的數據特征和查詢特征,之后可將這些數據特征和查詢特征附加至該第一物理模型中以生成中間模型。[0057]其中,在本發(fā)明的實施例中,中間模型可具有多個對象,每個對象可包含多個數據特征和查詢特征,數據特征和查詢特征均可以以標注的形式與對應的對象關聯(lián)。例如,圖2為本發(fā)明實施例的中間模型的結構示意圖,如圖2所示,中間模型可包含對象,還可包含實體、屬性、關系等,“實體”、“屬性”、“關系”均為對象的一種繼承。實體可表示一個離散的對象,可以代表對實際生產中一類對象的總稱,如學生、雇員、公司、班級等。關系可描述兩個或更多實體間相互如何關聯(lián),如在公司和雇員之間有名為“雇傭”的關聯(lián)。此外,實體可以擁有屬性,一個實體擁有的屬性數是固定的,屬性可描述實體的特征,如學生可擁有學號、姓名、身高、體重等屬性。[0058]舉例而言,如圖3所示,在該中間模型中,包含mb_UserInfo(用戶信息)、mb_Blog(博客)、mb_Tag(標簽)三個實體,這三個實體分別包含對應的屬性,如mb_UserInfo(用戶信息)包括nickName(姓名)、Phone(電話)、Email(郵箱地址)、City(城市)等,mb_Blog(博客)包括Uid(用戶ID)、MessageContent(信息內容)、DateTime(日期)等,mb_Tag(標簽)包括MID(標簽ID)、tagContent(標簽內容)、dateTime(日期)等。而mb_UserInfo(用戶信息)、和mb_Blog(博客)、mb_Blog(博客)和mb_Tag(標簽)間,分別存在關系。本中間模型的重點是在各對象上標注了數據特征和查詢特征,如在mb_Tag實體上含有“常被添加的”標注,說明該實體在數據庫實際存儲中常被進行添加(append)操作。[0059]轉換模塊40用于根據預設策略、中間模型的數據結構及中間模型所包含的數據特征和查詢特征,將中間模型轉換為目標數據庫的第二物理模型。其中,在本發(fā)明的實施例中,預設策略可理解為約定俗成的經驗、數據模型轉換所遵循的準則和/或規(guī)則等。[0060]應當理解,在本發(fā)明的實施例中,由于中間模型是由源數據庫中的數據特征和查詢特征附加到第一物理模型中以生成的,因此,中間模型所包含的數據特征和查詢特征與源數據庫中定義的數據特征和查詢特征是一致的。[0061]更具體地,轉換模塊40在生成模塊30生成中間模型之后,可根據中間模型的數據結構及其包括的數據特征和查詢特征,可以通過預設策略,將中間模型自動地轉換為目標數據庫的第二物理模型,從而在進行數據和模型遷移時,該中間模型可以映射成符合應用要求的不同的數據庫的物理模型。其中,在本發(fā)明的實施例中,目標數據庫可為關系型數據庫和非關系型數據庫中的任意一種;第二物理模型可為實體-關系模型和層次模型中的任意一種。應當理解,當目標數據庫為非關系型數據庫時,目標數據庫的第二物理模型可為層次模型;當目標數據庫為關系型數據庫時,第二物理模型可為實體-關系模型。[0062]需要說明的是,本發(fā)明的實施例主要應用于非關系型數據庫與關系型數據庫之間數據及數據結構的交互,即從關系型數據庫遷移數據到非關系型數據庫、或從非關系型數據庫遷移數據到關系型數據庫以實現不同類型數據庫之間數據及數據結構的交互。也就是說,當源數據庫為關系型數據庫時,目標數據庫可為非關系型數據庫,第一物理模型可為實體-關系模型,第二物理模型可為層次模型;當源數據庫為非關系型數據庫時,目標數據庫可為關系型數據庫,第一物理模型可為層次模型,第二物理模型可為實體-關系模型。[0063]建立模型50用于建立第一物理模型-中間模型-第二物理模型的映射關系,并根據映射關系將源數據庫中的數據導出到目標數據庫中。更具體地,中間模型中具有一系列的數據特征和查詢特征,建立模型50可根據這些數據特征和查詢特征以及目標數據庫,通過預設策略進行模型的轉換和映射,以建立第一物理模型-中間模型-第二物理模型的映射關系,之后可根據該映射關系將源數據庫中的數據導出到目標數據庫中,以實現不同類型數據庫之間數據及數據結構的交互。[0064]根據本發(fā)明實施例的用于非關系與關系型數據庫間數據及數據結構交互的裝置,可通過生成模塊根據源數據庫的第一物理模型、源數據庫的數據特征和查詢特征生成中間模型,轉換模塊根據預設策略、中間模型的數據結構及中間模型所包含的數據特征和查詢特征,將中間模型轉換為目標數據庫的第二物理模型,建立模型建立第一物理模型-中間模型-第二物理模型的映射關系,并根據映射關系將源數據庫中的數據導出到目標數據庫中,以實現不同類型數據庫之間數據及數據結構的交互,至少具有以下優(yōu)點:(I)在非關系型數據庫尚不具備統(tǒng)一完備的數據模型的情況下,本發(fā)明能夠完成從關系型數據庫到非關系型數據庫的模型和數據的映射和遷移工作,具有很強的新穎性和獨創(chuàng)性;(2)通過依據中間模型中的數據特征和查詢特征,動態(tài)地將中間模型轉化為不同的目標數據庫的存儲模型,提高了實用性和通用性。[0065]需要說明的是,本發(fā)明除在不同數據庫間數據導入導出的使用外,還可作為面向數據庫管理人員的不同數據庫的進入接口。通過本發(fā)明實施例中的中間模型,可以以一個統(tǒng)一的結構訪問不同的數據庫。由此,可具備很強的擴展性和簡便性。[0066]流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明的優(yōu)選實施方式的范圍包括另外的實現,其中可以不按所示出或討論的順序,包括根據所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應被本發(fā)明的實施例所屬【
技術領域:
】的技術人員所理解。[0067]在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認為是用于實現邏輯功能的可執(zhí)行指令的定序列表,可以具體實現在任何計算機可讀介質中,以供指令執(zhí)行系統(tǒng)、裝置或設備(如基于計算機的系統(tǒng)、包括處理器的系統(tǒng)或其他可以從指令執(zhí)行系統(tǒng)、裝置或設備取指令并執(zhí)行指令的系統(tǒng))使用,或結合這些指令執(zhí)行系統(tǒng)、裝置或設備而使用。就本說明書而言,"計算機可讀介質"可以是任何可以包含、存儲、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設備或結合這些指令執(zhí)行系統(tǒng)、裝置或設備而使用的裝置。計算機可讀介質的更具體的示例(非窮盡性列表)包括以下:具有一個或多個布線的電連接部(電子裝置),便攜式計算機盤盒(磁裝置),隨機存取存儲器(RAM),只讀存儲器(R0M),可擦除可編輯只讀存儲器(EPR0M或閃速存儲器),光纖裝置,以及便攜式光盤只讀存儲器(⑶ROM)。另外,計算機可讀介質甚至可以是可在其上打印所述程序的紙或其他合適的介質,因為可以例如通過對紙或其他介質進行光學掃描,接著進行編輯、解譯或必要時以其他合適方式進行處理來以電子方式獲得所述程序,然后將其存儲在計算機存儲器中。[0068]應當理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實現。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現。例如,如果用硬件來實現,和在另一實施方式中一樣,可用本領域公知的下列技術中的任一項或他們的組合來實現:具有用于對數據信號實現邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現場可編程門陣列(FPGA)等。[0069]本【
技術領域:
】的普通技術人員可以理解實現上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,該程序在執(zhí)行時,包括方法實施例的步驟之一或其組合。[0070]此外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現,也可以采用軟件功能模塊的形式實現。所述集成的模塊如果以軟件功能模塊的形式實現并作為獨立的產品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質中。[0071]上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。[0072]在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不必須針對的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任一個或多個實施例或示例中以合適的方式結合。此外,在不相互矛盾的情況下,本領域的技術人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特征進行結合和組合。[0073]盡管上面已經示出和描述了本發(fā)明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發(fā)明的限制,本領域的普通技術人員在本發(fā)明的范圍內可以對上述實施例進行變化、修改、替換和變型?!緳嗬蟆?.一種用于非關系與關系型數據庫間數據及數據結構交互的方法,其特征在于,包括:獲取源數據庫的第一物理模型;定義所述第一物理模型對應的數據庫的數據特征和查詢特征;根據所述第一物理模型、所述數據特征和查詢特征生成中間模型;根據預設策略、所述中間模型的數據結構及所述中間模型所包含的數據特征和查詢特征,將所述中間模型轉換為目標數據庫的第二物理模型;建立所述第一物理模型-中間模型-第二物理模型的映射關系,并根據所述映射關系將所述源數據庫中的數據導出到所述目標數據庫中。2.根據權利要求1所述的方法,其特征在于,所述源數據庫、目標數據庫均為關系型數據庫和非關系型數據庫中的任意一種;所述第一物理模型、第二物理模型均為實體-關系模型和層次模型中的任意一種。3.根據權利要求1或2所述的方法,其特征在于,當所述源數據庫為所述關系型數據庫時,所述目標數據庫為所述非關系型數據庫,所述第一物理模型為所述實體-關系模型,所述第二物理模型為所述層次模型;當所述源數據庫為所述非關系型數據庫時,所述目標數據庫為所述關系型數據庫,所述第一物理模型為所述層次模型,所述第二物理模型為所述實體-關系模型。4.根據權利要求1所述的方法,其特征在于,所述根據第一物理模型、所述數據特征和查詢特征生成中間模型包括:獲取所述第一物理模型對應的數據庫中的數據特征和查詢特征,并將所述數據特征和查詢特征附加至所述第一物理模型中以生成所述中間模型。5.根據權利要求1或4所述的方法,其特征在于,所述中間模型具有多個對象,每個所述對象包含多個所述數據特征和查詢特征,所述數據特征和查詢特征均以標注的形式與對應的對象關聯(lián)。6.一種用于非關系與關系型數據庫間數據及數據結構交互的裝置,其特征在于,包括:獲取模塊,用于獲取源數據庫的第一物理模型;定義模塊,用于定義所述第一物理模型對應的數據庫的數據特征和查詢特征;生成模塊,用于根據所述第一物理模型、所述數據特征和查詢特征生成中間模型;轉換模塊,用于根據預設策略、所述中間模型的數據結構及所述中間模型所包含的數據特征和查詢特征,將所述中間模型轉換為目標數據庫的第二物理模型;建立模塊,用于建立所述第一物理模型-中間模型-第二物理模型的映射關系,并根據所述映射關系將所述源數據庫中的數據導出到所述目標數據庫中。7.根據權利要求6所述的裝置,其特征在于,所述源數據庫、目標數據庫均為關系型數據庫和非關系型數據庫中的任意一種;所述第一物理模型、第二物理模型均為實體-關系模型和層次模型中的任意一種。8.根據權利要求6或7所述的裝置,其特征在于,當所述源數據庫為所述關系型數據庫時,所述目標數據庫為所述非關系型數據庫,所述第一物理模型為所述實體-關系模型,所述第二物理模型為所述層次模型;當所述源數據庫為所述非關系型數據庫時,所述目標數據庫為所述關系型數據庫,所述第一物理模型為所述層次模型,所述第二物理模型為所述實體-關系模型。9.根據權利要求6所述的裝置,其特征在于,所述生成模塊還用于:獲取所述第一物理模型對應的數據庫中的數據特征和查詢特征,并將所述數據特征和查詢特征附加至所述第一物理模型中以生成所述中間模型。10.根據權利要求6或9所述的裝置,其特征在于,所述中間模型具有多個對象,每個所述對象包含多個所述數據特征和查詢特征,所述數據特征和查詢特征均以標注的形式與對應的對象關聯(lián)?!疚臋n編號】G06F17/30GK103810275SQ201410050425【公開日】2014年5月21日申請日期:2014年2月13日優(yōu)先權日:2014年2月13日【發(fā)明者】丁貴廣,林運禎申請人:清華大學