最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
开启左侧

数仓范式建模和维度建模

[复制链接]
发表于 2021-10-29 20:44:06 | 显示全部楼层 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
一、数仓建模分为传统型的范式建模和新型维度建模:
  • 范式建模
    • Inmon提出的集线器的自上而下(EDW-DM)的数据仓库架构。操作型或事务型系统的数据源,通过ETL抽取转换和加载到数据仓库的ODS层,然后通过ODS的数据建设原子数据的数据仓库EDW,EDW不是多维格式的,不方便上层应用做数据分析,所以需要通过汇总建设成多维格式的数据集市层。优势:易于维护,高度集成;劣势:结构死板,部署周期较长
    • 范式建模应用在EDW层
    • 一个符合第三范式的关系必须具有以下三个条件:
      1. 每个属性的值唯一,不具有多义性;
      2. 每个非主属性必须完全依赖于整个主键,而非主键的一部分;
      3. 每个非主属性不能依赖于其他关系中的属性,因为这样的话,这种属性应该归到其他关系中去。
    • 但是由于EDW的数据是原子粒度的,数据量比较大,完全规范的3范式在数据的交互的时候效率比较低下,所以通常会根据实际情况在事实表上做一些冗余,减少过多的数据交互。
  • 维度建模
    • Kimball提出的总线式的自下而上(DM-DW)的数据仓库架构。同样的,操作型或事务型系统的数据源,通过ETL抽取转换和加载到数据仓库的ODS层,然后通过ODS的数据,利用维度建模方法建设一致维度的数据集市。通过一致性维度可以将数据集市联系在一起,由所有的数据集市组成数据仓库。优势:构建迅速,最快的看到投资回报率,敏捷灵活;劣势:作为企业资源不太好维护,结构复杂,数据集市集成困难。
    • 星型模型(推荐)和雪花模型

另外在复合式的数据仓库架构中,操作型或事务型系统的数据源,通过ETL抽取转换和加载到数据仓库的ODS层,然后通过ODS的数据,利用范式建模方法,建设原子数据的数据仓库EDW,然后基于EDW,利用维度建模方法建设数据集市。
二、3范式
1.范式(NF)
一张数据表的表结构所符合的某种设计标准的级别。
构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,即满足不同的范式。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。
第一范式(1NF)
1NF的定义为:符合1NF的关系中的每个属性都不可再分。
表一

表二
表一不符合第一范式的属性,并且在第一范式要求下,每列不可以有重复的数值。
第二范式(2NF)
2NF的定义为:消除了非主属性对码的部分函数依赖。
第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。简而言之,第二范式就是属性完全依赖于主键。
主属性的概念是可以由主属性决定余下其他属性的值为主属性,剩下的其他就为非主属性。

这里表的主属性为学号和课程,学号和课程可以决定剩下三个属性的值,而剩下的三个属性就为非主属性。
第三范式(3NF)
3NF在2NF的基础之上,消除了非主属性对于码的传递函数依赖。

在关系模式R(U)中,设X,Y,Z是U的不同的属性子集,如果X确定Y、Y确定Z,且有X不包含Y,Y不确定X,(X∪Y)∩Z=空集合,则称Z传递函数依赖(transitive functional dependency) 于X。
第一个表知道了系名之后就可以知道宿舍楼,宿舍楼传递依赖于主属性学号。
结论:
由此可见,符合3NF要求的数据库设计,基本上解决了数据冗余过大,插入异常,修改异常,删除异常的问题。
数据仓库中的3NF与OLTP系统中的3NF区别
。数据仓库中的 3NF 与 OLTP 系统中的 3NF 的区别在于:
它是站在企业角度面向主题的抽象,而不是针对某个具体 业务流程的实体对象关系的抽象。
其具有以下几个特点: ·
  • 需要全面了解企业业务和数据。
  • 实施周期非常长。
  • 对建模人员的能力要求非常高。
写一个第一范式表
Create CREATE TABLE test
(
id int not null
PRIMARY KEY,
name VARCHAR
(
50
)
,
age INT
);
反例
CREATE TABLE test
(
id int not null
PRIMARY KEY,
name-sex VARCHAR
(
50
)
,
age INT
);
三、维度建模
维度模型主要应用于OLAP系统中,因为关系模型虽然冗余少,但是在大规模数据,跨表分析统计查询过程中,会造成多表关联,这会大大降低执行效率。
所以把相关各种表整理成两种:事实表和维度表两种。所有维度表围绕着事实表进行解释。
雪花模型、星型模型和星座模型
在维度建模的基础上又分为三种模型:星型模型、雪花模型、星座模型。






版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/Josonli123/article/details/103106973



楼主热帖
168大数据(www.bi168.cn)是国内首家系统性关注大数据科学与人工智能的社区媒体!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2022-6-25 13:34 , Processed in 0.051671 second(s), 17 queries , Xcache On.

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表