陈 光
(江苏自动化研究所,江苏 连云港 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