蔡紅軍

摘要:由于彈道目標的特殊性,真實彈道目標數據顯得十分珍貴,如何對歷史數據進行保存和管理,便于進行分析,充分發揮試驗數據的價值,變得越來越重要。本文針對這一問題,結合彈道目標數據的特點,提出用人大金倉數據庫進行數據管理,同時利用MATLAB軟件進行數據分析,即解決了彈道目標數據的存儲問題,同時又利用MATLAB軟件實現對數據的可視化分析。
關鍵詞:數據庫;人大金倉;數據庫訪問
中圖分類號:TP311.13 文獻標識碼:A 文章編號:1007-9416(2017)11-0104-02
1 引言
彈道目標數據由于保密的原因,很難獲得真實目標的實測數據,因此彈道目標數據顯得十分珍貴。隨著參與外場試驗的次數越來越多,逐漸積累了大量寶貴的原始數據,然而缺乏對現有的數據進行梳理,難以發揮有限試驗數據的價值,同時隨著時間的流逝,關鍵數據信息難免遺漏。因此,急需一個數據庫對現有的數據進行管理。
MATLAB軟件擅長于數據分析和可視化,同時MATLAB軟件中有一個為關系型數據庫和MATLAB進行數據交互提供接口函數支持的工具包Database Toolbox,其使用簡單,功能強大,通過其提供的接口函數極大簡化了MATLAB與關系型數據庫間的數據交互,而且它支持同時與多個數據庫的并行任務和大量數據集的分段輸入。在WINDOWS環境下,Database Toolbox支持JDBC驅動和ODBC驅動,然而Database Toolbox并不支持非結構化大型對象(Large Object,LOB)數據的存儲。
本文結合彈道目標數據的特點,采用人大金倉數據庫(KingbaseES)和MATLAB軟件完成數據的管理和分析,使用KingbaseES中TEXT數據類型,代替LOB數據類型。本文中的驅動配置方法和代碼程序均在MATLAB 2012b版本和KingbaseES V7版本下進行。
2 數據庫驅動配置
2.1 JDBC訪問技術
JDBC(Java Database Connectivity)是Java與數據庫的接口規范,它定義了一個支持標準SQL功能的通用應用程序編程接口(API)。通過驅動程序管理器,JDBC API可利用不同的驅動程序連接不同的數據庫系統,實現對數據庫的跨平臺訪問。
本文中MATLAB軟件基于JDBC驅動連接數據庫。
2.2 驅動配置方法
加載JDBC驅動過程如下:
(1)找到KingbaseES軟件安裝目錄,在Kingbase\ES\V7\jdbc文件夾下找到文件kingbasejdbc4.jar;
(2)找到MATLAB軟件的安裝目錄,進入MATLAB\R2012b\ java\jar\toolbox目錄,并將kingbasejdbc4.jar拷貝到此目錄下;
(3)找到MATLAB\R2012b\toolbox\loc-al目錄,打開classpath.txt文件,并在最后一行添加$matlabroot/java/jar/toolbox/kingbase-jdbc4.jar。
至此,驅動配置完成,如果MATLAB處于打開狀態,需要重啟MATLAB。
2.3 訪問數據庫
完成2.2節的配置后,JDBC驅動就加載成功了,此時可以通過MATLAB軟件連接訪問數據庫。
連接代碼如下:
conn=database(instance,username,password,driver,databaseurl)
其中,instance表示數據庫名,username表示登錄用戶名,password表示登錄密碼,driver表示驅動名稱,databaseurl表示連接字符串。
假設已經通過KingbaseES建立了RADARDATA數據庫,用戶名和密碼分別是system和123456,則MATLAB連接代碼如下:
conn=database(‘RADARDATA,system,123456,com.kingbase.Driver,jdbc://localhost:54321/RADARDATA)。
3 基于MATLAB的數據存儲
3.1 創建數據表
成功連接數據庫后,有兩種方式可以創建數據表,一是通過KingbaseES軟件在數據庫中創建;二是通過MATLAB軟件創建。假設要創建表的內容如表1所示。在表1中index表示數據表中的數據序號;TaskDate表示任務日期;TRKID表示目標編號;Time表示目標獲取的時間,是一個一維向量;RCS表示目標的RCS序列,是一個一維向量;Feature1表示RCS的第一個特征,是一個一維向量;Feature2表示RCS的第二個特征,是一個一維向量。
用MATLAB軟件創建表1內容的代碼如下:
mktab = [‘CREATE TABLE RCSData(index integer, TaskDate date, TRKID integer, Time text, RCS text, Feature1 text, Feature2 text);
exec(conn, mktab);
3.2 保存數據
在上一節中,確定了RCSData表的內容,并用MATLAB創建了數據表。接下來,利用MATLAB可以將大量數據快速地寫入到數據表中。
在表1中可以發現,有幾列信息為向量類型,即含有多個元素,這種類型可以和KingbaseES中的text類型方便地轉換,也是選擇利用KingbaseES進行數據存儲的原因。endprint
用MATLAB軟件寫入數據庫數據的代碼如下:
Fastinsert(conn,RCSData,{‘index,TaskDate,TRKID,Time,RCS,Feature1,Feature2},{1,2017-11-1,1,num2str(1:10), num2str(rand(1,10)), num2str([1.1 2.1]), num2str([3.2 4.2])});
Fastinsert(conn,RCSData,{‘index,TaskDate,TRKID,Time,RCS,Feature1,Feature2},{2,2017-11-1,2,num2str(1:20), num2str(rand(1,20)), num2str([1.1 2.1 3.1]), num2str([3.2 4.2 5.2])});
Commit(conn);
利用上述代碼,在表中成功插入了兩組不同長度的RCS序列數據。因此,通過MATLAB軟件可以將歷史數據批量快速地導入數據庫,為數據管理與分析奠定了良好的基礎。
4 數據表內容獲取與更新
上一節中將數據存入到了數據庫中,當利用MATLAB進行數據分析的時候,需要將數據從數據庫中讀出來。用MATLAB軟件讀取數據庫數據的代碼如下:
curs=exec(conn,select * from RCSData);
curs=fetch(curs);
data=curs.data;
RCS=str2num(data{1,5});
close(curs);
假如只需要讀取指定目標編號和RCS的信息,可以這樣寫:
curs=exec(conn,select TRKID,RCS from RCSData);
curs=fetch(curs);
data=curs.data;
TRKID=data{1,1};
RCS=str2num(data{1,2});
close(curs);
通過以上的方式,可以從數據庫中獲取彈道目標數據,從而可以利用MATLAB強大的數據處理功能和豐富的可視化函數,開展對彈道目標數據的分析。
在讀取數據后,如果用不同的方式重新計算了RCS序列的特征,需要對數據庫中RCS序列的特征進行更新,用MATLAB軟件更新數據庫數據的代碼如下:
update(conn,RCSData,{‘Feature1},{num2str([1.3 2.3])},where TRKID = 1);
update(conn,RCSData,{‘Feature1},{num2str([1.3 2.3 3.3])},where TRKID = 2);
commit(conn);
在完成對數據庫的操作后,需要關閉數據庫連接,MATLAB命令如下:
close(conn);
5 結語
本文針對彈道目標數據的特點,利用KingbaseES實現了彈道目標歷史數據的存儲,同時利用MATALB軟件實現了對數據庫的數據保存、讀取與更新。利用MATLAB和KingbaseES,即解決了彈道目標歷史數據的管理問題,又利用MATALB軟件方便地對數據進行分析,能夠充分挖掘彈道目標數據的信息,體現了歷史數據的價值。
參考文獻
[1]陳靜,范乃吉,袁曉東等.Matlab環境下的Oracle數據庫訪問技術[J].計算機應用,2015,35(S1):78-82,97.
Abstract:Due to the particularity of the ballistic target, the real ballistic target data is very precious. It becomes more and more important how to save and manage the historical data, facilitate the analysis and give full play to the value of the experimental data. In this paper, in view of this issue, combined with the characteristics of the ballistic target data, put forward the data management using the KingbaseES database, while the use of MATLAB software for data analysis, that is, to solve the ballistic target data storage problems, while using MATLAB software to achieve data Visual analysis.
Key Words:Database; KingbaseES; Database accessendprint