亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種從非關系型數(shù)據(jù)庫到關系型數(shù)據(jù)庫的數(shù)據(jù)遷移方法

文檔序號:6513173閱讀:796來源:國知局
一種從非關系型數(shù)據(jù)庫到關系型數(shù)據(jù)庫的數(shù)據(jù)遷移方法
【專利摘要】本發(fā)明涉及一種從非關系型數(shù)據(jù)庫到關系型數(shù)據(jù)庫的數(shù)據(jù)遷移方法,包括如下步驟:連接需要進行數(shù)據(jù)遷移的非關系型數(shù)據(jù)庫,獲取數(shù)據(jù)庫中的表格信息;選擇需要進行數(shù)據(jù)遷移的表和數(shù)據(jù)庫模式定義方法,其中可選擇的數(shù)據(jù)庫模式定義方法包括用戶自定義、并集兼容、交集兼容、首條數(shù)據(jù);將信息從非關系型數(shù)據(jù)庫中導出到定義的xml文件中;將非關系型數(shù)據(jù)庫的數(shù)據(jù)庫設計模式轉(zhuǎn)變成對應的關系型數(shù)據(jù)庫的設計模式;連接對應的關系型數(shù)據(jù)庫,根據(jù)xml文件中的數(shù)據(jù)庫設計模式,建立對應的數(shù)據(jù)表;按照index元素中的索引信息,建立對應的索引。本發(fā)明解決了非關系數(shù)據(jù)庫(如MonogDB)到關系型數(shù)據(jù)庫進行數(shù)據(jù)遷移時所具有的反范式設計、無模式化和特殊數(shù)據(jù)類型的問題。
【專利說明】一種從非關系型數(shù)據(jù)庫到關系型數(shù)據(jù)庫的數(shù)據(jù)遷移方法【技術領域】
[0001]本發(fā)明涉及一種從非關系型數(shù)據(jù)庫到關系型數(shù)據(jù)庫的數(shù)據(jù)遷移方法。
【背景技術】
[0002]目前的應用中普遍存在需要處理來自于多個數(shù)據(jù)庫的異構(gòu)數(shù)據(jù)問題,現(xiàn)有技術主要解決在幾種常用的關系型數(shù)據(jù)庫,如Oracle, MySQL, Microsoft SQL Server之間進行數(shù)據(jù)的遷移。隨著非關系型數(shù)據(jù)庫的出現(xiàn)和發(fā)展,越來越多的應用中同時使用了關系型數(shù)據(jù)庫和非關系型數(shù)據(jù)庫,需要解決非關系型數(shù)據(jù)庫和關系型數(shù)據(jù)庫之間數(shù)據(jù)遷移的難題。
[0003]MongoDB與關系型數(shù)據(jù)庫之間數(shù)據(jù)遷移相比于關系型數(shù)據(jù)庫之間數(shù)據(jù)遷移,需要解決的難題主要有以下幾點:
[0004]1.MongoDB數(shù)據(jù)庫設計常采用反范式設計,不同于關系型數(shù)據(jù)庫的范式化設計,允許字段的冗余,犧牲空間來換取時間。
[0005]2.MonogDB數(shù)據(jù)庫中的表格具有無模式的特點,表格并沒有統(tǒng)一的模式,例如兩條記錄可以包含不同的屬性列等。
[0006]3.MongoDB中有特殊的數(shù)組和嵌入文檔兩種數(shù)據(jù)類型,在關系型數(shù)據(jù)庫中并沒有數(shù)據(jù)類型與此對應。
[0007]現(xiàn)有技術一般都是在主流的幾種關系型數(shù)據(jù)庫之間遷移數(shù)據(jù)。解決數(shù)據(jù)遷移時數(shù)據(jù)庫設計模式的提取、數(shù)據(jù)庫設計模式的轉(zhuǎn)換和數(shù)據(jù)異構(gòu)的沖突的問題。因為關系型數(shù)據(jù)庫都是按照范式化準則設計,在數(shù)據(jù)庫設計模式上具有很高的相似性,而非關系型數(shù)據(jù)庫的設計理念不同于關系型數(shù)據(jù)庫,常采用反范式的方法設計,且每種非關系型數(shù)據(jù)庫都具有自身的特點,已有的方法并不能解決非關系型數(shù)據(jù)庫與關系型數(shù)據(jù)庫之間數(shù)據(jù)遷移的問題。
[0008]例如,河海大學碩士賈長云在其碩士論文《基于XML的異構(gòu)數(shù)據(jù)庫數(shù)據(jù)交換的研究與實現(xiàn)——校園網(wǎng)信息管理平臺中的數(shù)據(jù)交換》中提出來的方法,是以XML文件作為中間載體,解決了 Oracle數(shù)據(jù)庫與SQL Server2000數(shù)據(jù)庫之間的數(shù)據(jù)交換。其算法流程包括以下幾個部分:提取源數(shù)據(jù)庫設計模式,進行源數(shù)據(jù)庫與目標數(shù)據(jù)庫之間的數(shù)據(jù)模式映射,導出數(shù)據(jù),按照目標數(shù)據(jù)庫數(shù)據(jù)模式導入數(shù)據(jù),對數(shù)據(jù)異構(gòu)沖突進行處理幾個步驟。
[0009]上述現(xiàn)有技術不能解決從非關系型數(shù)據(jù)庫到關系型數(shù)據(jù)庫的數(shù)據(jù)遷移問題。

【發(fā)明內(nèi)容】

[0010]本發(fā)明的目的就是為了解決從非關系型數(shù)據(jù)庫到關系型數(shù)據(jù)庫的數(shù)據(jù)遷移問題,提出一種從非關系型數(shù)據(jù)庫到關系型數(shù)據(jù)庫的數(shù)據(jù)遷移方法。
[0011]為此,本發(fā)明的方法包括如下步驟:A、連接需要進行數(shù)據(jù)遷移的非關系型數(shù)據(jù)庫,獲取數(shù)據(jù)庫中的表格信息;B、根據(jù)用戶的輸入,選擇需要進行數(shù)據(jù)遷移的表和數(shù)據(jù)庫模式定義方法,其中可選擇的數(shù)據(jù)庫模式定義方法包括用戶自定義、并集兼容、交集兼容、首條數(shù)據(jù)四種方法;C、將信息從非關系型數(shù)據(jù)庫中導出到定義的xml文件中;D、將非關系型數(shù)據(jù)庫的數(shù)據(jù)庫設計模式轉(zhuǎn)變成對應的關系型數(shù)據(jù)庫的設計模式;E、連接對應的關系型數(shù)據(jù)庫,根據(jù)xml文件中的數(shù)據(jù)庫設計模式,建立對應的數(shù)據(jù)表;F、按照index元素中的索引信息,建立對應的索引;G、返回數(shù)據(jù)遷移結(jié)果。
[0012]優(yōu)選地,本發(fā)明還包括如下特征:
[0013]其中步驟B中,用戶自定義是指:用戶自己定義數(shù)據(jù)庫的每一個字段,包括字段名稱、數(shù)據(jù)類型、字段別名、非空約束、主鍵約束;程序?qū)⒂脩舳x的數(shù)據(jù)庫模式存儲到xml文件的meta元素中,供下一步處理;并集兼容是指:程序分析數(shù)據(jù)庫中的所有數(shù)據(jù),提取字段信息,對行記錄中存在不同字段的情況,取并集處理,包含所有的數(shù)據(jù)列;程序?qū)⑻崛〉臄?shù)據(jù)庫設計模式存儲到xml文件的meta元素中,供下一步處理;交集兼容是指:程序分析數(shù)據(jù)庫中的所有數(shù)據(jù),提取字段信息,對行記錄中存在不同字段的情況,取交集處理,包含所有記錄共有數(shù)據(jù)列;程序?qū)⑻崛〉臄?shù)據(jù)庫設計模式存儲到xml文件的meta元素中,供下一步處理;首條數(shù)據(jù)是指:程序分析數(shù)據(jù)庫中的第一條數(shù)據(jù),提取字段信息;程序?qū)⑻崛〉臄?shù)據(jù)庫設計模式存儲到xml文件的meta元素中,供下一步處理。
[0014]其中步驟C中,表名信息存儲在xml文件的根元素的name屬性中,數(shù)據(jù)庫的設計模式信息存儲在meta元素中,數(shù)據(jù)信息存儲在data元素中,索引信息存儲在index元素中。
[0015]其中步驟D中,對嵌入文檔的處理方法如下:對表格進行拆分,字段信息存儲到以字段名作為表名新建的表格中,原表的對應字段類型變成string型,存儲新建的表格的表名;新建表格中增加主鍵字段,保證記錄的唯一性,以原表格的主鍵作為外鍵與原表格建立連接,嵌入文檔的子文檔作為新建表格的數(shù)據(jù)列;如果存在多重嵌入文檔,則遞歸進行此操作;當需要獲取原表的嵌入文檔信息時,通過原表相應字段存儲的新建表的表名和原表的主鍵從新建表中獲取對應信息。
[0016]其中步驟D中,對數(shù)組的處理方法如下:對表格進行拆分,字段信息存儲到以字段名作為表名新建的表格中,原表的對應字段類型變成string型,存儲新建的表格的表名;新建表格中使用復合主鍵,主鍵包括原表的主鍵和數(shù)值在原數(shù)組中的序號;新建表格中的數(shù)據(jù)列字段名為數(shù)組字段字段名;如果存在多重嵌入數(shù)組,則遞歸進行此操作;當需要獲取原表的數(shù)組字段信息時,通過原表相應字段存儲的新建表的表名和原表的主鍵和數(shù)據(jù)在原數(shù)組中的序號,從新建表中獲取對應數(shù)值。
[0017]其中步驟E中,對于嵌入文檔和數(shù)組兩種數(shù)據(jù)類型所拆分出來的新表與原表建立外鍵約束,并在導入過程中需要對可能遇到的數(shù)據(jù)異構(gòu)沖突進行處理。
[0018]本發(fā)明利用數(shù)據(jù)中間載體的XML文件具有可定義的特點,配合從無模式的非關系型數(shù)據(jù)庫表格中自動提取數(shù)據(jù)庫設計模式的自定義、并集兼容、交集兼容和首條數(shù)據(jù)四種方法,從而可以設計特殊的定義結(jié)構(gòu)適用于解決非關系數(shù)據(jù)庫(如MonogDB)到關系型數(shù)據(jù)庫進行數(shù)據(jù)遷移時所具有的反范式設計、無模式化和特殊數(shù)據(jù)類型的問題。
[0019]本發(fā)明還對非關系型數(shù)據(jù)庫中的數(shù)組和嵌入文檔兩種特殊數(shù)據(jù)類型進行了表格拆分方法處理。
【專利附圖】

【附圖說明】
[0020]圖1是本發(fā)明實施例算法程序流程圖。[0021]圖2a、圖2b是本發(fā)明實施例對嵌入文檔和數(shù)組兩種特殊數(shù)據(jù)類型的處理前后示例圖。
[0022]圖3是將MongoDB中的device表導入到MySQL時MongoDB中的device表?!揪唧w實施方式】
[0023]本實施例針對于非關系型數(shù)據(jù)庫MongoDB相比于關系型數(shù)據(jù)庫的不同點,對從MongoDB到關系型數(shù)據(jù)庫的數(shù)據(jù)遷移難題進行了解決。解決了從MongoDB到關系型數(shù)據(jù)庫不同于關系型數(shù)據(jù)庫之間數(shù)據(jù)遷移的數(shù)據(jù)庫設計模型提取時的MongoDB的無模式問題、數(shù)據(jù)庫設計模型轉(zhuǎn)換時的MongoDB反范式設計問題、數(shù)據(jù)類型映射時MongoDB特有的數(shù)組和嵌入文檔數(shù)據(jù)類型問題的處理。
[0024]本實施例相比于傳統(tǒng)的方法,可以有效地解決MongoDB到關系型數(shù)據(jù)庫的數(shù)據(jù)遷移問題。使用并集兼容、交集兼容、首條數(shù)據(jù)三種方法解決MongoDB的無模式特點在遷移中的問題。使用特殊設計的表格拆分方法解決MongoDB特有的數(shù)組和嵌入文檔數(shù)據(jù)類型的處理問題和MongoDB的反范式設計問題。但本發(fā)明并不限于適用于MongoDB數(shù)據(jù)庫。
[0025]該實施例提供了一種從MongoDB到主流關系型數(shù)據(jù)庫的數(shù)據(jù)遷移方法,如圖1所示,其步驟如下所述:
[0026]1.連接需要進行數(shù)據(jù)遷移的MongoDB數(shù)據(jù)庫(SlOl ),獲取數(shù)據(jù)庫中的表格信息(S102)。
[0027]2.用戶選擇需要進行數(shù)據(jù)遷移的表(MongoDB中稱為集合)(S103)和數(shù)據(jù)庫模式定義方法(S104-S107),其中數(shù)據(jù)庫模式定義方法包括用戶自定義、并集兼容、交集兼容、首條數(shù)據(jù)四種方法,方法說明參見數(shù)據(jù)庫模式定義方法說明表。
[0028]表1數(shù)據(jù)庫模式定義方法說明表
[0029]...............Si
【權(quán)利要求】
1.一種從非關系型數(shù)據(jù)庫到關系型數(shù)據(jù)庫的數(shù)據(jù)遷移方法,其特征是,包括如下步驟: A、連接需要進行數(shù)據(jù)遷移的非關系型數(shù)據(jù)庫,獲取數(shù)據(jù)庫中的表格信息; B、根據(jù)用戶的輸入,選擇需要進行數(shù)據(jù)遷移的表和數(shù)據(jù)庫模式定義方法,其中可選擇的數(shù)據(jù)庫模式定義方法包括用戶自定義、并集兼容、交集兼容、首條數(shù)據(jù)四種方法; C、將信息從非關系型數(shù)據(jù)庫中導出到定義的xml文件中; D、將非關系型數(shù)據(jù)庫的數(shù)據(jù)庫設計模式轉(zhuǎn)變成對應的關系型數(shù)據(jù)庫的設計模式; E、連接對應的關系型數(shù)據(jù)庫,根據(jù)xml文件中的數(shù)據(jù)庫設計模式,建立對應的數(shù)據(jù)表; F、按照index元素中的索引信息,建立對應的索引; G、返回數(shù)據(jù)遷移結(jié)果。
2.如權(quán)利要求1所述的數(shù)據(jù)遷移方法,其特征是:其中步驟B中, 用戶自定義是指:用戶自己定義數(shù)據(jù)庫的每一個字段,包括字段名稱、數(shù)據(jù)類型、字段別名、非空約束、主鍵約束;程序?qū)⒂脩舳x的數(shù)據(jù)庫模式存儲到xml文件的meta元素中,供下一步處理; 并集兼容是指:程序分析數(shù)據(jù)庫中的所有數(shù)據(jù),提取字段信息,對行記錄中存在不同字段的情況,取并集處理,包含所有的數(shù)據(jù)列;程序?qū)⑻崛〉臄?shù)據(jù)庫設計模式存儲到xml文件的meta元素中,供下一步處 理; 交集兼容是指:程序分析數(shù)據(jù)庫中的所有數(shù)據(jù),提取字段信息,對行記錄中存在不同字段的情況,取交集處理,包含所有記錄共有數(shù)據(jù)列;程序?qū)⑻崛〉臄?shù)據(jù)庫設計模式存儲到xml文件的meta元素中,供下一步處理; 首條數(shù)據(jù)是指:程序分析數(shù)據(jù)庫中的第一條數(shù)據(jù),提取字段信息;程序?qū)⑻崛〉臄?shù)據(jù)庫設計模式存儲到xml文件的meta元素中,供下一步處理。
3.如權(quán)利要求1所述的數(shù)據(jù)遷移方法,其特征是:其中步驟C中,表名信息存儲在xml文件的根元素的name屬性中,數(shù)據(jù)庫的設計模式信息存儲在meta元素中,數(shù)據(jù)信息存儲在data元素中,索引信息存儲在index元素中。
4.如權(quán)利要求1所述的數(shù)據(jù)遷移方法,其特征是:其中步驟D中,對嵌入文檔的處理方法如下:對表格進行拆分,字段信息存儲到以字段名作為表名新建的表格中,原表的對應字段類型變成string型,存儲新建的表格的表名;新建表格中增加主鍵字段,保證記錄的唯一性,以原表格的主鍵作為外鍵與原表格建立連接,嵌入文檔的子文檔作為新建表格的數(shù)據(jù)列;如果存在多重嵌入文檔,則遞歸進行此操作;當需要獲取原表的嵌入文檔信息時,通過原表相應字段存儲的新建表的表名和原表的主鍵從新建表中獲取對應信息。
5.如權(quán)利要求1所述的數(shù)據(jù)遷移方法,其特征是:其中步驟D中,對數(shù)組的處理方法如下:對表格進行拆分,字段信息存儲到以字段名作為表名新建的表格中,原表的對應字段類型變成string型,存儲新建的表格的表名;新建表格中使用復合主鍵,主鍵包括原表的主鍵和數(shù)值在原數(shù)組中的序號;新建表格中的數(shù)據(jù)列字段名為數(shù)組字段字段名;如果存在多重嵌入數(shù)組,則遞歸進行此操作;當需要獲取原表的數(shù)組字段信息時,通過原表相應字段存儲的新建表的表名和原表的主鍵和數(shù)據(jù)在原數(shù)組中的序號,從新建表中獲取對應數(shù)值。
6.如權(quán)利要求1所述的數(shù)據(jù)遷移方法,其特征是:其中步驟E中,對于嵌入文檔和數(shù)組兩種數(shù)據(jù)類型所拆分出來的新表與原表建立外鍵約束,并在導入過程中需要對可能遇到的數(shù)據(jù)異構(gòu)沖突進行處理 。
【文檔編號】G06F17/30GK103530327SQ201310443352
【公開日】2014年1月22日 申請日期:2013年9月25日 優(yōu)先權(quán)日:2013年9月25日
【發(fā)明者】李秀, 閆天翔, 高福信, 余謹 申請人:清華大學深圳研究生院
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1