随着业务的不断发展,以及信息技术的不断进步,摆在信息部门人员面前的一个永恒的主题就是,怎么样建设一个更加符合业务需求,更能引导业务发展的企业信息系统,这就需要我们的数据模型具备更强大的扩展能力。
那 么怎么样才能让我们的数据模型具有更加强大的生命力呢?更能适应灵活多变的业务的需求的同时,还能够针对未来业务的发展留下一定的扩展空间呢?这就是我们 本文需要讨论的重点。需要指出的是,我们这里探讨的数据建模的方法目前在DB2V9的数据库上能够具体实现,针对其他数据库的数据模型的扩展性考虑,可能 还需要根据其他数据库的具体技术特点去具体实现。
首先我们需要了解一下数据模型与业务系统的关系。我们这里可以将业务和数据模型整个分为三个层次:
- 业务层面:这个层次是我们客观世界中真实的业务层面的问题。
- 数据模型层面:这个层次是将真实的业务层面的个体抽象成抽象的,独立的实体和概念。
- 业务模板层面:这个层次介于业务层面和业务层面之间,通过该层面来实现数据模型层对业务层面的具体问题的映射。
我们将这种关系简单的用下图描述成下图的三个层次:
图 1. 数据和业务关系图

通 过上图,我们了解到,数据模型层其实是一个个抽象的,独立的概念和实体。这里实体与实体之间发生的关系,我们可以视为不同的实体组合,组成了不同的业务模 板。而业务层的不同的具体业务问题,可以对应成一个个的业务模板。因此,在这三个层次中,数据模型层的一个个实体就是整个数据模型的基础,通过实体间不同 组合生成的业务模板,可以解决具体的业务中的相应问题。
理论上来说,如果一个完美的数据模型应该包含了所有的 业务问题,所有的业务层的业务问题,都能通过相应的业务模板层找到相对应的业务模板。但是,在实际的数据建模的过程中,由于各种条件的限制,对业务理解的 不够深入,以及业务本身的发展,往往会导致数据模型随着时间的推移也需要做出符合业务需要的修改。那么,在数据建模的过程中,必须要充分考虑到未来数据模 型的扩展可能。
![]() ![]() |
![]()
|
如上面所说,我们的数据模型从诞生那一刻起,就面临着各种各样的挑战。由于方法论的不同,导致了在数据建模的过程中,各种流派对同一客观事物的不同抽象和划分的方法,从而最终生成各自的数据模型。因此,从这个意义上说,每个数据模型,从开始就面临着各种各样的挑战。
除了上述方法论上方面的挑战之外,在具体的技术层面,数据模型同样也面临着挑战,而这一部分将是本文需要着重介绍的一部分,总的说来,我归纳为以下两个方面:
- 业务发展的挑战
- 业务整合的挑战
下面,我们将就这两个方面作详细的介绍。
运动是绝对的,静止是相对的。从这个意义上说,业务的发展是一个不可避免的现实。发展,不可避免带来一定业务过程的变化,以及一些业务主体的变更,而这些,不可避免的需要反映到我们的数据模型中来。
一般来说,业务的发展包含两个层面:
本文转自:IBM developerWorks 中国