数据仓库建模
ER建模(第一步)
ER建模(entity-relationship modeling)阶段 == 需求分析/可视化阶段 == 概念建模
-
1、基础概念
实体(entity):客观世界中的众多概念,用矩形表示;
属性(attribute):用来描述实体各个特征,用椭圆表示;每个实体至少要有一个唯一属性,用下划线标记;
联系(relation):实体与实体之间通常具有某种关联,用菱形表示;
基数约束(cardinality constraint):实体间连线的两端,写有一些符号,用来表示实体可以有多少实例与另一实体的实例存在联系;共有四种形态,可选/强制的单个/多个对应; -
2、更复杂的建模规则
复合属性(composite attribute):括号;
多值属性(multivalued attribute):椭圆;
派生属性(derives attribute):虚线;
可选属性(optional attribute):可能没有取值的,在属性名后面添加(0)标识
关系表建模(第二步)
将ER图实体映射为关系,经过两个步骤:1. 逻辑模型设计 2. 物理模型设计,来设计相应的关系表实现。
关系(relation)、 列(column)/属性/域、行(row)元祖/记录
-
关系表 VS 一般的表
1、一个列只能有一个名称;2、一行数据不能重复;3、每个值必须是单值;4、行列顺序无关 -
几个概念
主码(primary key):主键,可多个;
外码(foreign key):是某关系中的一列,而这一列恰恰又是另一个关系的主码;
实体完整性约束(entity integrity constraint): 指所有主码必须非空 -
概念模型 VS 逻辑模型 VS 物理模型
概念模型:ER,业务上;
逻辑模型:开发,进一步细化蕴含更多信息;
物理模型:更进一步对真实数据库的描述,包括数据类型/长度/索引/主键/默认值etc.
维度模型
维度表(dimension):今早花了三块钱买了盒牛奶,今早(时间维度)、牛奶(商品)
事实表(fact table):三块钱
- 维度建模的三种模式
1、星形模式(Star Schema):一个事实表对应多个维度;
2、 雪花模式(Snowflake Schema):是对星形模式的扩展,一个事实表对应多个维度,而且每个维表可继续向外连接多个子维表;
3、星座模式(Fact Constellations Schema):也是星型模式的扩展,多个事实表对应多个维度,互相交织;