[發(fā)明專利]一種數(shù)據(jù)庫(kù)腳本生成方法、裝置、計(jì)算裝置和存儲(chǔ)介質(zhì)有效
| 申請(qǐng)?zhí)枺?/td> | 201811253349.0 | 申請(qǐng)日: | 2018-10-25 |
| 公開(公告)號(hào): | CN109408528B | 公開(公告)日: | 2022-07-15 |
| 發(fā)明(設(shè)計(jì))人: | 劉國(guó)慶;竇志剛 | 申請(qǐng)(專利權(quán))人: | 北京信安世紀(jì)科技股份有限公司 |
| 主分類號(hào): | G06F16/242 | 分類號(hào): | G06F16/242 |
| 代理公司: | 北京同達(dá)信恒知識(shí)產(chǎn)權(quán)代理有限公司 11291 | 代理人: | 黃志華 |
| 地址: | 100093 北京市*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 數(shù)據(jù)庫(kù) 腳本 生成 方法 裝置 計(jì)算 存儲(chǔ) 介質(zhì) | ||
本申請(qǐng)公開了一種數(shù)據(jù)庫(kù)腳本生成方法、裝置、計(jì)算裝置和存儲(chǔ)介質(zhì),涉及計(jì)算機(jī)數(shù)據(jù)庫(kù)領(lǐng)域,用以解決一種數(shù)據(jù)庫(kù)腳本在多種數(shù)據(jù)庫(kù)下運(yùn)行的問(wèn)題。該方法中,通過(guò)差異列表,根據(jù)原始數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)之間的腳本差異,將原始數(shù)據(jù)庫(kù)的腳本生成為目標(biāo)數(shù)據(jù)庫(kù)的腳本。本申請(qǐng)是基于目標(biāo)數(shù)據(jù)庫(kù)配置信息來(lái)生成建庫(kù)腳本,因此生成的數(shù)據(jù)腳本是符合真實(shí)生產(chǎn)環(huán)境的數(shù)據(jù)庫(kù)腳本,從而實(shí)現(xiàn)一種數(shù)據(jù)庫(kù)腳本在多種數(shù)據(jù)庫(kù)下運(yùn)行。
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)數(shù)據(jù)庫(kù)領(lǐng)域,尤其涉及一種數(shù)據(jù)庫(kù)腳本生成方法、裝置、計(jì)算裝置和存儲(chǔ)介質(zhì)。
背景技術(shù)
在現(xiàn)有軟件項(xiàng)目開發(fā)過(guò)程中,存在一種應(yīng)用對(duì)應(yīng)多種數(shù)據(jù)庫(kù)類型的問(wèn)題,所以當(dāng)一種應(yīng)用開發(fā)完成以后,就要編寫多種數(shù)據(jù)庫(kù)腳本。由于數(shù)據(jù)庫(kù)類型繁多,各類數(shù)據(jù)庫(kù)之間還存在很大的差異,如果要編寫多種數(shù)據(jù)庫(kù)腳本,就需要同時(shí)掌握多種數(shù)據(jù)庫(kù)知識(shí),所以大大提高了對(duì)開發(fā)人員的要求以及增加了開發(fā)人員的工作量。
由于數(shù)據(jù)庫(kù)千差萬(wàn)別,同類數(shù)據(jù)庫(kù)也是支持多種語(yǔ)言,以及多配置信息。所以雖然數(shù)據(jù)庫(kù)腳本相同,但是,每種數(shù)據(jù)庫(kù)之間在安裝數(shù)據(jù)時(shí)也存在語(yǔ)言、配置信息的差異。當(dāng)同一數(shù)據(jù)庫(kù)建庫(kù)腳本在同一類型但不同配置信息的數(shù)據(jù)庫(kù)進(jìn)行創(chuàng)建數(shù)據(jù)庫(kù),就會(huì)由于數(shù)據(jù)庫(kù)配置信息的差異,導(dǎo)致腳本執(zhí)行失敗。
發(fā)明內(nèi)容
本申請(qǐng)實(shí)施例提供一種數(shù)據(jù)庫(kù)腳本生成方法、裝置、計(jì)算裝置和存儲(chǔ)介質(zhì),可以通過(guò)編寫一套軟件代碼,及一種類型的數(shù)據(jù)庫(kù)腳本便可連接所有類型版本的數(shù)據(jù)庫(kù)進(jìn)行交互,增加了代碼復(fù)用性。
第一方面,本申請(qǐng)實(shí)施例提供一種數(shù)據(jù)庫(kù)腳本生成方法,該方法包括:
獲取原始數(shù)據(jù)庫(kù)腳本文件以及目標(biāo)數(shù)據(jù)庫(kù)的描述信息,該描述信息用于表示數(shù)據(jù)庫(kù)類型、數(shù)據(jù)庫(kù)版本和配置信息;
根據(jù)預(yù)先確定的原始數(shù)據(jù)庫(kù)的描述信息以及目標(biāo)數(shù)據(jù)庫(kù)的描述信息,從預(yù)存的腳本差異集合中查找原始數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)之間的腳本差異;其中,腳本差異集合中存儲(chǔ)有各種描述信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)之間的腳本差異;
根據(jù)原始數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)的腳本差異,確定原始數(shù)據(jù)庫(kù)腳本文件中執(zhí)行語(yǔ)句在目標(biāo)數(shù)據(jù)庫(kù)腳本文件中的執(zhí)行語(yǔ)句;
根據(jù)確定出的目標(biāo)數(shù)據(jù)庫(kù)腳本文件中的執(zhí)行語(yǔ)句,生成目標(biāo)數(shù)據(jù)庫(kù)的腳本文件。
進(jìn)一步的,根據(jù)原始數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)的腳本差異,確定原始數(shù)據(jù)庫(kù)腳本文件中執(zhí)行語(yǔ)句在目標(biāo)數(shù)據(jù)庫(kù)腳本文件中的執(zhí)行語(yǔ)句,具體包括:
將原始數(shù)據(jù)庫(kù)腳本文件中的執(zhí)行語(yǔ)句保存到數(shù)組中;
針對(duì)數(shù)組中保存的原始數(shù)據(jù)庫(kù)腳本文件中的每條執(zhí)行語(yǔ)句,在該執(zhí)行語(yǔ)句中查找原始數(shù)據(jù)庫(kù)采用的關(guān)鍵字,并分析出各執(zhí)行語(yǔ)句的參數(shù)值;
將執(zhí)行語(yǔ)句所存儲(chǔ)在的數(shù)組的下標(biāo)編號(hào)、參數(shù)值和關(guān)鍵字對(duì)應(yīng)存儲(chǔ)到坐標(biāo)列表中;其中,一條執(zhí)行語(yǔ)句所存儲(chǔ)在的數(shù)組的下標(biāo)編號(hào)、參數(shù)值和關(guān)鍵字在坐標(biāo)列表中生成一條記錄;
針對(duì)坐標(biāo)列表中的每條記錄,根據(jù)該條記錄中的關(guān)鍵字確定該關(guān)鍵字在目標(biāo)數(shù)據(jù)庫(kù)中的語(yǔ)法結(jié)構(gòu),并根據(jù)該條記錄中的參數(shù)值確定該參數(shù)在目標(biāo)數(shù)據(jù)庫(kù)中的參數(shù)值;
根據(jù)每條記錄中執(zhí)行語(yǔ)句所存儲(chǔ)在的數(shù)組的下標(biāo)編號(hào)獲取相應(yīng)的執(zhí)行語(yǔ)句,并根據(jù)該執(zhí)行語(yǔ)句在目標(biāo)數(shù)據(jù)庫(kù)中的語(yǔ)法結(jié)構(gòu)和參數(shù)值,確定該執(zhí)行語(yǔ)句在目標(biāo)數(shù)據(jù)庫(kù)中的執(zhí)行語(yǔ)句。
進(jìn)一步的,腳本差異包括:
差異列表、通用關(guān)鍵字列表、以及,每種類型的數(shù)據(jù)庫(kù)都具有獨(dú)立的以下列表:特有關(guān)鍵字列表、數(shù)據(jù)類型列表、最小語(yǔ)法單元列表以及算法單元列表;
其中,差異列表存儲(chǔ)有各數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)的描述信息、數(shù)據(jù)類型標(biāo)記以及數(shù)據(jù)庫(kù)特有的關(guān)鍵字的關(guān)鍵字標(biāo)記之間的對(duì)應(yīng)關(guān)系;
通用關(guān)鍵字列表存儲(chǔ)有各數(shù)據(jù)庫(kù)通用的關(guān)鍵字及對(duì)應(yīng)的關(guān)鍵字標(biāo)記;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京信安世紀(jì)科技股份有限公司,未經(jīng)北京信安世紀(jì)科技股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811253349.0/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)管理系統(tǒng)及數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)構(gòu)筑裝置、數(shù)據(jù)庫(kù)檢索裝置、數(shù)據(jù)庫(kù)裝置、數(shù)據(jù)庫(kù)構(gòu)筑方法、以及數(shù)據(jù)庫(kù)檢索方法
- 數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)處理方法
- 數(shù)據(jù)庫(kù)系統(tǒng)、數(shù)據(jù)庫(kù)更新方法、數(shù)據(jù)庫(kù)以及數(shù)據(jù)庫(kù)更新程序
- 容器數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)同步方法及數(shù)據(jù)庫(kù)
- 一種MongoDB數(shù)據(jù)庫(kù)對(duì)象復(fù)制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲(chǔ)方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 數(shù)據(jù)庫(kù)語(yǔ)句執(zhí)行方法及裝置
- 腳本處理方法及裝置
- 一種實(shí)現(xiàn)腳本引擎的系統(tǒng)及方法
- 代理自動(dòng)配置腳本的處理方法及代理自動(dòng)配置腳本服務(wù)器
- 一種腳本執(zhí)行方法、裝置及計(jì)算設(shè)備
- 腳本轉(zhuǎn)換方法、裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)
- 性能測(cè)試平臺(tái)腳本存儲(chǔ)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 一種實(shí)現(xiàn)測(cè)試腳本驗(yàn)證的方法及系統(tǒng)
- 結(jié)構(gòu)化查詢語(yǔ)言腳本審查方法及相關(guān)設(shè)備
- 基于FitNesse框架的數(shù)據(jù)驅(qū)動(dòng)腳本庫(kù)的方法、系統(tǒng)及介質(zhì)
- 一種腳本審計(jì)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)庫(kù)讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





