專利名稱:圖形數據庫非聯機事務中插入數據的控制方法
技術領域:
本發(fā)明涉及一種圖形數據庫非聯機事務中插入數據的控制方法。
背景技術:
通常在數據庫系統(tǒng)中,事務是工作的離散單位。例如,一個數據庫事務可以是修改一個用戶的帳戶平衡或庫存項的寫操作。聯機事務處理系統(tǒng)實時地采集處理與事務相連的數據以及共享數據庫和其它文件的地位的變化。在聯機事務處理中,事務是被立即執(zhí)行的。 在單一用戶、單一數據庫環(huán)境下執(zhí)行事務是簡單的,這是因為沒有沖突問題或對數據庫間同步的需求。在一個分布式環(huán)境下,寫操作經常并行地在多個數據庫服務器上發(fā)生。這樣的并發(fā)事務處理需要一個“卷回”機制,以保證在一次寫操作中系統(tǒng)失效的情況下,仍保證數據庫的完整性。事務要么一起確認,要么放棄。如果一個或多個與事務有關的系統(tǒng)響應不一致,這意味著系統(tǒng)或通信可能出現了故障,因而就會放棄一個事務??梢钥闯?,當多個用戶試圖同時改變數據的同一塊時,就出現了沖突問題。
發(fā)明內容
為了解決上述問題,本發(fā)明提出了一種圖形數據庫非聯機事務中插入數據的控制方法,它可在圖形數據庫未開啟事務時插入數據。本發(fā)明采用的技術方案如下一種圖形數據庫非聯機事務中插入數據的控制方法,其特征在于非聯機事務處理自上而下分為三層最上層為暴露給外部調用程序的API ;中間層為事務邏輯控制層,按操作類別分為同步區(qū)與非同步區(qū),同步區(qū)意味著在同一時間只能有一個操作進行,其他操作在進入同步區(qū)之間均處于等待狀態(tài),該機制利用 Java語言的線程同步鎖定特性實現,非同步區(qū)的操作則不受限制,在任何時間均可以進行;最下層為存儲數據的DataSet操作抽象層,在DataSet中,保存有聯機事務自身的狀態(tài)信息,以及數據的事務狀態(tài)屬性信息;將圖形數據庫中的每一個節(jié)點Node的定義信息保存在名稱為graphiC_db_n0de_ def的數據集DatMet中,該DatMet的數據結構如下
權利要求
1. 一種圖形數據庫非聯機事務中插入數據的控制方法,其特征在于 非聯機事務處理自上而下分為三層 最上層為暴露給外部調用程序的API ;中間層為事務邏輯控制層,按操作類別分為同步區(qū)與非同步區(qū),同步區(qū)意味著在同一時間只能有一個操作進行,其他操作在進入同步區(qū)之間均處于等待狀態(tài),該機制利用Java 語言的線程同步鎖定特性實現,非同步區(qū)的操作則不受限制,在任何時間均可以進行;最下層為存儲數據的DataSet操作抽象層,在DataSet中,保存有聯機事務自身的狀態(tài)信息,以及數據的事務狀態(tài)屬性信息;將圖形數據庫中的每一個節(jié)點Node的定義信息保存在名稱為graphiC_db_n0de_def 的數據集DatMet中,該DatMet的數據結構如下
2.如權利要求1所述的圖形數據庫非聯機事務中插入數據的控制方法,其特征在于 在所述步驟1)中,API傳入的參數包括將要插入新數據的節(jié)點的名稱nodmame和將要插入的新數據data。
3.如權利要求2所述的圖形數據庫非聯機事務中插入數據的控制方法,其特征在于 在所述步驟幻中,檢查目標節(jié)點是否存在的方法是查詢名稱為graphiC_db_n0de_def的Datakt,查找該DataSet的name列中的值與API中傳入的node_name值相等的數據記錄,如果找到相應記錄,則說明目標節(jié)點存在。
4.如權利要求3所述的圖形數據庫非聯機事務中插入數據的控制方法,其特征在于 在所述步驟幻中,檢查待插入數據是否合法的詳細步驟如下a.gi旬名稱為 graphic_db_node_def 的 DataSet,查找i亥 DataSet 的 name 歹[J中的ft與 API中傳入的nodejame值相等的數據記錄,獲取數據的node_id ;b.gi旬名稱為 graphic_db_node_attr_def 的 DataSet,查找i亥 DataSet 的 node_id 歹Ij 的值與剛才在步驟a中獲取的nodejd值相等的記錄,匹配的記錄集保存著當前節(jié)點的屬性列信息;c.依據步驟b中獲取的屬性列信息記錄集,檢查API傳入的data中的各屬性列是否在記錄集中存在,如果不存在,則說明傳入的數據不合法;d.通過屬性列的檢查后,依據步驟b中獲取的屬性列信息記錄集,再次檢查API傳入的data中的各屬性值的數據類型是否與記錄集中的定義相符,如果不相符,則說明傳入的數據不合法;e.通過上述檢查確認為合法數據后,繼續(xù)執(zhí)行后續(xù)的步驟,否則退出。
全文摘要
本發(fā)明涉及一種圖形數據庫非聯機事務中插入數據的控制方法,包括以下步驟1)客戶程序調用API,將參數數據傳給圖形數據庫;2)檢查欲插入數據的目標節(jié)點是否存在,若目標節(jié)點存在,則繼續(xù)執(zhí)行下面的步驟,否則退出;3)檢查待插入數據是否合法,若合法,則繼續(xù)執(zhí)行下面的步驟,否則退出;4)進入同步區(qū);5)生成一個全局唯一的記錄標識RID;6)插入數據,將調用API時傳入的數據data增至與指定的節(jié)點對應的同名DataSet中;7)退出同步區(qū)。本發(fā)明的優(yōu)點是相對于聯機事務中的數據插入,非聯機事務中插入數據避免了大量的數據鎖定,執(zhí)行效率更高。非聯機事務中插入數據的操作為不可分割的原子型操作,不受聯機事務鎖定、提交、回滾的影響。
文檔編號G06F17/30GK102193980SQ20111007294
公開日2011年9月21日 申請日期2011年3月25日 優(yōu)先權日2011年3月25日
發(fā)明者于洪方, 井衛(wèi)軍, 劉健, 蔣建平, 陳升, 陳晞 申請人:北京世紀互聯工程技術服務有限公司, 北京云快線軟件服務有限公司