專利名稱:一種實時數(shù)據(jù)庫的構建方法和數(shù)據(jù)檢索方法
技術領域:
本發(fā)明屬于電力自動化技術領域,特別涉及電力自動化系統(tǒng)中的實時數(shù)據(jù)庫檢索、讀取的方法。
背景技術:
實時數(shù)據(jù)庫是數(shù)據(jù)庫系統(tǒng)發(fā)展的一個分支,適用于處理不斷更新的快速變化的數(shù)據(jù)處理。在電力自動化實時監(jiān)控系統(tǒng)領域,為提高系統(tǒng)的響應速度,普遍采用實時數(shù)據(jù)庫。實時數(shù)據(jù)庫是實時系統(tǒng)和數(shù)據(jù)庫技術相結合的產物,利用數(shù)據(jù)庫技術來解決實時系統(tǒng)中的數(shù)據(jù)管理問題。在電力自動化系統(tǒng)中,用裝置采集和通信送上來的電力系統(tǒng)運行數(shù)據(jù)會放在實時數(shù)據(jù)庫中,并不斷地刷新。為監(jiān)視電力運行數(shù)據(jù)的實時變化,一次接線圖界面需要不斷地從實時數(shù)據(jù)庫中讀取數(shù)據(jù)并顯示;還有其它的應用也都需要從實時庫中讀取數(shù)據(jù),用以計算處理。在分布式處理中,客戶端讀取實時庫數(shù)據(jù)是分兩個步驟處理的
(1)客戶端把需要讀的數(shù)據(jù)發(fā)給實時數(shù)據(jù)庫服務器引擎;
(2)服務器引擎從數(shù)據(jù)庫本體中讀出數(shù)據(jù)。由于實時數(shù)據(jù)庫(簡稱實時庫)中的數(shù)據(jù)變化是快速的、隨機的,而目前常用的方法是仿照數(shù)據(jù)庫SQL查詢的原理,客戶端定時從實時庫中申請查詢所需的全部數(shù)據(jù),這個定時間隔會影響實時庫與系統(tǒng)的性能定時間隔太長,實時顯示性能達不到要求;定時間隔太短,數(shù)據(jù)根本就沒有變化,徒勞地增加系統(tǒng)的負擔。界面顯示實時性指標都是在2秒以內,所以,界面必須以小于2秒的間隔不斷地查詢實時庫,這樣做效率低下,降低了系統(tǒng)實時響應的速度、增加了網絡帶寬的需求,也增加了實時庫服務器的負擔。實時庫服務器接收到客戶端查詢數(shù)據(jù)的要求,要從實時庫本體查詢出客戶端請求的實時數(shù)據(jù),并通過網絡返回給請求的客戶端。查詢的方法,多采用B+樹等搜索算法,隨著實時庫管理的記錄越來越多,檢索每個對象的平均時間越來越長,也就是隨著接入量越多, 系統(tǒng)的實時性也會下降,接入量越多,下降越快,應用的實時性就會達不到要求。
發(fā)明內容
本發(fā)明的主要目的,在于提供一種實時數(shù)據(jù)庫的構建方法,其可從實時數(shù)據(jù)庫中快速檢索出請求數(shù)據(jù),而不受實時庫中數(shù)據(jù)量多少的影響。本發(fā)明的另一目的,在于提供一種實時數(shù)據(jù)庫的數(shù)據(jù)檢索方法,其只需要客戶端在第一次把需要訪問的實時數(shù)據(jù)對象所對應的ID注冊到服務器,之后服務器就會主動把其中變化的數(shù)據(jù)發(fā)給客戶端處理,直到客戶端退出或重新注冊。為了達成上述目的,本發(fā)明的解決方案是 一種實時數(shù)據(jù)庫的構建方法,包括如下步驟
(1)將實時 數(shù)據(jù)庫劃分為若干個數(shù)據(jù)表,表的數(shù)量與容量大小根據(jù)需要確定,并對每個數(shù)據(jù)表賦予一個從0開始的唯一編號,同時建立有關各數(shù)據(jù)表的檢索二維數(shù)組,包含數(shù)據(jù)表的編號和該表的內存起始地址;
(2)每個數(shù)據(jù)表定義若干字段,并給予每個字段從0開始的記錄號;
(3)建立記錄ID的復合結構數(shù)據(jù),包含數(shù)據(jù)表的編號、記錄號和使用次數(shù),其中,每個記錄的存儲位置每刪除一次,使用次數(shù)就加1。一種實時數(shù)據(jù)庫的數(shù)據(jù)檢索方法,包括如下步驟
(1)客戶端與實時數(shù)據(jù)庫服務器建立TCP/IP網絡連接,將所需要數(shù)據(jù)的ID發(fā)送到服務器進行注冊;
(2)服務器根據(jù)接收到的ID讀取其對應的所有數(shù)據(jù),并作為一個數(shù)據(jù)集記錄;
(3)服務器定時比較數(shù)據(jù)集與實時數(shù)據(jù)庫中的數(shù)據(jù),如果實時數(shù)據(jù)庫中的數(shù)據(jù)值有變化,則將該數(shù)據(jù)集變化的數(shù)據(jù)發(fā)送給客戶端,并更新到數(shù)據(jù)集中。上述步驟(2)中,服務器根據(jù)ID讀取數(shù)據(jù)的過程為
(21)服務器將接收到的ID進行分解,提取數(shù)據(jù)表的編號,并在所存儲的檢索二維數(shù)組中找出包含有該編號的數(shù)據(jù)項,從而獲知所述數(shù)據(jù)表的內存起始地址;
(22)服務器根據(jù)上述步驟獲取的數(shù)據(jù)表的內存起始地址,找到客戶端所需數(shù)據(jù)所在的數(shù)據(jù)表,再根據(jù)ID中包含的記錄號定位該數(shù)據(jù)表中對應的記錄起始地址,讀取客戶端所需要的數(shù)據(jù)。上述步驟(3)中,服務器還定時將數(shù)據(jù)集的所有數(shù)據(jù)發(fā)送給客戶端。采用上述方案后,本發(fā)明具有以下改進
(1)客戶端接收的數(shù)據(jù)量小,客戶端與服務器在通訊過程中需要的網絡帶寬小,對于遠程系統(tǒng)而言,通過Internet連接也可以得到實時數(shù)據(jù),便于已投運系統(tǒng)的遠程接入維護;
(2)服務器根據(jù)記錄ID可以快速定位到所需數(shù)據(jù)所在的字段,這種檢索方法與實時數(shù)據(jù)庫中數(shù)據(jù)表的字段多少無關,特別地,數(shù)據(jù)庫的規(guī)模越大,越能體現(xiàn)其訪問的快速。
圖1是本發(fā)明中表的編號與內存地址示意圖; 圖2是本發(fā)明中一個客戶端訪問的示意圖。
具體實施例方式首先,本發(fā)明提供一種實時數(shù)據(jù)庫的構建方法,包括如下步驟
(1)將實時數(shù)據(jù)庫劃分為若干個數(shù)據(jù)表,表的數(shù)量與容量大小根據(jù)需要確定,并對每個數(shù)據(jù)表賦予一個從0開始的唯一編號,同時建立有關各實時庫數(shù)據(jù)表的檢索二維數(shù)組,配合圖1所示,包含每個表的編號及對應的內存起始地址;
(2)每個數(shù)據(jù)表定義有若干字段,每個字段也即一條記錄,并給予每條記錄從0開始的記錄號;各字段的存儲內容也可以預先定義,定義為實時變化的數(shù)據(jù)或不變的參數(shù);
(3)建立記錄ID的復合數(shù)據(jù)結構,包含數(shù)據(jù)表的編號、記錄號和使用次數(shù),其中,每個記錄的存儲位置每刪除一次,使用次數(shù)就加1,配合表1所示。表 1
記錄號域屬性1域屬性m
權利要求
1.一種實時數(shù)據(jù)庫的構建方法,其特征在于包括如下步驟(1)將實時數(shù)據(jù)庫劃分為若干個數(shù)據(jù)表,并對每個數(shù)據(jù)表賦予一個從0開始的唯一編號,同時建立有關各數(shù)據(jù)表的檢索二維數(shù)組,包含數(shù)據(jù)表的編號和該表的內存起始地址;(2)每個數(shù)據(jù)表定義若干字段,并給予每個字段從0開始的記錄號;(3)建立記錄ID的復合結構數(shù)據(jù),包含數(shù)據(jù)表的編號、記錄號和使用次數(shù),其中,每個記錄的存儲位置每刪除一次,使用次數(shù)就加1。
2.一種實時數(shù)據(jù)庫的數(shù)據(jù)檢索方法,其特征在于包括如下步驟(1)客戶端與實時數(shù)據(jù)庫服務器建立TCP/IP網絡連接,將所需要數(shù)據(jù)的ID發(fā)送到服務器進行注冊;(2)服務器根據(jù)接收到的ID讀取其對應的所有數(shù)據(jù),并作為一個數(shù)據(jù)集記錄;(3)服務器定時比較數(shù)據(jù)集與實時數(shù)據(jù)庫中的數(shù)據(jù),如果實時數(shù)據(jù)庫中的數(shù)據(jù)值有變化,則將該數(shù)據(jù)集變化的數(shù)據(jù)發(fā)送給客戶端,并更新到數(shù)據(jù)集中。
3.如權利要求2所述的一種實時數(shù)據(jù)庫的數(shù)據(jù)檢索方法,其特征在于所述步驟(2) 中,服務器根據(jù)ID讀取數(shù)據(jù)的過程為(21)服務器將接收到的ID進行分解,提取數(shù)據(jù)表的編號,并在所存儲的檢索二維數(shù)組中找出包含有該編號的數(shù)據(jù)項,從而獲知所述數(shù)據(jù)表的內存起始地址;(22)服務器根據(jù)上述步驟獲取的數(shù)據(jù)表的內存起始地址,定位客戶端所需數(shù)據(jù)所在的數(shù)據(jù)表,再根據(jù)ID中包含的記錄號定位到該數(shù)據(jù)表中對應的記錄起始地址,讀取客戶端所需要的數(shù)據(jù)。
4.如權利要求2所述的一種實時數(shù)據(jù)庫的數(shù)據(jù)檢索方法,其特征在于所述步驟(3) 中,服務器還定時將數(shù)據(jù)集的所有數(shù)據(jù)發(fā)送給客戶端。
全文摘要
本發(fā)明公開一種實時數(shù)據(jù)庫的構建方法,包括如下步驟(1)將實時數(shù)據(jù)庫劃分為若干個數(shù)據(jù)表,表的數(shù)量與容量大小根據(jù)需要確定,并對每個數(shù)據(jù)表賦予一個從0開始的唯一編號,同時建立有關各數(shù)據(jù)表的檢索二維數(shù)組,包含數(shù)據(jù)表的編號和該表的內存起始地址;(2)每個數(shù)據(jù)表定義若干字段,并給予每個字段從0開始的記錄號;(3)建立記錄ID的復合結構數(shù)據(jù),包含數(shù)據(jù)表的編號、記錄號和使用次數(shù),其中,每個記錄的存儲位置每刪除一次,使用次數(shù)就加1。此種方法構建的實時數(shù)據(jù)庫可快速檢索出請求數(shù)據(jù),而不受實時庫中數(shù)據(jù)量多少的影響。本發(fā)明還公開種實時數(shù)據(jù)庫的數(shù)據(jù)檢索方法。
文檔編號G06F17/30GK102184226SQ20111011801
公開日2011年9月14日 申請日期2011年5月9日 優(yōu)先權日2011年5月9日
發(fā)明者蔣宏圖, 袁越 申請人:河海大學