主题数据库这个名字以前看过,但熟视无睹,一味死记硬背,也缺乏好奇心,不断吞食苦果。
主题数据库,顾名思义,这种数据库是面向主题的,根据不同的业务主题来进行组织和存储。例如,企业中需要建立的典型的主题数据库有:产品、客户、零部件、供应商、订货、员工、文件资料、工程规范等。
与应用数据库只为一个应用系统服务,或者说根本就是隶属于特定的应用系统不同,主题数据库是为了信息共享。意思就是说,这个数据库是公共数据库,作为一种基础的数据资源而存在,可以给多个应用系统使用。这种数据资源,根据不同的业务主题分门别类,井井有条,一切都为了方便使用。
主题数据库有一些特点。其中之一是表符合第三范式(3NF),规范化程度还是比较高的。这意味着主题数据库的表中没有冗余列、派生列、计算列这些东东,消除了非主属性对主属性的传递依赖。
显然,建立主题数据库,是为了资源共享,提高开发效率。这让人很自然联想到软件产品线。软件产品线是一个软件产品集合,它们共享一个公共的、可管理的特征集,这个特征集能满足选定的市场或任务领域的特定要求。这些软件产品遵循一个预描述的方式,基于公共的核心资源(core assets)进行开发。简单来说,软件产品线的产品,是按照相同的规格,基于相同的公共资源打造出来的。就好像工厂的一条生产线,设定参数,提供材料,就能源源不断地生产出符合规格的产品来。这与重新开发,从无到有地开发,复制粘贴或者调用一些基础的类库这种小打小闹式的复用有所区别,可以说软件产品线是大规模、流水线地复用,是最高级别的复用。
软件产品线的核心资源包括:
1)产品线体系结构(我猜应该有总体框架、规格说明、约束条件等)
2)构建好的软件构件
3)这些构件相关的测试计划、测试实例,设计文档,需求说明书,领域模型,领域范围的定义
4)还有业界符合标准的成熟软硬件产品(COTS构件)
COTS即Commercial Off-The-Shelf 翻译为“商用现成品或技术”或者“商用货架产品”,指可以采购到的具有开放式标准定义的接口的软件或硬件产品,可以节省成本和时间。
加强资源共享,提高开发效率,降低开发成本,这都是主题数据库,软件产品线的意义所在。
参考文章:
软件产品线