配置管理数据库元数据文件
在前两年的工作中主要参与了配置管理数据库(CMDB)系统的设计与开发,在设计与开发过程中遇到了不少数据相关的问题,正好借此机会说明一下。
配置管理项以及实体的问题。配置管理系统中不同的配置项拥有不同的配置属性,不同的配置实体可以从属于某一个属性。如果一概而论那么所有的配置项将会构成一个大而全的表,该表在开发过程中会带来很大的冗余。所以必须在表设计阶段进行分化,分化方式经历了三个阶段,分别是表继承、属性图谱、配置分配三个阶段。
表继承表示在使用过程中,不同类型的配置项之间可能沿用之前父类中继承的属性,从而使子配置项可以包含父配置项的内容与信息,另外,表之间通过一个共同主键进行维护,后来发现该配置属性在进行数据处理的时候在表扩展方面拥有不少的弊端,任何一次属性的修改都可能会导致表结构发生变化。
在此基础上,我们设计除了之前固定属性外的一个扩展属性,该属性可以动态加入某配置项中,再进行深入考虑时,就衍化成了配置属性图谱的结构,属性图谱构建了一个统一的属性集合,并且在属性集合上进行划分,从而规定属性属于一个或多个类,从而形成了属性与配置类型之间的关联关系。然而该方法依然存在例如配置复杂,以及约束关系不强,属性无法检验等问题。
由此,我们在此基础上构建了配置分配结构。配置分配结构在技术上与属性图谱基本相同,最大的区别是引入了配置类别,配置模板,配置规则与配置约束四个部分。配置类别用于标识配置项类型之间的继承或扩展关系,从而有效的保证了不同类型之间的属性传递。配置模板,通过配置项上设计模版类型,其他类型引用模板属性从而一定程度上解决同一类型不同配置项之间属性的冗余存储的问题,配置规则用于构建配置类别与配置属性之间的对应关系,从而可以选择那些配置类别拥有那些配置属性。配置约束主要用于配置属性的检验工作,从而确定类型是否合法,是否满足某种逻辑约束,例如电流值必须大于零等约束条件。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。