管理树是一种以树状分层结构进行组织的管理结构。树型结构是一种结点之间有分支.并具有层次关系的结构,它非常类似于自然界中的树。是一种
非线性的
数据结构。树型结构在客观世界中大量存在,例如家谱、行政组织机构都可用树形象地表示。树在
计算机领域中也有广泛的应用,例如
编译程序中,用树表示
源程序的语法结构;在
数据库系统中,用树组织信息;在分析算法的行为时,用树来描述其执行过程。
在
管理信息系统中表示管理树结构的一般来说有三种方法:字段表示法、代码表示法和静态指针表示法。
字段表示法就是把结点在树中的层次关系用若干字段表示出来。管理信息系统基本上是关系
数据库,关系型
数据库中每条记录都存储了1个
结点的信息。假设需要N个字段来存储结点的信息,若树的高度为M,这样就为数据库再增设M一1个字段.从树根开始,每层对应1个新增的字段。这样。数据库的每条记录都包含N+M一1个字段,除了存储结点自身的信息外,还存储了1条从根结点到该结点的路径,这条路径清楚地表示出结点在树中的层次关系。
代码表示法就是把结点在树中的层次关系用1个代码来表示。在
数据库中,除了用于存储结点自身信息的N个字段外,只需增设1个字段来存储树的层次信息。这个字段就是代码段,代码的宽度不小于树的层次数。从树根开始,每层对应着
代码中的1位,即根结点对应代码第1位,……,第N层的结点对应代码第N位。
静态指针表示法就是利用指针来指示结点在树中的层次关系。许多高级语言都提供“
指针”这种数据类型,而数据库却没提供,我们可以在
数据库中引用“指针”这一概念。假设有N个字段存储结点自身的信息,再增设1个字段,作为指针字段。该字段是数值型字段,起指针的作用,故称静态指针,指示结点的双亲在数据库中的存储位置。由于数据库中每1条记录都对应有1个记录号,存储位置可由记录号来表示。
通过以上比较。字段表示法描述树中层次关系上胜过代码表示法和静态指针法。但随之而来的却是大量的冗余。静态指针表示法很好地解决了
冗余的问题。但在描述树中层次关系上不如字段表示法直观。代码表示法无论是冗余度上还是直观性上处于中立。
树型结构
组件的设计有三种方案:一是采用进程外点的编号;完整路径标题;完整路径编号等其它信息。服务器组件
设计方案,此方案设计是利用已经设计好的数据服务层组件实现树型结构的管理。二是重新设计数据服务层并将树型结构作为一种特例,单独设计数据服务层时.将树型结构直接设计在数据服务层。三是采用控件的方式设计树型结构管理组件。
如果采用第一种方案,则在树型
数据管理用户接口组件与数据库系统之间多了一层,这样运行效率会低一些。如果采用第三种方案,一般对于每一个实例均需要单独设计一个用户界面.这样代码的可重用性不是很高。这里采用第二种方案,用户组件采用进程外
服务器的模式提供给
应用程序。这样做的好处:一是可以完全与应用程序设计分割开,有利于系统的调试。二是应用程序不需要对每个树型结构的数据设计.只需要在使用此类应用时调用进程外服务器。三是可将此组件不同应用模式的具体实现封装在组件内,保留一个接口给用户使用此组件时进行模式的设置。但这样以来增加了组件设计的复杂性。
1)反映了结点的层次关系:管理树可以把树看成是满足一定条件的结点的有穷
集合,结点之间存在层次关系或主从关系。有两种层次关系:包含关系和
继承关系。典型的包含关系如业务单据树。在实际业务中,用户可能会对业务单据进行一定的改动,例如增加一个
数据项(称为指标)。这时.系统应该尽量做到不改动应用程序就满
足用户的改动需求。为此,在系统数据库中记录了业务单据表的
元数据信息,同时,使用控制
数据库,将改动后的单据显示给用户。
2)结点的分类结构:树的组织是按照一定标准的。同一业务按照不同的分类标准有不同的树型结构。以水泥生产企业项目为例,从关心业务流程的角度出发.设备管理功能树的第1层子结点可以分为采购、合同、入库、