论文摘要
实时数据库是实时系统技术和数据库技术相结合的产物,具有高实时性、高数据吞吐量等特点,在自动控制领域得到了广泛的应用。当前,国内外主流实时数据库产品一般都提供了历史数据存储功能,能较长时间地保存,备份现场的过程数据。但由于控制现场的采集点多,采集时间周期短,因而要保存的历史数据量非常大。如果将这些数据直接存储,不仅会占用大量的系统存储空间,而且会降低数据的实时性,使数据的传输、查询变得困难。如何在保持数据库高实时性的同时,尽可能地提高数据库的容量?我们可以从数据结构、索引组织方式以及高效的数据压缩方法这些方面来考虑。目前,实时数据库中采用的数据压缩技术主要有三类,无损压缩、有损压缩和二级压缩。无损压缩一般以通用压缩理论为基础,使用哈夫曼算法等经典的压缩算法;而有损算法则更多地考虑了工业实时数据的特征,采取一些特殊舍点算法;二级压缩技术则是同时利用了这两种数据压缩技术。本文根据智能楼宇管理系统中的数据结构特点设计了一个基于B树索引的历史数据文件系统,并提出一种高效的二级数据压缩方案。接着从通用无损数据压缩方法和数值有损压缩方法两方面深入研究各种算法,在旋转门算法基础上改用均方差作为偏差比较参数,以提高数据还原精度,减少测量噪声对数据压缩的影响,将其应用于模拟数据的一次数据压缩;对无损压缩方法中综合性能比较好的LZW算法进行字典存储方法和对数据存储长度进行动态编码两方面的改进后,使其更加适应于实时数据压缩,应用于历史数据的二次压缩模块中,同时结合质量码和时间标签的特点应用了高效的RLE算法。最后在总结本文完成工作的基础上,指出了历史数据库模型及其压缩算法可以改进的地方和进一步完善的途径。