范式建模法其实是我们在构建数据模型常用的一个方法
该方法主要由 Inmon 所提倡,从企业高度设计的一个3NF模型,用实体关系ER模型来描述企业业务,基本满足3NF理论。为数据分析决策服务,但不能直接用于分析决策
主要解决关系型数据库的数据存储,利用的一种技术层面上的方法。在关系型数据库中的建模方法,大部分采用的是三范式建模法
典型代表:Teradata金融行业的FS-LDM(Finacial Services Logical Data Model),10大主题
Inmon提出的集线器的自上而下(EDW-DM)的数据仓库架构:
数据源:操作型或事务型系统的数据源,
通过ETL抽取转换和加载到 数据仓库的ODS层,
然后通过ODS的数据建设原子数据的数据仓库EDW,EDW不是多维格式的,不方便上层应用做数据分析,所以需要通过汇总建设成多维格式的数据集市层。
优势:易于维护,高度集成;
劣势:结构死板,部署周期较长
在复合式的数据仓库架构中,操作型或事务型系统的数据源,通过ETL抽取转换和加载到数据仓库的ODS层,然后通过ODS的数据,利用范式建模方法,建设原子数据的数据仓库EDW,然后基于EDW,利用维度建模方法建设数据集市
Inmon最初的建模理论是通过构建一个符合三范式的集中式的数据中心DW层,此层次的表一般不对BI和应用开放,而是基于DW的数据构建数据集市DM层来对外服务。DM层的数据一般也采用范式建模,不过随后融入了维度建模的思想,把DM层建设成星型模型。但是并未提出使用一致性维度
范式建模采用的是3范式,大多数线上业务数据库遵循着3范式的规范,范式建模是推荐贴源(ODS)的,简单的业务情况不需要中间层,直接使用ODS层
(中间层含义:把范式建模利用在ODS和DW层之间的中间层数据模型)
范式是数据库逻辑模型设计的基本理论,一个关系模型可以从第一范式到第五范式进行无损分解,
这个过程也可称为规范化。在数据仓库的模型设计中目前一般采用第三范式,它有着严格的数学
定义。从其表达的含义来看,一个符合第三范式的关系必须具有以下三个条件:
(参见:https://blog.csdn.net/yaoyelinger0912/article/details/95500053)
根据 Inmon 的观点,数据仓库模型的建设方法和业务系统的企业数据模型类似。在业务系统中,企业数据模型决定了数据的来源,而企业数据模型也分为两个层次,即主题域模 型和逻辑模型。同样,主题域模型可以看成是业务模型的概念模型,而逻辑模型则是域模型在关系型数据库上的实例化
从业务数据模型转向数据仓库模型时,同样也需要有数据仓库的域模型,即概念模型,同时也存在域模型的逻辑模型
业务模型中的数据模型和数据仓库的模型稍微有一些不同。主要区别在于:
1.数据仓库的域模型应该包含企业数据模型得域模型之间的关系,以及各主题域定义。
数据仓库的域模型的概念应该比业务系统的主题域模型范围更加广
2.在数据仓库的逻辑模型需要从业务系统的数据模型中的逻辑模型中抽象实体,实体的属性,实体的子类,以及实体的关系等
如下情况建议通过范式建模来重新组织数据:
1.业务数据库的表没有遵循3范式
2.有复杂的字段(如json字段)需要解析
3.业务维度比较复杂,很难直接关联取出所需的数据,如业务X营销体系=n
范式建模的作用:
1.保证数据的一致性(因为采用完全不冗余的方式,避免了数据的不一致,比如出现 广东 厦门的这样不一致的记录)
2.解耦方便维护,提高运行效率
3.针对复杂字段的解析和复杂业务的分解,有利于DW层的直接使用