并行數(shù)據(jù)庫管理系統(tǒng)及設(shè)計方案的制作方法
【專利摘要】并行數(shù)據(jù)庫管理系統(tǒng)及設(shè)計方案,包括對分支的選擇、聯(lián)合、競爭、同時這四種操作方式;總表執(zhí)行單元通過映射方式生成和查找到子表執(zhí)行單元和子表,最后將對虛擬的子表的操作轉(zhuǎn)換為對物理表的操作,并匯總返回結(jié)果。本發(fā)明相比現(xiàn)有的并行數(shù)據(jù)庫基礎(chǔ)上具有異構(gòu)數(shù)據(jù)庫集成、運行時分支可動態(tài)增減、分支操作方式全面、分支(子表)數(shù)目無上限等優(yōu)點,從而使得引擎用戶可以快速地配置并行計算,滿足了用戶備份、系統(tǒng)集成、高性能計算等方面的需求。
【專利說明】并行數(shù)據(jù)庫管理系統(tǒng)及設(shè)計方案
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機軟件開發(fā)領(lǐng)域,應(yīng)用于系統(tǒng)集成、分布式數(shù)據(jù)庫和高性能計算等方面。具體地,設(shè)計方案通過VirtualDao封裝具體的Dao,形成對單表操作的一致化;通過MultiDao并行地操縱多個VirtualDao,實現(xiàn)對多表多庫的靈活操作;在MultiDao中聲明對分支的選擇方式,及ID和虛表名的生成和查找方式,以提供對并行計算的有效支持。
【背景技術(shù)】
[0002]并行數(shù)據(jù)庫是數(shù)據(jù)庫技術(shù)和并行計算結(jié)合的產(chǎn)物,是具有并行計算能力的數(shù)據(jù)庫系統(tǒng)。
[0003]并行數(shù)據(jù)庫通過多個節(jié)點并行處理數(shù)據(jù)庫任務(wù),從而提高數(shù)據(jù)庫系統(tǒng)運行性能和可用性。
[0004]現(xiàn)有的并行數(shù)據(jù)庫技術(shù)缺乏對業(yè)務(wù)需求的多樣性的理解,缺乏對業(yè)務(wù)配置支撐的靈活性,尤其無法突破對數(shù)據(jù)庫分支(子表)的個數(shù)限制,因而使得并行數(shù)據(jù)庫難以使用和推廣。
[0005]為了填補了并行數(shù)據(jù)庫在靈活配置和對多種業(yè)務(wù)兼容等方面的空白,本發(fā)明實現(xiàn)了總表操作單元對子表操作單元的操作方式的設(shè)置,以及總表根據(jù)條件向子表進行映射,從而使得總表下可以有任意多個子表。
【發(fā)明內(nèi)容】
[0006]發(fā)明人使用MultiDao表示對總表的執(zhí)行,VirtualDao表示對子表(分支)的執(zhí)行,VirtualTable表示子表,PhysicalDao表示物理上的對子表的執(zhí)行單元。
[0007]并行數(shù)據(jù)庫管理系統(tǒng)使用了三層體系結(jié)構(gòu):第一層是多表并行層,通過MultiDao通過多個VirtualDao操作子表,實現(xiàn)多表并行計算;第二層是單表集成層,通過將異構(gòu)的各類數(shù)據(jù)庫Dao封裝在相同的VirtualDao,從而實現(xiàn)對VirtualTable虛擬表的計算,達到對數(shù)據(jù)源和數(shù)據(jù)類型的統(tǒng)一透明處理;第三層通過統(tǒng)一的PhysicalDao,實現(xiàn)對物理的表的計算,具體的表可能分布在不同的數(shù)據(jù)庫介質(zhì)里面。
[0008]
【發(fā)明者】認為:對并行數(shù)據(jù)庫的操作方式有兩種:讀取和寫入(包括增刪改)。數(shù)據(jù)讀取包括聯(lián)合、選擇、競爭等分支選擇方式:聯(lián)合讀取就是從一系列子表中讀取數(shù)據(jù),最后拼裝成結(jié)果集;選擇就是假設(shè)各個子表數(shù)據(jù)是一樣的,MultiDao從子表中(隨機)選擇一個子表讀取結(jié)果集;競爭就是假設(shè)各個子表數(shù)據(jù)是一樣的,MultiDao從各個子表讀取,但是只取最快的那份,其余的丟棄。數(shù)據(jù)集寫入包括聯(lián)合、同時等分支選擇方式:聯(lián)合就是將數(shù)據(jù)按照規(guī)則拆散放到各個分支中,每個分支得到的是不完整的數(shù)據(jù),但是所有分支數(shù)據(jù)的總和是完整數(shù)據(jù);同時就是將數(shù)據(jù)集不拆散,完整的保存到各個分支中。
[0009]特定的VirtualDao可以對相應(yīng)的某些特定VirtualTable進行操作,VirtualTable就是一個虛擬的子表,表名由MultiDao傳入的參數(shù)映射獲得。映射規(guī)則是,設(shè)有i個變量,{Xi}為這些變量的集合,VirtualTable的名稱為F ({Xi}),那么找出一個F({Xi}),通過F({Xi})可以通過逆映射獲得{Xi}中的所需要部分或全部。本并行數(shù)據(jù)庫設(shè)計方案是通過變量映射規(guī)則而不是通過條件判斷選擇分支,從而獲得對多種數(shù)據(jù)讀寫方式的支持,這是本發(fā)明的特征。
[0010]本發(fā)明中,MultiDao是通過模板配置的,它可以以“標準”方式調(diào)用VirtualDao,而VirtualDao將虛擬表VirtualTable解釋為不同的物理的表,然后調(diào)用PhysicalDao執(zhí)行對物理的表的操作。
【專利附圖】
【附圖說明】
[0011]圖1是對并行數(shù)據(jù)庫管理系統(tǒng)層次結(jié)構(gòu)的解釋。MultiDao可以將操作分配到相應(yīng)的VirtualDao,分配的依據(jù)是,MultiDao所操作的記錄根據(jù)存取條件按規(guī)則映射到VirtualDao 所對應(yīng)的 VirtualTable。我們注意到,第二層有 VirtualDaol 和 VirtualDaol的副本,這樣寫只是為了表不VirtualTablel和VirtualTable2結(jié)構(gòu)一樣,而VirtualDao2對應(yīng)的VirtualTable3結(jié)構(gòu)則與前兩個表不一樣,可能是同一個類的子類;所有物理的操作都放到第三層。VirtualDao 調(diào)用 PhysicalDao, VirtualTable 解釋為 PhysicalTable。
【具體實施方式】
本發(fā)明使用但不限于以下技術(shù)手段:
[0012]該并行數(shù)據(jù)庫管理系統(tǒng)的實現(xiàn)有以下步驟:
I通過模板生成或通過元模式運行時獲得MultiDao,系統(tǒng)將VirtualDao注冊到MultiDao上,任意的VirtualTable都對應(yīng)且只對應(yīng)一個VirtualDao。VirtualDao也可以通過模板或元模式自動生成。,
2.系統(tǒng)通過使用但不限于數(shù)據(jù)庫或配置文件等方式,配置VirtualTable和PhysicalTable之間的--對應(yīng)關(guān)系。
3.應(yīng)用程序調(diào)用MultiDao并使用一種選擇方式映射到子表及對子表的操作VirtualDao。
4.系統(tǒng)通過步驟2配置的對應(yīng)關(guān)系將VirtualDao操作轉(zhuǎn)化成實際的對物理數(shù)據(jù)庫的操作 PhysicalDao。
5.如果是更新操作,則失敗后由MultiDao回退操作。
6.MultiDao獲得各個子操作的結(jié)果,匯總處理并返回給應(yīng)用程序。
[0013]下面結(jié)合具體的應(yīng)用場景,進一步闡明本發(fā)明,本發(fā)明可以應(yīng)用于但不限于以下情形:
[0014]假設(shè)應(yīng)用系統(tǒng)需要訪問兩個數(shù)據(jù)庫,這兩個數(shù)據(jù)庫數(shù)據(jù)完全一樣,一個用來備份,一個用來做正常業(yè)務(wù)訪問;兩個數(shù)據(jù)庫只有地址不一樣。
對于任何一個總表,開發(fā)者可按照如下步驟開發(fā)和配置:
1.系統(tǒng)根據(jù)子表結(jié)構(gòu)生成或配置各個子表的虛表;
2.編寫系統(tǒng)子表的PhysicalDao;
3.編寫系統(tǒng)子表的VirtualDao,并將PhysicalDao注冊到VirtualDao;
4.配置對總表的并行結(jié)構(gòu)的執(zhí)行單元MultiDa0,MultiDa0讀取方式為選擇,用于對兩個數(shù)據(jù)庫中的子表進行選擇性的讀取操作(讀其中一個子表); 5.配置MultiDao寫入方式為同時,用于對兩個數(shù)據(jù)庫中的子表進行選擇性的寫入操作(同時將數(shù)據(jù)兩個庫的子表)
6.配置MultiDao的映射方式,以獲得相應(yīng)的VirtualTable和VirtualDao。
[0020]用戶管理系統(tǒng),擁有不同類型的用戶,每種用戶一個表,用戶系統(tǒng)可以根據(jù)需要訪問其中的一個表,也可以訪問所有表。
開發(fā)者可按照如下步驟開發(fā)和配置:
1.系統(tǒng)根據(jù)子表結(jié)構(gòu)生成或配置各個用戶子表的虛表;
2.編寫系統(tǒng)子表的PhysicalDao,系統(tǒng)可以通過不同的PhysicalDao訪問單個的子表;
3.編寫系統(tǒng)子表的VirtualDao,并將PhysicalDao注冊到VirtualDao;
4.配置對總表的并行結(jié)構(gòu)的執(zhí)行單元MultiDa0,MultiDa0讀取方式為聯(lián)合,用于對各個子表(可能為不同數(shù)據(jù)庫)進行同時讀取操作;
5.配置MultiDao寫入方式為聯(lián)合,用于將對數(shù)據(jù)的修改映射到相應(yīng)的子表進行寫入操作,比如客戶和管理員的數(shù)據(jù)類型和存儲的表是不同的,對客戶類型的數(shù)據(jù)的修改操作應(yīng)該映射到對客戶表的修改操作,對管理員類型的數(shù)據(jù)的修改操作應(yīng)該映射到對管理員表的修改操作;
6.配置MultiDao的映射方式,以獲得相應(yīng)的VirtualTable和VirtualDao。
【權(quán)利要求】
1.本發(fā)明提供了一種并行數(shù)據(jù)庫管理系統(tǒng)及方案,其特征是:并行數(shù)據(jù)庫拓展和兼容多種對分支數(shù)據(jù)庫表的操作方式,總表操作MultiDao可以并行地操作子表。
2.根據(jù)權(quán)利要求1所述的并行數(shù)據(jù)庫管理系統(tǒng)及方案,其特征在于:并行數(shù)據(jù)庫通過變量映射的方式查找和生成不同的分支,有別于傳統(tǒng)的通過條件判斷語句或條件觸發(fā)語句查找和生成分支的方式,因此使得系統(tǒng)分支可以在任何時間有任意個,而不是只有有限個;映射規(guī)則如下,設(shè)有i個變量,(Xil為這些變量的集合,分支(子表)名稱為{Y},那么找出一個{Y} = F({Xi})的映射,通過計算映射將{Xi}映射到F({Xi})。
3.根據(jù)權(quán)利要求1所述的并行數(shù)據(jù)庫管理系統(tǒng)及方案,其特征在于:總表操作方式包括讀取和寫入兩種類型,通過聲明同時、聯(lián)合、競爭、選擇等選擇方式,從而適應(yīng)不同應(yīng)用情景下并行操作需求。
4.根據(jù)權(quán)利要求1所述的并行數(shù)據(jù)庫管理系統(tǒng)及方案,其特征在于=MultiDao和VirtualDao可以生成或運行時獲得,因此系統(tǒng)容易開發(fā)簡單,效率高。
5.根據(jù)權(quán)利要求1所述的并行數(shù)據(jù)庫管理系統(tǒng)及方案,其特征在于=VirtualDao屏蔽了 PhysicalDao的差異,使得系統(tǒng)可以在運行時自動增加分支(子表)及對分支的操作。
【文檔編號】G06F17/30GK104239008SQ201310234069
【公開日】2014年12月24日 申請日期:2013年6月7日 優(yōu)先權(quán)日:2013年6月7日
【發(fā)明者】楊姣, 徐淑蘭, 徐國慶 申請人:深圳市并行科技有限公司