一種基于模式和實例的數(shù)據(jù)庫匹配方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種基于模式和實例的數(shù)據(jù)庫匹配方法及其系統(tǒng),所述方法包括:導入源文件和目標文件;對文件進行解析及預處理;計算相似度;構(gòu)建相似度矩陣,得到匹配結(jié)果;合并匹配結(jié)果;顯示匹配結(jié)果。所述系統(tǒng)包括:預處理模塊、相似度計算模塊、模式生成模塊以及文本生成模塊。本發(fā)明提供的基于模式和實例的數(shù)據(jù)庫匹配方法及系統(tǒng),主要用于進行數(shù)據(jù)庫表的模式匹配,方便進行數(shù)據(jù)遷移,能夠得到源表和目標表之間的映射關(guān)系,在模式信息較少或不明確時,此方法結(jié)合分析了實例信息,能更準確地得到匹配結(jié)果;同時,通過遺傳算法進行預處理,減少了數(shù)據(jù)集范圍。
【專利說明】
一種基于模式和實例的數(shù)據(jù)庫匹配方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及計算機領(lǐng)域,具體的,涉及一種基于模式和實例的數(shù)據(jù)庫匹配方法及 系統(tǒng)。
【背景技術(shù)】
[0002] 以往,在為了提高處理速度而在通信網(wǎng)絡(luò)中配置了多個數(shù)據(jù)庫裝置的情況下,有 時存在以下問題:由于數(shù)據(jù)庫裝置的故障等而不能在數(shù)據(jù)庫裝置之間正常發(fā)送接收控制信 號,致使產(chǎn)生在數(shù)據(jù)庫裝置中存儲的數(shù)據(jù)之間不匹配。
[0003] 模式匹配在許多應用中都起著關(guān)鍵作用,如數(shù)據(jù)倉庫中的數(shù)據(jù)抽取過程需要將數(shù) 據(jù)源的數(shù)據(jù)按倉庫的格式轉(zhuǎn)換;電子商務信息交換的處理中的異構(gòu)信息的映射;以及數(shù)據(jù) 集成中全局視圖的構(gòu)建。
[0004]模式匹配的目標是找出異構(gòu)模式中實體之間的映射關(guān)系,目前模式匹配主要有基 于模式內(nèi)部信息的模式匹配和基于大規(guī)模數(shù)據(jù)以及背景知識的模式匹配等兩類。基于待匹 配模式內(nèi)部信息的模式匹配的優(yōu)點在于整合模式內(nèi)聚信息,其局限性在于模式自身語義的 不完備;基于大規(guī)模數(shù)據(jù)以及背景知識的模式匹配方法充分利用了數(shù)據(jù)實例或以往的匹配 結(jié)果,但往往不具備通用性,并且學習數(shù)據(jù)較難獲取。
【發(fā)明內(nèi)容】
[0005] 為解決現(xiàn)有技術(shù)的不足,提供一種能得到更準確的匹配結(jié)果的模式匹配方法,本 發(fā)明提供了一種基于模式和實例的數(shù)據(jù)庫匹配方法,包括如下步驟:
[0006] S1:導入源文件和目標文件;
[0007] S2:對源文件和目標文件進行解析及預處理;
[0008] S3:計算源文件和目標文件的相似度;
[0009] S4:根據(jù)相似度構(gòu)建相似度矩陣,得到匹配結(jié)果;
[0010] S5:合并匹配結(jié)果;
[0011] S6:顯示匹配結(jié)果。
[0012]其中,前述步驟S1中,導入的源文件和目標文件的格式為.xdr。
[0013]其中,前述步驟S2具體包括如下步驟:
[0014] S21:將解析好的數(shù)據(jù)保存到class中;
[0015] S22:對源文件和目標文件進行預處理,得到關(guān)于源文件和目標文件對應的圖;
[0016] S23:讀取源文件和目標文件的元素信息;
[0017] S24:根據(jù)步驟S23中的元素信息構(gòu)造出樹;
[0018] S25:將步驟S24中構(gòu)造出的樹顯示在軟件界面上。
[0019] 其中,前述步驟S21中,所述class包括Manager和Controller。其中,Class [0020] 代表JAVA的類,Manager和Controller分別是兩個類的名稱。其中,前述 [0021 ]步驟S22中,通過遺傳算法對源文件和目標文件進行預處理。其中,前
[0022]述步驟S23中,所述元素信息包括路徑及葉子節(jié)點。
[0023] 其中,前述步驟S3中,通過三種方法計算相似度:Jaccard系數(shù)算法、Levenshtein 算法以及Jaro-Winkler算法。
[0024]其中,前述步驟S4中,通過組合步驟S3中三種算法計算出的相似度得到相似度矩 陣。
[0025]本發(fā)明另外提供了一種基于模式和實例的數(shù)據(jù)庫匹配系統(tǒng),包括:
[0026]預處理模塊,用于對導入的源文件和目標文件進行解析及預處理;
[0027] 相似度計算模塊,與預處理模塊連接,用于計算源文件和目標文件的相似度;
[0028] 模式生成模塊,與相似度計算模塊連接,用于組合相似度計算模塊計算出的相似 度,從而得到相似度矩陣及匹配結(jié)果;
[0029] 文本生成模塊,與模式生成模塊連接,用于輸出文本文件以方便查看匹配結(jié)果及 相似度。
[0030] 其中,前述相似度計算模塊通過Jaccard系數(shù)算法、Levenshtein算法以及Jaro-Winkler算法計算相似度。
[0031 ]其中,前述預處理模塊主要通過遺傳算法對導入的源文件和目標文件進行解析及 預處理。
[0032] 本發(fā)明提供的基于模式和實例的數(shù)據(jù)庫匹配方法及系統(tǒng),主要用于進行數(shù)據(jù)庫表 的模式匹配,方便進行數(shù)據(jù)迀移,能夠得到源表和目標表之間的映射關(guān)系,在模式信息較少 或不明確時,此方法結(jié)合分析了實例信息,能更準確地得到匹配結(jié)果;同時,通過遺傳算法 進行預處理,減少了數(shù)據(jù)集范圍。
【附圖說明】
[0033] 圖1:本發(fā)明的基于模式和實例的數(shù)據(jù)庫匹配方法的流程圖;
[0034] 圖2:本發(fā)明的基于模式和實例的數(shù)據(jù)庫匹配系統(tǒng)的結(jié)構(gòu)示意圖;
[0035]圖3:本發(fā)明的一個相似度矩陣圖;
[0036] 圖4:本發(fā)明所適用的復制情景的情景示意圖;
[0037] 圖5:本發(fā)明所適用的合并情景的情景示意圖;
[0038] 圖6:本發(fā)明所適用的分類情景的情景示意圖;
[0039] 圖7:本發(fā)明所適用的嵌套情景的情景示意圖。
【具體實施方式】
[0040] 為了對本發(fā)明的技術(shù)方案及有益效果有更進一步的了解,下面配合附圖詳細說明 本發(fā)明的技術(shù)方案及其產(chǎn)生的有益效果。
[0041] 圖1為本發(fā)明的基于模式和實例的數(shù)據(jù)庫匹配方法的流程圖,如圖1所示,本發(fā)明 提供了一種基于模式和實例的數(shù)據(jù)庫匹配方法,包括如下步驟:
[0042] S1:導入源文件和目標文件;
[0043] S2:對源文件和目標文件進行解析及預處理;
[0044] S3:計算源文件和目標文件的相似度,在計算源文件和目標文件的相似度時,主要 是計算相應的每條路徑以及葉子節(jié)點等信息的相似度;如果實例信息差別很大,那么源文 件和目標文件對應的項的相似度很低;
[0045] S4:根據(jù)相似度構(gòu)建相似度矩陣,得到匹配結(jié)果;圖示的迭代過程即,首先使用一 種相似度算法計算出一種相似度后,回去再使用另一種算法計算的過程。
[0046] S5:合并匹配結(jié)果;
[0047] S6:顯示匹配結(jié)果。
[0048]較優(yōu)的,所述步驟S1中,導入的源文件和目標文件的格式為.xdr。
[0049] xdr是SunSoft的開放網(wǎng)絡(luò)計算環(huán)境的一種功能。xdr提供了 一種與體系結(jié)構(gòu)無關(guān) 的表示數(shù)據(jù),解決了數(shù)據(jù)字節(jié)排序的差異、數(shù)據(jù)字節(jié)大小、數(shù)據(jù)表示和數(shù)據(jù)對準的方式。使 用xdr的應用程序,可以在異構(gòu)硬件系統(tǒng)上交換數(shù)據(jù)。
[0050] xdr架構(gòu)如下,例如
[0051]
[0052] 較優(yōu)的,所述步驟S2具體包括如下步驟:
[0053] S2 1 :將解析好的數(shù)據(jù)保存到class中;較優(yōu)的,所述class包括Manager和 Controller;
[0054] S22:對源文件和目標文件進行預處理,得到關(guān)于源文件和目標文件對應的圖;其 中,每條路徑的最后一個節(jié)點為實例信息;
[0055] 在實際操作中,可通過遺傳算法對源文件和目標文件進行預處理,因此能夠減少 數(shù)據(jù)集范圍;
[0056] S23:讀取源文件和目標文件的元素信息;具體的,所述元素信息包括路徑及葉子 節(jié)點;
[0057] S24:根據(jù)步驟S23中的元素信息構(gòu)造出樹;
[0058] S25:將步驟S24中構(gòu)造出的樹顯示在軟件界面上。
[0059] 較優(yōu)的,所述步驟S 3中,通過三種方法計算相似度:Ja c c a r d系數(shù)算法、 Levenshtein^'^ljl^.Jaro-ffinkler^^o
[0060] 較優(yōu)的,所述步驟S4中,通過組合步驟S3中三種算法計算出的相似度得到相似度 矩陣。
[0061 ] 所述步驟S5中,匹配結(jié)果例如顯示如下:
[0063] 圖2為本發(fā)明的基于模式和實例的數(shù)據(jù)庫匹配系統(tǒng)的結(jié)構(gòu)示意圖,如圖2所示,本 發(fā)明另外提供了一種基于模式和實例的數(shù)據(jù)庫匹配系統(tǒng),包括:
[0064] 預處理模塊,用于對導入的源文件和目標文件進行解析及預處理;
[0065] 相似度計算模塊,與預處理模塊連接,用于計算源文件和目標文件的相似度;
[0066] 模式生成模塊,與相似度計算模塊連接,用于組合相似度計算模塊計算出的相似 度,從而得到相似度矩陣及匹配結(jié)果,利用相似矩陣得到最終匹配的映射;
[0067] 文本生成模塊,與模式生成模塊連接,用于輸出文本文件以方便查看匹配結(jié)果及 各項相似度評分。
[0068] 具體的,預處理模塊可實現(xiàn)上述步驟S1和步驟S2的操作;相似度計算模塊可實現(xiàn) 上述步驟S3的操作;模式生成模塊可實現(xiàn)上述步驟S4的操作;文本生成模塊可實現(xiàn)上述步 驟S5及S6的操作。
[0069] 較優(yōu)的,所述預處理模塊主要通過遺傳算法對導入的源文件和目標文件進行解析 及預處理。
[0070] 預處理模塊讀取導入的源文件和目標文件的元素信息,然后構(gòu)造出樹,并在軟件 界面上顯示,并將解析后的文件保存到SaveToGraphThread類中。
[0071 ] 較優(yōu)的,所述相似度計算模塊通過Jaccard系數(shù)算法、Levenshtein算法以及Jaro- Winkler算法計算相似度。
[0072]具體的,所述三種算法的具體計算公式及方法如下:
[0073] 1、Jaccard系數(shù)算法公式
[0074]元素的取值可以是實數(shù)。又稱為Tanimoto系數(shù),用EJ來表示,
[0075]計算方式如下:
[0076] EJ(A,B) = (A*B)/( | |A| |~2+| |B| |~2-A*B)
[0077] 其中,A、B分別是兩個向量,集合中每一個元素都表示向量中的一個維度,在每個 維度上,取值通常是0到1之間的值,A*B表示向量的乘積,| |A| |~2表示向量的模,即| |A| |~2 = sqrt(al '2+a2'2+a3'2+......) 〇
[0078] J accard distance(A,B)=l-Jaccard(A,B)
[0079] 2、Levenshtein 算法
[0080]編輯操作包含刪除,增加,一比一的替換。
[0081] 取兩個字符串的長度中的最大值,用編輯操作/字符串長度最大值,相似度為1-(編輯操作/字符串長度最大值)
[0082] 例如chane和chakre-個操作,長度為6,所以相似度為1 -2/6 = 0.666。
[0083] 3、The Jaro-Winkler
[0084] The Jaro Winker距離是由Winkler首先提出的,它是一種計算字符串之間相似度 的算法。Jaro-Winkler距離算法最后得到的評分越高就表示相似度更高
[0086]其中,si,s2是兩個要比對的字符串,Dj為最后得分,m是匹配的字符數(shù),t是換位的 數(shù)目
[0087]匹配窗口計算公式:
[0089] Dw = Dj+L*P*(l_Dj)//公式三
[0090] Dw為jaro winlker距離Dj為公式一,P為前綴范圍前綴相同部分長度為L。
[0091] 具體的,在相似度計算模塊中得到了各屬性對之前的相似度評分,在模式生成模 塊中利用相似度矩陣來儲存相似度。
[0092] 圖3為本發(fā)明的一個相似度矩陣圖(利用數(shù)組存放),如圖3所示,相似度取上一個 模塊中三個算法的加權(quán)平均,提高容錯率。在生成映射前輸定閾值為將矩陣中元素值小于 閾值的元素設(shè)為〇。相似度大于閾值的匹配對,我們認為它為匹配項的可能性較大。確定匹 配項后將在工具上對匹配項進行連線。
[0093] 圖4-圖7分別為本發(fā)明所適用的四種情景的情景示意圖,如圖4所示,為本發(fā)明所 適用的復制情景的情景示意圖,復制情景是模式匹配中最普遍的一種場景,它將源模式中 的屬性直接復制到目標模式中。
[0094] 如圖5所示,為本發(fā)明所適用的合并情景的情景示意圖,合并場景也是模式匹配中 比較熟悉的一種場景,它將源模式中多個關(guān)系表中的幾個類型差不多的屬性合并到目標模 式中的相關(guān)屬性中。
[0095] 如圖6所示,為本發(fā)明所適用的分類情景的情景示意圖,分類情景是合并場景的一 個反向過程,它指的是源模式中一個關(guān)系表的相關(guān)屬性元素分類到到目標模式中多個關(guān)系 表的屬性元素中。
[0096] 如圖7所示,為本發(fā)明所適用的嵌套情景的情景示意圖,嵌套情景是模式匹配中很 常見的一種情景,意思是在源模式中具有主外鍵關(guān)系的多個關(guān)系表的元素映射到目標模式 中同一個模式元素。如圖7所示,Article關(guān)系表的AuthorlD字段與Author表的ID字段是外 鍵關(guān)系,在匹配過程中需要將其映射到目標模式的Author表的ID中。
[0097] 綜上,本發(fā)明提供的基于模式和實例的數(shù)據(jù)庫匹配方法及系統(tǒng),主要用于進行數(shù) 據(jù)庫表的模式匹配,方便進行數(shù)據(jù)迀移,能夠得到源表和目標表之間的映射關(guān)系,在模式信 息較少或不明確時,此方法結(jié)合分析了實例信息,能更準確地得到匹配結(jié)果;同時,通過遺 傳算法進行預處理,減少了數(shù)據(jù)集范圍。
[0098]雖然本發(fā)明已利用上述較佳實施例進行說明,然其并非用以限定本發(fā)明的保護范 圍,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍之內(nèi),相對上述實施例進行各種變 動與修改仍屬本發(fā)明所保護的范圍,因此本發(fā)明的保護范圍以權(quán)利要求書所界定的為準。
【主權(quán)項】
1. 一種基于模式和實例的數(shù)據(jù)庫匹配方法,其特征在于,包括如下步驟: S1:導入源文件和目標文件; S2:對源文件和目標文件進行解析及預處理; S3:計算源文件和目標文件的相似度; S4:根據(jù)相似度構(gòu)建相似度矩陣,得到匹配結(jié)果; S5:合并匹配結(jié)果; S6:顯示匹配結(jié)果。2. 如權(quán)利要求1所述的基于模式和實例的數(shù)據(jù)庫匹配方法,其特征在于,所述步驟S1 中,導入的源文件和目標文件的格式為.xdr。3. 如權(quán)利要求1所述的基于模式和實例的數(shù)據(jù)庫匹配方法,其特征在于,所述步驟S2具 體包括如下步驟: S21:將解析好的數(shù)據(jù)保存到class中; S22:對源文件和目標文件進行預處理,得到關(guān)于源文件和目標文件對應的圖; S23:讀取源文件和目標文件的元素信息; S24:根據(jù)步驟S23中的元素信息構(gòu)造出樹; S25:將步驟S24中構(gòu)造出的樹顯示在軟件界面上。4. 如權(quán)利要求3所述的基于模式和實例的數(shù)據(jù)庫匹配方法,其特征在于,所述步驟S21 中,所述class包括Manager和Controller。5. 如權(quán)利要求3所述的基于模式和實例的數(shù)據(jù)庫匹配方法,其特征在于,所述步驟S22 中,通過遺傳算法對源文件和目標文件進行預處理。6. 如權(quán)利要求3所述的基于模式和實例的數(shù)據(jù)庫匹配方法,其特征在于,所述步驟S23 中,所述元素信息包括路徑及葉子節(jié)點。7. 如權(quán)利要求1所述的基于模式和實例的數(shù)據(jù)庫匹配方法,其特征在于,所述步驟S3 中,通過三種方法計算相似度:Jaccard系數(shù)算法、Levenshtein算法以及Jaro-Winkler算 法。8. 如權(quán)利要求7所述的基于模式和實例的數(shù)據(jù)庫匹配方法,其特征在于,所述步驟S4 中,通過組合步驟S3中三種算法計算出的相似度得到相似度矩陣。9. 一種基于模式和實例的數(shù)據(jù)庫匹配系統(tǒng),其特征在于,包括: 預處理模塊,用于對導入的源文件和目標文件進行解析及預處理; 相似度計算模塊,與預處理模塊連接,用于計算源文件和目標文件的相似度; 模式生成模塊,與相似度計算模塊連接,用于組合相似度計算模塊計算出的相似度,從 而得到相似度矩陣及匹配結(jié)果; 文本生成模塊,與模式生成模塊連接,用于輸出文本文件以方便查看匹配結(jié)果及相似 度。10. 如權(quán)利要求8所述的基于模式和實例的數(shù)據(jù)庫匹配系統(tǒng),其特征在于,所述相似度 計算模塊通過Jaccard系數(shù)算法、Levenshtein算法以及Jaro-Winkler算法計算相似度。11. 如權(quán)利要求8所述的基于模式和實例的數(shù)據(jù)庫匹配系統(tǒng),其特征在于,所述預處理 模塊主要通過遺傳算法對導入的源文件和目標文件進行解析及預處理。
【文檔編號】G06F17/30GK106055652SQ201610380637
【公開日】2016年10月26日
【申請日】2016年6月1日
【發(fā)明人】蘭雨晴, 解剛, 顧迪華
【申請人】蘭雨晴