实时数据库和关系数据库的设计特点
1、数据的组织方式
实时数据库可以简单地理解为它是这样的数据库:由测点信息库、实时数据库、历史数据库三个数据库组成。
测点信息库含有一个测点基本信息字段的一张表,这个表以测点标签作为关键字,对应一条测点基本信息的记录包含一条测点的基本配置信息,如压缩偏差,例外偏差,测点描述等。用户可从此数据库中查询测点的基本信息。实时数据库是内存快照数据库,反映了生产实时数据的时间戳、数值、质量等秒级变化。用户可从此数据库中查询生产实时数据的实时数据值(值,时间戳,质量)。
历史数据库是含有一个以测点名称字段和时间字段为关键字的一张表,这张表的另外的一个重要的字段就是数值字段,用来存储测点的采集值,除了这些字段,还可以包含数据的状态,数据质量字段等。随着时间的变化,不断地将实时数据库中的实时数据进行压缩过滤,并更新磁盘历史数据文件中的表里的数据。用户可从此数据库中查询生产实时数据的历史样本值或历史插值数据。而对于关系数据库则是根据各个实体之间的关系来设计数据表的。
2、系统高可靠设计
由于实时数据库记录的是和生产相关的数据,并且和时间相关,所以要求其必须能够长时间稳定运行,否则就会导致数据的丢失。目前一些实时数据库已经具有缓存数据的功能,当数据采集机器和实时数据库服务器之间通信出现故障时,可以把采集到的数据缓存到本地,当通信恢复正常后,把缓存的数据写入到实时数据库服务器中,另外两台实时数据库可以设置为冗余来提高可靠性。
而对于关系数据库来说,如果在关键业务,比如电信金融等,多数采用计算机集群形式来提高可靠性的设计。
3、数据来源
针对不同的类型的企业,实时数据库的数据的来源也不尽相同。主要来源有DCS控制系统,数据采集系统(SCADA),手工录入,关系数据库等。这些数据的主要特点就是都和生产直接相关,并且大多数的数据都是数值型数据,比如设备或介质的压力、温度、流量、位置、电压、电流、功率等。
关系数据库的来源更加多样。除了记录数值数据外,也记录描述性的数据,如姓名家庭住址等信息。
一般来说,实时数据库的数据来源一般是设备。而关系数据库的数据来源一般是来自于人的录入。
4、数据压缩
实时数据库因为存储的数据量非常大,比如要采集10000点的数据,每5秒采集一个数据,假设采集的都是32位浮点数,那么一天的数据量(仅数值属性不含时间属性)就是10000*(60/5)*60*24*4/1024=675000K,大约675M的数据。由此可见数据量的庞大,而且占用磁盘的空间大,对数据的访问速度也会降低。因此各个数据库厂家大都开发出自己的数据压缩算法,对数据进行压缩。常用的压缩算法可以分为三类:无损压缩,有损压缩,二级压缩。其中,无损压缩一般以通用压缩理论为基础,采取huffman等经典的压缩算法;而有损压缩则更多地考虑了工业实时数据的特征,而采取的一些特殊舍点算法;二级压缩技术,则是同时利用了这两种数据压缩技术。实时数据库的无损压缩以通用压缩理论为基础。目前比较著名的有损压缩算法,有常用的旋转门压缩算法,以及一些变通压缩算法(如在旋转门算法基础上改用二次均方差作为偏差比较,以提高数据还原精度),这些算法原理都比较简单。
关系型数据库则不会对数据进行压缩,只会对库体进行常规文件压缩。
5、数据的访问方式
实时数据库一般有以下3种方式访问数据
1) 使用自己的API,这种方式效率最高也最简单。
2) 使用ODBC或者OLEDB,这种方式不大常用,主要是给那些刚刚接触实时数据库或者以前对关系型数据库了解的用户使用的。
3) 使用Opc方式访问数据。Opc是一种广泛使用的工业标准,虽然效率不高,但是目前很多的厂家都支持。
关系数据库访问数据的方式是通过结构化查询语言(SQL)来访问的。
6、应用领域
过程控制系统是实时数据库系统最重要的应用领域之一.在生产装置运行过程中,实时数据库实时记录采集装置的运行数据,随时掌握装置的运行状况,并通过对生产过程的关键数据的监控和分析,对出现的问题及时处理,使生产的运行状态保持安全平稳,当生产状况发生变化时可以及时作出反映;通过对影响原材料用量的过程监视以及对水电汽的用量的监测分析,可以及时发现问题,特别对生产调度人员来说,可以及时地平衡物料供应,减少单耗,提高经济效益。
而关系数据库的应用则广泛的多,在各行各业基本都可以见到。大多数应用在管理方面,比如管理信息系统(MIS),客户关系管理(CRM)等。
7、两种数据库之间的集成趋势
虽然实时数据库和关系数据库有着很多的不同,但是目前实时数据库和关系数据库集成的趋势越来越明显。将生产管理信息系统中使用的关系数据库和实时数据库集成到一起,可以同时满足控制和管理的要求,真正成为管理控制一体化的平台。例如,目前大多行业均利用实时数据库与关系数据库作为基础数据库软件构建监控中心及数据中心的基础数据库。其中实时数据库处理并存储生产实时数据,关系数据库处理并存储业务关系数据。