什么是实时数据库?
实时数据库是数据库系统发展的一个分支,它适用于处理不断更新的快速变化的数据及具有时间 限制的事务处理。实时数据库技术是实时系统和数据库技术相结合的产物,研究人员希望利用数据库 技术来解决实时系统中的数据管理问题,同时利用实时技术为实时数据库
实时数据库是数据库系统发展的一个分支,它适用于处理不断更新的快速变化的数据及具有时间 限制的事务处理。实时数据库技术是实时系统和数据库技术相结合的产物,研究人员希望利用数据库 技术来解决实时系统中的数据管理问题,同时利用实时技术为实时数据库提供时间驱动调度和资源分 配算法。然而,实时数据库并非是两者在概念、结构和方法上的简单集成。需要针对不同的应用需求 和应用特点,对实时数据模型、实时事务调度与资源分配策略、实时数据查询语言、实时数据通信等 大量问题作深入的理论研究。实时数据库系统的主要研究内容包括:
实时数据库模型
实时事务调度:包括并发控制、冲突解决、死锁等内容
容错性与错误恢复
访问准入控制
内存组织与管理
I/O与磁盘调度
主内存数据库系统
不精确计算问题
放松的可串行化问题
实时SQL
实时事务的可预测性
研究现状与发展实时数据库系统最早出现在1988年3月的ACM SIGMOD Record的一期专刊中。随后,一个成熟的研究群体逐渐出现,这标志着实时领域与数据库领域的融合,标志着实时数据库这个新兴研究领域的确立。此后,出现了大批有关实时数据库方面的论文和原型系统。人机交互技术与智能信息处理实验室实时数据库小组一直致力于实时系统、实时智能、实时数据库系统及相关技术的研究与开发,并取得了一定的成绩。
实时数据库RTDB(Real-Time Data Base)是数据和事务都有定时特性或显示的定时限制的数据库。RTDB的本质特征就是定时限制,定时限制可以归纳为两类:一类是与事务相联的定时限制,典型的就是“截止时间”;另一类为与数据相联的“时间一致性”。时间一致性则是作为过去的限制的一个时间窗口,它是由于要求数据库中数据的状态与外部环境中对应实体的实际状态要随时一致,以及由事务存取的各数据状态在时间上要一致而引起的。实时数据库是一个新的数据库研究领域,它在概念、方法和技术上都与传统的数据库有很大的不同,其核心问题是事物处理既要确保数据的一致性,又要保证事物的正确性,而它们都与定时限制相关联。
实时数据库子系统是SCADA系统的核心之一。实时数据库子系统设计包含实时数据库结构设计和实时数据库管理程序设计两部分组成,实时数据库结构设计主要根据SCADA系统的特点和要求设计实时数据库的结构。管理程序负责实时数据库的产生,根据现场修改内容,处理其它任务对实时数据库的实时请求以及报警和辅助遥控操作等对外界环境的响应。
[实时数据库比较]
关系数据库使用得比较广,为大部分人所熟悉,以至于谈到数据库,缺省情况下指的就是关系数据库,但实际上还有一些其他种类的数据库在生产生活中被广泛使用,比如我将谈到的实时数据库,它们用在要求非常严格、数据量非常大的生产工控中。
当今国际国内广泛使用的实时数据库只有三个产品:
a. 美国OSI公司的 PI ( Plant Information System )
b. 美国HONEYWELL公司的 PHD ( Process History Database )
c. 美国AspenTech公司的 IP21 ( InfoPlus .21 )
这些实时数据库的价格是非常昂贵的,以百万人民币为单位,但是它们不全是以套也不全是以点(可容纳的数据点)为单位来出售,所以无法数字化的比较其价格。因为工作的关系,我有幸能接触到这三种数据库,在此对它们做一个比较。
1. PI
采用了旋转门压缩专利技术和独到的二次过滤技术,使进入到PI数据库的数据经过了最有效的压缩,极大地节省了硬盘空间。据计算,每秒1万点数据存储一年,仅需要4G的空间,即一只普通硬盘也可存贮五到十年的数据。是效率最高,使用最简单,使用最广泛的实时数据库,因为其杰出的性能,PI已经多次提高了它的价格,确实不坠OSI的名号,而且PI在其文档中公开了她的各种算法,比如上面提到的旋转门压缩和二次过滤。
2. PHD
HONEYWELL占据了DCS大部分份额,因此PHD使用得也比较广泛,PHD在内部其实使用了Oracle关系数据库,因此购买PHD就必须先购买Oracle。因为 PHD内部使用Oracle简化了开发量 和 Oracle的性能限制比较严重,所以 PHD 的价格在这三种数据库最低,算不上正宗的实时数据库。但不要以为PHD内部使用Oracle就认为Oracle很强,如果直接使用Oracle,只要两三秒的时间,巨大的数据量就会令它崩溃。HONEYWELL其志不在实时数据库这一块,而是她的DCS。
3. IP21
IP21基本上还未进入中国市场,它正在通过先期赠送的办法打开中国市场。
在评价IP21之前,我需要先申明“我对IP21的看法只是个人看法,不是任何产品的托儿”。
IP21是我见过的最差的关系数据库,也是我见过的最差的一个软件,
a. 其软件的安装程序的运行需要一个硬狗,这种小气的做法和PI公开算法的做法没法比,问题还在于它的这条狗经常会死翘翘。
b. 其软件的安装即使是其公司的专业员工也不能保证安装成功,10台计算机让它的专业员工来安装大约只能成功一两台。
c. 其软件的安装盘只有一张,但这一张盘需要安装四个小时以上,中途不停地看到在安装某个版本的Java解释器,其后它们又被删除。
d. 没有实现真正的自动安装,在安装之前它们的工程师需要在计算机上修改不少的文件。
e. 安装中途如果出现错误是不立即报告的,需要四个小时之后安装完毕才能看到安装失败的字样,但也仅仅只能知道安装失败,不知道在哪一步安装失败。
f. 管理维护软件非常的复杂,除非有人愿意牺牲以后的前途来学习它,否则就只能让它自己的员工来鼓弄。
g. 运行效率非常低下,而且占用系统资源非常严重,一台服务器只能给一个IP21使用。
实时数据库的访问方式
a. 使用自己的API,这种方式效率最高,其实也最简单。
b. 使用ODBC,这种方式其实没有多大作用,因为实时数据库不同于关系数据库,ODBC没有太大的用武之地,所以在使用ODBC时有非常多的限制,大部分功能并不支持ODBC方式。
c. 使用OPC方式(OLE for Process Control)
因为太多的数据库和DCS使用自己的API方式存取数据,无法做到算法的通用,因为提出了一个标准的存取接口,这就是OPC,如今有超过两百家产商加入到OPC组织中,声势浩大,包括臭名昭著的M$,之所以讲M$臭名昭著是因为M$强制性的在这个标准的存取接口中使用了COM/DCOM,令OPC只能在windows下使用,且效率(因为是工控场合,所以效率非常重要)低下。M$在OPC组织中非常的积极,所以现在的OPC基本上也脱离了当初制定的目标,令很多产商不满,包括OSI在内,虽然OSI PI提供OPC接口,但OSI不建议客户使用它,也不对它进行技术支持。在OPC中的COM还有另外一个大问题,因为COM规定必须支持先前制定的接口,而工控要求又非常严格,开发测试的费用和时间都非常高,没有任何厂商愿意支持先前的COM接口,因此没有真正符合COM标准的OPC。
以前都是看到OPC的好处,终于看到有人说OPC的不好了。