用了几年BW了,时不时会想,BW为什么要这么设计啊,有时候用的可真麻烦,最近研究了下两种常见的建模理论,有了自己的一点感悟,我们从头开始,有很多资料是从大佬那里摘录的,就不一一列举了
一、范式建模的概念
概念
Inmon 3NF 建模方式是逆软件开发流程的。即:业务数据→数据仓库→分析需求,是站在企业角度面向主题的抽象。这种建模的方式主要难在:
(1.)熟悉各个业务系统的底层数据表结构(2.)熟悉业务模式
该方法主要由 Inmon 所提倡,从企业高度设计的一个3NF模型,用实体关系ER模型来描述企业业务,基本满足3NF理论。为数据分析决策服务,但不能直接用于分析决策 主要解决关系型数据库的数据存储,利用的一种技术层面上的方法。在关系型数据库中的建模方法,大部分采用的是三范式建模法。
数据源:操作型或事务型系统的数据源,通过ETL抽取转换和加载到数据仓库的ODS层, 然后通过ODS的数据建设原子数据的数据仓库EDW,EDW不是多维格式的,不方便上层应用做数据分析。
优势:易于维护,高度集成;
劣势:结构死板,部署周期较长
1NF-第一范式
属性不可再分,即表中的每个列都不可以再进行拆分。
如下学生信息表(student):id、name(姓名)、sex_code(性别代号)、sex_desc(性别描述)、contact(联系方式),primary key(id)
2NF-第二范式
二、维度建模
其最简单的描述就是,按照事实表,维度表来构建数据仓库,数据集市。这种方法的最被人广泛知晓的名字就是星型模式(Star-schema)
例如,销售信息可以创建为一个模型,库存可以创建为另一个模型,而客户帐户也可以创建为另一个模型。每个模型捕获事实数据表中的事实,以及那些事实在链接到事实数据表的维度表中的特性。由这些排列产生的架构称为星型模式或雪花模式,已被证实在数据仓库设计中很有效
三、BW中的范式建模和维度建模