范式建模维度建模比较
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
范式建模维度建模
一、范式建模
这样的设计方式是在关系型数据库中常用的, Inmon 的范式建模法的最大优点就是从关系型数据库的角度出发,结合了业务系统的数据模型,能够比较方便的实现数据仓库的建模。
1.1 范式化模型设计需满足下面三大范式:
1.1.1第一范式(1NF):原子性字段不可再分,否则就不是关系数据
库;
1.1.2第二范式(2NF):唯一性一个表只说明一个事物;
1.1.3第三范式(3NF):每列都与主键有直接关系,不存在传递依赖;
1.2 特点:
二、维度建模
维度建模是一种将数据结构化的逻辑设计方法,它将客观世界划分为度量和上下文。度量是常常是以数值形式出现,事实周围有上下文包围着,这种上下文被直观地分成独立的逻辑块,称之为维度。维度建模是面向分析,为了提高查询性能可以增加数据冗余,反规范化的设计技术。
2.1 特点:
设计思路是自下而上,适合下游应用数据存储,适合统计多层次维度的汇总,开发周期短,缺点是维护成本高
2.2维度建模的常见模式
2.2.1 星形模式
星形模式(Star Schema)是最常用的维度建模方式,下图展示了使用星形模式进行维度建模的关系结构:
可以看出,星形模式的维度建模由一个事实表和一组维表成,且具有以下特点:
a. 维表只和事实表关联,维表之间没有关联;
b. 每个维表的主码为单列,且该主码放置在事实表中,作为两边连接的外码;
c. 以事实表为核心,维表围绕核心呈星形分布;
2.2.2 雪花模式
雪花模式(Snowflake Schema)是对星形模式的扩展,每个维表可继续向外连接多个子维表。下图为使用雪花模式进行维度建模的关系结构:
维度表C维度表B
事实表
…….维度表E 维度表A
维度表D
FK
FK FK
FK
FK
FK
维度表B1
维度表B2
维度表A1 FK
FK
维度C维度B
事实表
…….维度E 维度A
维度D
FK
FK FK
FK
FK
FK
星形模式中的维表相对雪花模式来说要大,而且不满足规范化设计。雪花模型相当于将星形模式的大维表拆分成小维表,满足了规范化设计。然而这种模式在实际应用中很少见,因为这样做会导致开发难度增大,而数据冗余问题在数据仓库里并不严重。
2.3 维度建模的设计方法
2.4维度建模设计流程图
2.5高层模型设计
选定业务过
程
确定粒度
确定维度
确定事实
根据根据业务过程的优先级选定业务过程。
确定事实表粒度,最好是原子级粒度。
有了业务过程和粒度,就要选择相关的维度。
选择适用于业务过程的事实。
2.6识别维度和度量
有了高层模型,就要设计维度和度量,维度和度量清单不仅仅是业务用户所关心,还要从业务过程出发,自上而下的设计所涉及的维度和度量。防止业务用户的需求变化带来的冲击。
2.7确定命名规范
在详细设计之前,为DW/BI系统制定规范,主要包含源系统、主题、业务术语、报表,物理设计命名、调度任务、文档方面的规范
2.8编写详细设计映射文档
详细设计文档包括从源系统到维度模型的每个数据层的物理映射文档。
2.9.审查和验证模型
详细设计文档出来后,要和业务用户和团队成员进行评审,记录下来评审过程中的问题,形成问题清单。
.完成设计文档
最后确定设计文档,进行下一步的ETL开发。
三、优缺点比较