数据仓库的数据模型设计
目的
设计数据模型是数仓搭建中的一个重要环节,本文主要介绍工具和基本概念。
工具
主要使用Navicat Data Modeler,有基本版可以免费无期限的试用。
方法
数据模型主要可以分为三个层次:概念模型,逻辑模型,物理模型。概念模型是最抽象的,物理模型是最具体的。一般的设计是遵循从抽象到具体的过程。
一般设计流程是,先在纸上进行概念模型设计,然后在电脑上完成逻辑模型设计,最后由工具生成特定数据库的物理模型。
Feature | Conceptual | Logical | Physical |
Entity Names | |||
Entity Relationships | |||
Attributes | |||
Primary Keys | |||
Foreign Keys | |||
Table Names | |||
Column Names | |||
Column Data Types |
概念模型
可以快速的在纸上设计和修改。概念模型来源于业务需求,实体和关系的设计主要考虑业务需要,这个阶段无需考虑数据库设计。
特点:
- 高度抽象
- 容易理解
- 容易改进
- 只有实体和抽象的关系
逻辑模型
主要设计工作是定义实体的主键和外键关系。
特点:
- 实体有了属性
- 定义了关键属性和一般属性
- 定义了主键和外键关系
- 比起概念模型,它定义更多细节
- 属性名可读性强,比如可以叫做Production Description。
物理模型
需要根据数据库的特点来设计和优化,一般可以使用工具将逻辑模型转化成物理模型。还需要根据数据的特点来定义字段类型和索引等等。
特点:
- 实体变成了数据库表
- 属性变成了列名
- 表名是符合数据库要求的
- 列名也是符合数据库要求的
- 数据类型是数据库特定的
- 用户较难理解
- 修改起来比逻辑模型更难
- 可以包含索引、约束等对象