一種基于云計算的數(shù)據(jù)庫訪問方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種基于云計算的數(shù)據(jù)庫訪問方法及系統(tǒng),其中,基于云計算的數(shù)據(jù)庫訪問方法包括:接收云用戶發(fā)送的數(shù)據(jù)庫訪問請求;將所述數(shù)據(jù)庫訪問請求中攜帶的數(shù)據(jù)庫元數(shù)據(jù)與云系統(tǒng)中各數(shù)據(jù)庫的元數(shù)據(jù)進行匹配,確定所述數(shù)據(jù)訪問請求要訪問的數(shù)據(jù)庫;解析所述數(shù)據(jù)庫訪問請求,得到SQL語句;在所述用戶的當前數(shù)據(jù)庫連接上執(zhí)行SQL語句,得到執(zhí)行結(jié)果;將所述執(zhí)行結(jié)果轉(zhuǎn)換為所述云用戶采用的數(shù)據(jù)格式后反饋給該云用戶。
【專利說明】一種基于云計算的數(shù)據(jù)庫訪問方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)庫數(shù)據(jù)庫訪問【技術(shù)領(lǐng)域】,具體涉及一種基于云計算的數(shù)據(jù)庫訪問 方法及系統(tǒng)。
【背景技術(shù)】
[0002] 云計算是一種新興的商業(yè)計算模型,該模型將計算任務(wù)分布在大量計算機構(gòu)成的 資源池上,使各種應(yīng)用系統(tǒng)能夠根據(jù)需要獲取計算能力,存儲空間和各種軟件服務(wù)。目前, 網(wǎng)絡(luò)環(huán)境中數(shù)據(jù)訪問和集成大都采用訪問者直接和DBS (Database System,數(shù)據(jù)庫系統(tǒng)) 服務(wù)接口交互。這種交互方式會強迫使用人員在應(yīng)用系統(tǒng)內(nèi)部解決數(shù)據(jù)訪問和集成問題, 使管理者或管理機構(gòu)陷入數(shù)據(jù)庫連接、數(shù)據(jù)格式轉(zhuǎn)換等技術(shù)問題之中,增加了管理自動化 程序開發(fā)的復(fù)雜性和重復(fù)性。
【發(fā)明內(nèi)容】
[0003] 鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上 述問題的基于云計算的數(shù)據(jù)庫訪問方法及相應(yīng)的基于云計算的數(shù)據(jù)庫訪問系統(tǒng)。
[0004] 依據(jù)本發(fā)明的一個方面,提供了一種基于云計算的數(shù)據(jù)庫訪問方法,包括:
[0005] 接收云用戶發(fā)送的數(shù)據(jù)庫訪問請求;
[0006] 將所述數(shù)據(jù)庫訪問請求中攜帶的數(shù)據(jù)庫元數(shù)據(jù)與云系統(tǒng)中各數(shù)據(jù)庫的元數(shù)據(jù)進 行匹配,確定所述數(shù)據(jù)訪問請求要訪問的數(shù)據(jù)庫;
[0007] 解析所述數(shù)據(jù)庫訪問請求,得到SQL語句;
[0008] 在所述云用戶的當前數(shù)據(jù)庫連接上執(zhí)行SQL語句,得到執(zhí)行結(jié)果;
[0009] 將所述執(zhí)行結(jié)果轉(zhuǎn)換為所述云用戶采用的數(shù)據(jù)格式后反饋給該云用戶。
[0010] 依據(jù)本發(fā)明的另一個方面,提供了一種基于云計算的數(shù)據(jù)庫訪問系統(tǒng),包括:
[0011] 請求接收單元,用于接收云用戶發(fā)送的數(shù)據(jù)庫訪問請求;
[0012] 數(shù)據(jù)庫確定單元,用于將所述數(shù)據(jù)庫訪問請求中攜帶的數(shù)據(jù)庫元數(shù)據(jù)與云系統(tǒng)中 各數(shù)據(jù)庫的元數(shù)據(jù)進行匹配,確定所述數(shù)據(jù)訪問請求要訪問的數(shù)據(jù)庫;
[0013] 解析單元,用于解析所述數(shù)據(jù)庫訪問請求,得到SQL語句;
[0014] 執(zhí)行單元,用于在所述云用戶的當前數(shù)據(jù)庫連接上執(zhí)行SQL語句,得到執(zhí)行結(jié)果;
[0015] 執(zhí)行結(jié)果反饋單元,用于將所述執(zhí)行結(jié)果轉(zhuǎn)換為所述云用戶采用的數(shù)據(jù)格式后反 饋給該云用戶。
[0016] 本發(fā)明提供的一種基于云計算的數(shù)據(jù)庫訪問方法及系統(tǒng),云系統(tǒng)通過接收用戶發(fā) 送的數(shù)據(jù)庫訪問請求,并將數(shù)據(jù)庫訪問請求中攜帶的數(shù)據(jù)庫元數(shù)據(jù)與云系統(tǒng)中的各數(shù)據(jù)庫 的元數(shù)據(jù)進行匹配,確定數(shù)據(jù)訪問請求要訪問的數(shù)據(jù)庫,解析數(shù)據(jù)訪問請求,得到所要執(zhí)行 的SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)語句,然后在云用戶當前的數(shù)據(jù)庫 連接上執(zhí)行SQL語句,并將執(zhí)行得到的執(zhí)行結(jié)果反饋給該云用戶。本發(fā)明提供的方法,借助 云系統(tǒng)實現(xiàn)了對數(shù)據(jù)庫的訪問,避免了各種應(yīng)用與環(huán)境中分布、異構(gòu)的數(shù)據(jù)庫直接連接,實 現(xiàn)了信息訪問和集成模型的平臺無關(guān)性,增強了管理自動化系統(tǒng)的可移植性、健壯性,因而 具有非常廣闊的應(yīng)用前景。
【專利附圖】
【附圖說明】
[0017] 圖1為本發(fā)明實施例的一種基于云計算的數(shù)據(jù)庫訪問方法流程圖;
[0018] 圖2為本發(fā)明實施例的一種基于云計算的數(shù)據(jù)庫訪問系統(tǒng)示意圖。
【具體實施方式】
[0019] 以下結(jié)合附圖對本發(fā)明的原理和特征進行描述,所舉實例只用于解釋本發(fā)明,并 非用于限定本發(fā)明的范圍。
[0020] 實施例一、一種基于云計算的數(shù)據(jù)庫訪問方法。下面結(jié)合圖1對本發(fā)明提供的方 法進行詳細說明。
[0021] 圖1中,S101、接收云用戶發(fā)送的數(shù)據(jù)庫訪問請求。
[0022] S102、將數(shù)據(jù)庫訪問請求中攜帶的數(shù)據(jù)庫元數(shù)據(jù)與云系統(tǒng)中各數(shù)據(jù)庫的元數(shù)據(jù)進 行匹配,確定數(shù)據(jù)訪問請求要訪問的數(shù)據(jù)庫。
[0023] 具體的,當云用戶希望向云系統(tǒng)中的數(shù)據(jù)庫進行訪問時,云用戶向云系統(tǒng)發(fā)送數(shù) 據(jù)庫訪問請求,其中,數(shù)據(jù)庫訪問請求中攜帶有數(shù)據(jù)庫元數(shù)據(jù)。當云系統(tǒng)接收到云用戶發(fā)送 的數(shù)據(jù)庫訪問請求時,云系統(tǒng)將數(shù)據(jù)庫訪問請求中攜帶的數(shù)據(jù)庫元數(shù)據(jù)與云系統(tǒng)中存儲的 數(shù)據(jù)庫元數(shù)據(jù)進行匹配,確定數(shù)據(jù)庫訪問請求要訪問的數(shù)據(jù)庫。
[0024] S103、解析數(shù)據(jù)庫訪問請求,得到SQL語句。
[0025] 具體的,在上述步驟云系統(tǒng)確定了數(shù)據(jù)庫訪問請求要訪問的數(shù)據(jù)庫后,對云用戶 的訪問權(quán)限進行驗證,若驗證通過,則對接收到的數(shù)據(jù)庫訪問請求進行解析,得到數(shù)據(jù)庫訪 問請求所希望執(zhí)行的SQL語句;若驗證未通過,云系統(tǒng)向云用戶發(fā)送異常消息,通知云用戶 驗證未通過。
[0026] 具體實現(xiàn)時,云用戶發(fā)送的數(shù)據(jù)庫訪問請求中攜帶有云用戶的用戶名及密碼,將 該用戶名和密碼在確定的數(shù)據(jù)庫中的驗證信息中進行匹配,若匹配,則驗證通過;否則,驗 證未通過。
[0027] 當用戶的訪問權(quán)限驗證通過,則對數(shù)據(jù)庫訪問請求進行解析,得到SQL語句。
[0028] S104、在用戶的當前數(shù)據(jù)庫連接上執(zhí)行SQL語句,得到執(zhí)行結(jié)果。
[0029] 具體的,通過上述步驟S103對云用戶發(fā)送的數(shù)據(jù)庫訪問請求進行了解析,得到 SQL語句,其中,SQL語句包括DQL(Data Query Language,數(shù)據(jù)查詢語言)和DML(Data Manipulation Language,數(shù)據(jù)操作語言)。SQL語句為DQL語句時,云用戶希望對數(shù)據(jù)庫中 的數(shù)據(jù)進行查詢;SQL語句為DML語句時,云用戶希望對數(shù)據(jù)庫中的數(shù)據(jù)進行操作,比如向 數(shù)據(jù)庫中插入(INSERT)數(shù)據(jù)、更改(UPDATE)數(shù)據(jù)或刪除(DELETE)數(shù)據(jù)。
[0030] 然后云系統(tǒng)判斷云用戶當前是否具有數(shù)據(jù)庫連接,若云用戶當前具有數(shù)據(jù)庫連 接,則在云用戶當前數(shù)據(jù)庫連接上執(zhí)行SQL語句,得到執(zhí)行結(jié)果;若云用戶當前不具有數(shù)據(jù) 庫連接,從數(shù)據(jù)庫連接池中取出一條連接作為該云用戶當前的數(shù)據(jù)庫連接,在這條去除的 數(shù)據(jù)庫連接上執(zhí)行SQL語句,得到執(zhí)行結(jié)果。
[0031] 當SQL語句為DQL語句時,返回的執(zhí)行結(jié)果為數(shù)據(jù)結(jié)果;當SQL語句為DML語句 時,返回的執(zhí)行結(jié)果為成功信息或失敗信息。
[0032] S105、將執(zhí)行結(jié)果轉(zhuǎn)換為云用戶采用的數(shù)據(jù)格式后反饋給該云用戶。
[0033] 具體的,步驟S104得到了數(shù)據(jù)庫訪問請求所執(zhí)行的結(jié)果,由于用戶戶采用的數(shù)據(jù) 格式與云系統(tǒng)采用的數(shù)據(jù)格式不一致,云系統(tǒng)將該執(zhí)行結(jié)果轉(zhuǎn)化為云用戶采用的數(shù)據(jù)格式 反饋給該云用戶,至此,云用戶訪問云系統(tǒng)中的數(shù)據(jù)庫的過程完成。
[0034] 實施例二、一種基于云計算的數(shù)據(jù)庫訪問系統(tǒng)。下面結(jié)合圖2對本發(fā)明提供的系 統(tǒng)進行詳細的說明。
[0035] 圖2中,本發(fā)明提供的系統(tǒng)包括請求接收單元201、數(shù)據(jù)庫確定單元202、解析單元 203、執(zhí)行單元204和執(zhí)行結(jié)果反饋單元205.
[0036] 其中,請求接收單元201主要用于接收云用戶發(fā)送的數(shù)據(jù)訪問請求。
[0037] 數(shù)據(jù)庫確定單元202主要用于將數(shù)據(jù)庫訪問請求中攜帶的數(shù)據(jù)庫元數(shù)據(jù)與云系 統(tǒng)中各數(shù)據(jù)庫的元數(shù)據(jù)進行匹配,確定數(shù)據(jù)庫訪問請求要訪問的數(shù)據(jù)庫。
[0038] 具體的,當云用戶希望向云系統(tǒng)中的數(shù)據(jù)庫進行訪問時,云用戶向云系統(tǒng)發(fā)送數(shù) 據(jù)庫訪問請求,其中,數(shù)據(jù)庫訪問請求中攜帶有數(shù)據(jù)庫元數(shù)據(jù)。當云系統(tǒng)中的請求接收單元 201接收到云用戶發(fā)送的數(shù)據(jù)庫訪問請求時,設(shè)置于云系統(tǒng)中的數(shù)據(jù)庫確定單元202將數(shù) 據(jù)庫訪問請求中攜帶的數(shù)據(jù)庫元數(shù)據(jù)與云系統(tǒng)中存儲的數(shù)據(jù)庫元數(shù)據(jù)進行匹配,確定數(shù)據(jù) 庫訪問請求要訪問的數(shù)據(jù)庫。
[0039] 解析單元203主要用于解析數(shù)據(jù)庫訪問請求,得到SQL語句。
[0040] 具體的,在數(shù)據(jù)庫確定單元202確定了數(shù)據(jù)庫訪問請求要訪問的數(shù)據(jù)庫后,用戶 驗證單元對云用戶的訪問權(quán)限進行驗證,若驗證通過,則解析單元203對接收到的數(shù)據(jù)庫 訪問請求進行解析,得到數(shù)據(jù)庫訪問請求所希望執(zhí)行的SQL語句;若驗證未通過,云系統(tǒng)向 云用戶發(fā)送異常消息,通知云用戶驗證未通過。
[0041] 具體實現(xiàn)時,云用戶發(fā)送的數(shù)據(jù)庫訪問請求中攜帶有云用戶的用戶名及密碼,將 該用戶名和密碼在確定的數(shù)據(jù)庫中的驗證信息中進行匹配,若匹配,則驗證通過;否則,驗 證未通過。
[0042] 當用戶的訪問權(quán)限驗證通過,則對數(shù)據(jù)庫訪問請求進行解析,得到SQL語句。
[0043] 執(zhí)行單元204主要用于在用戶的當前數(shù)據(jù)庫連接上執(zhí)行SQL語句,得到執(zhí)行結(jié)果。
[0044] 具體的,通過解析單元203對云用戶發(fā)送的數(shù)據(jù)庫訪問請求進行了解析,得到 SQL語句,其中,SQL語句包括DQL (Data Query Language,數(shù)據(jù)查詢語言)和DML (Data Manipulation Language,數(shù)據(jù)操作語言)。SQL語句為DQL語句時,云用戶希望對數(shù)據(jù)庫中 的數(shù)據(jù)進行查詢;SQL語句為DML語句時,云用戶希望對數(shù)據(jù)庫中的數(shù)據(jù)進行操作,比如向 數(shù)據(jù)庫中插入(INSERT)數(shù)據(jù)、更改(UPDATE)數(shù)據(jù)或刪除(DELETE)數(shù)據(jù)。
[0045] 然后設(shè)置于云系統(tǒng)中的數(shù)據(jù)庫連接判斷單元判斷云用戶當前是否具有數(shù)據(jù)庫連 接,若云用戶當前具有數(shù)據(jù)庫連接,則在云用戶當前數(shù)據(jù)庫連接上執(zhí)行SQL語句,得到執(zhí)行 結(jié)果;若云用戶當前不具有數(shù)據(jù)庫連接,從數(shù)據(jù)庫連接池中取出一條連接作為該云用戶當 前的數(shù)據(jù)庫連接,在這條去除的數(shù)據(jù)庫連接上執(zhí)行SQL語句,得到執(zhí)行結(jié)果。
[0046] 當SQL語句為DQL語句時,返回的執(zhí)行結(jié)果為數(shù)據(jù)結(jié)果;當SQL語句為DML語句 時,返回的執(zhí)行結(jié)果為成功信息或失敗信息。
[0047] 執(zhí)行結(jié)果反饋單元205主要用于將執(zhí)行結(jié)果轉(zhuǎn)換為云用戶采用的數(shù)據(jù)格式后反 饋給該云用戶。
[0048] 具體的,執(zhí)行單元204得到了數(shù)據(jù)庫訪問請求所執(zhí)行的結(jié)果,由于用戶戶采用的 數(shù)據(jù)格式與云系統(tǒng)采用的數(shù)據(jù)格式不一致,云系統(tǒng)中的執(zhí)行結(jié)果反饋單元205將該執(zhí)行結(jié) 果轉(zhuǎn)化為云用戶采用的數(shù)據(jù)格式反饋給該云用戶,至此,云用戶訪問云系統(tǒng)中的數(shù)據(jù)庫的 過程完成。
[0049] 本發(fā)明提供的一種基于云計算的數(shù)據(jù)庫訪問方法及系統(tǒng),云系統(tǒng)通過接收用戶發(fā) 送的數(shù)據(jù)庫訪問請求,并將數(shù)據(jù)庫訪問請求中攜帶的數(shù)據(jù)庫元數(shù)據(jù)與云系統(tǒng)中的各數(shù)據(jù)庫 的元數(shù)據(jù)進行匹配,確定數(shù)據(jù)訪問請求要訪問的數(shù)據(jù)庫,解析數(shù)據(jù)訪問請求,得到所要執(zhí)行 的SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)語句,然后在云用戶當前的數(shù)據(jù)庫 連接上執(zhí)行SQL語句,并將執(zhí)行得到的執(zhí)行結(jié)果反饋給該云用戶。本發(fā)明提供的方法,借助 云系統(tǒng)實現(xiàn)了對數(shù)據(jù)庫的訪問,避免了各種應(yīng)用與環(huán)境中分布、異構(gòu)的數(shù)據(jù)庫直接連接,實 現(xiàn)了信息訪問和集成模型的平臺無關(guān)性,增強了管理自動化系統(tǒng)的可移植性、健壯性,因而 具有非常廣闊的應(yīng)用前景。
[0050] 以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和 原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1. 一種基于云計算的數(shù)據(jù)庫訪問方法,其特征在于,包括: 步驟S101、接收云用戶發(fā)送的數(shù)據(jù)庫訪問請求; 步驟S102、將所述數(shù)據(jù)庫訪問請求中攜帶的數(shù)據(jù)庫元數(shù)據(jù)與云系統(tǒng)中各數(shù)據(jù)庫的元數(shù) 據(jù)進行匹配,確定所述數(shù)據(jù)訪問請求要訪問的數(shù)據(jù)庫; 步驟S103、解析所述數(shù)據(jù)庫訪問請求,得到SQL語句; 步驟S104、在所述云用戶的當前數(shù)據(jù)庫連接上執(zhí)行SQL語句,得到執(zhí)行結(jié)果; 步驟S105、將所述執(zhí)行結(jié)果轉(zhuǎn)換為所述云用戶采用的數(shù)據(jù)格式后反饋給該云用戶。
2. 如權(quán)利要求1所述的數(shù)據(jù)庫訪問方法,其特征在于,所述執(zhí)行步驟S103之前還包 括: 對所述云用戶進行驗證,若驗證通過,則對所述數(shù)據(jù)庫訪問請求進行解析,得到SQL語 句;若驗證未通過,則向所述云用戶發(fā)送異常消息。
3. 如權(quán)利要求2所述的數(shù)據(jù)庫訪問方法,其特征在于,對所述云用戶進行驗證包括: 根據(jù)所述數(shù)據(jù)庫訪問請求中攜帶的云用戶的用戶名和密碼,在所確定的數(shù)據(jù)庫中的用 戶驗證信息中匹配,若匹配,則驗證通過;否則,驗證未通過。
4. 如權(quán)利要求1所述的數(shù)據(jù)庫訪問方法,其特征在于,在執(zhí)行步驟S103之后還包括: 判斷所述云用戶當前是否具有數(shù)據(jù)庫連接; 在所述云用戶當前不具有數(shù)據(jù)庫連接的情況下,從數(shù)據(jù)庫連接池中取出一條連接作為 該云用戶當前的數(shù)據(jù)庫連接。
5. 如權(quán)利要求1或2所述的數(shù)據(jù)庫訪問方法,其特征在于,所述SQL語句包括數(shù)據(jù)查詢 語言和數(shù)據(jù)操作語言。
6. -種基于云計算的數(shù)據(jù)庫訪問系統(tǒng),其特征在于,包括: 請求接收單元,用于接收云用戶發(fā)送的數(shù)據(jù)庫訪問請求; 數(shù)據(jù)庫確定單元,用于將所述數(shù)據(jù)庫訪問請求中攜帶的數(shù)據(jù)庫元數(shù)據(jù)與云系統(tǒng)中各數(shù) 據(jù)庫的元數(shù)據(jù)進行匹配,確定所述數(shù)據(jù)訪問請求要訪問的數(shù)據(jù)庫; 解析單元,用于解析所述數(shù)據(jù)庫訪問請求,得到SQL語句; 執(zhí)行單元,用于在所述用戶的當前數(shù)據(jù)庫連接上執(zhí)行SQL語句,得到執(zhí)行結(jié)果; 執(zhí)行結(jié)果反饋單元,用于將所述執(zhí)行結(jié)果轉(zhuǎn)換為所述云用戶采用的數(shù)據(jù)格式后反饋給 該云用戶。
7. 如權(quán)利要求6所述的數(shù)據(jù)庫訪問系統(tǒng),其特征在于,所述解析單元,用于解析所述數(shù) 據(jù)庫訪問請求,得到SQL語句之前還包括: 用戶驗證單元,用于對所述云用戶進行驗證; 若驗證通過,則對所述數(shù)據(jù)庫訪問請求進行解析,得到SQL語句;若驗證未通過,則向 所述云用戶發(fā)送異常消息。
8. 如權(quán)利要求7所述的數(shù)據(jù)庫訪問系統(tǒng),其特征在于,用戶驗證單元用于用于對所述 云用戶進行驗證具體包括: 根據(jù)所述數(shù)據(jù)庫訪問請求中攜帶的云用戶的用戶名和密碼,在所確定的數(shù)據(jù)庫中的用 戶驗證信息中匹配,若匹配,則驗證通過;否則,驗證未通過。
9. 如權(quán)利要求6所述的數(shù)據(jù)庫訪問系統(tǒng),其特征在于,所述執(zhí)行單元用于在所述用戶 的當前數(shù)據(jù)庫連接上執(zhí)行SQL語句,得到執(zhí)行結(jié)果之前還包括 : 數(shù)據(jù)庫連接判斷單元,用于判斷所述云用戶當前是否具有數(shù)據(jù)庫連接; 在所述云用戶當前不具有數(shù)據(jù)庫連接的情況下,從數(shù)據(jù)庫連接池中取出一條連接作為 該云用戶當前的數(shù)據(jù)庫連接。
【文檔編號】G06F17/30GK104090937SQ201410300008
【公開日】2014年10月8日 申請日期:2014年6月27日 優(yōu)先權(quán)日:2014年6月27日
【發(fā)明者】陸冬艷 申請人:陸冬艷