航空飞行记录器解码分析系统前端数据库的研究
2014-03-15海口经济学院曾子力张蓝春
海口经济学院 曾子力 张蓝春
一、航空飞行记录器解码分析系统数据库设计
波音最新型787系列喷气式客机无论在技术还是设计上都有前所未有的突破。而其中飞行数据记录仪(FDR)的数据格式也刷新了传统的制式,采用ARINC647A-1型记录制式。其最大特点是数据以帧为单位记录。由于每秒产生成百上千的数据帧,数据帧随机排列。解码分析信息系统将数据帧归类后以秒为单位进行存储在数据库中。由于航空飞行记录器是通过XML文档定义飞行数据的桢结构及参数种类,如各个参数记录的bit位置和各数据帧的设置与作用等等,因此解码数据库是通过设计软件读取该文档记录而生成,从而实现对飞机黑匣子数据的解码。
解码分析系统在载入解码数据库后,即可对飞机系统的运转数据进行解读,解码后的参数推送到分析程序模得到工程值,用户再对参数工程值做进一步的分析,最后提炼出的信息存储在后台SQLServer数据库系统,并同时在前台也会保存相关的记录。
由于飞行记录器和快速存取记录器数据量大的特点,虽然相关数据仍需存放在大型关系数据库SQLServer服务器上,但面对庞大的数据,不利于提到解码分析和数据查询速度。并且,若飞机数据库等也采用SQLServer数据库进行管理,势必严重影响系统性能和运行速度,提高系统运行速度,因此,本系统将飞机数据库和机场数据库放置在前台,以便客户端快速调用。前端采用嵌入式实时数据库系统来存放飞机数据库、机场数据库信息。实现两种完全不同类型数据库的兼容。
二、前端数据库系统选用
飞行数据译码分析系统使用SQLServer数据库作为后台确保大量的快速存取记录器的警告事件记录和航班记录有足够的数据库容量存储,同时SQLServer的服务器特性能确保各客户端的译码分析数据能保存在服务器数据库中。但对部分使用频率很高的小型数据库表,如飞机数据库表、机场数据库表等则不宜采用SQLServer来存储,为了提高系统运行速度,利用存储过程的方式对MS SQLServer 2000数据库操作,前端数据库采用小型本地数据库。
由于一个firebird数据库服务器能够管理多个独立的数据库,每一个数据库同时可支持多个客户端连结。因此航空飞行记录器解码分析系统前端数据库采用Firebird跨平台的关系数据库系统。
基于Firebird航空飞行记录器解码分析数据库系统优势:一方面,Firebird作为轻量级嵌入式数据库不会给操作系统环境带来污染;另一方面,体现了很好的健壮性和便携性。例如,假设若干动态库放置在系统文件夹下,则这些动态库有可能和其他系统的同名动态库产生冲突。而多数大型数据库的客户端的安装必须依赖数据库开发商提供的安装程序,完全的不透明,加大了系统故障的概率。无需安装而直接运行。具体分析如下:
1.航空飞行记录器解码分析前端系统是面向单机用户,整个服务器的功能都已经包含到客户端动态库中,那么程序的运行也就不再依赖于必需安装FireBird Server。这样一来,一个可执行文件加上几个动态库,这是所有单机数据库系统都希望达到的效果。它完全免去了数据库引擎的安装,真正实现了“便携”的效果。
2.把数据库服务器的安装包含到我们航空飞行记录器解码分析系统中。这个特性是FireBird数据库所独有的。FireBird的部署提供了相应的服务安装的支持文件,这使得数据库的安装可以完全合并到程序本身之中,使数据库服务成为系统的一部分。
3.让客户端程序是一个完全独立的可执行文件,客户端除了这个可执行文件以外,不必部署任何其他文件,包括数据库的客户端。
三、前端数据库系统的设计
1.基于Firebird数据库系统设计需注意的几点
(1)和物理主键应与逻辑主键分离
两表用逻辑主键相关联时,在数据导入过程中,尤其是从逻辑主键的设计升级到物理主键的设计时,两表的关联需要一个将逻辑主键关联转化为物理主键关联的过程。处理的方法有两个方法。
其一,客户端处理时,在客户端放一个内存表,预先载入被关联的基础数据表,其中既包含物理主键,又包含逻辑主键。然后将关联表导入,每插入一条记录之前,都通过内存表匹配逻辑主键对应的物理主键的值,把该值放入记录相应的关联字段中,再输入数据库。
第二,服务器端处理时是在服务器端的触发器中判断,如果整数关联字段为空,则自动通过原始的逻辑主键关联字段匹配物理关联字段对应的值,再进行赋值。
(2)数据导入导出过程中需要注意两个问题
其一,尊重已形成的自增长主键的值,也就是,已形成的自增长主键的值不能让它重新生成,原样倒入,这样就不会错乱。IBExpert生成的触发器因为有判断语句,所以并不会干扰。
其二,生成器对象的值也要随着变。特别是,在空数据库倒入历史数据时,一定要把生成器的值也继承过来。
(3)动态建库是一个理念变化
也就是说,“系统不依赖于一个固定的永久性库”。动态建库同时能够分化数据风险,将风险分散到数据的子集上。数据库物理存储的瑕疵是有积累效果的。在极限情况下,FireBird数据库对数据库文件的瑕疵产生有一定的容忍能力。具有2、3个簇错误的gdb文件基本上仍能够继续使用,这样,当系统进入新业务时间的时候,数据库瑕疵就被抛弃在旧库中。这样,系统即使不进行修补、备份、恢复,仍能很好的运行。如此一来真正就能够实现“无人值守”的数据库系统。若是单个数据库,则数据库文件错误必须被及时发现、修补,否则会导致整个系统的崩溃,乃至于所有的数据都损失掉。
2.机场信息数据库表设计
机场信息数据库表是存放航空公司航线所有可能飞达的机场信息,包括机场位置、跑道方向等信息,该数据库表中所有字段都为字符型数据,具体包括以下字段:
3.飞机信息数据库表设计
飞机信息数据库表是存放航空公司机队所有飞机的机型等与飞机出厂信息相关的数据库表,包括飞机注册号、机型、发动机信息等相关的各类解码数据库,这些信息在QAR数据解码与分析中将被频繁使用。该数据库表共包括以下字段信息:
[1]张蓝春.基于C++的飞机黑匣子解码分析系统的设计[J].计算机系统应用,2009.
[2]熊华钢.先进航空电子综合技术[M].国防工业出版社,2012.
[3]张立科.VISUAL C++ MFC类库参考手册[M].人民邮电出版社,2005.