專利名稱::數(shù)據(jù)庫系統(tǒng)管理方法
技術領域:
:本發(fā)明涉及數(shù)據(jù)庫系統(tǒng)管理領域,尤其涉及一種實現(xiàn)多類型數(shù)據(jù)庫之間操作的管理方法。
背景技術:
:當前市場上有多種不同的數(shù)據(jù)庫產(chǎn)品,包括SQLSERVE,ORACLE,DB2等,一般數(shù)據(jù)庫實現(xiàn)查詢的步驟包括1)用戶對應用程序發(fā)出指令;2)應用程序將接收到的指令發(fā)送到數(shù)據(jù)庫管理系統(tǒng)(DBMS);3)數(shù)據(jù)庫管理系統(tǒng)(DBMS)調用相應的查詢語句對數(shù)據(jù)庫(DB)進行操作;4)數(shù)據(jù)庫管理系統(tǒng)將查詢到的結果返回至應用程序完成查詢功能。雖然各種數(shù)據(jù)庫系統(tǒng)都實現(xiàn)了SQL-92標準,但它們同時都或多或少地擴展了該標準,擁有一些獨特的SQL(StructuredQueryLanguage)語法結構。也就是說適用于某種數(shù)據(jù)庫的查詢或更新語句不一定適用于另一種數(shù)據(jù)庫,這給普通的應用程序帶來一些困難應用程序想從一種數(shù)據(jù)庫環(huán)境中轉到另一種數(shù)據(jù)庫環(huán)境,必須同時改變程序中包含的查詢或更新語句,使其與各類型的數(shù)據(jù)庫相對應。
發(fā)明內容本發(fā)明的目的在于提供一種數(shù)據(jù)庫系統(tǒng)管理方法,其可以實現(xiàn)同一應用程序在不同類型數(shù)據(jù)庫之間進行操作。本發(fā)明所述的的數(shù)據(jù)庫系統(tǒng)管理方法,包括在該數(shù)據(jù)庫系統(tǒng)中設置有翻譯管理系統(tǒng),還包括應用程序將待執(zhí)行的通用指令語句發(fā)送至翻譯管理系統(tǒng)的步驟;翻譯管理系統(tǒng)將通用指令翻譯成與目標數(shù)據(jù)庫相適應的數(shù)據(jù)庫語言的步驟;翻譯管理系統(tǒng)將翻譯后的相應數(shù)據(jù)庫語言發(fā)送給數(shù)據(jù)庫管理系統(tǒng)的步驟;數(shù)據(jù)庫管理系統(tǒng)執(zhí)行指令,并將結果返回給用戶應用程序的步驟。優(yōu)選地,本發(fā)明數(shù)據(jù)庫系統(tǒng)管理方法還包括在所述通用指令語句中設置注釋語句,所述翻譯管理系統(tǒng)針對該注釋語句進行翻譯,并將其翻譯為與目標數(shù)據(jù)庫相適應的執(zhí)行指令語句。所述翻譯管理系統(tǒng)將通用指令翻譯成目標數(shù)據(jù)庫相適應的數(shù)據(jù)庫語言包括接收通用指令語句步驟;查詢并獲取目標數(shù)據(jù)庫類型的步驟;判斷是否包含注釋語句的步驟;分析注釋語句內容的步驟;判斷是否包含目標數(shù)據(jù)庫特有元素的步驟;翻譯特有元素,使其與目標數(shù)據(jù)庫相適應;采用本發(fā)明數(shù)據(jù)庫系統(tǒng)管理方法,不管應用程序使用的是哪種類型的數(shù)據(jù)庫產(chǎn)品,應用程序發(fā)送給翻譯管理系統(tǒng)的語句都是相同的,由翻譯管理系統(tǒng)獲取當前使用的數(shù)據(jù)庫類型并翻譯成與各數(shù)據(jù)庫相適應的數(shù)據(jù)庫語言,從而達到了不需要修改代碼即可實現(xiàn)同一個應用程序在不同數(shù)據(jù)庫上運行的目的。圖l采用本發(fā)明實施例翻譯管理系統(tǒng)構成示意圖2是本發(fā)明數(shù)據(jù)庫系統(tǒng)管理方法實施例的流程圖3是本發(fā)明數(shù)據(jù)庫系統(tǒng)管理方法實施例的翻譯流程圖4是本發(fā)明數(shù)據(jù)庫系統(tǒng)管理方法實施例執(zhí)行查詢功能的流程圖5是本發(fā)明數(shù)據(jù)庫系統(tǒng)管理方法實施例執(zhí)行更新功能的流程圖。本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結合實施例,參照附圖做進一步說明。具體實施例方式本實施例數(shù)據(jù)庫系統(tǒng)包括數(shù)據(jù)庫管理系統(tǒng),翻譯管理系統(tǒng)。其中,數(shù)據(jù)庫管理系統(tǒng)包括模式翻譯模塊、應用程序編譯模塊、交互式查詢模塊、數(shù)據(jù)的組織與存取模塊、事務運行管理模塊以及數(shù)據(jù)庫維護模塊。模式翻譯模塊用于提供數(shù)據(jù)定義語言(DDL),數(shù)據(jù)庫的各種數(shù)據(jù)操作(如查找、修改、插入和刪除等)和數(shù)據(jù)庫的維護管理都是通過其用它書寫的凄t據(jù)庫模式為依據(jù)進行。應用程序編譯模塊把包含著訪問數(shù)據(jù)庫語句的應用程序,編譯成在數(shù)據(jù)庫管理系統(tǒng)支持下可運行的目標程序。交互式查詢模塊用于提供易使用的交互式查詢語言,如SQL語言。數(shù)據(jù)庫管理系統(tǒng)負責執(zhí)行查詢命令,并將查詢結果顯示在屏幕上。數(shù)據(jù)的組織與存取模塊用于提供數(shù)據(jù)在外圍儲存設備上的物理組織與存取方法。事務運行管理模塊用于提供事務運行管理及運行日志,事務運行的安全性監(jiān)控和數(shù)據(jù)完整性檢查,事務的并發(fā)控制及系統(tǒng)恢復等功能。數(shù)據(jù)庫維護模塊用于為數(shù)據(jù)庫管理員提供軟件支持,包括數(shù)據(jù)安全控制、完整性保障、數(shù)據(jù)庫備份、數(shù)據(jù)庫重組以及性能監(jiān)控等維護工具。如圖1所示,翻譯管理系統(tǒng)包括通用SQL語句的語句判斷模塊,其用于判斷通用SQL語句是否合法;語句解析模塊,其用于解析通用SQL語句中的構成元素;語句翻譯模塊,其用于將通用SQL語句翻譯成目標數(shù)據(jù)庫上適用的特定SQL語句。如圖2所示,本實施例的數(shù)據(jù)庫系統(tǒng)管理方法包括S101:應用程序將待執(zhí)行的通用指令發(fā)送至翻譯管理系統(tǒng)的步驟;S102:翻譯管理系統(tǒng)將通用指令翻譯成與目標數(shù)據(jù)庫相適應的數(shù)據(jù)庫語5,S103翻譯管理系統(tǒng)將翻譯后的相應數(shù)據(jù)庫語言發(fā)送給數(shù)據(jù)庫管理系統(tǒng);S104:數(shù)據(jù)庫管理系統(tǒng)執(zhí)行指令,并將結果返回給用戶應用程序。本實施例數(shù)據(jù)庫管理方法在通用指令語句中設置注釋語句,上述翻譯管理系統(tǒng)針對該注釋語句進行翻譯,并將其翻譯為與目標數(shù)據(jù)庫相適應的數(shù)據(jù)庫語言。如圖3所示,上述翻譯管理系統(tǒng)管理方法通過以下具體步驟實現(xiàn)翻譯處理在S201步驟中,用戶通過應用程序向數(shù)據(jù)庫發(fā)出應用指令,應用程序將上述應用指令發(fā)送至數(shù)據(jù)庫管理系統(tǒng);在S202步驟中,數(shù)據(jù)庫管理系統(tǒng)針對該通用應用指令進行查詢并獲取目標數(shù)據(jù)庫類型;在S203步驟中,數(shù)據(jù)庫管理系統(tǒng)針對上述應用指令語句進行判斷,確認該應用指令語句中是否包含注釋語句;在S204和S205步驟中,數(shù)據(jù)庫管理系統(tǒng)針對注釋語句的內容進行分析,并判斷該注釋語句是否包含與目標數(shù)據(jù)庫相對應的特有元素;在S206步驟中,翻譯管理系統(tǒng)翻譯與目標數(shù)據(jù)庫相對應的特有元素,使其與目標數(shù)據(jù)庫相適應;在S207步驟中,翻譯管理系統(tǒng)翻譯通用指令語句的其他部分。圖4和圖5是采用本發(fā)明數(shù)據(jù)庫系統(tǒng)管理方法實現(xiàn)數(shù)據(jù)庫系統(tǒng)查詢和更新功能的流程圖。如圖4所示,數(shù)據(jù)庫系統(tǒng)通過以下具體步驟實現(xiàn)查詢操作在S301步驟中,外部系統(tǒng)發(fā)送通用查詢SQL語句至翻譯管理系統(tǒng);在S302步驟中,翻譯管理系統(tǒng)的語句判斷模塊判斷通用查詢SQL語句的合法性;在S303步驟中,翻譯管理系統(tǒng)的語句解析模塊解析通用查詢SQL語句,獲取目標數(shù)據(jù)庫類型;在S304步驟中,翻i奪管理系統(tǒng)的翻譯???f艮據(jù)目標數(shù)據(jù)庫類型將通用查詢SQL語句翻譯成目標數(shù)據(jù)庫上合適的查詢SQL語句;在S305步驟中,將翻譯??旆g的結果語句發(fā)送到數(shù)據(jù)庫中執(zhí)行查詢操如圖5所示,數(shù)據(jù)庫系統(tǒng)通過以下具體步驟實現(xiàn)更新操作在S401步驟中,外部系統(tǒng)發(fā)送通用更新SQL語句至翻譯管理系統(tǒng);在S402步驟中,翻譯管理系統(tǒng)的語句判斷模塊判斷通用更新SQL語句的合法性;在S403步驟中,翻譯管理系統(tǒng)的語句解析模塊解析通用更新SQL語句,獲取目標數(shù)據(jù)庫類型;在S404步驟中,翻譯管理系統(tǒng)的翻譯??旄鶕?jù)目標數(shù)據(jù)庫類型將通用更新SQL語句翻譯成目標數(shù)據(jù)庫上合適的更新SQL語句;在S405步驟中,將翻譯??旆g的結果語句發(fā)送到數(shù)據(jù)庫中執(zhí)行更新操作。一般的做法中,應用程序每支持一種特有的數(shù)據(jù)庫元素就必須在通用SQL語法中增加相應的語法結構進行支持,做不到靈活的擴展。本實施例使用注釋的方式對特有的數(shù)據(jù)庫元素進行支持,實現(xiàn)擴展特有數(shù)據(jù)庫元素的同時不修改通用SQL的語法結構。以下是通用SQL-92的一個語法結構SELECT[ALL|DISTINCT][WITHTIES]]I{table_nameIview—nameItable—alias}.*{column—nameI^IDENTITYI$R0WGUID}Iudt—column—name[{.I::}{{property—nameIfield_name}Imethod—name(argument[,...n])}]Iexpression[[AS]column—alias]Icolumn—alias=expression}[,…n]其中/*...*/可以在任何元素中出現(xiàn),表示注釋說明,將在執(zhí)行時-故忽略?,F(xiàn)在,為了在支持01^(:1^數(shù)據(jù)庫上的/*+ALL—ROWS^元素及SQLSERVER數(shù)據(jù)庫上的NOLOCK元素,不需要改變該語法結構,下面是它們的具體寫法SELECT/*+ALL—ROWS*/flFROMtlSELECT/*N0L0CK*/flFROMtl經(jīng)過翻譯管理系統(tǒng)翻譯后的SQL語法分別如下ORACLE數(shù)據(jù)庫SELECT/*+ALL—ROWS*/flFROMtlSELECTflFROMtlSQLSERVER數(shù)據(jù)庫SELECTflFROMtlSELECTflFROMtlWITH(NOLOCK)通過本實施例數(shù)據(jù)庫翻譯管理系統(tǒng)的翻譯,上述通用SQL語言被翻譯為與各數(shù)據(jù)庫相適應的數(shù)據(jù)庫語言,從而實現(xiàn)對數(shù)據(jù)庫特性元素的支持,以屏蔽各數(shù)據(jù)庫差異。本實施例數(shù)據(jù)庫翻譯管理系統(tǒng)使用注釋的方式,可以實現(xiàn)不用修改現(xiàn)有的語法格式就可以支持無限的特性元素擴充,大大提高了語法格式的適用范圍。以上所述僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的
技術領域:
,均同理包括在本發(fā)明的專利保護范圍內。權利要求1.一種數(shù)據(jù)庫系統(tǒng)管理方法,該數(shù)據(jù)庫系統(tǒng)中設置有翻譯管理系統(tǒng),還包括應用程序將待執(zhí)行的通用指令語句發(fā)送至翻譯管理系統(tǒng)的步驟;翻譯管理系統(tǒng)將通用指令翻譯成與目標數(shù)據(jù)庫相適應的數(shù)據(jù)庫語言的步驟;翻譯管理系統(tǒng)將翻譯后的相應數(shù)據(jù)庫語言發(fā)送給數(shù)據(jù)庫管理系統(tǒng)的步驟;數(shù)據(jù)庫管理系統(tǒng)執(zhí)行指令,并將結果返回給用戶應用程序的步驟。2.如權利要求1所述的數(shù)據(jù)庫系統(tǒng)管理方法,其特征在于,在所述通用指令語句中設置注釋語句的步驟,所述翻譯管理系統(tǒng)針對該注釋語句進行翻譯,并將其翻譯為與目標數(shù)據(jù)庫相適應的執(zhí)行指令語句。3.如權利要求1或2所述的數(shù)據(jù)庫系統(tǒng)管理方法,其特征在于,所述翻譯管理系統(tǒng)將通用指令翻譯成目標數(shù)據(jù)庫相適應的數(shù)據(jù)庫語言的步驟包括接收通用指令語句的步驟;查詢并獲取目標數(shù)據(jù)庫類型的步驟;判斷是否包含注^i吾句的步驟;分析注釋語句內容的步驟;判斷是否包含目標數(shù)據(jù)庫特有元素的步驟;翻譯特有元素,使其與目標數(shù)據(jù)庫相適應的步驟。4.如權利要求1或2所述的數(shù)據(jù)庫系統(tǒng)管理方法,其特征在于,上述翻譯管理系統(tǒng)包括語句判斷模塊,其用于判斷通用SQL語句是否合法;語句解析模塊,其用于解析通用SQL語句中的構成元素;語句翻譯模塊,其用于將通用SQL語句翻譯成目標數(shù)據(jù)庫上適用的特定SQL語句。5.—種執(zhí)行數(shù)據(jù)庫系統(tǒng)查詢操作的方法,該數(shù)據(jù)庫系統(tǒng)中設置有翻譯管理系統(tǒng),還包括以下步驟外部系統(tǒng)發(fā)送通用查詢SQL語句的步驟;翻譯管理系統(tǒng)根據(jù)目標數(shù)據(jù)庫類型將通用查詢SQL語句翻譯成目標數(shù)據(jù)庫上合適的查詢SQL語句的步驟;將翻譯管理系統(tǒng)翻譯的結果語句發(fā)送到數(shù)據(jù)庫中執(zhí)行查詢操作的步驟。6.—種采用更新數(shù)據(jù)庫系統(tǒng)的方法,該數(shù)據(jù)庫系統(tǒng)中設置有翻譯管理系統(tǒng),還包括以下步驟外部系統(tǒng)發(fā)送通用更新SQL語句的步驟;翻譯管理系統(tǒng)根據(jù)目標數(shù)據(jù)庫類型將通用更新SQL語句翻譯成目標數(shù)據(jù)庫上合適的更新SQL語句的步驟;將翻譯管理系統(tǒng)翻譯的結果語句發(fā)送到數(shù)據(jù)庫中執(zhí)行更新操作的步驟。全文摘要本發(fā)明提供一種數(shù)據(jù)庫系統(tǒng)管理方法,包括于數(shù)據(jù)庫系統(tǒng)中設置翻譯管理系統(tǒng)的步驟;應用程序將待執(zhí)行的應用指令語句發(fā)送至翻譯管理系統(tǒng)的步驟;翻譯管理系統(tǒng)將通用指令翻譯成與目標數(shù)據(jù)庫相適應的數(shù)據(jù)庫語言的步驟;翻譯管理系統(tǒng)將翻譯后的相應數(shù)據(jù)庫語言發(fā)送給數(shù)據(jù)庫管理系統(tǒng)的步驟;數(shù)據(jù)庫管理系統(tǒng)執(zhí)行指令,并將結果返回給用戶應用程序的步驟。采用本發(fā)明數(shù)據(jù)庫系統(tǒng)管理方法,不管應用程序使用的是哪種類型的數(shù)據(jù)庫產(chǎn)品,應用程序發(fā)送給翻譯管理系統(tǒng)的語句都是相同的,由翻譯管理系統(tǒng)獲取當前使用的數(shù)據(jù)庫類型并翻譯成與各數(shù)據(jù)庫相對應的查詢或更新語句,從而達到了不需要修改代碼即可實現(xiàn)同一個應用程序在不同數(shù)據(jù)庫上運行的目的。文檔編號G06F17/30GK101174271SQ20071016817公開日2008年5月7日申請日期2007年11月28日優(yōu)先權日2007年11月28日發(fā)明者潘國林申請人:金蝶軟件(中國)有限公司