日志档案

发表于 2007-11-26 9:42:56

5

标签: 实时数据库

实时数据库的数据结构

实时数据库的数据结构
国内外关于实时数据库的文献很少讨论实时数据库的数据结构或实时数据库的数据库结构问题,而本人则认为这恰恰是实时数据库最根本最核心的技术问题。实时数据库是存放实时数据的,而实时数据是从生产现场来的,它们有自己的数据结构。实时数据库的数据结构必须适应生产现场的实时数据的结构。随便拿来一个实时数据库就往中国企业上套用,笔者认为是行不通的,而且前车之辙也不少见。

 1.中国石化企业生产数据的特点
 中国石化企业的生产组织是一个多层次的结构,以中国石油为例:
 中国石油──石化公司──石化工厂──石化车间(装置)──生产数据(位号)
一般一套装置一套DCS,DCS以下才有生产数据,以数据位号表示一个生产数据。这样从中国石油总公司到生产数据就有5级;如果只考虑石化公司这一级,生产数据有4级的结构。中国石化企业在定义装置数据位号时一般是不会考虑其它装置的位号的,例如某温度TI1101,几乎所有的装置都可能有这样的数据位号。所以要查询数据“TI1101”必须给出石化公司──石化工厂──石化车间(装置)──TI1101这样四个坐标,不管是实时数据还是历史数据都应该是如此。
 很遗憾,有的进口实时数据库没有这样的结构。

 2.NSIS实时数据库的树状层次结构
 为了适应中国石化企业生产数据的特点,NSIS实时数据库从90年代设计阶段就一直采用了符合中国国情的多层次的结构,或者说是一个多维的树状结构。NSIS实时数据库逻辑上是四维或五维坐标的结构,它自然地适应了中国石化企业的生产数据结构;NSIS实时数据库在物理上是基于“石化工厂”这一级的,即“石化公司”下属的每个“石化工厂”有一套独立完整的实时数据库和实时信息系统,称为“厂级系统”。多个分布在石化公司的企业网上的“厂级实时数据库”加上“公司级实时数据库”而构成逻辑上的完整的分布式“石化公司”级实时信息系统。这样的结构是符合中国石化企业生产数据的特点的,并且在抚顺石油化工公司成功运行。
 按照这一模式,我们完全可以构建整个中国石油总公司以至全中国的实时数据库。

 3.实时数据库的树状层次结构的优点
 ① 真实地反映中国石化企业生产数据;
 ② 所有数据可以保留原有位号,不必重新定义;
 ③ 便于生产数据的分组更新和检索;
 ④ 构建多级实时信息系统;
 ⑤ 更新和检索速度级快,与OPC成组读取数据相结合,效率极高。

 4.某些国外实时数据库数据结构的“死穴”
 某些进口的所谓实时数据库不过是原来的DCS软件或仿真软件稍作修改而成,它们往往带有DCS的烙印,也无所谓数据结构,所有的数据只有一个坐标:位号。所以套用这样的所谓实时数据库来存储中国石化企业的数据就会带来极大的麻烦。以位号TI1101为例,蒸馏装置重新编为ZL_TI1101,催化装置重新编为CH_TI1101,实在是可笑之极!在数据组态例如图形组态时往往要从几千甚至几万个位号中选取一个。这样不分层次的所谓实数据库在更新和检索时效率极低,尤其在数据多时,其系统响应周期甚至长达一分钟之久!
 没有层次结构是这些所谓实时数据库的“死穴”!就这样的破软件也能卖到数百万元一套,真是欺负我中国无人!
 这些所谓实数据库还有其它致命的弱点,我准备另文介绍。
黄嘉珀
2007-11-25 20:00

 

系统分类: 工控软件   |   用户分类: 实时数据库   |   来源: 原创

    阅读(926)    回复(8)  

最新评论

  • linkman

    2007-11-26 10:36:48

    欢迎,我就是你骂的那个linkman

  • linkman

    2007-11-26 10:40:16

    实时数据库的数据组织结构确实是广受批评的问题。解决这个问题的方法有两种,一种是在实时数据库内部解决,一种是在实时数据库的外部解决。nsis提出的解决方案就是在内部解决。而外部解决方案,我见到的最完善的解决方案是电力行业的通用信息模型(CIM)。

    实时数据库不在内部解决测点的层次关系,有一定的道理,如果不设计一套性能良好的测点表示方法,最后的结果可能是还不如不搞层次,包括用户使用逻辑、用户调用复杂度、性能等,这也是大部分实时数据库产品不先用层次结构的原因。

    但现在的局面有所改变,据我所知,目前内部支持层次数据结构的实时数据库越来越多了,包括我们的产品,包括一部分国外的产品,当然也包括nsis的产品。

    层次关系的测点系统有其优点,也有缺点,同样可以列出12345,另外,nsis的解决方案对非石化行业的应用逻辑,需要改动。

  • linkman

    2007-11-26 10:43:31

    另外,“死穴”二字,说得有些过了,没那么严重。

  • omega热电偶线

    2007-11-27 11:21:10

    精彩,期待下文。

  • yzdatou

    2007-12-8 7:51:07

    说的过于严重。

    我们系统用的标识编制方法是30年前小日本留下来的,如今我们用西门子的系统改造后依然保留了这个标识编制方法,全系统上万点的标签无一重复也不可能重复,因为标识的编制方法决定了其唯一性。

  • lxr12

    2007-12-11 16:55:38

    实时数据库不在内部解决测点的层次关系,有一定的道理,如果不设计一套性能良好的测点表示方法,最后的结果可能是还不如不搞层次,包括用户使用逻辑、用户调用复杂度、性能等

  • nsis

    2007-12-12 10:00:59

    自己补充一点:
    谈到实时数据库的数据层次结构,实际上很多DCS本身就是带层次结构的.
    例如西门子的PCS7的某位号TRC104,在DCS内部表示为S7$Program(2)/TRC104.PV_IN,这实际上已经是三个层次;
    FoxBoro的aw51系列的某位号TI_302,在DCS内部表示为TI313_334AIN:TI_302AIN.PNT,这实际上也是三个层次;
    三个层次分别是模块、内部位号和数据;
    横河的CS3000,同一个位号TI1101也有两个层次:

    TI1101.PV,TI1101.SV,TI1101.MV,TI1101.MODE,TI1101.ALAM,TI1101.SUM,TI1101.HH,TI1101.LL
    两个层次是:内部位号和数据;
    搞过DCS的网友都知道,所谓位号仅仅是给人看的,而真正表示数据的是DCS的内部位号,而DCS数据的存取均以内部位号为准,他们几乎都是有层次的数据结构。
    说“实时数据库不在内部解决测点的层次关系”是没有根据的。

  • takigen

    2008-5-28 22:28:31

    好文