陳 光
(江蘇自動化研究所,江蘇 連云港 222006)
基于中標麒麟平臺對達夢數據庫訪問技術研究
陳 光
(江蘇自動化研究所,江蘇 連云港 222006)
中標麒麟操作系統是基于Linux內核開發出來的具有較高安全性的國產化操作系統,需要一套獨立的數據訪問機制支持對達夢數據庫的訪問,并能夠保證數據應用的安全可靠。基于系統底層UnixODBC驅動封裝的ODBC數據訪問接口提供了對達夢數據庫最全面的訪問應用,支持Blob類型數據存儲和操作,并保證數據讀取和操作響應時間較短,從而滿足指揮信息系統應用中對大對象數據的實時訪問要求。該接口實現了數據庫服務器端與客戶端之間的數據共享與同步功能,滿足了應用端對達夢數據庫實時存儲、增加、修改、刪除和查詢等要求,減輕了軟件開發人員跨平臺遠程訪問數據庫的復雜度和工作量,實現了國產化平臺訪問數據庫的最優、最科學應用,保證試驗人員快速獲取實時可靠的應用數據。
ODBC驅動;數據共享;數據操作;數據查詢
基于中標麒麟平臺的數據庫訪問技術是為了適應新時期我軍艦艇指控裝備信息化的要求,為海軍裝備發展宏觀規劃計劃、裝備發展體系建設應運而生的。針對海軍指揮信息系統未來的國產化需求,通過基于國產化軟硬平臺的典型指揮信息系統的軟件開發、測試、運行,切實了解國產軟硬平臺的適配性、可靠性、可用性,以及在海軍指揮信息系統推進國產化中存在的弱項和解決措施,掌握國產化軟硬平臺技術狀態及其信息系統適配和優化技術。
傳統Windows操作系統對Oracle數據庫訪問技術存在一定的安全隱患,需要一套獨立的數據訪問機制實現對達夢數據庫的遠程訪問。基于操作系統UnixODBC驅動可以有效解決遠程數據同步和共享問題,保證試驗人員能夠快速獲取實時可靠的應用數據,減輕了軟件開發人員跨平臺遠程訪問數據庫的復雜度及工作量,實現了國產化平臺訪問數據庫的最優、最科學應用。
中標麒麟操作系統是在國家“863”計劃重大專項、“核高基”科技重大專項和國家發改委產業化專項的推動下,開發的高安全、高可用、高性能、全自主的國產操作系統。該操作系統以國防科技大學操作系統研發團隊為技術后盾,與中標Linux操作系統強強聯合。中標麒麟操作系統兼容Linux系統,達到國內外主流Linux產品同等技術水平,系統支持主流軟硬件平臺和應用軟件,目前已服務于國防、政府、能源、交通、航天、電信、金融、郵政、教育等眾多領域,成功實現了規模化應用。
中標麒麟安全操作系統是中標麒麟操作系統的安全版本,主要面向服務器安全需求市場,為用戶提供高安全、高可用、高性能的服務器安全操作系統。中標麒麟安全操作系統先后通過了公安部信息安全產品檢測中心、中國信息安全產品測評中心和解放軍信息安全測評認證中心三家權威認證機構的檢測和安全認證,達到了結構化保護級(四級)安全要求,是目前國內通過認證的安全等級最高的操作系統。
DM7是達夢數據庫有限公司推出的具有完全自主知識產權的大型通用關系型數據庫管理系統,是達夢公司在總結DM系列產品研發與應用經驗的基礎上,吸收主流數據庫產品的優點,采用類Java的虛擬機技術設計的新一代數據庫產品。
DM7采用全新的體系架構,在保證大型通用的基礎上,針對可靠性、高性能、海量數據處理和安全性做了大量的研發和改進工作,極大提升了達夢數據庫產品的性能、語言豐富性、可擴展性,能同時兼顧OLTP和OLAP請求,從根本上提升DM7產品的品質。
該技術實現的基礎運行環境主要由以下幾部分組成:
(1)主題數據應用端安裝中標麒麟操作系統;
(2)服務端是兼容達夢數據庫系統平臺,包括Windows或中標麒麟操作系統。
基于中標麒麟平臺對達夢數據庫訪問技術的主要實現步驟如圖1所示。
應用程序使用ODBC訪問數據源,可以按照以下幾個基本步驟進行[1-3]:
(1)調用函數SQLAllocHandle申請環境、連接句柄,調用函數SQLSetEnvAttr設置環境句柄屬性,調用函數SQLSetConnectAttr設置連接句柄屬性,調用連接函數SQLConnect、SQLDriverConnect或SQLBrowseConnect連接相關的數據源;
(2)調用函數SQLAllocHandle申請語句句柄,通過語句句柄應用程序可以執行SQL語句進行相關的SQL操作。調用函數SQLPrepare對SQL語句和操作進行準備,調用SQLDescribeParam等函數取得相關的描述信息,依據描述信息調用SQLBindCol、SQLBindParam等函數綁定相關的列和參數,然后調用SQLExecute執行SQL語句,實現相關的SQL操作。應用程序也可以調用函數SQLExecDirect直接執行SQL語句進行相關的SQL操作;

圖1 DM數據庫訪問技術架構
(3)應用程序可以通過調用ODBC編目函數SQLTables、SQLColumns、SQLStatistics等取得數據源相關的字典信息;
(4)如果連接屬性自動提交選項設置為手動提交狀態,應用程序可以調用函數SQLEndTran來提交或回滾事務,進行相關的事務處理;
(5)調用函數SQLFreeHandle來釋放申請的語句句柄;
(6)調用函數SQLDisconnect來斷開應用程序與數據源之間的連接;
(7)調用函數SQLFreeHandle來釋放申請的連接、環境句柄。
ODBC提供訪問不同類型的數據庫的途徑。結構化查詢語言SQL是一種用來訪問數據庫的語言。通過使用ODBC,應用程序能夠使用相同的源代碼與各種各樣的數據庫進行交互。這使得開發者不需要以特殊的數據庫管理系統DBMS為目標,或者了解不同支撐背景的數據庫的詳細細節,就能夠開發和發布客戶/服務器應用程序[4]。
基于ODBC驅動封裝的數據訪問接口,實現達夢數據庫遠程訪問功能。完成對數據庫數據的查詢、增加、修改和刪除操作,同時支持對Blob等大數據的讀取和更新。基于中標麒麟操作系統平臺對達夢數據庫訪問的數據流圖如圖2所示。

圖2 數據訪問的數據流圖
基于ODBC驅動對達夢數據庫訪問主要實現以下功能:
(1)數據查詢功能。
申請環境和連接句柄,并設置環境和連接句柄屬性,從而連接相應的數據源;在綁定條件查詢變量形成標準Sql語句后對Sql語句執行相應查詢操作,并將查詢結果通過循環方式按一條一條記錄返回結果集中。最后執行斷開連接操作并釋放句柄。數據查詢流程如圖3所示。

圖3 數據查詢流程
(2)數據操作功能。
申請環境和連接句柄,并設置環境和連接句柄屬性,連接相應的數據源;在綁定變量形成標準Sql語句后對Sql語句執行相應的增加、刪除和修改操作,并進行事務提交保存數據至數據庫中。最后執行斷開連接操作并釋放句柄。數據操作流程如圖4所示。

圖4 數據操作流程
(3)Blob數據查詢功能。
應用軟件對數據庫操作過程中,Blob數據是用戶經常涉及并廣泛使用的數據類型,可以存儲文件、圖片等大對象數據[5]。在訪問包含Blob字段庫表時,首先申請環境和連接句柄,并設置環境和連接句柄屬性,連接相應的數據源,分配Lob定位符和語句句柄并讀取相應數據,最后釋放環境句柄并斷開相應會話。Blob數據查詢流程如圖5所示。

圖5 Blob數據查詢流程
(4)Blob數據更新功能。
對Blob數據進行更新時的操作流程與查詢操作步驟基本相似。在編寫Blob字段數據更新和查詢語句時,必須符合SQL語句標準設計規范,否則無法完成相應數據查詢和存儲功能。Blob數據更新流程如圖6所示。

圖6 Blob數據更新流程
基于OTL模板封裝的ODBC數據庫訪問驅動,主要用于在中標麒麟環境下完成用軟件對達夢數據庫的增加、修改、刪除和查詢操作,為應用層提供高效、便捷的數據庫訪問中間件,并以動態庫的形式提供給開發人員使用。使用基于UnixODBC訪問接口實現中標麒麟平臺下應用軟件對達夢數據庫的存儲訪問,滿足指揮信息系統在復雜環境條件下實時高效地完成數據服務和作戰指揮要求[6-7]。
ODBC數據訪問模式通過調用中標麒麟系統底層UnixODBC數據庫驅動實現對達夢數據庫的數據操作。該訪問接口具有C、C++過程性的優點,同時還具有SQL語言的擴展特點,程序具有高度靈活性。當應用程序開發人員面向達夢數據庫強大接口時,通過調用ODBC驅動實現數據訪問[8-10]。該接口提供對達夢數據庫最全面的訪問應用,支持Blob類型數據存儲和操作,并保證數據讀取和操作響應時間較短,從而滿足指揮信息系統應用中對大對象數據的實時訪問要求。同時兼容在中標麒麟平臺下對Oracle數據庫訪問功能,在數據庫應用方面具有一定的可擴展性。
ODBC數據訪問接口可以有效解決遠程數據同步和共享問題,保證操作人員能快速高效地獲取實時可靠的大批量應用數據,為數據分析和可視化提供有效支撐,減輕了軟件開發人員跨平臺遠程訪問數據庫的復雜度和工作量[11-12],實現了國產化平臺訪問數據庫的最優、最科學應用。數據庫訪問接口作為共性軟件開發設計,在支撐軟件與應用軟件開發人員解耦、數據訪問效率提高等方面,較以前開發模式有突出改進[13-14]。
[1] 宋 濤,席傳裕.基于三層模式的數據庫連接模型的設計[J].信息與電子工程,2005,3(1):44-46.
[2] 馬 勇.直升機基礎數據庫設計與應用系統實現[D].南京:南京航空航天大學,2009.
[3] 王 赟.基于OCI技術實現快速數據格式轉換[D].呼和浩特:內蒙古大學,2006.
[4] 周計成,章 立,劉曉林.VC++中連接Oracle數據庫的幾種方法[J].電腦編程技巧與維護,2010(20):60-61.
[5] 楊 暉,彭天昊.大型Oracle數據庫遷移優化方法[J].電子技術與軟件工程,2016(21):172.
[6] 劉宏志.SAP架構下Oracle數據庫的性能優化研究[J].無線互聯科技,2016(22):37-38.
[7] 鄭玉峰,裴建宇,范超宇.Visual Basic與Oracle數據庫在生態與農牧業氣象中的應用[J].中國管理信息化,2016,19(24):155-156.
[8] 夏小翔.數據庫連接技術的設計[J].電子技術與軟件工程,2014(1):223.
[9] WATSON T J.The Data Encryption Standard (DES) and its strength against attacks[J].IBM Journal of Research and Development,2010,38(3):243-250.
[10] ANTONIOLETTI M,KRAUSE A,PATON N W,et al.The WS-DAI family of specifications for web service data access and integration[J].ACM SIGMOD Record,2006,35(1):48-55.
[11] 張 金,付國良,李 霞.國產數據庫應用開發平臺的研究與實現[J].計算機工程與應用,2004,40(9):180-183.
[12] 孔 哲,孟麗榮,孫筱雯.數據庫連接策略優化方法[J].山東大學學報:工學版,2003,33(6):652-657.
[13] LIN Y J.ADO.NET database access technology[J].Applied Mechanics and Materials,2015,713-715:2217-2220.
[14] ZHANG X D,TENG Z M,ZHAO D W.Research of the database access technology under .NET framework[J].Applied Mechanics and Materials,2014,644-650:3077-3080.
ResearchonAccessTechnologyofDMDatabaseBasedonNeOKylin
CHEN Guang
(Jiangsu Automation Research Institute,Lianyungang 222006,China)
The NeOKylin is an operating system of domestic production based on the Kylin Linux kernel development with high security and requires a set of independent data access mechanism to reach the access of Dream Database,and to ensure the safe and reliable data applications.The ODBC data access interface based on the underlying UnixODBC driver encapsulation provides the most comprehensive access to Dream Database,supports data storage and operation of Blob,and ensures data reading and shorter operational response time,thereby meeting the real-time access requirements of large object in command information system applications.The interface realizes the data sharing and synchronization between the database server and client,meets the requirements such as real-time storage,addition,modification,deletion and query of the database by the application end,reduces the complexity and workload of database accessing in cross-platform for software development staffs,and achieves the best and most scientific applications of database accessing with platform of domestic production,so as to ensure that test personnel can quickly access to real-time and reliable application data.
ODBC driver;data sharing;data operation;data query
TP311
A
1673-629X(2017)12-0201-04
10.3969/j.issn.1673-629X.2017.12.043
2016-12-23
2017-04-27 < class="emphasis_bold">網絡出版時間
時間:2017-09-27
國家自然科學基金資助項目(61273262)
陳 光(1985-),男,碩士研究生,研究方向為數據庫應用。
http://kns.cnki.net/kcms/detail/61.1450.TP.20170927.0958.034.html