电商数仓项目----笔记五(数仓架构和建模)

ODS:数据源               DWD:加工数据           DWS:统计数据           ADS:分析数据

DIM: 维度层(大家都有可能用得上的部分)

ER模型

     数据仓库之父Bill Inmon提出的建模方法是从全企业的高度,用实体关系(Entity Relationship,ER)模型来描述企业业务,并用规范化的方式表示出来,在范式理论上符合3NF。

        1)实体关系模型

      实体关系模型将复杂的数据抽象为两个概念——实体和关系。实体表示一个对象,例如学生、班级,关系是指两个实体之间的关系,例如学生和班级之间的从属关系。

        2)数据库规范化

       这一系列范式就是指在设计关系型数据库时,需要遵从的不同的规范。关系型数据库的范式一共有六种,分别是第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范(BCNF)、第四范式(4NF)和第五范式(5NF)。遵循的范式级别越高,数据冗余性就越低。

        3)三范式

        (1)函数依赖

                分为完全函数依赖,部分函数依赖,传递函数依赖。

                完全函数依赖:y=f(x,z),y跟x,z都有关;

                部分函数依赖:y=f(x,z),y只跟x有关;

                传递函数依赖:y=f(x),z=f(y) ->z=g(x)  y只跟x有关,z只跟y有关;

        (2)第一范式

                

        (3)第二范式

        (4)第三范式

维度模型

所谓的维度,就是分析数据的角度。

        下图为一个典型的维度模型,其中位于中心的SalesOrder为事实表,其中保存的是下单这个业务过程的所有记录。位于周围每张表都是维度表,包括Date(日期),Customer(顾客),Product(产品),Location(地区)等,这些维度表就组成了每个订单发生时所处的环境,即何人、何时、在何地下单了何种产品。从图中可以看出,模型相对清晰、简洁。

相关推荐

  1. 架构—Inmon范式与Kimball维度

    2023-12-22 08:02:01       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-22 08:02:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-22 08:02:01       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-22 08:02:01       82 阅读
  4. Python语言-面向对象

    2023-12-22 08:02:01       91 阅读

热门阅读

  1. redis 实现队列

    2023-12-22 08:02:01       65 阅读
  2. 算法练习Day18 (Leetcode/Python-二叉树)

    2023-12-22 08:02:01       63 阅读
  3. python3+selenium 切换窗口方法

    2023-12-22 08:02:01       63 阅读
  4. 流媒体知识总结

    2023-12-22 08:02:01       62 阅读
  5. 在 Go 语言中使用 regexp 包处理正则表达式

    2023-12-22 08:02:01       48 阅读
  6. Ansible3

    Ansible3

    2023-12-22 08:02:01      59 阅读
  7. css学习笔记5

    2023-12-22 08:02:01       62 阅读
  8. Android 9.0 应用权限屏蔽位置信息

    2023-12-22 08:02:01       43 阅读
  9. MongoDB的面试题与答案

    2023-12-22 08:02:01       56 阅读