一種數(shù)據(jù)訪問(wèn)關(guān)系的確定方法及裝置制造方法【專利摘要】本申請(qǐng)公開了一種數(shù)據(jù)訪問(wèn)關(guān)系的確定方法及裝置,用以解決現(xiàn)有技術(shù)中確定數(shù)據(jù)訪問(wèn)關(guān)系的效率和準(zhǔn)確性較低的問(wèn)題。該方法服務(wù)器掃描APP的代碼,確定APP所調(diào)用的sql語(yǔ)句并解析,確定該sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)和該APP的應(yīng)用標(biāo)識(shí),根據(jù)預(yù)先保存的元數(shù)據(jù),確定該table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí),建立并存儲(chǔ)該APP的應(yīng)用標(biāo)識(shí)、該table的表標(biāo)識(shí)、該table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。通過(guò)上述方法,服務(wù)器可自動(dòng)確定各APP的數(shù)據(jù)訪問(wèn)關(guān)系,無(wú)需人工分析APP的代碼,不會(huì)引入人為錯(cuò)誤,因此可以有效的提高確定數(shù)據(jù)訪問(wèn)關(guān)系的效率和準(zhǔn)確性?!緦@f(shuō)明】一種數(shù)據(jù)訪問(wèn)關(guān)系的確定方法及裝置【
技術(shù)領(lǐng)域:
】[0001]本申請(qǐng)涉及通信【
技術(shù)領(lǐng)域:
】,尤其涉及一種數(shù)據(jù)訪問(wèn)關(guān)系的確定方法及裝置。【
背景技術(shù):
】[0002]在早期的數(shù)據(jù)庫(kù)和應(yīng)用(AppliCation,APP)的架構(gòu)中,為了提供業(yè)務(wù)的快速發(fā)展,往往以最快滿足業(yè)務(wù)需求為目的,因此早期的設(shè)計(jì)中,會(huì)將多個(gè)APP的數(shù)據(jù)全部存放在一起,即,將大量的APP的數(shù)據(jù)存放在少量的幾個(gè)數(shù)據(jù)庫(kù)中。[0003]但是,隨著業(yè)務(wù)的高速發(fā)展,業(yè)務(wù)對(duì)數(shù)據(jù)庫(kù)容量的需求也逐漸增大。當(dāng)要通過(guò)拆分?jǐn)?shù)據(jù)庫(kù)的方式對(duì)數(shù)據(jù)庫(kù)進(jìn)行擴(kuò)容時(shí),就需要根據(jù)各APP對(duì)各數(shù)據(jù)庫(kù)中的數(shù)據(jù)的訪問(wèn)關(guān)系進(jìn)行拆分,以避免拆分?jǐn)?shù)據(jù)庫(kù)之后影響APP的正常運(yùn)行。[0004]在現(xiàn)有技術(shù)中,確定APP對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)的訪問(wèn)關(guān)系的方法為:通過(guò)人工分析各APP中的代碼,來(lái)確定一個(gè)APP需要對(duì)哪些數(shù)據(jù)庫(kù)中的哪些表(table)進(jìn)行訪問(wèn)。[0005]顯然,現(xiàn)有技術(shù)中確定數(shù)據(jù)訪問(wèn)關(guān)系的效率較低,尤其是當(dāng)APP規(guī)模較大時(shí),需要耗費(fèi)大量的人力和時(shí)間來(lái)確定這些APP的數(shù)據(jù)訪問(wèn)關(guān)系,而且人工確定數(shù)據(jù)訪問(wèn)關(guān)系也很可能會(huì)引入人為錯(cuò)誤,導(dǎo)致確定的數(shù)據(jù)訪問(wèn)關(guān)系的準(zhǔn)確性較低?!?br/>發(fā)明內(nèi)容】[0006]本申請(qǐng)實(shí)施例提供一種數(shù)據(jù)訪問(wèn)關(guān)系的確定方法及裝置,用以解決現(xiàn)有技術(shù)中確定數(shù)據(jù)訪問(wèn)關(guān)系的效率和準(zhǔn)確性較低的問(wèn)題。[0007]本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)訪問(wèn)關(guān)系的確定方法,包括:[0008]服務(wù)器掃描應(yīng)用APP的代碼,根據(jù)所述APP的代碼,確定所述APP所調(diào)用的結(jié)構(gòu)化查詢語(yǔ)言sql語(yǔ)句;并[0009]對(duì)確定的sql語(yǔ)句進(jìn)行解析,確定所述sql語(yǔ)句所訪問(wèn)的表table的表標(biāo)識(shí)和所述APP的應(yīng)用標(biāo)識(shí);以及[0010]根據(jù)預(yù)先保存的元數(shù)據(jù)中包含的各table和數(shù)據(jù)庫(kù)的從屬關(guān)系,確定所述sql語(yǔ)句所訪問(wèn)的table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí);[0011]所述服務(wù)器建立并存儲(chǔ)所述APP的應(yīng)用標(biāo)識(shí)、所述sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)、所述sql語(yǔ)句所訪問(wèn)的table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。[0012]本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)訪問(wèn)關(guān)系的確定裝置,包括:[0013]語(yǔ)句確定模塊,用于掃描應(yīng)用APP的代碼,根據(jù)所述APP的代碼,確定所述APP所調(diào)用的結(jié)構(gòu)化查詢語(yǔ)言sql語(yǔ)句;[0014]解析模塊,用于對(duì)確定的sql語(yǔ)句進(jìn)行解析,確定所述sql語(yǔ)句所訪問(wèn)的表table的表標(biāo)識(shí)和所述APP的應(yīng)用標(biāo)識(shí);[0015]數(shù)據(jù)庫(kù)確定模塊,用于根據(jù)預(yù)先保存的元數(shù)據(jù)中包含的各table和數(shù)據(jù)庫(kù)的從屬關(guān)系,確定所述sql語(yǔ)句所訪問(wèn)的table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí);[0016]關(guān)系建立模塊,用于建立并存儲(chǔ)所述APP的應(yīng)用標(biāo)識(shí)、所述sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)、所述sql語(yǔ)句所訪問(wèn)的table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。[0017]本申請(qǐng)實(shí)施例提供一種數(shù)據(jù)訪問(wèn)關(guān)系的確定方法及裝置,該方法服務(wù)器掃描APP的代碼,確定APP所調(diào)用的sql語(yǔ)句并解析,確定該sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)和該APP的應(yīng)用標(biāo)識(shí),根據(jù)預(yù)先保存的元數(shù)據(jù),確定該table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí),建立并存儲(chǔ)該APP的應(yīng)用標(biāo)識(shí)、該table的表標(biāo)識(shí)、該table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。通過(guò)上述方法,服務(wù)器可自動(dòng)確定各APP的數(shù)據(jù)訪問(wèn)關(guān)系,無(wú)需人工分析APP的代碼,不會(huì)引入人為錯(cuò)誤,因此可以有效的提高確定數(shù)據(jù)訪問(wèn)關(guān)系的效率和準(zhǔn)確性?!緦@綀D】【附圖說(shuō)明】[0018]圖1為本申請(qǐng)實(shí)施例提供的數(shù)據(jù)訪問(wèn)關(guān)系的確定過(guò)程;[0019]圖2為本申請(qǐng)實(shí)施例提供的應(yīng)用標(biāo)識(shí)、sqlmap、sql語(yǔ)句、表標(biāo)識(shí)、schema、數(shù)據(jù)庫(kù)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系不意圖;[0020]圖3為本申請(qǐng)實(shí)施例提供的根據(jù)待查詢table的表標(biāo)識(shí),查詢sqlmap的示意圖;[0021]圖4為本申請(qǐng)實(shí)施例提供的數(shù)據(jù)訪問(wèn)關(guān)系的確定裝置結(jié)構(gòu)示意圖?!揪唧w實(shí)施方式】[0022]本申請(qǐng)實(shí)施例為了提高確定數(shù)據(jù)訪問(wèn)關(guān)系的效率和準(zhǔn)確性,由服務(wù)器掃描APP的代碼,確定APP所調(diào)用的結(jié)構(gòu)化查詢語(yǔ)言(StructuredQueryLanguage,sql)語(yǔ)句并解析,確定該sql語(yǔ)句所訪問(wèn)的表(table)的表標(biāo)識(shí)和該APP的應(yīng)用標(biāo)識(shí),再根據(jù)預(yù)先保存的元數(shù)據(jù),確定該table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí),建立并存儲(chǔ)該APP的應(yīng)用標(biāo)識(shí)、該table的表標(biāo)識(shí)、該table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。[0023]下面結(jié)合說(shuō)明書附圖對(duì)本申請(qǐng)實(shí)施例進(jìn)行詳細(xì)描述。[0024]圖1為本申請(qǐng)實(shí)施例提供的數(shù)據(jù)訪問(wèn)關(guān)系的確定過(guò)程,具體包括以下步驟:[0025]SlOl:服務(wù)器掃描APP的代碼,根據(jù)該APP的代碼,確定該APP所調(diào)用的sql語(yǔ)句。[0026]在本申請(qǐng)實(shí)施例中,由服務(wù)器對(duì)系統(tǒng)中的各APP的代碼進(jìn)行掃描。具體的,服務(wù)器針對(duì)系統(tǒng)中的每個(gè)APP,可通過(guò)基于shell語(yǔ)言的腳本掃描該APP的代碼,并據(jù)此確定該APP所調(diào)用的sql語(yǔ)句。[0027]其中,由于在Ibatis框架下,APP所調(diào)用的sql語(yǔ)句一般包含在該APP對(duì)應(yīng)的sqlmap中,而sqlmap—般是以可擴(kuò)展標(biāo)記語(yǔ)言(ExtensibleMarkupLanguage,XML)的形式來(lái)組織的,因此,服務(wù)器掃描了一個(gè)APP的代碼后,可根據(jù)該APP的代碼,確定該APP對(duì)應(yīng)的XML文件,確定該XML文件中包含的sqlmap,并將該sqlmap中包含的sql語(yǔ)句確定為該APP所調(diào)用的sql語(yǔ)句。[0028]服務(wù)器確定該sqlmap中包含的sql語(yǔ)句時(shí),可通過(guò)基于peri語(yǔ)言的正則表達(dá)式來(lái)確定。如果該APP對(duì)應(yīng)的XML文件中包含多個(gè)sqlmap,sqlmap中也包含多個(gè)sql語(yǔ)句,則服務(wù)器針對(duì)每個(gè)sqlmap,將該sqlmap中包含的所有sql語(yǔ)句均確定為該APP所調(diào)用的sql語(yǔ)句。[0029]S102:對(duì)確定的sql語(yǔ)句進(jìn)行解析,確定該sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)和該APP的應(yīng)用標(biāo)識(shí)。[0030]服務(wù)器針對(duì)系統(tǒng)中的每個(gè)APP,確定了該APP所調(diào)用的sql語(yǔ)句后,則可對(duì)該sql語(yǔ)句進(jìn)行解析,以確定該sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)以及調(diào)用該sql語(yǔ)句的APP的應(yīng)用標(biāo)識(shí)。[0031]具體的,服務(wù)器可先確定該sql語(yǔ)句的類型,再根據(jù)預(yù)設(shè)的與該sql語(yǔ)句的類型對(duì)應(yīng)的解析方法,對(duì)該sql語(yǔ)句進(jìn)行解析,并通過(guò)基于peri語(yǔ)言的正則表達(dá)式確定該sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)以及調(diào)用該sql語(yǔ)句的APP的應(yīng)用標(biāo)識(shí)。[0032]S103:根據(jù)預(yù)先保存的元數(shù)據(jù)中包含的各table和數(shù)據(jù)庫(kù)的從屬關(guān)系,確定該sql語(yǔ)句所訪問(wèn)的table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)。[0033]在本申請(qǐng)實(shí)施例中,服務(wù)器預(yù)先保存了元數(shù)據(jù),該元數(shù)據(jù)中包含了各table和各數(shù)據(jù)庫(kù)的從屬關(guān)系,也即,通過(guò)該元數(shù)據(jù),服務(wù)器可獲知哪個(gè)數(shù)據(jù)庫(kù)中包含了哪個(gè)table。因此,服務(wù)器通過(guò)步驟S102確定了該sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)后,可根據(jù)該元數(shù)據(jù)確定該sql語(yǔ)句所訪問(wèn)的table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)。[0034]S104:服務(wù)器建立并存儲(chǔ)該APP的應(yīng)用標(biāo)識(shí)、該sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)、該sql語(yǔ)句所訪問(wèn)的table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。[0035]通過(guò)上述步驟S101?S103,服務(wù)器已經(jīng)確定了該APP所調(diào)用的sql語(yǔ)言、該sql語(yǔ)言所訪問(wèn)的table的表標(biāo)識(shí)、該sql語(yǔ)言所訪問(wèn)的table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí),因此,服務(wù)器建立上述三者的對(duì)應(yīng)關(guān)系并存儲(chǔ)。在后續(xù)拆分?jǐn)?shù)據(jù)庫(kù)時(shí),即可通過(guò)該服務(wù)器中保存的上述三者的對(duì)應(yīng)關(guān)系,快速的獲知哪個(gè)APP訪問(wèn)了哪些table,這些table又是屬于哪個(gè)數(shù)據(jù)庫(kù)的,用以為拆分?jǐn)?shù)據(jù)庫(kù)提供依據(jù)。[0036]通過(guò)上述方法,服務(wù)器可自動(dòng)確定系統(tǒng)中各APP的數(shù)據(jù)訪問(wèn)關(guān)系,無(wú)需人工分析APP的代碼,不會(huì)引入人為錯(cuò)誤,因此有效的提高了確定數(shù)據(jù)訪問(wèn)關(guān)系的效率和準(zhǔn)確性,尤其是當(dāng)系統(tǒng)中APP規(guī)模較大時(shí),采用上述方法確定各APP的數(shù)據(jù)訪問(wèn)關(guān)系可以節(jié)省大量的人力和時(shí)間。[0037]較佳的,由于在上述步驟S102中,服務(wù)器在確定一個(gè)APP所調(diào)用的sql語(yǔ)句時(shí),是先確定該APP對(duì)應(yīng)的XML文件,再確定該XML文件中包含的sqlmap,最后將該sqlmap中包含的sql語(yǔ)句確定為該APP所調(diào)用的sql語(yǔ)句的,因此,在上述步驟S104中,服務(wù)器也可以建立該APP的應(yīng)用標(biāo)識(shí)、該APP對(duì)應(yīng)的XML文件中包含的sqlmap、該sqlmap中包含的sql語(yǔ)句、該sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)、該sql語(yǔ)句所訪問(wèn)的table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,并存儲(chǔ)。[0038]另外,在上述步驟S102中,服務(wù)器在對(duì)sql語(yǔ)句進(jìn)行解析后,除了確定該sql語(yǔ)句所訪問(wèn)table的表標(biāo)識(shí)和該APP的應(yīng)用標(biāo)識(shí)以外,還可以確定該sql語(yǔ)句所屬的sqlmap的存儲(chǔ)路徑,并保存該sql語(yǔ)句所屬的sqlmap的存儲(chǔ)路徑。[0039]通過(guò)上述方法,如果一個(gè)APP所調(diào)用的sql語(yǔ)句出現(xiàn)問(wèn)題,則可以根據(jù)服務(wù)器中保存的應(yīng)用標(biāo)識(shí)、sqlmap、sql語(yǔ)句、表標(biāo)識(shí)、數(shù)據(jù)庫(kù)標(biāo)識(shí)這五者的對(duì)應(yīng)關(guān)系,快速的定位到出現(xiàn)問(wèn)題的sql語(yǔ)句所屬的sqlmap、調(diào)用該sql語(yǔ)句的APP,該sql語(yǔ)句所訪問(wèn)的table及其所屬的數(shù)據(jù)庫(kù),以便于聯(lián)系相應(yīng)APP的開發(fā)者解決該sql語(yǔ)句出現(xiàn)的問(wèn)題。還可以根據(jù)出現(xiàn)問(wèn)題的該sql語(yǔ)句所屬的sqlmap,以及保存的該sqlmap的存儲(chǔ)路徑,快速的定位到該sql的存儲(chǔ)位置。[0040]進(jìn)一步的,服務(wù)器預(yù)先保存的元數(shù)據(jù)中具體包含了各table和各schema的從屬關(guān)系,以及各schema和各數(shù)據(jù)庫(kù)的從屬關(guān)系,其中,一個(gè)數(shù)據(jù)庫(kù)中的schema相當(dāng)于在該數(shù)據(jù)庫(kù)中注冊(cè)的一個(gè)用戶名,而一個(gè)table屬于一個(gè)schema則表示該用戶名(schema)具有對(duì)該tabIe的訪問(wèn)權(quán)限。也即,一個(gè)APP在訪問(wèn)某個(gè)數(shù)據(jù)庫(kù)中的tabIe時(shí),先在該APP自身對(duì)應(yīng)的XML文件中查找sqlmap,調(diào)用該sqlmap中相應(yīng)的sql語(yǔ)句,再通過(guò)調(diào)用的該sql語(yǔ)句和一個(gè)在該數(shù)據(jù)庫(kù)中注冊(cè)的、且具有對(duì)該table的訪問(wèn)權(quán)限的用戶名(schema)進(jìn)行訪問(wèn)。[0041]因此,在圖1所示的步驟S103中,服務(wù)器確定sql語(yǔ)句所訪問(wèn)的table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)的方法具體可以為:服務(wù)器先根據(jù)預(yù)先保存的元數(shù)據(jù)中包含的各table和schema的從屬關(guān)系,確定該sql語(yǔ)句所訪問(wèn)的table所屬的schema,再根據(jù)該元數(shù)據(jù)中包含的各schema和數(shù)據(jù)庫(kù)的從屬關(guān)系,確定包含有該sql語(yǔ)句所訪問(wèn)的table所屬的schema的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)。其中,服務(wù)器可預(yù)先遍歷每個(gè)數(shù)據(jù)庫(kù)中注冊(cè)的schema以及每個(gè)schema可以訪問(wèn)(具有訪問(wèn)權(quán)限)的table,據(jù)此確定并保存元數(shù)據(jù)。[0042]相應(yīng)的,步驟S104中服務(wù)器則可以建立該APP的應(yīng)用標(biāo)識(shí)、該sqlmap、該sqlmap中包含的sql語(yǔ)句、該sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)、該sql語(yǔ)句所訪問(wèn)的table所屬的schema、包含有該sql語(yǔ)句所訪問(wèn)的table所屬的schema的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,并將這六者的對(duì)應(yīng)關(guān)系存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中。[0043]下面以一個(gè)具體實(shí)例說(shuō)明上述數(shù)據(jù)訪問(wèn)關(guān)系的確定方法,如圖2所示。[0044]圖2為本申請(qǐng)實(shí)施例提供的應(yīng)用標(biāo)識(shí)、sqlmap、sql語(yǔ)句、表標(biāo)識(shí)、schema、數(shù)據(jù)庫(kù)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系不意圖。[0045]在圖2中,針對(duì)應(yīng)用標(biāo)識(shí)為APP_A的APP,服務(wù)器先掃描該APP的代碼,確定該APP對(duì)應(yīng)的XML文件,確定該XML文件中包含的sqlmap分別為:sqlmap1、sqlmap2、sqlmap3。[0046]然后,服務(wù)器確定sqlmapI中包含sql語(yǔ)句I,sqlmap2中包含sql語(yǔ)句2和sql語(yǔ)句3,sqlmap3中包含sql語(yǔ)句4,則確定sql語(yǔ)句1、sql語(yǔ)句2、sql語(yǔ)句3、sql語(yǔ)句4這四個(gè)sql語(yǔ)句為該APP所調(diào)用的sql語(yǔ)句。[0047]接下來(lái),服務(wù)器分別對(duì)這四個(gè)sql語(yǔ)句進(jìn)行解析,確定出以下信息:[0048]sql語(yǔ)句I訪問(wèn)的table的表標(biāo)識(shí)為tablel,調(diào)用sql語(yǔ)句I的APP的應(yīng)用標(biāo)識(shí)為APP_A,sql語(yǔ)句I所在的sqlmapI的存儲(chǔ)路徑;[0049]sql語(yǔ)句2訪問(wèn)的table的表標(biāo)識(shí)為table2,調(diào)用sql語(yǔ)句2的APP的應(yīng)用標(biāo)識(shí)為APP_A,sql語(yǔ)句2所在的sqlmap2的存儲(chǔ)路徑;[0050]sql語(yǔ)句3訪問(wèn)的table的表標(biāo)識(shí)為table3,調(diào)用sql語(yǔ)句3的APP的應(yīng)用標(biāo)識(shí)為APP_A,sql語(yǔ)句3所在的sqlmap2的存儲(chǔ)路徑;[0051]sql語(yǔ)句4訪問(wèn)的table的表標(biāo)識(shí)為table4,調(diào)用sql語(yǔ)句4的APP的應(yīng)用標(biāo)識(shí)為APP_A,sql語(yǔ)句4所在的sqlmap3的存儲(chǔ)路徑。[0052]確定出上述信息后,服務(wù)器根據(jù)預(yù)先保存的元數(shù)據(jù),確定tablel、table2、table3均屬于schemal,schemal所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)為DB_A,table4屬于schema5,schema5所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)為DB_B。[0053]最后,服務(wù)器相應(yīng)建立并存儲(chǔ)上述應(yīng)用標(biāo)識(shí)(APP_A)、sqlmap(sqlmap1、sqlmap2、sqlmap3)、sql語(yǔ)句(sql語(yǔ)句1、sql語(yǔ)句2、sql語(yǔ)句3、sql語(yǔ)句4)、表標(biāo)識(shí)(tablel、table2、table3、table4)、schema(schemal、schema5)、數(shù)據(jù)庫(kù)標(biāo)識(shí)(DB_A、DB_B)的對(duì)應(yīng)關(guān)系,并保存sqlmap1、sqlmap2、sqlmap3的存儲(chǔ)路徑。[0054]建立并存儲(chǔ)上述對(duì)應(yīng)關(guān)系時(shí),可以通過(guò)如表I所示的方法進(jìn)行建立并存儲(chǔ)。[0055]【權(quán)利要求】1.一種數(shù)據(jù)訪問(wèn)關(guān)系的確定方法,其特征在于,包括:服務(wù)器掃描應(yīng)用APP的代碼,根據(jù)所述APP的代碼,確定所述APP所調(diào)用的結(jié)構(gòu)化查詢語(yǔ)目sql語(yǔ)句;并對(duì)確定的sql語(yǔ)句進(jìn)行解析,確定所述sql語(yǔ)句所訪問(wèn)的表table的表標(biāo)識(shí)和所述APP的應(yīng)用標(biāo)識(shí);以及根據(jù)預(yù)先保存的元數(shù)據(jù)中包含的各table和數(shù)據(jù)庫(kù)的從屬關(guān)系,確定所述sql語(yǔ)句所訪問(wèn)的table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí);所述服務(wù)器建立并存儲(chǔ)所述APP的應(yīng)用標(biāo)識(shí)、所述sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)、所述sql語(yǔ)句所訪問(wèn)的table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。2.如權(quán)利要求1所述的方法,其特征在于,根據(jù)所述APP的代碼,確定所述APP所調(diào)用的sql語(yǔ)句,具體包括:根據(jù)所述APP代碼,確定所述APP對(duì)應(yīng)的可擴(kuò)展標(biāo)記語(yǔ)言XML文件;確定所述XML文件中包含的sqlmap,將所述sqlmap中包含的sql語(yǔ)句確定為所述APP所調(diào)用的sql語(yǔ)句;所述服務(wù)器建立并存儲(chǔ)所述APP的應(yīng)用標(biāo)識(shí)、所述sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)、所述sql語(yǔ)句所訪問(wèn)的table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,具體包括:所述服務(wù)器建立并存儲(chǔ)所述APP的應(yīng)用標(biāo)識(shí)、所述sqlmap、所述sqlmap中包含的sql語(yǔ)句、所述sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)、所述sql語(yǔ)句所訪問(wèn)的table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。3.如權(quán)利要求2所述的方法,其特征在于,對(duì)確定的sql語(yǔ)句進(jìn)行解析,確定所述sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)和所述APP的應(yīng)用標(biāo)識(shí),具體包括:對(duì)確定的sql語(yǔ)句進(jìn)行解析,確定所述sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)、所述APP的應(yīng)用標(biāo)識(shí)以及所述sql語(yǔ)句所屬的sqlmap的存儲(chǔ)路徑;所述方法還包括:所述服務(wù)器保存所述sql語(yǔ)句所屬的sqlmap的存儲(chǔ)路徑。4.如權(quán)利要求2所述的方法,其特征在于,根據(jù)預(yù)先保存的元數(shù)據(jù)中包含的各table和數(shù)據(jù)庫(kù)的從屬關(guān)系,確定所述sql語(yǔ)句所訪問(wèn)的table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí),具體包括:根據(jù)預(yù)先保存的元數(shù)據(jù)中包含的各table和schema的從屬關(guān)系,確定所述sql語(yǔ)句所訪問(wèn)的table所屬的schema;并根據(jù)預(yù)先保存的元數(shù)據(jù)中包含的各schema和數(shù)據(jù)庫(kù)的從屬關(guān)系,確定包含有所述sql語(yǔ)句所訪問(wèn)的table所屬的schema的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)。5.如權(quán)利要求4所述的方法,其特征在于,所述服務(wù)器建立并存儲(chǔ)所述APP的應(yīng)用標(biāo)識(shí)、所述sqlmap、所述sqlmap中包含的sql語(yǔ)句、所述sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)、所述sql語(yǔ)句所訪問(wèn)的table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,具體包括:所述服務(wù)器建立所述APP的應(yīng)用標(biāo)識(shí)、所述sqlmap、所述sqlmap中包含的sql語(yǔ)句、所述sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)、所述sql語(yǔ)句所訪問(wèn)的table所屬的schema、包含有所述sql語(yǔ)句所訪問(wèn)的table所屬的schema的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系;并將所述對(duì)應(yīng)關(guān)系存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中。6.如權(quán)利要求5所述的方法,其特征在于,所述方法還包括:當(dāng)所述服務(wù)器接收到查詢請(qǐng)求時(shí),根據(jù)所述查詢請(qǐng)求中攜帶的待查詢信息,在所述關(guān)系數(shù)據(jù)庫(kù)中查詢與所述待查詢信息具有對(duì)應(yīng)關(guān)系的其他信息并展示,其中,所述待查詢信息包括:待查詢的應(yīng)用標(biāo)識(shí)、sqlmap、sql語(yǔ)句、表標(biāo)識(shí)、schema、數(shù)據(jù)庫(kù)標(biāo)識(shí)中的至少一種;與所述待查詢信息具有對(duì)應(yīng)關(guān)系的其他信息包括:與所述待查詢信息具有對(duì)應(yīng)關(guān)系的應(yīng)用標(biāo)識(shí)、sqlmap、sql語(yǔ)句、表標(biāo)識(shí)、schema、數(shù)據(jù)庫(kù)標(biāo)識(shí)中的至少一種。7.一種數(shù)據(jù)訪問(wèn)關(guān)系的確定裝置,其特征在于,包括:語(yǔ)句確定模塊,用于掃描應(yīng)用APP的代碼,根據(jù)所述APP的代碼,確定所述APP所調(diào)用的結(jié)構(gòu)化查詢語(yǔ)言sql語(yǔ)句;解析模塊,用于對(duì)確定的sql語(yǔ)句進(jìn)行解析,確定所述sql語(yǔ)句所訪問(wèn)的表table的表標(biāo)識(shí)和所述APP的應(yīng)用標(biāo)識(shí);數(shù)據(jù)庫(kù)確定模塊,用于根據(jù)預(yù)先保存的元數(shù)據(jù)中包含的各table和數(shù)據(jù)庫(kù)的從屬關(guān)系,確定所述sql語(yǔ)句所訪問(wèn)的table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí);關(guān)系建立模塊,用于建立并存儲(chǔ)所述APP的應(yīng)用標(biāo)識(shí)、所述sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)、所述sql語(yǔ)句所訪問(wèn)的table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。8.如權(quán)利要求7所述的裝置,其特征在于,所述語(yǔ)句確定模塊具體用于,根據(jù)所述APP代碼,確定所述APP對(duì)應(yīng)的可擴(kuò)展標(biāo)記語(yǔ)言XML文件,確定所述XML文件中包含的sqlmap,將所述sqlmap中包含的sql語(yǔ)句確定為所述APP所調(diào)用的sql語(yǔ)句;所述關(guān)系建立模塊具體用于,建立并存儲(chǔ)所述APP的應(yīng)用標(biāo)識(shí)、所述sqlmap、所述sqlmap中包含的sql語(yǔ)句、所述sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)、所述sql語(yǔ)句所訪問(wèn)的table所屬的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。9.如權(quán)利要求8所述的裝置,其特征在于,所述解析模塊具體用于,對(duì)確定的sql語(yǔ)句進(jìn)行解析,確定所述sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)、所述APP的應(yīng)用標(biāo)識(shí)以及所述sql語(yǔ)句所屬的sqlmap的存儲(chǔ)路徑;所述關(guān)系建立模塊還用于,保存所述sql語(yǔ)句所屬的sqlmap的存儲(chǔ)路徑。10.如權(quán)利要求8所述的裝置,其特征在于,所述數(shù)據(jù)庫(kù)確定模塊具體用于,根據(jù)預(yù)先保存的元數(shù)據(jù)中包含的各table和schema的從屬關(guān)系,確定所述sql語(yǔ)句所訪問(wèn)的table所屬的schema,并根據(jù)預(yù)先保存的元數(shù)據(jù)中包含的各schema和數(shù)據(jù)庫(kù)的從屬關(guān)系,確定包含有所述sql語(yǔ)句所訪問(wèn)的table所屬的schema的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)。11.如權(quán)利要求10所述的裝置,其特征在于,所述關(guān)系建立模塊具體用于,建立所述APP的應(yīng)用標(biāo)識(shí)、所述sqlmap、所述sqlmap中包含的sql語(yǔ)句、所述sql語(yǔ)句所訪問(wèn)的table的表標(biāo)識(shí)、所述sql語(yǔ)句所訪問(wèn)的table所屬的schema、包含有所述sql語(yǔ)句所訪問(wèn)的table所屬的schema的數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,并將所述對(duì)應(yīng)關(guān)系存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中。12.如權(quán)利要求11所述的裝置,其特征在于,所述裝置還包括:查詢模塊,用于當(dāng)接收到查詢請(qǐng)求時(shí),根據(jù)所述查詢請(qǐng)求中攜帶的待查詢信息,在所述關(guān)系數(shù)據(jù)庫(kù)中查詢與所述待查詢信息具有對(duì)應(yīng)關(guān)系的其他信息并展示;其中,所述待查詢信息包括:待查詢的應(yīng)用標(biāo)識(shí)、sqlmap、sql語(yǔ)句、表標(biāo)識(shí)、schema、數(shù)據(jù)庫(kù)標(biāo)識(shí)中的至少一種;與所述待查詢信息具有對(duì)應(yīng)關(guān)系的其他信息包括:與所述待查詢信息具有對(duì)應(yīng)關(guān)系的應(yīng)用標(biāo)識(shí)、sqlmap、sql語(yǔ)句、表標(biāo)識(shí)、schema、數(shù)據(jù)庫(kù)標(biāo)識(shí)中的至少一種?!疚臋n編號(hào)】G06F17/30GK103902565SQ201210576424【公開日】2014年7月2日申請(qǐng)日期:2012年12月26日優(yōu)先權(quán)日:2012年12月26日【發(fā)明者】樊振華,肖艷華,童家旺,趙慶武,曹棲鋒,徐磊申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司