數(shù)據(jù)庫(kù)的創(chuàng)建方法和裝置制造方法
【專利摘要】本發(fā)明公開(kāi)了一種數(shù)據(jù)庫(kù)的創(chuàng)建方法和裝置。其中,數(shù)據(jù)庫(kù)的創(chuàng)建方法包括:在接收到請(qǐng)求指令的情況下調(diào)用預(yù)先存儲(chǔ)的模板數(shù)據(jù)庫(kù),其中,請(qǐng)求指令用于請(qǐng)求創(chuàng)建目標(biāo)數(shù)據(jù)庫(kù);根據(jù)模板數(shù)據(jù)庫(kù)生成模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本;按照請(qǐng)求指令修改模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本,得到目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本;以及執(zhí)行目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,生成目標(biāo)數(shù)據(jù)庫(kù)。通過(guò)本發(fā)明,解決了現(xiàn)有技術(shù)中數(shù)據(jù)庫(kù)的創(chuàng)建比較繁瑣耗時(shí)的問(wèn)題,進(jìn)而達(dá)到了簡(jiǎn)化數(shù)據(jù)庫(kù)創(chuàng)建方式、提高數(shù)據(jù)庫(kù)創(chuàng)建效率的效果。
【專利說(shuō)明】數(shù)據(jù)庫(kù)的創(chuàng)建方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體而言,涉及一種數(shù)據(jù)庫(kù)的創(chuàng)建方法和裝置。
【背景技術(shù)】
[0002]在進(jìn)行數(shù)據(jù)分析過(guò)程中,通常需要用到關(guān)系型數(shù)據(jù)庫(kù),一般而言,數(shù)據(jù)庫(kù)包括數(shù)據(jù)表、視圖、函數(shù)、觸發(fā)器和存儲(chǔ)過(guò)程。其中,數(shù)據(jù)表和視圖用于保存和管理數(shù)據(jù);函數(shù)用于查詢和保存過(guò)程中的數(shù)據(jù)計(jì)算;觸發(fā)器和存儲(chǔ)過(guò)程用于初始化數(shù)據(jù)、校驗(yàn)和保存。
[0003]以上幾部分是保證數(shù)據(jù)庫(kù)能夠正常工作的必要組成部分,但是以上幾部分的創(chuàng)建過(guò)程比較繁瑣和麻煩,如果對(duì)每一個(gè)數(shù)據(jù)庫(kù)都創(chuàng)建一次的話,將是不可估量的工作,無(wú)論是人工手動(dòng)創(chuàng)建方式,還是通過(guò)技術(shù)人員編寫創(chuàng)建數(shù)據(jù)庫(kù)腳本的方式進(jìn)行數(shù)據(jù)庫(kù)的創(chuàng)建都是一項(xiàng)既耗時(shí)又容易出錯(cuò)的工作。
[0004]針對(duì)相關(guān)技術(shù)中數(shù)據(jù)庫(kù)的創(chuàng)建比較繁瑣耗時(shí)的問(wèn)題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的主要目的在于提供一種數(shù)據(jù)庫(kù)的創(chuàng)建方法和裝置,以解決現(xiàn)有技術(shù)中數(shù)據(jù)庫(kù)的創(chuàng)建比較繁瑣耗時(shí)的問(wèn)題。
[0006]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種數(shù)據(jù)庫(kù)的創(chuàng)建方法。
[0007]根據(jù)本發(fā)明的數(shù)據(jù)庫(kù)的創(chuàng)建方法包括:在接收到請(qǐng)求指令的情況下調(diào)用預(yù)先存儲(chǔ)的模板數(shù)據(jù)庫(kù),其中,所述請(qǐng)求指令用于請(qǐng)求創(chuàng)建目標(biāo)數(shù)據(jù)庫(kù);根據(jù)所述模板數(shù)據(jù)庫(kù)生成所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本;按照所述請(qǐng)求指令修改所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本,得到所述目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本;以及執(zhí)行所述目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,生成所述目標(biāo)數(shù)據(jù)庫(kù)。
[0008]進(jìn)一步地,在調(diào)用預(yù)先存儲(chǔ)的模板數(shù)據(jù)庫(kù)之后,并且在根據(jù)所述模板數(shù)據(jù)庫(kù)生成所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本之前,所述創(chuàng)建方法還包括:判斷所述模板數(shù)據(jù)庫(kù)是否為完整數(shù)據(jù)庫(kù),其中,在判斷出所述模板數(shù)據(jù)庫(kù)為完整數(shù)據(jù)庫(kù)的情況下,根據(jù)所述模板數(shù)據(jù)庫(kù)生成所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本。
[0009]進(jìn)一步地,所述模板數(shù)據(jù)庫(kù)包括多個(gè)組成單元,判斷所述模板數(shù)據(jù)庫(kù)是否為完整數(shù)據(jù)庫(kù)包括:判斷預(yù)設(shè)集合是否是模板集合的子集,其中,所述預(yù)設(shè)集合為標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合,所述模板集合為所述模板數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合,其中,在判斷出所述預(yù)設(shè)集合是所述模板集合的子集的情況下,確定所述模板數(shù)據(jù)庫(kù)為完整數(shù)據(jù)庫(kù)。
[0010]進(jìn)一步地,按照所述請(qǐng)求指令修改所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本包括:獲取響應(yīng)所述請(qǐng)求指令中的第一數(shù)據(jù)庫(kù)標(biāo)識(shí),并獲取所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本中的第二數(shù)據(jù)庫(kù)標(biāo)識(shí);以及將所述第二數(shù)據(jù)庫(kù)標(biāo)識(shí)替換為所述第一數(shù)據(jù)庫(kù)標(biāo)識(shí)。
[0011]進(jìn)一步地,所述目標(biāo)數(shù)據(jù)庫(kù)包括多個(gè)組成單元,在執(zhí)行所述目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,生成所述目標(biāo)數(shù)據(jù)庫(kù)之后,所述創(chuàng)建方法還包括:判斷預(yù)設(shè)集合是否是目標(biāo)集合的子集,其中,所述預(yù)設(shè)集合為標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合,所述目標(biāo)集合為所述目標(biāo)數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合;在判斷出所述預(yù)設(shè)集合是所述目標(biāo)集合的子集的情況下,存儲(chǔ)所述目標(biāo)數(shù)據(jù)庫(kù)。
[0012]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種數(shù)據(jù)庫(kù)的創(chuàng)建裝置。
[0013]根據(jù)本發(fā)明的數(shù)據(jù)庫(kù)的創(chuàng)建裝置包括:調(diào)用單元,用于在接收到請(qǐng)求指令的情況下調(diào)用預(yù)先存儲(chǔ)的模板數(shù)據(jù)庫(kù),其中,所述請(qǐng)求指令用于請(qǐng)求創(chuàng)建目標(biāo)數(shù)據(jù)庫(kù);生成單元,用于根據(jù)所述模板數(shù)據(jù)庫(kù)生成所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本;修改單元,用于按照所述請(qǐng)求指令修改所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本,得到所述目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本;以及執(zhí)行單元,用于執(zhí)行所述目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,生成所述目標(biāo)數(shù)據(jù)庫(kù)。
[0014]進(jìn)一步地,所述創(chuàng)建裝置還包括:第一判斷單元,用于在所述調(diào)用單元調(diào)用預(yù)先存儲(chǔ)的模板數(shù)據(jù)庫(kù)之后,并且在所述生成單元根據(jù)所述模板數(shù)據(jù)庫(kù)生成所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本之前,判斷所述模板數(shù)據(jù)庫(kù)是否為完整數(shù)據(jù)庫(kù),其中,在判斷出所述模板數(shù)據(jù)庫(kù)為完整數(shù)據(jù)庫(kù)的情況下,所述生成單元根據(jù)所述模板數(shù)據(jù)庫(kù)生成所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本。
[0015]進(jìn)一步地,所述模板數(shù)據(jù)庫(kù)包括多個(gè)組成單元,所述第一判斷單元包括:判斷模塊,用于判斷預(yù)設(shè)集合是否是模板集合的子集,其中,所述預(yù)設(shè)集合為標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合,所述模板集合為所述模板數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合,其中,在判斷出所述預(yù)設(shè)集合是所述模板集合的子集的情況下,確定所述模板數(shù)據(jù)庫(kù)為完整數(shù)據(jù)庫(kù)。
[0016]進(jìn)一步地,所述修改單元包括:獲取模塊,用于獲取響應(yīng)所述請(qǐng)求指令中的第一數(shù)據(jù)庫(kù)標(biāo)識(shí),并獲取所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本中的第二數(shù)據(jù)庫(kù)標(biāo)識(shí);以及替換模塊,用于將所述第二數(shù)據(jù)庫(kù)標(biāo)識(shí)替換為所述第一數(shù)據(jù)庫(kù)標(biāo)識(shí)。
[0017]進(jìn)一步地,所述目標(biāo)數(shù)據(jù)庫(kù)包括多個(gè)組成單元,所述創(chuàng)建裝置還包括:第二判斷單元,用于在所述執(zhí)行單元執(zhí)行所述目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,生成所述目標(biāo)數(shù)據(jù)庫(kù)之后,判斷預(yù)設(shè)集合是否是目標(biāo)集合的子集,其中,所述預(yù)設(shè)集合為標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合,所述目標(biāo)集合為所述目標(biāo)數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合;存儲(chǔ)單元,用于在判斷出所述預(yù)設(shè)集合是所述目標(biāo)集合的子集的情況下,存儲(chǔ)所述目標(biāo)數(shù)據(jù)庫(kù)。
[0018]通過(guò)本發(fā)明,采用在接收到請(qǐng)求指令的情況下調(diào)用預(yù)先存儲(chǔ)的模板數(shù)據(jù)庫(kù),其中,所述請(qǐng)求指令用于請(qǐng)求創(chuàng)建目標(biāo)數(shù)據(jù)庫(kù);根據(jù)所述模板數(shù)據(jù)庫(kù)生成所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本;按照所述請(qǐng)求指令修改所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本,得到所述目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本;以及執(zhí)行所述目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,生成所述目標(biāo)數(shù)據(jù)庫(kù)。通過(guò)預(yù)設(shè)存儲(chǔ)模板數(shù)據(jù)庫(kù),在接收到請(qǐng)求指令的情況下,根據(jù)請(qǐng)求指令修改模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本,得到用于創(chuàng)建目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,進(jìn)而執(zhí)行目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本生成目標(biāo)數(shù)據(jù)庫(kù),實(shí)現(xiàn)了基于模板數(shù)據(jù)庫(kù)將復(fù)雜的數(shù)據(jù)庫(kù)創(chuàng)造操作修改成為一鍵式操作,整個(gè)創(chuàng)建過(guò)程只需對(duì)模板數(shù)據(jù)庫(kù)進(jìn)行調(diào)用和修改即可,解決了現(xiàn)有技術(shù)中數(shù)據(jù)庫(kù)的創(chuàng)建比較繁瑣耗時(shí)的問(wèn)題,進(jìn)而達(dá)到了簡(jiǎn)化數(shù)據(jù)庫(kù)創(chuàng)建方式、提高數(shù)據(jù)庫(kù)創(chuàng)建效率的效果。并且,此種基于模板數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)的方式,由于只進(jìn)行創(chuàng)建腳本的修改,而無(wú)需重新添加創(chuàng)建組件,能夠避免由于添加創(chuàng)建組件所帶來(lái)的數(shù)據(jù)庫(kù)不穩(wěn)定的弊端,進(jìn)而達(dá)到了提高數(shù)據(jù)庫(kù)穩(wěn)定性的效果。
【專利附圖】
【附圖說(shuō)明】
[0019]構(gòu)成本申請(qǐng)的一部分的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0020]圖1是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)庫(kù)的創(chuàng)建方法的流程圖;
[0021]圖2是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)庫(kù)的創(chuàng)建方法獲取到的模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本的不意圖;
[0022]圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的數(shù)據(jù)庫(kù)的創(chuàng)建方法的流程圖;以及
[0023]圖4是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)庫(kù)的創(chuàng)建裝置的示意圖。
【具體實(shí)施方式】
[0024]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
[0025]需要說(shuō)明的是,本發(fā)明的說(shuō)明書和權(quán)利要求書及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒(méi)有清楚地列出的或?qū)τ谶@些過(guò)程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0026]實(shí)施例1
[0027]根據(jù)本發(fā)明實(shí)施例,可以提供了一種可以用于實(shí)施本申請(qǐng)裝置實(shí)施例的方法實(shí)施例,需要說(shuō)明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0028]根據(jù)本發(fā)明實(shí)施例,提供了一種數(shù)據(jù)庫(kù)的創(chuàng)建方法,圖1是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)庫(kù)的創(chuàng)建方法的流程圖,如圖1所示,該方法包括如下的步驟S102至步驟S108:
[0029]S102:在接收到請(qǐng)求指令的情況下調(diào)用預(yù)先存儲(chǔ)的模板數(shù)據(jù)庫(kù),其中,請(qǐng)求指令用于請(qǐng)求創(chuàng)建目標(biāo)數(shù)據(jù)庫(kù),即,接收到請(qǐng)求創(chuàng)建目標(biāo)數(shù)據(jù)庫(kù)的指令后,會(huì)將預(yù)先存儲(chǔ)的模板數(shù)據(jù)庫(kù)調(diào)取出來(lái)。例如,請(qǐng)求指令可以為新建配置文件,接收新建配置文件的請(qǐng)求指令后,會(huì)將預(yù)先存儲(chǔ)的關(guān)于新建配置文件的模板數(shù)據(jù)庫(kù)調(diào)取出來(lái)。
[0030]S104:根據(jù)模板數(shù)據(jù)庫(kù)生成模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本,其中,模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本可以采用模板數(shù)據(jù)庫(kù)提供的Transfer類進(jìn)行生成,具體地,可以使用Transfer類中CopyAllDefaults方法獲得創(chuàng)建數(shù)據(jù)的相關(guān)SQL腳本,需要確定包括:表、視圖、存儲(chǔ)過(guò)程、觸發(fā)器和注釋等數(shù)據(jù)庫(kù)相關(guān)的信息。
[0031]S106:按照請(qǐng)求指令修改模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本,得到目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,其中,請(qǐng)求指令主要包括名稱、所屬地區(qū)和時(shí)間區(qū)等信息,名稱、所屬地區(qū)和時(shí)間區(qū)等信息就是新建配置文件的模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本中需要修改的屬性,按照接收到的請(qǐng)求指令對(duì)數(shù)據(jù)庫(kù)的創(chuàng)建腳本中需要進(jìn)行修改的屬性進(jìn)行修改,修改后會(huì)得到目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本。圖2是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)庫(kù)的創(chuàng)建方法獲取到的模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本的示意圖,如圖2所示,按照請(qǐng)求指令修改模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本主要是對(duì)模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本的屬性信息進(jìn)行修改,圖2中示意性示出了對(duì)腳本中的配置文件地區(qū)和配置文件時(shí)區(qū)進(jìn)行修改,修改后的目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本中,配置文件地區(qū)(相當(dāng)于所屬地區(qū))是中國(guó)、配置文件時(shí)區(qū)(相當(dāng)于時(shí)間區(qū))是+08:00。
[0032]S108:執(zhí)行目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,生成目標(biāo)數(shù)據(jù)庫(kù),具體可以采用sqlcmd的方式(即命令行的方式)執(zhí)行目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,在使用sqlcmd工具對(duì)生成的SQL腳本執(zhí)行過(guò)程中,sqlcmd命令需要傳入的參數(shù)包括:-U(登錄名)、-P (密碼)、-S (服務(wù)器)和-Q (執(zhí)行SQL語(yǔ)句);對(duì)于以文件方式保存的目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,sqlcmd工具還可以執(zhí)行文件,執(zhí)行例如:sqlcmd_S myServer\instanceName_i C:\myScript.sql。
[0033]在本發(fā)明實(shí)施例中,通過(guò)預(yù)設(shè)存儲(chǔ)模板數(shù)據(jù)庫(kù),在接收到請(qǐng)求指令的情況下,根據(jù)請(qǐng)求指令修改模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本,得到用于創(chuàng)建目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,進(jìn)而執(zhí)行目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本生成目標(biāo)數(shù)據(jù)庫(kù),實(shí)現(xiàn)了基于模板數(shù)據(jù)庫(kù)將復(fù)雜的數(shù)據(jù)庫(kù)創(chuàng)造操作修改成為一鍵式操作,整個(gè)創(chuàng)建過(guò)程只需對(duì)模板數(shù)據(jù)庫(kù)進(jìn)行調(diào)用和修改即可,解決了現(xiàn)有技術(shù)中數(shù)據(jù)庫(kù)的創(chuàng)建比較繁瑣耗時(shí)的問(wèn)題,進(jìn)而達(dá)到了簡(jiǎn)化數(shù)據(jù)庫(kù)創(chuàng)建方式、提高數(shù)據(jù)庫(kù)創(chuàng)建效率的效果。并且,此種基于模板數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)的方式,由于只進(jìn)行創(chuàng)建腳本的修改,而無(wú)需重新添加創(chuàng)建組件,能夠避免由于添加創(chuàng)建組件所帶來(lái)的數(shù)據(jù)庫(kù)不穩(wěn)定的弊端,進(jìn)而達(dá)到了提高數(shù)據(jù)庫(kù)穩(wěn)定性的效果。
[0034]優(yōu)選地,在調(diào)用預(yù)先存儲(chǔ)的模板數(shù)據(jù)庫(kù)之后,并且在根據(jù)模板數(shù)據(jù)庫(kù)生成模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本之前,本發(fā)明實(shí)施例所提供的數(shù)據(jù)庫(kù)的創(chuàng)建方法還包括:判斷模板數(shù)據(jù)庫(kù)是否為完整數(shù)據(jù)庫(kù),即,判斷模板數(shù)據(jù)庫(kù)中所需內(nèi)容是否齊全,所需內(nèi)容具體包括數(shù)據(jù)表、視圖、函數(shù)和存儲(chǔ)過(guò)程等;在判斷出模板數(shù)據(jù)庫(kù)為完整數(shù)據(jù)庫(kù)的情況下,根據(jù)模板數(shù)據(jù)庫(kù)生成模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本。
[0035]在本發(fā)明實(shí)施例中,通過(guò)判斷模板數(shù)據(jù)庫(kù)是否是完整的數(shù)據(jù)庫(kù),只有模板數(shù)據(jù)庫(kù)是完整的數(shù)據(jù)庫(kù)的情況下,才生成模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本,提高了創(chuàng)建目標(biāo)數(shù)據(jù)庫(kù)的成功的概率,達(dá)到了提高工作效率的效果。
[0036]具體地,模板數(shù)據(jù)庫(kù)包括多個(gè)組成單元,判斷模板數(shù)據(jù)庫(kù)是否為完整數(shù)據(jù)庫(kù)包括:判斷預(yù)設(shè)集合是否是模板集合的子集,其中,預(yù)設(shè)集合為標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合,模板集合為模板數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合,其中,在判斷出預(yù)設(shè)集合是模板集合的子集的情況下,確定模板數(shù)據(jù)庫(kù)為完整數(shù)據(jù)庫(kù)。
[0037]因?yàn)闃?biāo)準(zhǔn)數(shù)據(jù)庫(kù)中的多個(gè)組成單元都應(yīng)該是作為數(shù)據(jù)庫(kù)必須具備的組成單元,所以模板數(shù)據(jù)庫(kù)中必須至少包含標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)中的多個(gè)組成單元,只有模板數(shù)據(jù)庫(kù)中的多個(gè)組成單元包括標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)中的多個(gè)組成單元的情況下,模板數(shù)據(jù)庫(kù)才是完整的數(shù)據(jù)庫(kù)。例如:標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)中包含5個(gè)組成單元,分別是組合單元1、組合單元2、組合單元3、組合單元4和組合單元5,模板數(shù)據(jù)庫(kù)中包括9個(gè)組成單元,分別是組合單元1、組合單元2、組合單元3、組合單元4、組合單元5、組合單元6、組合單元7、組合單元8和組合單元9,判斷模板數(shù)據(jù)庫(kù)中的9個(gè)組成單元是否包含了標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)中的5個(gè)組成單元,在判斷出模板數(shù)據(jù)庫(kù)的9個(gè)組成單元包含了標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)中的5個(gè)組成單元的情況下,說(shuō)明模板數(shù)據(jù)庫(kù)是完成數(shù)據(jù)庫(kù),反之,只要標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)中的5個(gè)組成單元有一個(gè)沒(méi)被模板數(shù)據(jù)庫(kù)中的9個(gè)組成單元包含,則模板數(shù)據(jù)庫(kù)不是完成的數(shù)據(jù)庫(kù)。
[0038]具體地,在本發(fā)明實(shí)施例所提供的數(shù)據(jù)庫(kù)的創(chuàng)建方法中,按照請(qǐng)求指令修改模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本包括步驟1-1至步驟1-2:
[0039]步驟1-1:獲取響應(yīng)請(qǐng)求指令中的第一數(shù)據(jù)庫(kù)標(biāo)識(shí),并獲取模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本中的第二數(shù)據(jù)庫(kù)標(biāo)識(shí),第一數(shù)據(jù)庫(kù)標(biāo)識(shí)是要生成的目標(biāo)數(shù)據(jù)庫(kù)的名稱,每個(gè)目標(biāo)數(shù)據(jù)庫(kù)的名稱都應(yīng)該是不同的,第二數(shù)據(jù)庫(kù)標(biāo)識(shí)是模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本的名稱。在本發(fā)明實(shí)施例中,數(shù)據(jù)庫(kù)標(biāo)識(shí)可以是ProfiIeID,該P(yáng)rofiIeID可以采用ProfiIe表主鍵自動(dòng)增長(zhǎng)的方式進(jìn)行獲得和保存。
[0040]步驟1-2:將第二數(shù)據(jù)庫(kù)標(biāo)識(shí)替換為第一數(shù)據(jù)庫(kù)標(biāo)識(shí),將涉及模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本的名稱的地方都修改為要生成的目標(biāo)數(shù)據(jù)庫(kù)的名稱。
[0041]進(jìn)一步地,在獲取模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本中的第二數(shù)據(jù)庫(kù)標(biāo)識(shí)之前,還可以先判斷模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本中是否包括數(shù)據(jù)庫(kù)標(biāo)識(shí),在判斷出模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本中包括數(shù)據(jù)庫(kù)標(biāo)識(shí)的情況下,執(zhí)行上述步驟1-1至步驟1-2,得到目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本。如果判斷出模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本中不包括數(shù)據(jù)庫(kù)標(biāo)識(shí),則可以直接將第一數(shù)據(jù)庫(kù)標(biāo)識(shí)添加到目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本中,得到目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本。實(shí)現(xiàn)了在模板數(shù)據(jù)庫(kù)不具有數(shù)據(jù)庫(kù)標(biāo)識(shí)的情況下,得到目標(biāo)數(shù)據(jù)庫(kù)。
[0042]具體地,目標(biāo)數(shù)據(jù)庫(kù)包括多個(gè)組成單元,在執(zhí)行目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,生成目標(biāo)數(shù)據(jù)庫(kù)之后,本發(fā)明實(shí)施例所提供的數(shù)據(jù)庫(kù)的創(chuàng)建方法還包括:判斷預(yù)設(shè)集合是否是目標(biāo)集合的子集,其中,預(yù)設(shè)集合為標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合,目標(biāo)集合為目標(biāo)數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合,即,生成目標(biāo)數(shù)據(jù)庫(kù)之后,判斷目標(biāo)數(shù)據(jù)庫(kù)中的多個(gè)組成單元是否包含了標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)的多個(gè)組成單元;在判斷出預(yù)設(shè)集合是目標(biāo)集合的子集的情況下,存儲(chǔ)目標(biāo)數(shù)據(jù)庫(kù),也就是在判斷出目標(biāo)數(shù)據(jù)庫(kù)中的多個(gè)組成單元包含了標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)的多個(gè)組成單元情況下,存儲(chǔ)目標(biāo)數(shù)據(jù)庫(kù)。
[0043]圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的數(shù)據(jù)庫(kù)的創(chuàng)建方法的流程圖,如圖3所示,該方法包括如下的步驟S302至步驟S314:
[0044]S302:檢索Global數(shù)據(jù)庫(kù),獲得一個(gè)新的Profile ID。接收用戶請(qǐng)求新建數(shù)據(jù)庫(kù)的指令后,會(huì)檢索Global數(shù)據(jù)庫(kù),然后獲得一個(gè)新的Profile ID7Profile ID采用Profile表主鍵自動(dòng)增長(zhǎng)的方式進(jìn)行獲得和保存,每個(gè)Profile ID都是唯一的,用于區(qū)分不同數(shù)據(jù)庫(kù),用戶只需要填寫Profile的名稱、所屬地區(qū)和時(shí)區(qū)等簡(jiǎn)單信息。Global數(shù)據(jù)庫(kù)用于記錄已經(jīng)創(chuàng)建的所有數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)中每個(gè)數(shù)據(jù)對(duì)應(yīng)的客戶的信息的內(nèi)容。
[0045]S304:確定模板數(shù)據(jù)庫(kù),即,調(diào)用模板數(shù)據(jù)庫(kù),在本步驟中可以采用結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language,簡(jiǎn)稱SQL)檢查,確定模板數(shù)據(jù)庫(kù)是否存在,在確定模板數(shù)據(jù)庫(kù)存在的情況下,調(diào)用該模板數(shù)據(jù)庫(kù),并可以進(jìn)一步檢測(cè)模板數(shù)據(jù)庫(kù)中所需內(nèi)容是否齊全,其中包括:數(shù)據(jù)表、視圖、函數(shù)和存儲(chǔ)過(guò)程等。
[0046]S306:根據(jù)模板數(shù)據(jù)庫(kù)生成創(chuàng)建數(shù)據(jù)庫(kù)的SQL腳本,此處生成的SQL創(chuàng)建腳本是采用數(shù)據(jù)庫(kù)提供的Transfer類進(jìn)行生成的,表、索引、函數(shù)、觸發(fā)器和存儲(chǔ)過(guò)程甚至描述信息和權(quán)限信息都是SQL腳本中必須生成的內(nèi)容,即,對(duì)模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本進(jìn)行獲取。
[0047]S308:用之前確定的Profile ID替換生成的SQL腳本,獲得創(chuàng)建新數(shù)據(jù)庫(kù)所需的SQL腳本。即,按照請(qǐng)求指令對(duì)模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本進(jìn)行修改,得到所需創(chuàng)建的目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本。具體地,可以通過(guò)讀取模板數(shù)據(jù)庫(kù)的SQL腳本,對(duì)其中涉及到數(shù)據(jù)庫(kù)名稱的地方替換成含有Profile ID的新數(shù)據(jù)庫(kù)創(chuàng)建腳本,得到創(chuàng)建新數(shù)據(jù)庫(kù)所需的SQL腳本。
[0048]S310:執(zhí)行創(chuàng)建新數(shù)據(jù)庫(kù)的SQL腳本,相當(dāng)于步驟S108中執(zhí)行目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,也是可以采用sqlcmd的方式(即命令行的方式)執(zhí)行,同樣,在使用sqlcmd工具對(duì)生成的SQL腳本執(zhí)行過(guò)程中,sqlcmd命令需要傳入的參數(shù)包括:_U(登錄名)、-P (密碼)、_S(服務(wù)器)和-Q(執(zhí)行SQL語(yǔ)句);對(duì)于以文件方式保存的目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,sqlcmd 工具還可以執(zhí)行文件,執(zhí)行例如:sqlcmd-S myServer\instanceName _i C:\myScript.sql。
[0049]S312:判斷是否執(zhí)行成功,具體地,判斷是否執(zhí)行成功包括兩方面,一方面是獲得新生成的數(shù)據(jù)庫(kù)連接,根據(jù)該數(shù)據(jù)庫(kù)連接判斷新生成的數(shù)據(jù)庫(kù)是否生成成功;另一方面是執(zhí)行初始化數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程,該過(guò)程用于判斷新生成的數(shù)據(jù)庫(kù)的內(nèi)容是否齊全。在判斷出新生成的數(shù)據(jù)庫(kù)生成成功,并且內(nèi)容齊全的情況下執(zhí)行步驟S314 ;若判斷出新生成的數(shù)據(jù)庫(kù)生成失敗或者內(nèi)容不齊全的情況下結(jié)束本流程。
[0050]S314:更新Global數(shù)據(jù)庫(kù),將新生成的數(shù)據(jù)庫(kù)信息記錄到Global數(shù)據(jù)庫(kù)中后,對(duì)Global數(shù)據(jù)庫(kù)進(jìn)行更新。
[0051]需要說(shuō)明的是,對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說(shuō)明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。
[0052]通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實(shí)施例的方法可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如R0M/RAM、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
[0053]實(shí)施例2
[0054]根據(jù)本發(fā)明實(shí)施例,還提供了一種用于實(shí)施上述數(shù)據(jù)庫(kù)的創(chuàng)建方法的數(shù)據(jù)庫(kù)的創(chuàng)建裝置,該創(chuàng)建裝置主要用于執(zhí)行本發(fā)明實(shí)施例上述內(nèi)容所提供的創(chuàng)建方法,以下對(duì)本發(fā)明實(shí)施例所提供的數(shù)據(jù)庫(kù)的創(chuàng)建裝置做具體介紹:
[0055]根據(jù)本發(fā)明實(shí)施例,提供了一種數(shù)據(jù)庫(kù)的創(chuàng)建裝置,圖4是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)庫(kù)的創(chuàng)建裝置的示意圖,如圖4所示,該裝置主要包括調(diào)用單元10、生成單元20、修改單元30和執(zhí)行單元40,其中:
[0056]調(diào)用單元10用于在接收到請(qǐng)求指令的情況下調(diào)用預(yù)先存儲(chǔ)的模板數(shù)據(jù)庫(kù),其中,請(qǐng)求指令用于請(qǐng)求創(chuàng)建目標(biāo)數(shù)據(jù)庫(kù),即,接收到請(qǐng)求創(chuàng)建目標(biāo)數(shù)據(jù)庫(kù)的指令后,會(huì)將預(yù)先存儲(chǔ)的模板數(shù)據(jù)庫(kù)調(diào)取出來(lái)。例如,請(qǐng)求指令可以為新建配置文件,接收新建配置文件的請(qǐng)求指令后,會(huì)將預(yù)先存儲(chǔ)的關(guān)于新建配置文件的模板數(shù)據(jù)庫(kù)調(diào)取出來(lái)。
[0057]生成單元20用于根據(jù)模板數(shù)據(jù)庫(kù)生成模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本,其中,模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本可以采用模板數(shù)據(jù)庫(kù)提供的Transfer類進(jìn)行生成,具體地,可以使用Transfer類中CopyAllDefaults方法獲得創(chuàng)建數(shù)據(jù)的相關(guān)SQL腳本,需要確定包括:表、視圖、存儲(chǔ)過(guò)程、觸發(fā)器和注釋等數(shù)據(jù)庫(kù)相關(guān)的信息。
[0058]修改單元30用于按照請(qǐng)求指令修改模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本,得到目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,其中,請(qǐng)求指令主要包括名稱、所屬地區(qū)和時(shí)間區(qū)等信息,名稱、所屬地區(qū)和時(shí)間區(qū)等信息就是新建配置文件的模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本中需要修改的屬性,按照接收到的請(qǐng)求指令對(duì)數(shù)據(jù)庫(kù)的創(chuàng)建腳本中需要進(jìn)行修改的屬性進(jìn)行修改,修改后會(huì)得到目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本。圖2是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)庫(kù)的創(chuàng)建方法獲取到的模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本的示意圖,如圖2所示,按照請(qǐng)求指令修改模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本主要是對(duì)模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本的屬性信息進(jìn)行修改,圖2中示意性示出了對(duì)腳本中的配置文件地區(qū)和配置文件時(shí)區(qū)進(jìn)行修改,修改后的目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本中,配置文件地區(qū)(相當(dāng)于所屬地區(qū))是中國(guó)、配置文件時(shí)區(qū)(相當(dāng)于時(shí)間區(qū))是+08:00。
[0059]執(zhí)行單元40用于執(zhí)行目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,生成目標(biāo)數(shù)據(jù)庫(kù),具體可以采用sqlcmd的方式(即命令行的方式)執(zhí)行目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,在使用sqlcmd工具對(duì)生成的SQL腳本執(zhí)行過(guò)程中,sqlcmd命令需要傳入的參數(shù)包括:_U (登錄名)、_P (密碼)、_S (月艮務(wù)器)和-Q(執(zhí)行SQL語(yǔ)句);對(duì)于以文件方式保存的目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,sqlcmd工具還可以執(zhí)行文件,執(zhí)行例如:sqlcmd_S myServer\instanceName_i C:\myScript.sql。
[0060]在本發(fā)明實(shí)施例中,通過(guò)預(yù)設(shè)存儲(chǔ)模板數(shù)據(jù)庫(kù),在接收到請(qǐng)求指令的情況下,根據(jù)請(qǐng)求指令修改模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本,得到用于創(chuàng)建目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,進(jìn)而執(zhí)行目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本生成目標(biāo)數(shù)據(jù)庫(kù),實(shí)現(xiàn)了基于模板數(shù)據(jù)庫(kù)將復(fù)雜的數(shù)據(jù)庫(kù)創(chuàng)造操作修改成為一鍵式操作,整個(gè)創(chuàng)建過(guò)程只需對(duì)模板數(shù)據(jù)庫(kù)進(jìn)行調(diào)用和修改即可,解決了現(xiàn)有技術(shù)中數(shù)據(jù)庫(kù)的創(chuàng)建比較繁瑣耗時(shí)的問(wèn)題,進(jìn)而達(dá)到了簡(jiǎn)化數(shù)據(jù)庫(kù)創(chuàng)建方式、提高數(shù)據(jù)庫(kù)創(chuàng)建效率的效果。并且,此種基于模板數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)的方式,由于只進(jìn)行創(chuàng)建腳本的修改,而無(wú)需重新添加創(chuàng)建組件,能夠避免由于添加創(chuàng)建組件所帶來(lái)的數(shù)據(jù)庫(kù)不穩(wěn)定的弊端,進(jìn)而達(dá)到了提高數(shù)據(jù)庫(kù)穩(wěn)定性的效果。
[0061]優(yōu)選地,本發(fā)明實(shí)施例所提供的數(shù)據(jù)庫(kù)的創(chuàng)建裝置還包括第一判斷單元,用于在調(diào)用單元調(diào)用預(yù)先存儲(chǔ)的模板數(shù)據(jù)庫(kù)之后,并且在生成單元20根據(jù)模板數(shù)據(jù)庫(kù)生成模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本之前,判斷模板數(shù)據(jù)庫(kù)是否為完整數(shù)據(jù)庫(kù),即,判斷模板數(shù)據(jù)庫(kù)中所需內(nèi)容是否齊全,所需內(nèi)容具體包括數(shù)據(jù)表、視圖、函數(shù)和存儲(chǔ)過(guò)程等;在判斷出模板數(shù)據(jù)庫(kù)為完整數(shù)據(jù)庫(kù)的情況下,生成單元20根據(jù)模板數(shù)據(jù)庫(kù)生成模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本。
[0062]在本發(fā)明實(shí)施例中,通過(guò)判斷模板數(shù)據(jù)庫(kù)是否是完整的數(shù)據(jù)庫(kù),只有模板數(shù)據(jù)庫(kù)是完整的數(shù)據(jù)庫(kù)的情況下,才生成模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本,提高了創(chuàng)建目標(biāo)數(shù)據(jù)庫(kù)的成功的概率,達(dá)到了提高工作效率的效果。
[0063]具體地,模板數(shù)據(jù)庫(kù)包括多個(gè)組成單元,在本發(fā)明實(shí)施例所提供的數(shù)據(jù)庫(kù)的創(chuàng)建裝置中的第一判斷單元包括判斷模塊,用于判斷預(yù)設(shè)集合是否是模板集合的子集,其中,預(yù)設(shè)集合為標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合,模板集合為模板數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合,其中,在判斷出預(yù)設(shè)集合是模板集合的子集的情況下,確定模板數(shù)據(jù)庫(kù)為完整數(shù)據(jù)庫(kù)。
[0064]因?yàn)闃?biāo)準(zhǔn)數(shù)據(jù)庫(kù)中的多個(gè)組成單元都應(yīng)該是作為數(shù)據(jù)庫(kù)必須具備的組成單元,所以模板數(shù)據(jù)庫(kù)中必須至少包含標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)中的多個(gè)組成單元,只有模板數(shù)據(jù)庫(kù)中的多個(gè)組成單元包括標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)中的多個(gè)組成單元的情況下,模板數(shù)據(jù)庫(kù)才是完整的數(shù)據(jù)庫(kù)。例如:標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)中包含5個(gè)組成單元,分別是組合單元1、組合單元2、組合單元3、組合單元4和組合單元5,模板數(shù)據(jù)庫(kù)中包括9個(gè)組成單元,分別是組合單元1、組合單元2、組合單元3、組合單元4、組合單元5、組合單元6、組合單元7、組合單元8和組合單元9,判斷模板數(shù)據(jù)庫(kù)中的9個(gè)組成單元是否包含了標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)中的5個(gè)組成單元,在判斷出模板數(shù)據(jù)庫(kù)的9個(gè)組成單元包含了標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)中的5個(gè)組成單元的情況下,說(shuō)明模板數(shù)據(jù)庫(kù)是完成數(shù)據(jù)庫(kù),反之,只要標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)中的5個(gè)組成單元有一個(gè)沒(méi)被模板數(shù)據(jù)庫(kù)中的9個(gè)組成單元包含,則模板數(shù)據(jù)庫(kù)不是完成的數(shù)據(jù)庫(kù)。
[0065]具體地,修改單元30包括獲取模塊和替換模塊,其中,獲取模塊用于獲取響應(yīng)請(qǐng)求指令中的第一數(shù)據(jù)庫(kù)標(biāo)識(shí),并獲取模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本中的第二數(shù)據(jù)庫(kù)標(biāo)識(shí),第一數(shù)據(jù)庫(kù)標(biāo)識(shí)是要生成的目標(biāo)數(shù)據(jù)庫(kù)的名稱,每個(gè)目標(biāo)數(shù)據(jù)庫(kù)的名稱都應(yīng)該是不同的,第二數(shù)據(jù)庫(kù)標(biāo)識(shí)是模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本的名稱。在本發(fā)明實(shí)施例中,數(shù)據(jù)庫(kù)標(biāo)識(shí)可以是ProfileID,該P(yáng)rofileID可以采用Profile表主鍵自動(dòng)增長(zhǎng)的方式進(jìn)行獲得和保存。替換模塊用于將第二數(shù)據(jù)庫(kù)標(biāo)識(shí)替換為第一數(shù)據(jù)庫(kù)標(biāo)識(shí),將涉及模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本的名稱的地方都修改為要生成的目標(biāo)數(shù)據(jù)庫(kù)的名稱。
[0066]進(jìn)一步地,在獲取模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本中的第二數(shù)據(jù)庫(kù)標(biāo)識(shí)之前,修改單元30還可以先通過(guò)修改單元30所包括的判斷模塊,來(lái)判斷模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本中是否包括數(shù)據(jù)庫(kù)標(biāo)識(shí),在判斷出模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本中包括數(shù)據(jù)庫(kù)標(biāo)識(shí)的情況下,獲取模塊和替換模塊執(zhí)行相應(yīng)的功能,得到目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本。如果判斷出模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本中不包括數(shù)據(jù)庫(kù)標(biāo)識(shí),則可以直接將第一數(shù)據(jù)庫(kù)標(biāo)識(shí)添加到目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本中,得到目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本。實(shí)現(xiàn)了在模板數(shù)據(jù)庫(kù)不具有數(shù)據(jù)庫(kù)標(biāo)識(shí)的情況下,得到目標(biāo)數(shù)據(jù)庫(kù)。
[0067]具體地,目標(biāo)數(shù)據(jù)庫(kù)包括多個(gè)組成單元,本發(fā)明實(shí)施例所提供的數(shù)據(jù)庫(kù)的創(chuàng)建裝置還包括第二判斷單元和存儲(chǔ)單元,其中:
[0068]第二判斷單元用于在執(zhí)行單元執(zhí)行目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,生成目標(biāo)數(shù)據(jù)庫(kù)之后,判斷預(yù)設(shè)集合是否是目標(biāo)集合的子集,其中,預(yù)設(shè)集合為標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合,目標(biāo)集合為目標(biāo)數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合,即,生成目標(biāo)數(shù)據(jù)庫(kù)之后,判斷目標(biāo)數(shù)據(jù)庫(kù)中的多個(gè)組成單元是否包含了標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)的多個(gè)組成單元。
[0069]存儲(chǔ)單元用于在判斷出預(yù)設(shè)集合是目標(biāo)集合的子集的情況下,存儲(chǔ)目標(biāo)數(shù)據(jù)庫(kù),也就是在判斷出目標(biāo)數(shù)據(jù)庫(kù)中的多個(gè)組成單元包含了標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)的多個(gè)組成單元情況下,存儲(chǔ)目標(biāo)數(shù)據(jù)庫(kù)。
[0070]從以上的描述中,可以看出,本發(fā)明解決了現(xiàn)有技術(shù)中數(shù)據(jù)庫(kù)的創(chuàng)建比較繁瑣耗時(shí)的問(wèn)題,進(jìn)而達(dá)到了簡(jiǎn)化數(shù)據(jù)庫(kù)創(chuàng)建方式、提高數(shù)據(jù)庫(kù)創(chuàng)建效率的效果。
[0071 ] 上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
[0072]在本發(fā)明的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有詳述的部分,可以參見(jiàn)其他實(shí)施例的相關(guān)描述。
[0073]在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的客戶端,可通過(guò)其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
[0074]所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
[0075]另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
[0076]所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、只讀存儲(chǔ)器(ROM, Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM, Random Access Memory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0077]以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種數(shù)據(jù)庫(kù)的創(chuàng)建方法,其特征在于,包括: 在接收到請(qǐng)求指令的情況下調(diào)用預(yù)先存儲(chǔ)的模板數(shù)據(jù)庫(kù),其中,所述請(qǐng)求指令用于請(qǐng)求創(chuàng)建目標(biāo)數(shù)據(jù)庫(kù); 根據(jù)所述模板數(shù)據(jù)庫(kù)生成所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本; 按照所述請(qǐng)求指令修改所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本,得到所述目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本;以及 執(zhí)行所述目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,生成所述目標(biāo)數(shù)據(jù)庫(kù)。
2.根據(jù)權(quán)利要求1所述的創(chuàng)建方法,其特征在于,在調(diào)用預(yù)先存儲(chǔ)的模板數(shù)據(jù)庫(kù)之后,并且在根據(jù)所述模板數(shù)據(jù)庫(kù)生成所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本之前,所述創(chuàng)建方法還包括: 判斷所述模板數(shù)據(jù)庫(kù)是否為完整數(shù)據(jù)庫(kù), 其中,在判斷出所述模板數(shù)據(jù)庫(kù)為完整數(shù)據(jù)庫(kù)的情況下,根據(jù)所述模板數(shù)據(jù)庫(kù)生成所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本。
3.根據(jù)權(quán)利要求2所述的創(chuàng)建方法,其特征在于,所述模板數(shù)據(jù)庫(kù)包括多個(gè)組成單元,判斷所述模板數(shù)據(jù)庫(kù)是否為完整數(shù)據(jù)庫(kù)包括: 判斷預(yù)設(shè)集合是否是模板集合的子集,其中,所述預(yù)設(shè)集合為標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合,所述模板集合為所述模板數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合, 其中,在判斷出所述預(yù)設(shè)集合是所述模板集合的子集的情況下,確定所述模板數(shù)據(jù)庫(kù)為完整數(shù)據(jù)庫(kù)。
4.根據(jù)權(quán)利要求1所述的創(chuàng)建方法,其特征在于,按照所述請(qǐng)求指令修改所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本包括: 獲取響應(yīng)所述請(qǐng)求指令中的第一數(shù)據(jù)庫(kù)標(biāo)識(shí),并獲取所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本中的第二數(shù)據(jù)庫(kù)標(biāo)識(shí);以及 將所述第二數(shù)據(jù)庫(kù)標(biāo)識(shí)替換為所述第一數(shù)據(jù)庫(kù)標(biāo)識(shí)。
5.根據(jù)權(quán)利要求1所述的創(chuàng)建方法,其特征在于,所述目標(biāo)數(shù)據(jù)庫(kù)包括多個(gè)組成單元,在執(zhí)行所述目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,生成所述目標(biāo)數(shù)據(jù)庫(kù)之后,所述創(chuàng)建方法還包括: 判斷預(yù)設(shè)集合是否是目標(biāo)集合的子集,其中,所述預(yù)設(shè)集合為標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合,所述目標(biāo)集合為所述目標(biāo)數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合; 在判斷出所述預(yù)設(shè)集合是所述目標(biāo)集合的子集的情況下,存儲(chǔ)所述目標(biāo)數(shù)據(jù)庫(kù)。
6.一種數(shù)據(jù)庫(kù)的創(chuàng)建裝置,其特征在于,包括: 調(diào)用單元,用于在接收到請(qǐng)求指令的情況下調(diào)用預(yù)先存儲(chǔ)的模板數(shù)據(jù)庫(kù),其中,所述請(qǐng)求指令用于請(qǐng)求創(chuàng)建目標(biāo)數(shù)據(jù)庫(kù); 生成單元,用于根據(jù)所述模板數(shù)據(jù)庫(kù)生成所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本; 修改單元,用于按照所述請(qǐng)求指令修改所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本,得到所述目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本;以及 執(zhí)行單元,用于執(zhí)行所述目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,生成所述目標(biāo)數(shù)據(jù)庫(kù)。
7.根據(jù)權(quán)利要求6所述的創(chuàng)建裝置,其特征在于,所述創(chuàng)建裝置還包括: 第一判斷單元,用于在所述調(diào)用單元調(diào)用預(yù)先存儲(chǔ)的模板數(shù)據(jù)庫(kù)之后,并且在所述生成單元根據(jù)所述模板數(shù)據(jù)庫(kù)生成所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本之前,判斷所述模板數(shù)據(jù)庫(kù)是否為完整數(shù)據(jù)庫(kù), 其中,在判斷出所述模板數(shù)據(jù)庫(kù)為完整數(shù)據(jù)庫(kù)的情況下,所述生成單元根據(jù)所述模板數(shù)據(jù)庫(kù)生成所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本。
8.根據(jù)權(quán)利要求7所述的創(chuàng)建裝置,其特征在于,所述模板數(shù)據(jù)庫(kù)包括多個(gè)組成單元,所述第一判斷單元包括: 判斷模塊,用于判斷預(yù)設(shè)集合是否是模板集合的子集,其中,所述預(yù)設(shè)集合為標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合,所述模板集合為所述模板數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集I=I, 其中,在判斷出所述預(yù)設(shè)集合是所述模板集合的子集的情況下,確定所述模板數(shù)據(jù)庫(kù)為完整數(shù)據(jù)庫(kù)。
9.根據(jù)權(quán)利要求6所述的創(chuàng)建裝置,其特征在于,所述修改單元包括: 獲取模塊,用于獲取響應(yīng)所述請(qǐng)求指令中的第一數(shù)據(jù)庫(kù)標(biāo)識(shí),并獲取所述模板數(shù)據(jù)庫(kù)的創(chuàng)建腳本中的第二數(shù)據(jù)庫(kù)標(biāo)識(shí);以及 替換模塊,用于將所述第二數(shù)據(jù)庫(kù)標(biāo)識(shí)替換為所述第一數(shù)據(jù)庫(kù)標(biāo)識(shí)。
10.根據(jù)權(quán)利要求6所述的創(chuàng)建裝置,其特征在于,所述目標(biāo)數(shù)據(jù)庫(kù)包括多個(gè)組成單元,所述創(chuàng)建裝置還包括: 第二判斷單元,用于在所述執(zhí)行單元執(zhí)行所述目標(biāo)數(shù)據(jù)庫(kù)的創(chuàng)建腳本,生成所述目標(biāo)數(shù)據(jù)庫(kù)之后,判斷預(yù)設(shè)集合是否是目標(biāo)集合的子集,其中,所述預(yù)設(shè)集合為標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合,所述目標(biāo)集合為所述目標(biāo)數(shù)據(jù)庫(kù)的多個(gè)組成單元構(gòu)成的集合; 存儲(chǔ)單元,用于在判斷出所述預(yù)設(shè)集合是所述目標(biāo)集合的子集的情況下,存儲(chǔ)所述目標(biāo)數(shù)據(jù)庫(kù)。
【文檔編號(hào)】G06F17/30GK104408118SQ201410691563
【公開(kāi)日】2015年3月11日 申請(qǐng)日期:2014年11月25日 優(yōu)先權(quán)日:2014年11月25日
【發(fā)明者】張運(yùn) 申請(qǐng)人:北京國(guó)雙科技有限公司