:基于XML的人员定位监控系统历史数据压缩存储\检索-免费ppt模版下载-道格办公

基于XML的人员定位监控系统历史数据压缩存储\检索

基于XML的人员定位监控系统历史数据压缩存储\检索

摘要针对人员定位监控系统的历史数据问题,提出了一种数据库与XML文件相结合的解决方案,描述了数据结构设计、系统工作流程、压缩检索算法等内容,实验表明该方案是一种可行方案,可降低数据库压力、节省存储空间。

【关键词】历史数据 XML LZW算法 XPath

1 引言

历史数据是数据库中非常重要的组成部分,它提供了大量的过程数据供日后进行查看或者数据挖掘。人员定位监控系统是基于无线传感网技术的监控平台,由硬件设备和软件系统组成:前者包括电子标签、读写器等;后者是Web管理系统;主要应用于监狱、精神病医院等场所,实现特殊人群监控,防止意外发生。系统实施后,虽然监控人员的活动空间和时间有限,但如果不做数据处理,也会导致系统处理速度下降,甚至系统崩溃。

数据压缩是历史数据问题中的关键课题,根据压缩粒度可分为无损压缩和有损压缩。LZ算法是一种基本的无损压缩算法,由一系列压缩算法组成:LZ77(顺序压缩通用算法)、LZ78(可变比率编码的独立序列算法)、LZW算法等等。

历史数据导出的文件存储格式有很多种,其中包括XML文件。XML是一种自描述且可扩展的标记语言,是一种独立于应用程序和供应商的描述及交换数据的方法。XML标签往往是重复的,这虽然会造成冗余,但却有利于进行数据压缩。虽然XML在数据量上并不具有优势,但其在数据管理及开放性方面具有不可忽略的优势。XML有两种查询检索方式:XPath和XQuery。XPath是一种表达式语言,提供定位和链接信息的通用语法和语义,适合作为小型查询语言应用到实际项目中。

本文提出一种针对历史数据的数据库与XML文件相结合的解决方案,包括XML数据结构设计、压缩算法应用、XML节点搜索方法、数据库与XML文件调度设计等。

2 方案设计

历史数据解决方案是人员定位系统的一部分,但在处理逻辑上独立于软件平台。历史数据处理流程涉及到采集层、存储层和检索层,按照这三个层次描述方案详细设计:

(1)采集层实现采集数据的有损压缩。采集器通过定位算法计算出标签位置,判断读写器信息是否变化、标签位置是否超出设定阈值,确定数据是否入库。

(2)数据存储层的设计思想。每天零点对数据库中将采集数据按照预定义的数据结构生成XML文件,文档以前一天日期作为文件名;再通过LZW算法压缩生成lzw文件,存储在服务器硬盘上并删除XML文件。XML文件数据结构按照数据库history表单结构设计,如图1所示。

(3)历史数据检索时,当天数据通过数据库查询获得,其他日期的数据首先确定本地是否存在已解压的XML文件,存在则直接通过XPath路径查询节点信息,不存在则先解压再从XML文件中查询所需数据,返回给系统。解压生成的XML文件定期删除。

综上系统工作的具体流程如图2所示。

3 系统实现

系统通过SQL语句获取数据库history表数据集,将数据与实体类HistoryData和Record的属性相映射,存放到List中,以便实现循环迭代生成XML文件。根据history表单结构定义的实体类HistoryData及Record的类结构如图3:

XML文件生成使用dom4j API,首先建立HistoryData根节点,子节点循环递归实体并利用Method反射机制及invoke方法获得数值,按设计定义为Element或Attribute或Text;最后XMLWriter按文件名地址规则输出XML文件。然后通过LZW压缩算法[6]压缩XML文件,而在日后查询时则反向解压文件即可。

查询步骤包括两个部分:一是确定查询范围;二是XML文件内部查询。当天数据通过SQL语句访问数据库即可获得,因此难点在于XML文件内部节点的XPath查询。以查询过去某天某标签为例可表明XML文件内部查询过程:

输入:待查询标签labelid,起始时间sTime,结束时间eTime

输出:查询结果result

1.document=saxReader.read(xml filename string);

2.String xpath="//labelid[@id="+labelid+"]/record[@intime>"+sTime+"and @intime

3.List list = document.selectNodes(xpath);

4.FOR Object obj:list{

5.get intime,regionid,detailid,coordinte of obj

6.String result = filename+ intime+"#"+regionid+"#"+ detailid+"#"+coordinate;}

4 结束语

人员定位系统历史数据主要用于追溯发生异常事件时人员位置信息,而异常情况并不是频繁发生,因此本文解决方案在用户体验上与传统方法差距不大,但在存储空间上有很大优势:数据库中1000多条数据占用的空间大小约300KB,其中包含200KB的预留空间,而压缩XML文件不到20KB。实验表明本文提出的历史数据解决方案能够解决存储压力问题。

参考文献

[1]文水英.实时数据库中历史数据压缩算法的研究[D].长沙:中南大学,2008.

[2]孙克成.工业历史数据库数据压缩算法研究[D].西安:西安科技大学,2011.

[3]汪陈应.XML数据编码与存储管理关键技术研究[D].天津:南开大学,2010.

[4]阎红灿.面向 Web 的 XML 文档数据管理及分类检索技术研究[D].天津:天津大学,2008.

[5]王平.LZW无损压缩算法的实现与研究[J].计算机工程,2002(07).

作者单位

华北计算机系统工程研究所北京市100083

文章为用户上传,仅供非商业浏览。发布者:Lomu,转转请注明出处: https://www.daogebangong.com/fr/articles/detail/pyo7f0039gj9.html

(810)
打赏 支付宝扫一扫 支付宝扫一扫
single-end

相关推荐