模块开发-数据仓库的设计 及星型模型 雪花模型 星座模型
模块开发—数据仓库设计
1.维度建模:专门用于分析性数据库【还有数据仓库/数据集市建模的方法】的设计。 数据集市可以理解为一种小型的数据仓库。
维度表(dimension):就是分析事物的某个角度 数据量不大 精确度高 如:“昨天下午我在星巴克花费 200 元喝了一杯卡布奇诺” 从这句话中我们可以划分三个维度:时间维度;地点维度;商品维度
事实表(fact table):表示对分析主题的度量。事实表包含了 与各维度表相关联的外键,并通过jion方式与维度表关联。事实表的度量一般是数值类型,且记录数会不断增加,表规模迅速增长。比如上面消费的例子
消费事实表:prod_id(引用商品的维度表);timekey(引用时间维度表);place_id(引用地点维度表),Unit(销售量)
总的来说:数据仓库不需要严格遵守规范化设计原则。因为数据仓库的主导功能是面向主题,以查询为主,不涉及到数据更新操作。同时事实表的设计是以能够正确记录历史信息为准则,维度表的设计是能够以合适的角度聚合主题内容为准则。
维度建模的三种方式:
1.星型模式(star schema)最常用的维度建模模式:星型模式是以事实表为中心,所有的维度表直接连接在事实表上,像星星一样。
特点:a.维度表只和事实表关联,维度表之间没有关联。
b.每个维度表主键为单列,且该主键放置在事实表中,作为俩边连接的外键。
C.以事实表为核心,维度表围绕核心呈现星