数据仓库建模基本理论


数仓建模的目标

访问性能:能够快速查询所需的数据,减少数据I/O
数据成本:减少不必要的数据冗余,实现计算结果数据复用,降低大数据系统中的存储成本和计算成本
使用效率:改善用户应用体验,提高使用数据的效率
数据质量改善数据统计口径的不一致性,减少数据计算错误 的可能性,提供高质量的、一致的数据访问平台

一、ER实体模型

在信息系统中,将事物抽象成“实体”、“属性”、“关系”来表示数据关联和事物描述。
实体:Entity
关系:Relationship

这种对数据的抽象模型通常被称之为ER实体关系模型

实体:通常为参与到过程中的主体,客观存在的,比如商 品、仓库、货位、汽车
属性:对主体的描述、修饰即为属性,比如商品的属性有商品名称、颜色、尺寸、重量、产地等
关系:现实的物理事件是依附于实体的,比如商品入库事件,依附实体商品、货位,就会有“库存”的属性产生;用户购买商品,依附实体用户、商品,就会有“购买数量”“金额”的属性产品。
有一对多、多对多、一对一的关系

ER实体关系模型也称作E-R关系图
“实体”用矩形表示:
“关系”用菱形表示:
“属性”用椭圆形表示:

建模步骤

  1. 抽象出实体
  2. 梳理实体之间的关系
  3. 梳理实体属性、关系属性
  4. 构建ER图

案例:
场景:课程管理系统
该系统主要用来管理某校教师、学生、课程,其中包括课程选修、考试、教师授课、学生班级管理功能,现需要完成数据库逻辑模型设计

在这里插入图片描述
应用场景

ER模型是数据库设计的理论基础,当前几乎所有的OLTP系统 设计都采用ER模型建模的方式 Bill
Inom提出的数仓理论,推荐采用ER关系模型进行建模 BI架构提出分层架构,数仓底层ods、dwd也多采用ER关系模 型就行设计

二、维度建模

Ralph Kimball推崇数据集市的集合为数据仓库,同时也提出了对数据集市的维度建模,将数据仓库中的表划分为事实表、维度表两种类型。

事实表

事实表:在ER模型中抽象出了有实体、关系、属性三种类别,在现实世界中,每一个操作型事件,基本都是发生在实体之间的,伴随着这种操作事件的发生,会产生可度量的值,而这个过程就产生了一个事实表,存储了每一个可度量的事件

维度

维度,顾名思义,看待事物的角度。比如从颜色、尺寸的角度来比较手 机的外观,从cpu、内存等较比比较手机性能。维度表一般为单一主键,在ER模型中,实体为客观存在的事物,会带有自己的 描述性属性,属性一般为文本性、描述性的,这些描述被称为维度。
比如商品,单一主键:商品ID,属性包括产地、颜色、材质、尺寸、单价等,但并非属性一定是文本,比如单价、尺寸,均为数值型描述性的,日常主要的维 度抽象包括:时间维度表、地理区域维度表等

星型模型和雪花模型的区别
应用场景

主要面向分析场景
数据仓库建模
主流的OLAP引擎的底层数据模型

三、dataVault模型

Data Vault是在ER模型的基础上衍生而来,模型设计的初衷是有效的组织基础数据层,使之易扩展、灵活的应对业务的变化,同时强调历史性、可追溯性和原子性,不要求对数据进行过度的一致性处理;并非针对分析场景所设计。
data vault 包含3种基本结构

  1. 中心表-Hub
    唯一业务键的列表,唯一标识企业实际业务,企业的业务主集合(只包含业务主键信息以及数据装载的描述,不包含非键值以外的业务数据属性本身
  2. 链接表-Link
    表示中心表之间的关系,通过链接表串联整个企业的业务关联关系(链接表用来描述中心表间的关联关系,亦不包含业务键值以及数据装载描述以外的任何非键值数据)
  3. 卫星表- Satellite
    历史的描述性数据,数据仓库中数据的真正载体(数仓中数据的主要载体,包括对链接表、中心表的数据描述、数值度量等信息)
    在这里插入图片描述

设计步骤
I. 梳理所有主要实体
II. 将有入边的实体定义为中心表
III. 将没有入边且仅有一个出边的表定义为中心表
IV. 没有入边且有两条或以上出边的表定义为连接表
V. 将外键关系定义为链接表

示例 卫星表没有
在这里插入图片描述

四、Anchor

Anchor是对Data Vault模型做了更近一步的规范会处理,初衷是为了设计高度可扩展的模型,核心思想是所有的扩张只添加而不修改,于是设计出的模型基本变成了k-v结构的模型,模型范式达到了6NF

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值