專利名稱:一種存儲、訪問數(shù)據(jù)庫數(shù)據(jù)的方法、裝置及系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及計算機領域,特別涉及一種存儲、訪問數(shù)據(jù)庫數(shù)據(jù)的方法、裝 置及系統(tǒng)。
背景技術:
目前,通常使用數(shù)據(jù)庫在計算機上保存數(shù)據(jù),通過數(shù)據(jù)庫對數(shù)據(jù)進行處理, 使用數(shù)據(jù)庫必須在計算機上安裝數(shù)據(jù)庫軟件,應用程序或管理者使用數(shù)據(jù)庫軟 件的相關功能完成對數(shù)據(jù)記錄的存儲、讀取等操作。但是,在通過數(shù)據(jù)庫軟件提供的功能來對數(shù)據(jù)記錄進行操作的同時,存在如下的問題1、 數(shù)據(jù)記錄本身依賴于數(shù)據(jù)庫軟件而存在,所以,當數(shù)據(jù)庫軟件被破壞 時,數(shù)據(jù)記錄也隨之被破壞或不能正常讀寫,相應的,應用程序或管理者也無 法使用或操作這些數(shù)據(jù)。2、 由于數(shù)據(jù)庫的種類很多,而各種數(shù)據(jù)庫軟件提供的功能也不相同,而 且各數(shù)據(jù)庫軟件之間不一定能兼容,因此會導致數(shù)據(jù)記錄不能方便地從一種數(shù) 據(jù)庫軟件移植到另 一種數(shù)據(jù)庫軟件。發(fā)明內容本發(fā)明提供一種存儲、操作數(shù)據(jù)庫數(shù)據(jù)的方法及裝置,用于解決現(xiàn)有技術 中數(shù)據(jù)庫數(shù)據(jù)依賴于數(shù)據(jù)庫軟件而存在,從而導致數(shù)據(jù)庫數(shù)據(jù)存儲和操作受限 的問題。本發(fā)明提供如下技術方案一種存儲數(shù)據(jù)庫數(shù)據(jù)的方法,包括步驟序列化程序從關系型數(shù)據(jù)庫中獲取數(shù)據(jù)對象;所述序列化程序按照定義的序列化規(guī)則將所述數(shù)據(jù)對象轉換成對應的二 進制編碼;以及將所述二進制編碼保存為二進制文件。將所述關系型數(shù)據(jù)庫中的每一條數(shù)據(jù)記錄保存為 一個二進制文件。 將所述二進制文件輸出到存儲介質時,同時輸出所述序列化程序和/或將所 述二進制文件轉換成對應的數(shù)據(jù)對象的反序列化程序。 一種訪問數(shù)據(jù)庫數(shù)據(jù)的方法,包括步驟應用程序向反序列化程序請求訪問關系型數(shù)據(jù)庫中的數(shù)據(jù)記錄,其中,所 述關系型數(shù)據(jù)庫中的數(shù)據(jù)記錄由序列化程序按照序列化規(guī)則轉換成對應的二 進制編碼后保存在二進制文件中;所述反序歹'j4b考呈序才艮據(jù)與戶斤J進制文件轉換成對應的數(shù)據(jù)對象,并將該數(shù)據(jù)對象輸出給所述應用程序; 所述應用程序對所述數(shù)據(jù)對象進行操作。所述應用程序對所述數(shù)據(jù)對象進行操作后,所述序列化程序進一步根據(jù)序 列化規(guī)則將發(fā)生變化的數(shù)據(jù)對象轉換成對應的二進制編碼后保存為二進制文 件。將所述關系型數(shù)據(jù)庫中的每一條數(shù)據(jù)記錄保存為 一個二進制文件。 將二進制文件輸出到存儲介質時,同時輸出所述序列化程序和/或將所述二 進制文件轉換成對應的數(shù)據(jù)對象的反序列化程序。 一種數(shù)據(jù)處理裝置,包括 用于從關系型數(shù)據(jù)庫中獲取數(shù)據(jù)對象的單元; 用于根據(jù)序列化規(guī)則將所述數(shù)據(jù)對象轉換成對應的二進制編碼的單元; 用于將所述二進制編碼保存為二進制文件的單元。 所述裝置還包括用于輸出所述二進制文件、序列化程序和/或將所述二進制文件轉換成對應的數(shù)據(jù)對象的反序列化程序的單元。一種數(shù)據(jù)處理裝置,包括用于接收應用程序請求訪問關系型數(shù)據(jù)庫中的數(shù)據(jù)記錄的單元,其中,所 述關系型數(shù)據(jù)庫中的數(shù)據(jù)記錄由序列化程序按照序列化規(guī)則轉換成對應的二 進制編碼后保存在二進制文件中;用于根據(jù)與所述序列化規(guī)則對應的反序列化規(guī)則將所述二進制文件轉換成對應的數(shù)據(jù)對象的單元;用于輸出所述數(shù)據(jù)對象的單元。 一種存儲、訪問數(shù)據(jù)庫數(shù)據(jù)的系統(tǒng),包括 關系型數(shù)據(jù)庫,用于存儲數(shù)據(jù)記錄;應用模塊,用于發(fā)送訪問關系型數(shù)據(jù)庫中的數(shù)據(jù)記錄的請求; 數(shù)據(jù)處理裝置,用于從關系型數(shù)據(jù)庫中獲取數(shù)據(jù)對象,按照定義的序列化 規(guī)則將所述數(shù)據(jù)對象轉換成對應的二進制編碼,并將其保存為二進制文件;或 者,根據(jù)與所述序列化規(guī)則對應的反序列化規(guī)則將所述二進制文件轉換成對應的數(shù)據(jù)對象,并將所述數(shù)據(jù)對象輸出給所述應用模塊。 所述數(shù)據(jù)處理裝置包括 用于從關系型數(shù)據(jù)庫中獲取數(shù)據(jù)對象的單元;用于根據(jù)序列化規(guī)則將所述數(shù)據(jù)對象轉換成對應的二進制編碼的單元; 用于將所述二進制編碼保存為二進制文件的單元。 較佳的,所述數(shù)據(jù)處理裝置還包括用于輸出所述二進制文件、序列化程序和/或將所述二進制文件轉換成對應 的數(shù)據(jù)對象的反序列化程序的單元。 所述數(shù)據(jù)處理裝置包括用于接收應用程序請求訪問關系型數(shù)據(jù)庫中的數(shù)據(jù)記錄的單元,其中,所 述關系型數(shù)據(jù)庫中的數(shù)據(jù)記錄由序列化程序按照序列化規(guī)則轉換成對應的二 進制編碼后保存在二進制文件中;用于根據(jù)與所述序列化規(guī)則對應的反序列化規(guī)則將所述二進制文件轉換成對應的數(shù)據(jù)對象的單元;用于輸出所述數(shù)據(jù)對象的單元。 本發(fā)明有益效果如下1、 本發(fā)明中在存儲數(shù)據(jù)庫數(shù)據(jù)時,將數(shù)據(jù)庫中的數(shù)據(jù)記錄轉換成對應的 二進制編碼,并以二進制文件形式保存,由于二進制編碼不經(jīng)過轉換無法正確 讀取,因此,本發(fā)明方法可以保證數(shù)據(jù)的保密性。2、 本發(fā)明中將數(shù)據(jù)記錄保存為二進制文件,數(shù)據(jù)記錄本身不依賴于數(shù)據(jù) 庫軟件而存在,而且在計算機不需要或者不允許安裝數(shù)據(jù)庫軟件時,采用本發(fā) 明方法可以方便地存儲和操作數(shù)據(jù),從而拓寬數(shù)據(jù)的使用場合和方便了對數(shù)據(jù) 的操作。3、 本發(fā)明中在使用數(shù)據(jù)庫數(shù)據(jù)時,應用程序調用將二進制文件中的二進 制編碼轉換成對應的數(shù)據(jù)記錄,并對該數(shù)據(jù)記錄進行相應操作,本發(fā)明方法在 不訪問數(shù)據(jù)庫的情況下實現(xiàn)了對數(shù)據(jù)庫數(shù)據(jù)的操作,因此,本發(fā)明方法為數(shù)據(jù) 庫提供了支持,可以減輕數(shù)據(jù)庫的使用壓力,提高數(shù)據(jù)庫的性能。
圖1為本發(fā)明實施例中一種數(shù)據(jù)處理系統(tǒng)結構示意圖;圖2為本發(fā)明實施例中數(shù)據(jù)處理模塊結構示意圖;圖3為本發(fā)明實施例中存儲數(shù)據(jù)庫數(shù)據(jù)的實現(xiàn)流程圖;圖4為本發(fā)明實施例中向計算機訪問數(shù)據(jù)庫數(shù)據(jù)的實現(xiàn)流程圖;圖5為本發(fā)明實施例中向存儲介質訪問數(shù)據(jù)庫數(shù)據(jù)的實現(xiàn)流程圖。
具體實施方式
為了不依賴數(shù)據(jù)庫軟件而對數(shù)據(jù)庫中的數(shù)據(jù)進行存儲、復制和使用,本實 施例中將從數(shù)據(jù)庫中獲取的數(shù)據(jù)記錄轉換成對應的二進制編碼,并以二進制文件形式保存;在使用數(shù)據(jù)時,從二進制文件中獲取二進制編碼后將其轉換成對 應的數(shù)據(jù)記錄,以供應用程序操作。如圖1所示,本實施例中一種數(shù)據(jù)處理系統(tǒng)包括關系型數(shù)據(jù)庫10、數(shù)據(jù)處 理模塊11和應用模塊12;所述應用模塊12用于向所述數(shù)據(jù)處理模塊11發(fā)送 訪問所述關系型數(shù)據(jù)庫10中的數(shù)據(jù)記錄的請求;所述數(shù)據(jù)處理模塊11根據(jù)所 述請求從所述關系型數(shù)據(jù)庫10中獲取相應的數(shù)據(jù)記錄,按照定義的序列化規(guī) 則將該數(shù)據(jù)記錄轉換成對應的二進制編碼,并將其保存為二進制文件;或者, 根據(jù)與所述序列化規(guī)則對應的反序列化規(guī)則將所述二進制文件轉換成對應的 數(shù)據(jù)對象,并將所述數(shù)據(jù)對象輸出給所述應用模塊12。關系型數(shù)據(jù)庫IO,由多個數(shù)據(jù)表組成,每個數(shù)據(jù)表由多條數(shù)據(jù)記錄組成, 每條數(shù)據(jù)紀錄由多個字段組成。例如,某電子商務網(wǎng)站需要記錄使用者的數(shù)據(jù), 該數(shù)據(jù)可以是使用者的賬號、密碼、姓名、電話、住址等,而每一個需要記錄 的數(shù)據(jù)項目即為一個字段。本實施例中將數(shù)據(jù)記錄轉換為對應的二進制編碼的序列化規(guī)則可以自定 義設置,該序列化規(guī)則用于描述數(shù)據(jù)字段的排列順, 例如, 一條數(shù)據(jù)由三個字段A、 B、 C,每個字段值分別為al、 bl、 cl,定 義T符號用于分隔符,此時,該條數(shù)據(jù)對應的文本為al|bl|cl,將這段文本 中的每個字符轉換成計算機語言中的二進制值,并將該二進制值存儲在文件中。如圖2所示,所述數(shù)據(jù)處理模塊11包括接收單元110,用于接收應用模塊12發(fā)送的訪問所述關系型數(shù)據(jù)庫10中的數(shù)據(jù)記錄的請求。序列化單元111,用于在接收單元110接收到存儲數(shù)據(jù)庫數(shù)據(jù)的請求時, 從數(shù)據(jù)庫10中獲取數(shù)據(jù)對象,并根據(jù)序列化規(guī)則將所述數(shù)據(jù)對象轉換成對應 的二進制編碼,以及將所述二進制編碼保存為二進制文件。反序列化單元112,用于在接收單元110接收到操作數(shù)據(jù)庫數(shù)據(jù)的請求時,根據(jù)與所述序列化規(guī)則對應的反序列化規(guī)則將二進制文件轉換成對應的數(shù)據(jù) 對象。輸出單元113,用于將序列化單元111得到的二進制文件和將所述二進制文件轉換成對應的數(shù)據(jù)對象的反序列化程序輸出給存儲介質,或者,將反序列化單元112得到的數(shù)據(jù)對象輸出給應用模塊12。本實施例中序列化單元111和反序列化單元112可以單獨或者同時存在于一個數(shù)據(jù)處理模塊中。如圖3所示,本發(fā)明實施例中存儲數(shù)據(jù)庫數(shù)據(jù)的實現(xiàn)過程如下步驟300、應用模塊向數(shù)據(jù)處理模塊發(fā)送數(shù)據(jù)存儲請求。步驟301、數(shù)據(jù)處理模塊將關系型數(shù)據(jù)庫中的數(shù)據(jù)記錄提取到計算機內存中,形成數(shù)據(jù)對象。步驟302、數(shù)據(jù)處理模塊按照定義的序列化規(guī)則將所述數(shù)據(jù)對象轉換成對應的二進制編碼。步驟303、數(shù)據(jù)處理模塊將所述二進制編碼保存為二進制文件,該二進制 文件保存在計算機內存中;為了方便地對數(shù)據(jù)庫數(shù)據(jù)進行訪問,可以將該二進 制文件、將數(shù)據(jù)對象轉換成對應的二進制文件的序列化程序和/或將二進制文件 轉換成對應的數(shù)據(jù)對象的反序列化程序同時存儲在其他存儲介質中,如光盤、 移動硬盤、U盤、軟盤等硬件介質。本實施例中將數(shù)據(jù)庫中的數(shù)據(jù)記錄存儲在其他存儲介質中,使得數(shù)據(jù)記錄 本身不依賴于數(shù)據(jù)庫軟件而存在,采用該種存儲方式可以方便地復制和傳播數(shù) 據(jù)庫中的數(shù)據(jù)記錄,而且由于二進制編碼在沒有經(jīng)過相應的轉換后不能正確讀 取數(shù)據(jù),所以,以二進制文件形式保存數(shù)據(jù)庫數(shù)據(jù)的方式保證了數(shù)據(jù)的保密性。本實施例中當應用模塊請求訪問關系型數(shù)據(jù)庫中的數(shù)據(jù)時,可以完全不考 慮數(shù)據(jù)庫軟件兼容的問題,而是由數(shù)據(jù)處理模塊根據(jù)應用模塊的請求從在計算 機中保存或者在上述硬件介質中保存的二進制文件中獲取相應的數(shù)據(jù)記錄,以 供應用模塊進一步對其進行操作。本實施例中將關系型數(shù)據(jù)庫中的數(shù)據(jù)記錄以二進制文件形式保存在計算機中時,如圖4所示,應用模塊訪問二進制文件獲擬目應數(shù)據(jù)記錄的實現(xiàn)過程 包括步驟400、應用模塊向數(shù)據(jù)處理模塊發(fā)送訪問數(shù)據(jù)庫數(shù)據(jù)的請求。 步驟401、數(shù)據(jù)處理模塊根據(jù)請求獲取相應的二進制文件,并按照與序列 化規(guī)則對應的反序列化規(guī)則將其轉換成對應的數(shù)據(jù)對象。步驟402、數(shù)據(jù)處理模塊將所述數(shù)據(jù)對象輸出給應用模塊。 步驟403、應用^f莫塊對所述數(shù)據(jù)對象進行相應操:作。本實施例中將關系型數(shù)據(jù)庫中的數(shù)據(jù)記錄以二進制文件形式保存在其他 存儲介質中時,如圖5所示,應用模塊訪問二進制文件獲取相應數(shù)據(jù)記錄的實 現(xiàn)過程包括步驟500、應用模塊向存儲介質發(fā)送訪問數(shù)據(jù)庫數(shù)據(jù)的請求。步驟501、存儲介質根據(jù)請求在其內部獲取相應的二進制文件,由其中的反序列化程序將該二進制文件轉換為對應的數(shù)據(jù)對象,并將其輸出給應用模塊。步驟502、應用模塊對所述數(shù)據(jù)對象進行相應操作。 應用模塊對數(shù)據(jù)對象進行的操作包括讀取數(shù)據(jù)操作、修改數(shù)據(jù)操作和新建 數(shù)據(jù)操作等;應用模塊對數(shù)據(jù)對象進行修 文操作后,應用模塊向數(shù)據(jù)處理模塊發(fā)送數(shù)據(jù)存儲請求,由數(shù)據(jù)處理模塊按照定義的序列化規(guī)則將變化后的數(shù)據(jù)對 象轉換為對應的二進制編碼,并保存為二進制文件。 本發(fā)明實施例有益效果如下1、 本發(fā)明中將數(shù)據(jù)庫中的數(shù)據(jù)轉換成相應的二進制編碼,并以二進制文 件形式保存,因此數(shù)據(jù)本身不依賴于數(shù)據(jù)庫軟件而存在,而且在計算機不需要 或者不允許安裝數(shù)據(jù)庫軟件時,采用本發(fā)明方法可以方便地存儲和讀取數(shù)據(jù), 從而拓寬了數(shù)據(jù)的使用場合和方便了對數(shù)據(jù)的操作。2、 本發(fā)明中在使用數(shù)據(jù)時,將二進制文件中的二進制編碼轉換成對應的數(shù)據(jù)記錄以供應用程序使用,因此,在使用數(shù)據(jù)庫的場合中,本發(fā)明提供的數(shù) 據(jù)記錄脫離數(shù)據(jù)庫存儲和讀取的方法,為數(shù)據(jù)庫提供了支持,從而減輕了數(shù)據(jù) 庫的使用壓力,提高了數(shù)據(jù)庫的性能。3、本發(fā)明中通過自定義規(guī)則將數(shù)據(jù)記錄轉換為二進制文件,由于二進制 編碼不經(jīng)過轉換則無法正確讀取,因此,本發(fā)明方法一定程度上保證了數(shù)據(jù)的 保密性。顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若對本發(fā)明的這些修改和變型屬于本發(fā)明權利要求 及其等同技術的范圍之內,則本發(fā)明也意圖包含這些改動和變型在內。
權利要求
1. 一種存儲數(shù)據(jù)庫數(shù)據(jù)的方法,其特征在于,包括步驟序列化程序從關系型數(shù)據(jù)庫中獲取數(shù)據(jù)對象;所述序列化程序按照定義的序列化規(guī)則將所述數(shù)據(jù)對象轉換成對應的二進制編碼;以及將所述二進制編碼保存為二進制文件。
2、 如權利要求1所述的方法,其特征在于,將所述關系型數(shù)據(jù)庫中的每 一條數(shù)據(jù)記錄保存為 一個二進制文件。
3、 如權利要求2所述的方法,其特征在于,將所述二進制文件輸出到存 儲介質時,同時輸出所述序列化程序和/或將所述二進制文件轉換成對應的數(shù)據(jù) 對象的反序列化程序。
4、 一種訪問數(shù)據(jù)庫數(shù)據(jù)的方法,其特征在于,包括步驟 應用程序向反序列化程序請求訪問關系型數(shù)據(jù)庫中的數(shù)據(jù)記錄,其中,所述關系型數(shù)據(jù)庫中的數(shù)據(jù)記錄由序列化程序按照序列化規(guī)則轉換成對應的二 進制編碼后保存在二進制文件中;進制文件轉換成對應的數(shù)據(jù)對象,并將該數(shù)據(jù)對象輸出給所述應用程序; 所述應用程序對所述數(shù)據(jù)對象進行操作。
5、 如權利要求4所述的方法,其特征在于,所述應用程序對所述數(shù)據(jù)對 象進行操作后,所述序列化程序進一步根據(jù)序列化規(guī)則將發(fā)生變化的數(shù)據(jù)對象 轉換成對應的二進制編碼后保存為二進制文件。
6、 如權利要求4或5所述的方法,其特征在于,將所述關系型數(shù)據(jù)庫中 的每一條數(shù)據(jù)記錄保存為 一個二進制文件。
7、 如權利要求6所述的方法,其特征在于,將所述二進制文件輸出到存 儲介質時,同時輸出所述序列化程序和/或將所述二進制文件轉換成對應的數(shù)據(jù) 對象的反序列化程序。
8、 一種數(shù)據(jù)處理裝置,其特征在于,包括 用于從關系型數(shù)據(jù)庫中獲取數(shù)據(jù)對象的單元;用于根據(jù)序列化規(guī)則將所述數(shù)據(jù)對象轉換成對應的二進制編碼的單元; 用于將所述二進制編碼保存為二進制文件的單元。
9、 如權利要求8所述的裝置,其特征在于,所述裝置還包括用于輸出所述二進制文件、序列化程序和/或將所述二進制文件轉換成對應 的數(shù)據(jù)對象的反序列化程序的單元。
10、 一種數(shù)據(jù)處理裝置,其特征在于,包括用于接收應用程序請求訪問關系型數(shù)據(jù)庫中的數(shù)據(jù)記錄的單元,其中,所 述關系型數(shù)據(jù)庫中的數(shù)據(jù)記錄由序列化程序按照序列化規(guī)則轉換成對應的二 進制編碼后保存在二進制文件中;用于根據(jù)與所述序列化規(guī)則對應的反序列化規(guī)則將所述二進制文件轉換成對應的數(shù)據(jù)對象的單元;用于輸出所述數(shù)據(jù)對象的單元。
11、 一種存儲、訪問數(shù)據(jù)庫數(shù)據(jù)的系統(tǒng),其特征在于,包括 關系型數(shù)據(jù)庫,用于存儲數(shù)據(jù)記錄;應用模塊,用于發(fā)送訪問關系型數(shù)據(jù)庫中的數(shù)據(jù)記錄的請求; 數(shù)據(jù)處理裝置,用于從關系型數(shù)據(jù)庫中獲取數(shù)據(jù)對象,按照定義的序列化規(guī)則將所述數(shù)據(jù)對象轉換成對應的二進制編碼,并將其保存為二進制文件;或 者,根據(jù)與所述序列化規(guī)則對應的反序列化規(guī)則將所述二進制文件轉換成對應的數(shù)據(jù)對象,并將所述數(shù)據(jù)對象輸出給所述應用模塊。
12、 如權利要求11所述的系統(tǒng),其特征在于,所述數(shù)據(jù)處理裝置包括 用于從關系型數(shù)據(jù)庫中獲取數(shù)據(jù)對象的單元;用于根據(jù)序列化規(guī)則將所述數(shù)椐對象轉換成對應的二進制編碼的單元; 用于將所述二進制編碼保存為二進制文件的單元。
13、 如權利要求12所述的系統(tǒng),其特征在于,所述數(shù)據(jù)處理裝置還包括:用于輸出所述二進制文件、序列化程序和/或將所述二進制文件轉換成對應 的數(shù)據(jù)對象的反序列化程序的單元。
14、如權利要求ll所述的系統(tǒng),其特征在于,所述數(shù)據(jù)處理裝置包括用于接收應用程序請求訪問關系型數(shù)據(jù)庫中的數(shù)據(jù)記錄的單元,其中,所 述關系型數(shù)據(jù)庫中的數(shù)據(jù)記錄由序列化程序按照序列化規(guī)則轉換成對應的二 進制編碼后保存在二進制文件中;用于根據(jù)與所述序列化規(guī)則對應的反序列化規(guī)則將所述二進制文件轉換 成對應的數(shù)據(jù)對象的單元;用于輸出所述數(shù)據(jù)對象的單元。
全文摘要
本發(fā)明公開了一種存儲、訪問數(shù)據(jù)庫數(shù)據(jù)的方法及裝置,用于解決現(xiàn)有技術中數(shù)據(jù)庫中的數(shù)據(jù)記錄依賴于數(shù)據(jù)庫軟件而存在,從而導致存儲和訪問數(shù)據(jù)庫數(shù)據(jù)受到限制的問題;本方案中,存儲數(shù)據(jù)庫數(shù)據(jù)時,序列化程序從關系型數(shù)據(jù)庫中獲取數(shù)據(jù)對象,按照定義的序列化規(guī)則將所述數(shù)據(jù)對象轉換成對應的二進制編碼,并將其保存為二進制文件;訪問數(shù)據(jù)庫數(shù)據(jù)時,反序列化程序根據(jù)與所述序列化規(guī)則對應的反序列化規(guī)則將所述二進制文件轉換成對應的數(shù)據(jù)對象,并將該數(shù)據(jù)對象輸出給所述應用程序以進行操作;采用本發(fā)明存儲數(shù)據(jù)庫數(shù)據(jù)的方法,可以方便地對數(shù)據(jù)庫數(shù)據(jù)進行存儲、復制和使用。
文檔編號G06F17/30GK101256561SQ20071008033
公開日2008年9月3日 申請日期2007年3月2日 優(yōu)先權日2007年3月2日
發(fā)明者奎 肖 申請人:阿里巴巴集團控股有限公司