数据模型是指用实体、属性、实体之间的关系对业务概念和逻辑规则进行统一的定义,命名和编码,主要描述企业的信息需求和业务规则,是业务人员和开发人员沟通的语言,是数据仓库架构设计工作开始的第一步。正确的数据模型是用户需求的集中体现,是商业智能项目成功与否最重要的因素之一。数据模型可以分为概念模型、逻辑模型、物理模型,本节进行详细的介绍。
3.6.1 概念模型
从定义上来说,概念模型是最高层次的数据模型,反映了数据仓库的主要主题和重要业务之间的关系。一般来说,在进行数据仓库系统设计和开发之前,设计开发人员和业务人员已经对概念模型达成了共识,因为概念模型反映的是核心的业务问题。
概念模型的设计步骤如下:
1)从业务需求中提取重要的业务数据主题,包括对业务数据主题的详细解释,见表3-1。
表3-1 数据主题及其解释
2)在业务数据主题的基础上进行数据主题域的划分,包括对数据主题域的详细解释,如图3-15所示。
图3-15 人员与组织主题域包括的信息及解释
a) 人员与组织主题域包括的信息 b) 对人员与组织主题域的详细解释
3)划分主题域概念模型:根据数据主题域的划分,细化内部的组织结构和业务关系,如图3-16所示。
总结:概念模型建模的流程大致可以分成如下几个部分:通过对业务系统的详细说明,进行数据的梳理,列出数据主题详细的清单,并对每个数据主题都作出详细的解释,然后经过归纳、分类,整理成各个数据主题域,列出每个数据主题域包含哪些部分,并对每个数据主题域作出详细解释,最后划分成主题域概念模型,如图3-17所示。
图3-16 划分主题域概念模型
图3-17 概念模型设计流程图
3.6.2 逻辑模型
从定义上讲,逻辑模型是以概念模型为基础,对概念模型的进一步细化、分解。逻辑模型通过实体和实体之间的关系描述业务的需求和系统实现的技术领域,是业务需求人员和技术人员沟通的桥梁和平台。概念模型和逻辑模型的关系如图3-18所示。
(1)逻辑模型的设计
逻辑模型的设计是数据仓库实施中最重要的一步,因为它直接反映了业务部门的实际需求和业务规则,同时对物理模型的设计和实现具有指导作用。它的特点就是通过实体和实体之间的关系勾勒出整个企业的数据蓝图和规划。逻辑模型一般遵循第三范式,与概念模型不同,它主要关注细节性的业务规则,同时需要解决每个主题域包含哪些概念范畴和跨主题域的继承和共享的问题。
图3-18 概念模型和逻辑模型的关系
(2)逻辑模型设计的一般步骤
概念模型的主题域一般是从企业现有的信息系统和行业自身业务活动汇总得来的业务模型主题域。而逻辑模型除了在概念模型的基础上丰富和细化主题域,并且确定每个主题域包含哪些主题外,还需要以下几个步骤。
1)分析需求,列出需要分析的主题,需求目标、维度指标、维度层次、分析的指标、分析的方法、数据的来源、关注的对象等。例如,所要分析的主题是电力营销业务分析处理情况,见表3-2。
表3-2 电力营销业务分析处理情况
2)选择用户感兴趣的数据,通过业务需求将需要分析的指标分离抽取出来,转化成逻辑模型需要的实体。例如,从用户数量、用电储存容量等分析指标中分离出用户实体和用电量实体。
3)在实体中需要增加时间戳属性,因为实体中需要保存各个阶段的历史数据。通常情况下,如果实体为统一编码,则不需要增加时间戳属性。
4)需要考虑粒度层次的划分。数据仓库的粒度层次划分直接影响了数据仓库模型的设计,通常细粒度的数据模型直接从企业模型选取实体作为逻辑模型的实体,而粗粒度的数据模型需要经过汇总计算得到相应的实体。粒度决定了企业数据仓库的实现方式、性能、灵活性和数据仓库的数据量。
5)在粒度层次划分的基础上,还需要进行关系模式的定义。关系模式一般采取第三范式的特点进行定义,对当前的主题进行关系模式的划分,形成各个实体、实体属性、实体之间的关系等内容。同时在逻辑模型框架的基础上对实体的中英文名称、属性、属性的值域进行明确、完善和细化,真实反映业务逻辑关系和业务规则。
逻辑模型的设计流程图如图3-19所示。
图3-19 逻辑模型的设计流程图
3.6.3 物理模型
(1)物理模型设计阶段
在逻辑模型的基础上,为应用生产环境选取一个合适的物理结构的过程,包括合适的存储结构和存储方法,称作物理模型的设计过程。
逻辑模型转变为物理模型包括以下几个步骤:
1)实体名(Entity)转变为表名(Table)。
2)属性名(Attribute)转换为列名(Column),确定列的属性(Property)。
(2)实现业务规则
物理模型必须对列的属性进行明确的定义,包括:列名、数据类型(与特定数据库管理系统有关)、长度、能否为空值、有效性规则、默认值等,如图3-20所示。
图3-20 数据仓库的物理模型
物理模型确定以后,可以进一步确定数据的存放位置和存储空间的分配,最后生成定义数据库的SQL命令。
概念模型、逻辑模型和物理模型的区别如图3-21所示。
图3-21 概念模型、逻辑模型和物理模型的区别
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/7225.html