G i gaB A SE在数据采集系统软件中的应用
衣应刚1孟庆利2臧国华
(1.装甲兵技术学院,吉林长春130117;2.吉林省卫生厅办公室,吉林长春130051)
脯要】采用模块化设计方法开发数据采集系统软件时,不同数据记录方式的优缺点,主要介绍对象关系数据库G i gaB A SE的特性以及如何使用它实现分布式雷电定位系统软件的数据存储模块。测试结果表明:使用G i ga B A SE管理采集数据安全可靠、查询方便快捷,广泛适用于高、低速教据采集系统软件。
瞎;建词]数据采集;对象关系数据库;G i ga B A SE
数据采集系统是对生产过程或科学实验中的各种物理量进行实时采集、测试、处理,并将相应的量进行统计并输出。数据采集系统多种多样,但其基本工作过程相似。硬件部分工作即汇集被测控对象的各种模拟量,通过A/D转换器转换为数宇信号,再通过计算机、数字信号处理芯片等器件对所采集的信号进行加工处理。软件部分则是将硬件采集的数据计算、存储、统计、显示,并对存储的数据文件进行事后分析。因此,能否合理地组织存盘数据以便上层软件查询分析直接影响系统的效率。传统的数据存储方法即将采集数据以二进制码形式存入文件。文件方式适合于瞬态采集、低速单次采集或低速连续单通道采集的数据管理,此时数据量小。少量编码即可实现数据的正确存储及快速查询,只需对单个文件进行管理。但大型分
布式数据采集系统就适合使用数据库来管理采集数据。数据库能够保证正确无误地将多个通道、多次采集或多个节点的高速数据流快速存储,且提供高效查询。但目前广泛使用的关系数据库,如S Q L Ser ve r等在使用前必须安装且配置复杂,数据导出时也需要一系列操作,使用不够方便。
对象关系数据库G i ga B A SE结合关系数据库和面向对象数据库的优点,克服了传统数据库的在操作上不便。它无须安装,只需将其动态链接库连接到项目中即可使用其各项功能。其最优越的一点就在于数据库可以作为一个文件进行复制。同时,它支持结构、数组、字符串及指针等复杂的数据类型,能够处理复杂的一对多、多对多的关系,提供了方便灵活的接口及功能强大的查询语言及高速查询功能。因此,G i ga—B A S E非常适合在数据采集系统中管理采集数据。
1数据采集系统软件传统的数据记录方法
数据采集系统软件按功能划分,可大致划分为三个模块,如图1所示。
高速查询图1数据采集系统软件结构
数据记录模块功能即将原始数据流存盘,供分析模块查询、统计。可见,数据存储是否正确无误、数据组织方式是否便于分析模块查询统计直接影响整个系统的性能指标。
1.I用文件方式管理数据
数据采集系统软件传统的数据管理方式即将采集到的数据记录以二进制码的形式存入文件。
在低速瞬态采集、低速单次采集或单通道连续采集中,数据量较小。用文件存储数据方便快捷,编码量小。但在分布式数据采集系统或高速采集系统中,用文件存储采集数据则无法满足需求。例如分布式采集中.各个节点的采集数据必然存到独立的文件中,这使得分析模块需要对多个文件进行查询、管理。由于文件是不带索引功能的,多个文件的查询管理需通过大量编码实现,且查询分析效率难以超越数据库相应功能
他用关系数据库管理数据
鉴于文件存储式仅适用于量较小的采集系统,很多大型采集系统均使用库存储采集。关系库是目前使用最为广泛的库。使用库管理采集的优点主要有三点:
2009年6JI I(上}
1)在高速数据采集、多通道采集中,海量数据能够正确无误、快速地插入到数据库中;且使用数据库索引功能,能够在海量数据中完成快速查询,为分析模块构建了良好的基础。
2)容易实现条件存储。利用数据库丰富的查询功能将满足某条件的记录均存放到一个关系模式中,以便于对满足该条件的所有数据进行查询、比较、分析,强化了分析功能。
3)无须大量编码即可存储采集数据的特征值,进而以特征值为查询条件实现多表之间的关联查询。以目前处理器浮点运算能力来看,主频20G H z的I nt e l奔腾系列处理器为每秒可处理浮点数运算次数为20亿次。因此,在采样率100kbps的连续采集中,处理器有能力计算出原始数据流相应特征值并将其存入数据库,特征值的存储便于事后分析:且关系数据库能够关联查询,以特征值为查询条件进行关联查询能够迅速获取关心的采集记录。
使用关系数据库管理采集数据也存在一些问题。首先,数据库以记录的方式存储数据迫使将原始数据分割,以一定时间长度将数据打包再存八数据库中:其次,关系数据库操作不够方便,通常需要安装及一系列复杂配置,数据拷贝时也需要导出等操作。可见采用文件或关系数据库管理采集数据都不完美。
2G i gaB A S E在分布式雷电采集系统中的应用
2.1G i gaB A SE的特性
G i gaB A SE是建立在关系模型之上的面向对象的对象—关系数据库。它继承了关系数据库的优点,支持基本数据类型及由基本数据类型构造的自定义数据类型,支持类SQ L语法的查询语句,提供有效便捷的C++接口以及丰富的查询功能。同时,它最优越的一点就在于无须安装,数据库可以作为一个文件进行复制。
2.1.1使用方便
G i gaB A SE是一开源数据库,无须安装及配置,只需将其动态链接库连接到工程中即可使用它的各项功能,且其数据库作为一普通文件拷贝即可,无须数据导出等操作。
2.12支持自定义数据类型及函数G i ga B A S E支持的原子数据类型有以下几种:bool,i nt l(一128—127):i nt2(-32768-一32767);i nt4 (一2147483648—2147483647):i nt8,re al4(相当于A N SI字节的浮点数f l oat):r eal8(相当于A N Sl8字节的doubl e)以及数组dbA rr ay:字符串char cons。及与某个类的相关re fe re nc et oc l a ss T o 原则上G i ga B A S E不支持多维数组,但可定义数组的数组实现多维数组。自定义数据类型必基于这几种基本的数据类型。同时,G i gaBA SE 还提供了一系列函数方便用户进行数据比较。例如数组提供了j n操作符用于检查一个数组是否包含一个由左操作数指定的值:字符串则提供了l i ke和i n操作符来查子串。
2.13支持与C++的无缝连接
G i gaB A SE的一个主要目标即提供灵活方便的语言接口,它实现了与C++的无缝连接。G i gaB A SE中每一张存储数据的表对应C++的一个类,表中的每行记录对应于这个类的一个实例。表的每个属性可以取原子数据类型,也可以选择自定义的嵌套数据类型。
2.14支持类SQ L语法的查询语句
G i gaB A S E支持类S Q L语法的查询语句,因此它为面向对象的编程和相关的库提供了更普遍的使用符号。其查询语句与标准的
SQ L语句的显著不同在于:1)没有几个表之间的连接(j oi n)和嵌套子查询,查询从一张表中返回一个对象集。2)结构和数组能够被用做记录成员。E xi s t s保留字用来为数组中的元素定位。3)既能为记录(对象),也能为记录成员定义用户方法。4)支持对象之间的指针包括自动支持反向指针(i nve rs e r ef er ence):5)G i gaB A SE的查询语句面向的是对象的工作,所以,每个查询的结果是一个类的一个对象集。
虽然G i gaB A S E没有几个表之间的连接(j oi n)和嵌套子查询,但它可以通过适当的查询语句来实现类似的功能.不会影响相应的查询工作。
2.1.5提供一系列查询优化策略加快查询速度
为了减少查询执行时间,G i gaB A SE数据库中应用了指针(i n—di c es)、反向指针(i nve rs e re fe re nc es)与并行查询《que rypa t a l—I el i z at i on)。这些方法的优化策略大大缩短了查询时间。
指针是增强关系型数据库管理系统性能的传统方法。在G i ga—B A S E中应用了B一树结构来实现指针对数据的访问,这样大大提高了数据查询速度。G i gaB A SE反向指针为建立数据库多个表的联系提供了高效与可靠的方法,并为数据库表记录的插入、更新、删除和查询优化提供了很大的方便。
这里数据库表记录的关系可以是一对一、一对多(或多对一)和多对多的关系。利用反向指针具体实现方法为:一对一的关系通过在自身记录与目标记录中的指针宇段来表示:~对多的关系通过在自身记录中的指针数组宇段与且标表记录的指针宇段来表示:多对一的关系通过在自身记录中的指针宇段与目标记录表记录的指针数组宇段来表示。
2.2G i ga B A S E在分布式雷电定位系统软件中的应用
雷电定位系统是用于检测雷电位位置的分布式多节点告诉数据采集系统,使用G PS将各节点时间校准到同一时间基准上,采集卡使用成都中科动态50M速采集卡,使用G i ga B A SE作为后台数据库。数据库中包含四个关系模式:节点信息(节点号+节点上I D E磁盘容量):硬件参数(卡号+通道数量+各通道编号及工作状态+量程表+采样率表):(测量号+采集通道号+测量起始时间+量程+采样率+脉冲包打包时间长度):脉冲包信息(脉冲号+脉冲包长度+脉冲包)。
脉冲包属性由采集数据按固定时间长度分割后的数据段及包长度、记录个数组成,数据段信息包括秒内偏移、放电脉;中峰值和宽度。脉冲峰值和幅度对雷电定位计算没有贡献,它们只是为了证明这个放电脉冲的真实性。这四个关系模式之间的联系如图2所示:
廛围抖蕉.
图2联系罔
由于G i g aB A S E提供与C++的接口,可将这四个关系模式映射为C++中四个类。采用G i gaB A SE提供的反向指针即可实现多表之间的关联查询。系统软件中提供的查询功能有:通过测量号查询这次实验中所有的采集数据、用测量起始时间查询某时间段内的所有采集数据、据节点号及通道号查询该节点上的所有采集数据、查询每次测量的采集数据被分成了多少个片段来存储。同时,也为节点信息表、硬件参数表、测量参数表提供了更新操作和条件删除。
可见,使用G i ga B A S E管理采集数据及配置信息既避免了文件存储为实现关联查询而大量编写的代码,又摆脱了使用关系数据库而面临的安装、复杂配置及数据导出操作。
23G i gaB A SE插入疆查询效率分析
模拟雷电过程数据包,变速产生高速脉冲流存入G i ga B A SE o实验证明没有丢失数据的现象。同时,在1G B的数据中进行各种查询,用精确时间计时Q uet yP e r form a nc eC ount e r测量查询时间。测试环境:主频20H z,内存256M B。经过多次查询,测量号查询脉冲包数据的平均查询时间蔚0.620191m s:测量时间段查询脉冲包数据平均查询时间为1095670m s:节点号、通道号查询脉冲数据平均查询时间为1323911m s o
3结束语
数据存储模块是数据采集软件的重要部分。数据存储的正确性记忆数据组织方式是否适合于查询处理直接影响整个软件的效率。使用G i ga B A S E存储采集数据避免了关系数据库复杂安置配置、数据导出等操作.且数据库文件能够作为普通文件拷贝。同时也克服了传统的文件存储方式面对海量数据及多个文件所需要的大量编码。
参考文献:
【1】殷贤亮,吴海O R D B M S的新特性及其对查询优化的影响田.华中科技大学学报,2005
(上接第117页)
2)在角隅石的安放过程中,严格执行复检制度。特别是在弧线形施工段,要不厌其烦地调整镶面块石的位置,杜绝折线拐角的出现,使弧线平顺圆滑。
3)砌筑镶面块石时,同一施工段落尽可能选用同一泽的石块,如果无法达到这一要求,至少在同一施工段落的同一层次,必须选用同一泽的石块。
32内在质量
内在质量主要是指砌体必须要有足够的强度和稳定性。强度取决于砌筑用砂浆的标号以及砂浆与石块之
间粘结的牢固程度,砌体的整体稳定性取决于基底的地质情况以及基础的结构型式。控制内在质量必须做到:
1)严格控制砂浆拌制时的配料精度,砂浆拌和时间宜为3—5m i n,已初凝的砂浆不得使用。
2)杜绝使用含泥量超标的砂子和受潮后有凝结团块的水泥。
3)每工作班待收工后,砂浆初凝时,必须洒水养护。整段砌体完工后,至少要洒水养护7天以上。
4)基坑开挖后,避免受水浸泡。土质基底必须采用轻便触探仪或其它可靠的仪器现场检测地基土的承载力,对承载力达不到设计规定值的基底,必须及时上报,或对基底进行处理后才能继续施工。
4结语
目前,尽管各地对公路砌筑工程的要求不尽相同,但对砌筑工程质量的越来越高,特别是在外观质量上,大家都在争创“精品”工程,可精品工程没有任何标准,是一个相比较而言的概念,所以,砌筑工程的质量也没有很明确的标准。我想,只要我们下苦功夫认真去做,将每一块顽石精雕细凿,砌筑工程的质量必将达到近乎完美的境界。
TECI'Im L O G Y l l ∞