http://blog.csdn.net/lfsf802/article/details/12891551
做开发工作,数据库是离不开的,而且Oracle、SQLServer、MySQL等关系型数据库已经耳熟能详了,另外一些非关系型数据库redis、MongoDB数据库等也会经常会用到,但是我最近一直接触的是实时数据库。
在之前都没有听说过这种数据库系统,目前就职的公司就是开发这种数据库产品的,而且开发出来的版本已经比较成熟了。公司用的是C++语言进行开发的。
而自己本身是JAVA开发出身,所以不能参与这块产品的研发,但是也会用到公司的这套数据库系统做为底层数据存储和支持。所以也对这种数据库学习了一下。
在生活中,什么样的天气穿什么样的衣服,什么样的人用什么样的方式来对待都是常识,在数据库领域其实也是这样的,在特定的应用领域中,关系库不可能一扫千军,它也是有它不足的地方。所以实时库的出现也是这样一种情况,解决特定的应用领域。
其实不光是实时数据库这样,嵌入式数据库、文档型数据库都是如此。
实时数据库应用领域主要是工业监控领域,例如电力、石化、钢铁、冶金、造纸、交通控制等领域的监控。
这些领域有什么样的特点?为什么不用关系数据库而用实时数据库呢?
其实主要有这样的几点:
1. 监测点数量多
2. 存储量大
3. 时效性强
基于上面的三个特点可以知道工业监控领域是需要插入速度快、易于维护、满足实时性。
关系型数据库在这几方面显得有点不足,首先关系型数据库着手于数据的完整性和一致性,所以事务是特别需要处理的,这就导致了数据库插入速度慢;而且在数据库面对海量数据备份是一件非常耗时的操作;并且对处理定时限制没有严格的要求,这就导致时效性方面关系库显得捉襟见肘。
但是实时库在这几方面就显得相当的有优势。
另外实时库在应对实时性的时候采用的常驻内存保证读取速度,这时如果海量数据都在内存中有时候会不太现实,所以实时库提供的一种核心技术就是压缩,压缩好坏决定实时库好坏的关键因素,有了压缩技术就让实时性得到了更加好的体现。
所以实时数据库是一种特殊类型的数据库系统,但它有许多与关系型数据库存在差异。只有理解了这些相同之处和差异部分,才能对实时数据库有更深地了解。特定情况下选择适合的才是解决问题的根本。