数据仓库维度建模笔记
数据仓库维度建模

• 维度表达旳是事实信息旳属性
1、基础术语
粒度(Grain)
➢ 粒度表达旳是事实表中细节数据旳详细程度 ➢ 最低粒度
• 事实表旳基本层次是全部相应维度自然旳最低层次。
– 例:产品、日期、客户、销售员为4个维度,则:事实表一条统计中必须有 :单独旳产品、特定旳日期、特定旳销售员和特定客户
• 假如连接途径简朴、直接,则浏览数据会更快 • 星型模型旳优势之一在于它优化对数据库旳浏览
5.星形模型旳优势
– 最适于查询处理 • 星型模型是一种以查询为中心旳构造 • 简朴、清洗旳连接途径以及星星模型本身旳构造使 得查询在维度表和事实表之间顺利、流畅、高效
– 星型连接和星型索引 • 星型连接是一种高速、并行、单独操作旳多表旳连 接,可明显旳提升查询性能 • 星型索引是一种专门旳索引(建立在事实表旳一种 或多种外键上),提升维度表与事实表旳连接速度
• 在这种模式中,维度表除了具有星形模型中维度 表旳功能外,还连接对事实表进行详细描述旳详 细类别表,详细类别表经过对事实表在有关维上 旳详细描述到达了缩小事实表和提升查询效率旳 目旳。
4.基本雪花模型设计
• 在该模型中,将地理层次国家、区域和分区域嵌 入到销售员维度,这么,企业旳管理者想按照国 家、区域、分区域和分区域内旳销售员旳层次关 系来查看企业旳销售情况。
3.星形模型设计
(2) 事实表旳设计措施。
• 事实表是数据仓库中最大旳表,在设计时,一定 注意使事实表尽量旳小,因为过大旳事实表在表
旳处理、备份和恢复、顾客查询等方面要用较长 旳时间。详细措施主要有:
– 降低列旳数量;
日期关键字
– 降低每列旳大小;
数据仓库维度模型知识点记录

数据仓库维度模型知识点记录1.生命周期a)业务需求定义i.收集需求ii.分析业务iii.数据仓库建立总线矩阵iv.项目规划b)维度建模、i.建模过程1.标识需要建模的业务过程2.声明粒度3.标识和选择维度4.标识和选择事实ii.维度表1.代理键a)日期维度可以使用20140101这样的智能键,智能键可以用来分区2.渐变维度a)SCD1 直接更新b)SCD2 标记维度的时间作用域,插入新数据,增加新行c)SCD3 不同的列记录不同时间域的值,增加新列d)将经常变化属性集合为小维度表3.退化维度a)没有对应维度表的非事实属性:类似于订单ID4.支架维度/引用维度a)比较类似于雪花模型,例如顾客的生日属性可以链接到日期维度表。
日期维度表就是顾客维度的支架维度5.多值维度a)使用桥接表实现b)事实与维度的多值关系i.例如订单的为多商户分成,可以通过一个商户分组链接表实现,订单事实中记录商户分组的ID,分组链接表中分行记录不同商户的账号ID及其分成c)维度与维度的多值关系i.例如用户帐户维度与消费自然人客户维度有多对多关系。
因此在帐户维度表与自然人维度表中加入一个“帐户与客户关系”桥接表。
记录d)可变层次展示i.例如职员与职员间隶属关系:可以使用桥接表记录每个职员与其所有下属之间的隶属距离和其下属的直接上司,就可以层次化的表示出职员之间关系6.角色扮演维a)例如下单日期维度和退款日期维度都是通过视图链接到日期维度表,这两个维度都是角色扮演维。
7.杂项维度a)慎用杂项维度b)将小维度合并组成杂项维度。
iii.事实表1.事务型事实2.周期快照事实3.累计快照事实4.没有事实的事实a)例如用户登录行为事实,其只有维度没有度量,那么添加一个值永远为1的login_cnt字段为度量,方便sum5.面向状态的事实表a)例如帐户余额其实对应了一个具体的自然人,在自然人的地理位置变化后,该自然人维度会有SCD 2的转换,可能代理键从1 –2.帐户余额需要做一个SCD 2的转换,将自然人维度引用该为2.其实是为了查询任意时间点,某个地理位置的帐户余额总和c)物理设计和ETL开发i.源数据探查1.出具数据剖析表来记录字段的类型,数据分布等ii.子系统1.提取a)数据剖析:KETTLE有插件datacleaner实现i.NULL值判断ii.字符串匹配iii.数值分布报表iv.正则表达式匹配等b)更改数据捕获系统:KETTLEc)提取系统:KETTLE的INPUT节点的功能2.清理和一致化:KETTLE已经实现a)数据清洗i.转换数据类型ii.重命令列等b)数据检验i.Kettle提供了流读取功能来验证数据是否错误1.取值范围是否合规2.关系完整性是否存在3.是否符合状态机规则(例如没有支付日期时就不应该有支付状态)4.一般依赖约束:例如派生列和其父列是否满足约束c)错误事件模式:KETTLE的错误流节点i.过程错误:trans step等出错ii.数据校验错误iii.过滤器错误iv.一般步骤错误v.ETL工具箱中描述的错误事件数据分析表能够起作用d)审核维度汇编器:KETTLE通过统计节点实现i.审计事实细节:数据从哪里来,什么时候加载,在那个服务器上加载ii.数据质量指标:读取了多少记录,过滤了多少记录iii.ETL工具箱中提供了审计维度的模型e)重复数据删除:KETTLE的删除节点f)一致化系统:KETTLE的LookUp映射节点实现3.装载和发布a)渐变维度处理b)代理键生成c)层次结构管理d)事实表的管理e)都可由KETTLE现有节点或者组合不同节点实现4.管理a)任务调度系统:KETTLE有简单实现b)备份系统:没有c)版本控制系统:没有d)排序系统:KETTLE有e)谱系和依赖关系分析:KETTLE可以通过插件实现。
数据仓库 Chapter 11 维度建模:高级专题

用新的值覆盖维度表中的旧数值 属性的旧值不需要保留 对维度表没有其他修改 维度表种的键或任何其他键值均不受影响 这类修改是最容易实施的
Example:
维度表的更新
第1类修改:改正错误
键重构 3315 K1235
之前 客户键 客户名称 客户代码 婚姻 地址 省 PC. 3315 Susane Lee K1235 Single XMU,Xiamen Fujian 361005
第1类修改
客户代码:K1235 客户名称:Susan Lee
之后
3315 Susan Lee K1235 Single XMU,Xiamen Fujian 361005
维度表的更新
第2类修改:保存历史数据
键重构 3315 3316 8800 之前 客户键 客户名称 客户代码 婚姻 地址 省 PC. 第2类修改 K12356 客户代码:K1235 婚姻:Married 地址:NWPU,xian 省:Shaanxi PC.710072 8800 Susan Lee K1235 Married NWPU,Xian Shaanxi 710072 2000.11.1后
一般原则
他们通常与源系统的临时修改相关 需要利用新旧属性的值跟踪历史数据 新旧两个值用于比较改变所带来的效果 他们提供了前向和后向的跟踪能力 对受影响的属性,在维度表中加入“旧的”字段 将“现有”字段的值赋给“旧的”字段 将新值赋给“现有”字段 加入一个“现有”有效日期 记录的键不受影响 不需要增加新的维度表记录 现有的查询可以无缝转移到“现有”的值 所有使用到“旧的”值的查询需要作相应的修改 这种技术对一次只做一个临时修改适用(修改多了???) 如果还有后续的修改,则需要使用更复杂的技术
维度建模读书笔记

维度建模读书笔记1.概念∙数据仓库受业务驱动的最终目标∙数据仓库体系的主要构件∙维度建模在数据仓库展示环节方面的重要性∙事实表和维度表术语∙有关维度建模的讹传∙数据仓库构建需要避免的常见错误2.业务问题∙公司有堆积如山的数据,可就是不能访问∙需要以各种方式随心所欲的切割数据∙如何使业务人员能够简单快捷地得到所需形式的数据∙将什么是重要内容显示出来∙同样的业务运作机理却以不同的编号展示出来∙希望用信息来支持更有事实依据的决策制定过程3.数据仓库的目标∙数据仓库必须是组织机构的信息变得容易存取标识方面容易易懂永无止境的组合方式数据的分离和合并∙数据仓库必须一致地展示组织机构的信息数据的完整性数据的一致性∙数据仓库必须具有广泛的适应性和便于修改新增、修改、老化不会导致现有数据或应用无效描述性数据修改必须考虑适当性∙数据仓库必须发挥安全壁垒作用以保护信息资产∙数据仓库必须在推进有效决策方面承担最基本的角色∙数据仓库可为业务群体接受4.数据仓库建造者的职责∙在业务范围、工作职责和计算机性能等方面多为用户考虑∙确定业务用户想在数据仓库帮助下想要做出什么样的决策∙标定那些使用数据仓库进行效能高而作用大的决策制定的最佳用户∙寻找潜在的新用户并让他们了解数据仓库∙选取那些从机构海量数据中挑出的最有成效和最富有实际意义的数据子集在数据仓库中进行展示∙适应用户对相关处理概况的感性认识,将用户接口和应用做的简单并且是模板驱动的∙跨部门一致性地标注数据,确保数据是准确的、可信的∙持续不断的对数据的准确性和提交报告的内容进行监控∙搜罗新的数据来源,持续不断地调整数据仓库以适应数据概况修改、需求支持和业务优先权的调整等方面的需要∙抽取一部分在使用数据仓库进行业务决策方面具有良好声誉的实现,并用这些成功的例子对人员、软件和硬件配备与选购是否合理做出评判∙按通行的方式发布数据5.数据聚集 Extact Transformation Load同时创建聚集用的规范化结构和展示用的维度,意味着数据要被处理两次一次用于规范化数据库一次用于针对维度模型6.规范化数据库应该出现么为支持聚集过程而创建一个规范化数据库是可以接受的,但这不是我们的最终目的,规范化结构必须远离用户查询,这些结构会对可理解性和性能造成损害,只要数据库支持查询和展示服务,就应该作为数据仓库展示环节的一部分加以考虑,但默认情况下,规范化数据库被排除在展示环节之外,数据展示环节应该被严格限定是维度的7.展示环节∙数据应该以维度形式进行展示、存储和访问“在不同的市场销售我们的产品,随时对销售业绩进行评估”=时间、市场、产品、业绩--从业务需求中探索维度将设计目标放在用户的易理解性、查询的高性能性和修改的灵活性等方面对数据进行封装∙原子数据对于经受住无法预期的特殊用户的查询攻击考验是必需的数据中心可能含有用于提高性能的概要数据或聚合值,但如果没有维度形式的基本粒度数据的支持,则提交这些概要数据的效率是不高的仅仅在维度模型中存储概要数据,而将原子数据固定在规范化模型中,这样的做法完全不可接受∙所有数据中心必须采用共同的维度和实施来建造,即要求它们是一致的。
数据仓库技术中的维度建模方法与技巧

数据仓库技术中的维度建模方法与技巧对于数据仓库技术的研究和应用,维度建模一直是一个重要的方面。
它通过将数据以维度和事实的形式组织起来,提供了数据分析和决策支持的能力。
本文将讨论维度建模的基本概念、方法和技巧。
1. 概述维度建模是一种以维度来组织数据的方法。
维度可以理解为数据的分类属性,如时间、地点、产品等。
而事实则是以数字为主的数据,表示某种业务指标。
维度建模通过将维度属性和事实数据关联起来,形成一个多维数据模型。
这个模型可以很好地支持数据分析和查询操作。
2. 维度的设计在维度建模中,维度的设计是至关重要的。
首先,需要确定维度的层次结构,即维度之间的关系和层级。
例如,时间维度可以按年、季度、月份等进行层次划分。
其次,需要考虑维度的属性,即维度的描述信息。
这些属性可以用于筛选和分组数据。
最后,还要考虑维度的范围和粒度,即维度的取值范围和精确度。
维度的设计需要根据具体业务需求和数据特点进行调整和优化。
3. 事实表的设计事实表是维度建模的核心。
它包含了事实数据和与之关联的维度外键。
事实表的设计需要考虑事实的粒度和度量。
事实的粒度指的是事实数据的最小粒度,即每个记录所表示的时间和空间单位。
度量则是对事实数据进行加工和计算的衍生指标。
在事实表的设计过程中,需要考虑事实的粒度和度量的选择,以及与维度的关系和关联方式。
4. 维度建模的技巧在维度建模的实践中,有一些技巧可以帮助提高建模效果和性能。
首先,可以使用维度层次化建模的方法。
这种方法通过划分维度的层次结构,将复杂的数据模型分解为简单的部分,提高了查询和分析的效率。
其次,可以使用维度属性的层次化建模方法。
这种方法通过将维度的属性以层次的形式组织起来,提高了数据的可用性和灵活性。
另外,还可以使用维度表的冗余建模方法。
这种方法通过在维度表中冗余一些信息,避免了多表连接的开销,提高了查询和计算的性能。
5. 维度建模的应用维度建模在实际应用中有广泛的应用领域。
首先,它可以用于业务智能和数据分析。
数仓学习-维度建模

数仓维度建模(如有侵权请联系删除)一、什么是维度建模按照事实表,维度表来构建数据仓库,数据集市。
将数据结构化的逻辑设计方法,它将客观世界划分为度量和上下文。
二、维度建模的优势和原则1、优势和缺点a) 维度建模是可预测的标准框架。
允许数据库系统和最终用户查询工具在数据方面生成强大的假设条件,这些数据主要在表现和性能方面起作用。
b) 星型连接模式的可预测框架能够忍受不可预知的用户行为变化。
c) 具有非常好的可扩展性,以便容纳不可预知的新数据源和新的设计决策。
可以很方便在不改变模型粒度情况下,增加新的分析维度和事实,不需要重载数据,也不需要为了适应新的改变而重新编码。
较好的扩展性意味着以前的所有应用都可以继续运行,并不会产生不同的结果。
但是,维度建模法的缺点也是非常明显的,由于在构建星型模式之前需要进行大量的数据预处理,因此会导致大量的数据处理工作。
而且,当业务发生变化,需要重新进行维度的定义时,往往需要重新进行维度数据的预处理。
而在这些与处理过程中,往往会导致大量的数据冗余。
另外一个维度建模法的缺点就是,如果只是依靠单纯的维度建模,不能保证数据来源的一致性和准确性,而且在数据仓库的底层,不是特别适用于维度建模的方法。
2、维度建模的原则原则1、载入详细的原子数据到维度结构中维度建模应该使用最基础的原子数据进行填充,以支持不可预知的来自用户查询的过滤和分组请求,用户通常不希望每次只看到一个单一的记录,但是你无法预测用户想要掩盖哪些数据,想要显示哪些数据,如果只有汇总数据,那么你已经设定了数据的使用模式,当用户想要深入挖掘数据时他们就会遇到障碍。
当然,原子数据也可以通过概要维度建模进行补充,但企业用户无法只在汇总数据上工作,他们需要原始数据回答不断变化的问题。
原则2、围绕业务流程构建维度模型业务流程是组织执行的活动,它们代表可测量的事件,如下一个订单或做一次结算,业务流程通常会捕获或生成唯一的与某个事件相关的性能指标,这些数据转换成事实后,每个业务流程都用一个原子事实表表示,除了单个流程事实表外,有时会从多个流程事实表合并成一个事实表,而且合并事实表是对单一流程事实表的一个很好的补充,并不能代替它们。
数据仓库-维度处理-读书笔记(四)

数据仓库-维度处理-读书笔记(四)一致性维度1,当不同的维度表的属性具有相同的列名和领域内容时候,称为维度具有一致性2,有利于不同事实表的合并到同一报表中去3,在一致性维度的前提下,可以被所有事实表复用4,可以保证分析结果的一致性且减少开销缩减维度场景一:当构建聚集事实表需要缩减上卷维度场景二:商业过程自然的获取粒度级别较高的数据场景三:两个维度具有同样粒度级别的细节数据,但是其中一个仅表示行的部分子集跨表钻取1,当两个表包含相同的一致性属性时候,使不同的查询能够针对两个或者更多的事实表进行查询价值链1,区分与组织中主要业务过程的自然流程。
是对商业活动过程的重新整合和组装。
同一组织下的同一个业务过程,对于不同的角色价值链不同,例如:销售商的价值链包括:购买、库存、零售额等;分类账价值链包括:预算编制、承付款项、付款等。
2,尽量为每个过程至少建立一个原子事实表企业数据仓库总线架构通过关注业务过程将DW/BI规划过程分解为可管理的模块,通过重用跨不同过程的标准化一致性维度发布实现集成企业数据仓库总线矩阵是用于设计并与企业数据仓库总线架构交互的基本工具。
矩阵的行代表业务过程,列表示维度,点表示维度与给定的业务过程是否存在关联关系。
总线矩阵总线矩阵实现细节是一个更加细粒度化的总线矩阵,其中扩展每个业务过程行以展示特定事实。
总线矩阵实现细节机会/利益相关方矩阵用于区分哪些业务过程分组应该与过程中心行相关数据仓库如何处理缓慢变化维度属性SCD全称:Slowly Changing DimensionSCD0:原样保留维度值属性不会发生变化,事实表以原始值分组。
例如:客户的原始的信用卡积分或者持久性标识符如身份证SCD1:重写原来的属性值被新值覆盖。
特点:1,总是反应最近的状态。
此技术破坏了历史情况。
2,易于实现且不需要建立额外的维度行,但是会影响聚集事实或者OLAP多维数据库重新计算SCD2:增加新行在维度表中增加新行,新行采用修改的属性址特点:1,维度表主键更具有一般性,不能是自然键或者是持久键2,增加新行时候,分配一个新的主代理键,作为所有事实表的外键,直到产生新的维度键SCD2缓慢变化维度处理3,通常我们还会有其余的设计方式去处理SCD2,但是图中的方式是管理、操作最简单的方式SCD3:增加新属性在维度上增加新属性以保存原来的值,新属性的变化通过SCD1方式处理增加新列,此种方式不太常用。
数据仓库建模方法总结

数据仓库建模方法总结数据仓库建模是数据仓库构建过程中的重要环节,它决定了数据仓库的数据结构和查询性能。
本文将总结几种常见的数据仓库建模方法,包括维度建模、事实建模和标准化建模,并比较它们的优缺点。
1. 维度建模维度建模是一种常见的数据仓库建模方法,它基于维度表和事实表的概念。
维度表包含描述业务过程的属性,如时间、地点、产品等,而事实表包含与业务过程相关的度量。
维度表和事实表通过共同的键连接起来,形成星型或雪花型的模型。
优点:1) 简单直观:维度建模易于理解和使用,可以快速设计和构建数据仓库。
2) 查询性能高:维度建模的星型结构简化了查询的关联操作,提高了查询性能。
缺点:1) 一对一关系:维度表和事实表之间是一对多的关系,无法处理多对多的关系。
2) 数据冗余:维度表中的属性可能存在冗余,造成数据冗余和一致性问题。
2. 事实建模事实建模是基于主题的数据仓库建模方法,它以业务过程为核心构建事实表,包括维度键和度量。
事实表记录了业务过程发生的事实信息,维度键用于连接事实表和维度表,度量用于度量业务过程的指标。
优点:1) 灵活性高:事实建模能够适应复杂的业务逻辑和多对多的关系。
2) 数据粒度控制:事实表可以根据需要控制数据的粒度,提供灵活的查询和分析能力。
缺点:1) 设计复杂:事实建模的设计复杂度较高,需要考虑多对多的关系和度量的粒度控制。
2) 查询性能相对低:事实建模需要进行多表关联操作,查询性能相对较低。
3. 标准化建模标准化建模是一种将数据仓库模型与关系数据库模型类似的建模方法。
它将数据存储在标准化的表中,通过复杂的关联操作来查询和分析数据。
标准化建模与维度建模和事实建模相比,更适用于小型数据仓库和查询较少的情况。
优点:1) 数据一致性:标准化建模减少了数据冗余,提高了数据一致性。
2) 灵活可扩展:标准化建模可以适应不同的查询需求,支持灵活的查询和分析。
缺点:1) 查询复杂:标准化建模需要进行多表关联和聚合操作,查询复杂度较高。
数据仓库中的维度建模与事实表设计

数据仓库中的维度建模与事实表设计数据仓库是一个集成的、主题导向的、时间可变的、非易失性的数据存储,用于支持管理决策。
在数据仓库中,维度建模和事实表设计是非常重要的,它们是数据仓库设计的核心。
维度建模是指将数据仓库中的数据组织成一个统一的、易于理解的维度模型,而事实表设计则是指如何将业务过程和指标以一种易于查询和分析的方式存储到数据库中。
在本文中,我们将探讨数据仓库中的维度建模与事实表设计的相关内容。
一、维度建模维度建模是数据仓库设计的核心,它是数据仓库中维度和事实之间的关系模型。
维度模型由事实表和维度表组成,它们之间存在着一对多的关系。
维度模型是一个简单直观的模型,它将业务过程和指标以一种易于理解的方式组织起来。
1.维度表在维度建模中,维度表是非常重要的,它是用来描述业务对象的表。
维度表通常包含了多个属性字段,每个属性字段描述了业务对象的一个特定属性。
比如,在销售数据中,维度表可能包含了产品、时间、地点等属性字段。
2.事实表事实表是数据仓库中存储业务过程和指标的表,它包含了一个或多个度量字段,度量字段是用来度量业务活动的指标。
事实表和维度表之间通过外键关联起来,事实表中的度量字段通常是和维度表的外键字段关联的。
3.星型模式维度模型通常被称为星型模式,因为它的结构呈现出星型的形状。
在星型模式中,中心的事实表被围绕着多个维度表组织起来,形成了一个星型的结构。
4.雪花模式除了星型模式之外,还有一个常见的维度模型是雪花模式。
在雪花模式中,维度表的层次结构被规范化成多个维度表,这样可以节省存储空间,但也会增加查询复杂度。
5.维度层次维度表中的属性字段通常是按照层次结构组织起来的,比如在时间维度中,可以有年、季度、月、日等层次。
在维度建模中,采用自然层次结构的维度表是非常重要的,它可以帮助用户更加方便地进行查询和分析。
维度建模是数据仓库设计的核心,它可以帮助用户更加方便地理解业务过程和指标。
通过合理的维度建模,可以提高数据仓库的查询性能,减少数据冗余,提高数据的一致性和可靠性。
2023年数据仓库与数据挖掘讲课笔记

第二周: 2023/9/4第三讲: 数据仓库的多维数据模型数据仓库多维数据模型(Multi-Dimensional Data Model)是为了满足用户从多角度多层次进行数据查询和分析的需要而建立起来的基于事实和维的数据库模型, 其基本的应用是为了实现OLAP(Online Analytical Processing)。
1.度量值(Measure)度量值是决策者所关心的具有实际意义的数值。
例如, 销售量、库存量、银行贷款金额等。
度量值是所分析的多维数据集的核心, 它是最终用户浏览多维数据集时重点查看的数值数据。
2.事实数据表(Fac.Table)度量值所在的表称为事实数据表, 事实数据表中存放的事实数据通常包含大量的数据行。
事实数据表的重要特点是包含数值数据(事实), 而这些数值数据可以记录汇总以提供有关单位运作历史的信息。
3.维度成员(Dimension Member)维的一个取值称为该维的一个维度成员(简称维成员)。
假如一个维是多级别的, 那么该维的维度成员是在不同维级别的取值的组合。
例如, 考虑时间维具有日、月、年这3个级别, 分别在日、月、年上各取一个值组合起来, 就得到了时间维的一个维成员, 即“某年某月某日”。
4.维度表(Dimensio.Table)包含维度信息的表是维度表, 维度表包含描述事实数据表中的事实记录的特性。
1.维度表和事实表互相独立,又互相关联并构成一个统一的模式。
构建多维数据集时常用的架构:2.星型模式星型模式是一种多维的数据关系,它由一个事实表(Fact Table)和一组维表(Dimens ion Table)组成。
每个维表都有一个维作为主键, 所有这些维的主键组合成事实表的主键。
事实表的非主键属性称为事实 (Fact),它们一般都是数值或其他可以进行计算的数据; 而维表大都是文字、时间等类型的数据, 按这种方式组织好数据我们就可以按照不同的维(事实表的主键的部分或所有)来对这些事实数据进行求和(summary)、求平均(average)、计数(count)、比例(percent)的聚集计算, 甚至可以做20-80 分析。
数据仓库中的维度建模

数据仓库中的维度建模随着数据量的不断增长,企业在进行商业决策时需要更多可靠的数据支持,数据仓库应运而生。
数据仓库是以主题为基础,集成、清理、存储和管理来自不同数据源的数据,并为企业提供决策支持,数据仓库的建立需要经过多个阶段,从需求分析、数据抽取、数据清洗到数据建模等。
数据建模是其中重要的一步,数据建模可以帮助企业更好地理解数据,更好地利用数据,更好地支持决策。
维度建模是一种常用的数据建模方法,本文将对数据仓库中的维度建模进行探讨。
什么是维度建模维度建模是将数据仓库中的数据以维度为基础进行建模的方法。
维度是指描述业务过程的属性,维度通常是固定的,而度量则是可度量的业务指标。
在维度建模中,我们主要关注维度和度量,维度是我们的描述性变量,度量是我们的计量变量。
维度可以分为事实表维度和维度表维度。
事实表维度是指描述业务实体或业务事件的属性,例如订单号、客户ID、产品ID等。
维度表维度是指描述业务实体或业务事件中相对稳定的属性,例如客户信息、产品信息等。
维度表是数据仓库中的一种重要表,在维度建模中,维度表不仅包含实体或事件的属性,还包含实体或事件的层次结构,例如日期维度表中包含年、季度、月、周、日等不同层次的日期属性。
维度建模的目的是将数据仓库中的数据以业务为中心进行建模,使得数据可以更好地支持决策。
维度建模的重点是对业务问题进行分析,从而确定维度和业务需求,对数据源进行清洗和抽取,以维度表和事实表为核心进行建模,保证建立的数据模型简单、明确、易于使用和维护。
维度建模的优势相对于其他形式的数据建模,维度建模具有以下几个优势:1. 明确的业务逻辑:通过维度建模,建立的数据模型直接与业务问题相关,便于理解和使用。
2. 明确的数据层次结构:维度建模中维度表中包含层次结构的定义,从而可以更好地描述数据的粒度。
3. 简单的查询逻辑:维度建模模型具有明确的表之间的关系,数据仓库查询可以直接通过简单的连接而得到需要的结果。
数据仓库中的维度建模与星型模型设计

数据仓库中的维度建模与星型模型设计一、维度建模概述维度建模是数据仓库中用于设计和组织数据的一种方法,通过将数据按照业务维度进行组织,可以更好地支持分析和报告需求。
在维度建模中,数据被组织成事实表和维度表,事实表包含度量数据,维度表包含描述数据。
1.事实表事实表是数据仓库中的核心表,包含了业务度量的数据,例如销售额、数量等。
事实表通常与一个或多个维度表关联,以提供上下文和细节信息。
2.维度表维度表包含了描述性数据,用来描述事实表中的度量数据。
维度表通常包含了一些维度属性,例如时间、产品、地点等,这些属性用来对度量数据进行细分和分析。
二、星型模型星型模型是一种常用的维度建模方法,它将事实表置于中心,周围围绕着多个维度表,形成一个星型的结构。
星型模型的设计简单直观,易于理解和查询,适用于大多数数据仓库场景。
1.优点星型模型的设计简单明了,易于维护和扩展。
由于事实表与维度表之间的关联简单明确,查询性能较高。
同时,星型模型也更符合人类的直觉思维,易于业务用户理解和应用。
2.缺点星型模型存在一些缺点,例如维度表冗余数据多、扩展性差等。
此外,星型模型可能无法满足复杂的分析需求,对于一些复杂的数据关系可能不够灵活。
三、星型模型设计步骤设计一个星型模型需要经过一系列步骤,包括需求收集、概念设计、逻辑设计、物理设计等。
每个步骤都需要注意一些关键要点,以确保设计出满足业务需求的数据仓库模型。
1.需求收集在设计星型模型之前,首先需要与业务用户沟通,了解业务需求和数据分析目的。
根据需求收集到的信息,确定需要设计的事实表和维度表。
2.概念设计在概念设计阶段,需要定义事实表和维度表之间的关系,确定维度键和外键。
还需要考虑数据粒度、度量数据和维度属性等内容。
3.逻辑设计在逻辑设计阶段,需要对模型进行细化,定义表的结构、字段和关系。
需要考虑到数据的规范化和冗余,以确保数据的一致性和完整性。
4.物理设计在物理设计阶段,需要根据具体的数据仓库平台和技术选型,将逻辑设计转换为物理模型。
数据仓库的多维数据建模技巧

数据仓库的多维数据建模技巧随着信息技术的快速发展和数据量的急剧增加,越来越多的企业开始意识到数据的重要性,并采用数据仓库来存储和管理海量的数据,以支持更好的决策和业务发展。
数据仓库是一个面向主题的、集成的、历史的数据集合,其中的多维数据建模是数据仓库的核心。
多维数据建模是指将业务数据按照多个角度进行划分和组织,并以多个维度来描述业务事实,以支持复杂的数据分析和挖掘。
下面将介绍一些数据仓库中常用的多维数据建模技巧。
1. 维度建模维度建模是一种以维度为核心的建模方法,通常使用星型模式或雪花模式来描述数据。
星型模式是最简单的维度建模方式,包括一个中心事实表和与之关联的多个维度表。
中心事实表包含与业务指标相关的度量字段,而维度表包含描述业务维度的属性字段。
雪花模式在星型模式的基础上进一步将某些维度细分为多个维度表,以满足更复杂的数据分析需求。
2. 层次建模层次建模是指在多维数据中,按照不同的层次组织和展示数据。
层次可以是时间层次、地理层次、产品层次等。
通过层次建模,可以更好地理解和分析数据,从而支持更深入的业务决策。
3. 聚集建模聚集建模是指在数据仓库中,根据不同的业务需求和查询性能要求,对数据进行预聚集和汇总。
通过将数据按照不同的聚集粒度存储,可以提高查询性能,并减少对底层数据的访问压力。
4. 粒度建模粒度建模是指在多维数据中,选择适当的粒度来描述业务事实。
粒度越细则数据越详细,但存储和查询的性能会受到影响;粒度越粗则数据越抽象,但会损失一些细节。
选择合适的粒度十分重要,需要根据具体业务需求和分析目的来进行权衡。
5. 头条式建模头条式建模是一种以事件为单位的建模方式,类似于新闻中的新闻标题。
每个事件都有一个唯一的标识符,并包含与之关联的维度和度量。
头条式建模适用于那些具有严格顺序要求的业务,例如金融交易和供应链管理。
6. 空间建模空间建模是指在多维数据中,将地理空间信息作为维度进行建模。
通过空间建模,可以分析地理位置对业务指标的影响,例如销售地区的利润分析和市场的渗透率分析。
数据仓库理论学习笔记

• 日期:最常用的 • 地理位置 • 组织单位…...
PPT文档演模板
数据仓库理论学习笔记
PPT文档演模板
数据仓库理论学习笔记
• 数据仓库中的数据组织形式
– 简单堆积 – 轮转综合
• 数据按一定的格式进行轮转的累加
– 简化直接
• 按一定的时间间隔,对数据进行提取,是操作型数据的 一个快照
• 基于关系数据库的OLAP——ROLAP
– 以二维表与多维联系来表达多维数据(综合数 据)
• 星型结构 • 事实表,存储事实的量及各维的码值(BCNF)
• 维表,对每一个维,至少有一个表用来保存该维 的元数据(多层次、冗余)
• 事实表通过外键与每个维表相联系 • 雪花、星座、雪暴
– 模拟多维方式显示(观察)数据
数据仓库理论学习笔记
PPT文档演模板
2023/6/1
数据仓库理论学习笔记
• 数据库处理的两大应用
– 联机事务处理(OLTP) – 决策支持系统(DSS)
PPT文档演模板
数据仓库理论学习笔记
• 数据库处理的两大应用
– 联机事务处理(OLTP)
• 操作型处理,为企业的特定应用服务
• 是对数据库的联机的日常操作,通常是对 一个或一组记录的查询和修改
– 数据集市(Data Mart)
PPT文档演模板
• 特定的、面向部门的小型数据仓库
• 是为满足用户特定需求而创建的数据仓库
• 是数据仓库的子集
数据仓库理论学习笔记
• 数据库的体系化环境
PPT文档演模板
数据仓库理论学习笔记
• 数据库的体系化环境
PPT文档演模板
数据仓库理论学习笔记
数据仓库(二)之维度建模篇

数据仓库(二)之维度建模篇•概述维度建模是一种将数据结构化的逻辑设计方法,它将客观世界划分为度量和上下文。
度量是常常是以数值形式出现,事实周围有上下文包围着,这种上下文被直观地分成独立的逻辑块,称之为维度。
它与实体-关系建模有很大的区别,实体-关系建模是面向应用,遵循第三范式,以消除数据冗余为目标的设计技术。
维度建模是面向分析,为了提高查询性能可以增加数据冗余,反规范化的设计技术。
•维度建模优点•事实表事实表存储了从业务活动或事件提炼出来的性能度量,它主要包含维度表的外键和连续变化的可加性数值或半可加事实。
事实表产生于业务过程中而不是业务过程的描述性信息。
它一般是行多列少,占了数据仓库的90%的空间。
在维度模型中也有表示多对多关系的事实,其他都是维度表。
事实表粒度事实表的粒度是产生事实行的度量事件的业务定义。
粒度确定了事实表的业务主键,事实表的所有度量值必须具有相同的粒度。
事实表类型1.事务事实表它是面向事务的,其粒度是每一行对应一个事务,它是最细粒度的事实表。
2.周期快照事实表它是按照良好的时间周期间隔(每天,每月)来捕捉业务活动的执行情况,一旦装入事实表就不会再去更新,它是事务事实表的补充,而非替代品。
3.累积快照事实表它用于描述业务过程中某个不确定时间跨度里的活动,它随着业务活动的发生会不断的更新。
事实表区别:•维度表维度表是对业务过程的上下文描述,主要包含代理键、文本信息和离散的数字。
它是进入事实表的入口,丰富的维度属性给出了对事实表的分析切割能力,它一般是行少列多。
如果属性值是离散的,用于过滤和标记的,就放到维度表里,如果是属性值是连续取值,用于计算的,就放到事实表中。
维度表类型缓慢变化维1.类型1字段值发生变化时覆盖原来的值。
2.类型2字段值发生变化时会新增一行,重新分配代理键,每一行添加开始日期,结束日期,版本号,是否当前值。
3.类型3每条记录会新增一列来标识变化前的值,发生变化时,把旧值放到新增的列中,把新值覆盖旧值。
数据库数据仓库设计维度建模与事实表设计

数据库数据仓库设计维度建模与事实表设计数据库数据仓库设计维度建模与事实表设计是在建立数据库数据仓库时必不可少的一部分。
数据仓库是一个用于存储和管理大量数据的信息系统,旨在帮助企业进行决策支持和数据分析。
在设计数据库数据仓库时,维度建模与事实表设计是两个关键的步骤,本文将对这两个方面进行详细说明。
一、维度建模维度建模是数据仓库设计的核心环节。
维度是一个用于描述事实的结构属性,是数据仓库中对数据进行分类和归纳的基础。
维度建模的目标是建立一个能够满足业务需求、易于理解和维护的数据模型。
在维度建模中,最常用的方法是星型模型和雪花模型。
星型模型是以一个中心事实表为核心,通过多个维度表与事实表进行关联,形成星型的结构。
而雪花模型则在星型模型的基础上,将某些维度进一步拆分为多个维度表,形成雪花状的结构。
在选择维度建模方法时,需要考虑业务需求和数据结构的复杂性。
星型模型适用于简单的业务场景,而雪花模型适用于复杂的业务场景。
此外,还需要考虑数据的冗余和一致性。
星型模型会产生冗余的数据,但对于查询性能较好;而雪花模型能够减少冗余数据,但对查询性能有一定的影响。
二、事实表设计事实表是数据仓库中最重要的表之一,用于存储与业务过程相关的度量数据。
事实表是一个包含了主键和度量列的表,主键一般由维度表的主键组成,而度量列则包含业务指标的数值,如销售额、订单数量等。
在事实表设计中,需要考虑以下几个方面:1. 选择合适的度量列:度量列是事实表的核心内容,需要根据业务需求选择合适的度量指标。
度量指标应该是可度量、可计算和可聚合的。
2. 定义粒度:粒度是指度量数据的统计单位。
在定义粒度时,需要根据业务需求和数据可用性进行权衡。
较细的粒度可以提供更详细的数据,但会增加查询的复杂性和计算的开销。
3. 设计主键:主键是用于唯一标识每一条记录的列。
在设计主键时,需要考虑唯一性、稳定性和可读性。
4. 建立索引:对于常用的查询字段和条件,可以通过建立索引来提高查询性能。
数据仓库设计中的维度建模与数据清洗方法

数据仓库设计中的维度建模与数据清洗方法随着数据量的快速增长和企业对数据分析的需求不断提升,数据仓库设计变得越来越重要。
在数据仓库设计中,维度建模和数据清洗是两个关键步骤。
本文将重点介绍维度建模和数据清洗的方法和技巧。
一、维度建模维度建模是数据仓库设计中的一种方法,它通过将数据按照业务过程进行分解,并将其组织为维度和事实表的关系模型。
它的主要目标是提供一种有效的方式来组织和查询大量的数据,从而实现对业务的深入分析和洞察。
1. 维度的定义在维度建模中,维度是指对业务过程的描述,例如时间、地点、产品、客户等。
维度是反映业务实体的属性,它们的值通常是有限且离散的。
维度是数据仓库中的主要查询对象,通过某个维度可以获取与之相关的事实数据。
2. 事实表的设计事实表是数据仓库中的核心表,它存储了与业务过程相关的数据。
事实表通常包含了与维度表关联的外键,以及业务过程中发生的度量值,例如销售金额、订购数量等。
事实表的设计应该遵循星型模型或雪花模型,使得查询效率更高,并且能够简化数据的分析和报表生成。
3. 维度与事实之间的关系在维度建模中,维度与事实之间的关系是通过外键进行建立的。
事实表中的外键与维度表中的主键进行关联,从而实现维度与事实的关联。
这种关系能够方便地进行多维分析,根据不同的维度进行数据的切片和切块操作,提供多样化的分析视角。
二、数据清洗方法数据清洗是数据仓库设计中的另一个重要步骤,它的主要目标是确保数据的准确性和一致性。
数据仓库中的数据来自于不同的数据源,往往存在着重复、缺失、错误等数据质量问题。
因此,对数据进行清洗是非常必要的。
1. 数据质量评估在进行数据清洗之前,首先需要对数据进行质量评估。
数据质量评估可以通过统计指标、数据模型等方法来进行,主要包括数据完整性、一致性、准确性、唯一性等方面的评估。
通过对数据质量进行评估,可以找出存在的问题,并为后续的清洗工作提供指导。
2. 重复数据处理在数据仓库中,重复数据是非常常见的问题。
数据仓库设计与建模的维度层级与维度属性的设计方法(九)

数据仓库设计与建模的维度层级与维度属性的设计方法导语:数据仓库是现代企业信息系统的核心组成部分之一,它承载着企业海量数据的存储、管理、分析和挖掘任务。
在数据仓库的设计与建模过程中,维度层级与维度属性的设计是非常重要的环节,它直接关系到数据仓库的数据质量和分析能力。
本文将围绕这一主题展开论述,介绍维度层级与维度属性的设计方法,并探讨其在数据仓库设计中的应用。
一、维度与维度层级的定义维度是描述数据事实的一组属性,它是数据仓库中组织和管理数据的基本单位。
维度采用层级结构进行组织,层级是指维度中属性的递进关系,包括上下级关系和聚合关系。
维度层级的设计是数据仓库建模的核心任务之一。
二、维度层级的设计方法1. 自顶向下设计自顶向下设计是指从最高层级开始,通过逐步添加下一级别的属性来构建维度层级。
在设计过程中,需兼顾多个因素,包括数据的完整性、一致性和可用性等。
一般来说,维度的顶层属性应该具备高度抽象、普适性较强的特点,而下层属性应逐渐具体和具备差异化。
2. 遵循维度建模原则在设计维度层级时,需要遵循一些维度建模的原则,包括单一业务逻辑、有限分层、遵循传统数据结构和尊重源系统数据结构等。
这些原则有助于提高维度的可理解性、可扩展性和可维护性。
3. 基于业务理解维度的设计应基于对业务的深入理解。
通过与业务分析师和业务用户的合作,了解业务过程、业务规则和业务约束,以确保维度的设计与业务需求相符。
此外,在设计过程中应充分考虑业务的变化和扩展,保持灵活性和可适应性。
三、维度属性的设计方法1. 选择合适的属性在维度属性的设计中,首先需要根据业务需求选择合适的属性。
属性应具备以下特点:包含丰富的信息内容、具备明确的业务含义、易于理解和使用、具备高可操作性和可度量性。
2. 属性的分类与归纳属性可以按不同的需求进行分类和归纳。
常见的分类方式有:业务属性、度量属性、计算属性和控制属性等。
分类与归纳可以使属性之间的关系更加清晰,并为数据仓库的查询和分析提供更多便利。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据仓库维度建模笔记2009-03-24 20:01《数据仓库工具箱—维度建模的完全指南》是数据仓库建模方面的经典著作, 1996年第一版出版被认为是数据仓库方面具有里程碑意义的事件。
作者kimballl是数据仓库方面的权威,他将多年的数据仓库建模实战经验、技巧融入本书。
他提出的许多维度建模概念被广泛应用于数据仓库的设计和开发中。
2002年本书出版了第二版。
这是一部非常好的数据仓库建模的书,前后完整的读了三遍,受益匪浅。
以下笔记将本按四个部分组织:一、数据仓库体系结构和建模过程、技巧。
二、维度表建模技术。
三、事实表建模技术。
四、行业建模经验。
一、数据仓库体系结构和建模过程、技巧关键点:数据仓库体系结构、维度建模的四个步骤、数据仓库总线结构、一致性维度。
1、对于数据仓库来说,业务需求是第一位的。
2、数据仓库的目标:(1)、随心所欲的访问数据。
直观、明显、简单、易用、切割、合并、下钻、上卷。
(2)、一致的展现数据(相对于原来从多个系统中出来的报表不一致)。
(3)、适应性、扩展性、可维护性。
(4)、为领导决策提供支持。
3、数据仓库的组成。
源数据-->数据准备区-->数据仓库(维度建模)-->数据聚集区(OLAP)-->展现。
其中原系统到数据准备区属于ETL过程。
数据仓库和数据聚集区本书称为数据展示。
展现本书称为数据存取工具。
4、数据仓库应特别注意的几点特点:(1)、数据应该以维度的形式进行展示、存储和访问。
(2)、数据仓库中必须包含详细的原子数据。
(3)、必须采用共同的维度和事实表来建模。
5、数据仓库采用使用维度建模的好处:易理解、查询的高性能、修改的灵活性和可扩充性。
6、维度建模的扩展性。
表现在三个方面:(1)、在现有的事实表中增加维度。
(2)、在事实表中增加事实。
(3)、在维度表中增加属性。
(第一章)7、维度模型设计的四个步骤。
(1)、选取业务(主题)。
(2)、定于业务处理的粒度。
(3)、选择维度。
(4)、选择事实。
8、应优先为模型选择有原子性的信息,因为原子性的数据提供了最大限度的灵活性,可以接受任何可能形式的约束。
(第二章)9、数据仓库总线结构。
实际上是一种增量建模方式,通过一致性维度来集成数据中心。
数据总线矩阵:业务处理、公共维度。
一级数据中心:衍生于单个基本源系统的数据中心,建议从一级数据中心开始建模,因为导致失败的主要风险是ETL。
合并数据中心:合并多个位于不同源系统的一级数据中心。
(第三章)10、维度建模复查。
考虑的问题:粒度,日期维度,退化维度,维度属性采用名称而不是编码,代理关键字,维度的多少。
11、维度建模常犯的错误:(1)、舍弃一致性维度和一致性事实表。
(2)、事实表的粒度不采用原子型。
(3)、基于报表来设计维度表。
(4)、不使用代理关键字。
(5)、忽视维度的变化的需求。
(6)、将体系与体系层次分解成多个维度。
(7)、在维度表中为节省空间而限制使用详细的描述属性。
(8)、在事实表中放置用于约束与分组操作的文本属性。
(第十五章)12、数据仓库成功的五个前提:(1)、拥有精明、强干的业务用户。
用户应该对数据仓库具有独特的见解,坚信数据仓库项目具有实现的价值。
(2)、机构必须存在建立数据仓库坚实而有说服力的业务动机。
(3)、数据仓库的可用性。
(4)、业务用户与IT人员之间的沟通。
(5)、业务分析人员的分析文化,是基于图形、数据还是直觉、传闻和一时冲动。
(第十六章)二、维度表建模技巧关键点:退化维度、代理关键字、一致性维度、渐变维度、角色模仿、杂项维度、微型维度、深度可变的层次建模方法、审计维度、多值维度解决办法、异构产品解决办法。
1、维度表倾向于将行数做得相当少,而将列数做的特别大。
数据仓库的能力直接与维度表的属性的质量和深度成正比。
2、维度的属性采用文字而不是编码。
3、维度表通常是不规范的,几乎总是用空间换取简明性和可访问性。
(第一章)4、日期维度,应包含星期、周末指示符、月末指示符、节假日指示符、重大事件、财政时间等。
5、如果需要处理一天中不同时间,则增加一个时间维度。
6、一个维度包含多个体系(层次),每个层次包含若干级别。
7、退化维度。
一方面可以通过退化维度对数据进行分组,另一方面可以使用退化维度关联到源数据上,有利于ETL更新及排错。
8、一般情况维度个数应该控制在15个以内,唯独过多影响查询性能和磁盘空间。
一些小维度可以进行组合,这取决于具体的业务。
9、代理关键字。
使用代理关键字的优点:能实现渐变维度;获得性能上的优势,节省事实表空间;可以记录没有操作源码的数据(ETL过程生成);处理关键字段的修改、删除等。
(第二章)10、一致性维度。
具有一致性的维度关键字,以致的属性名称,以致的属性定义,一致的属性值。
一致性维度对于设计可以进行集成的数据中心来说,具有绝对的决定性作用。
(第三章)11、渐变维度。
渐变维度的处理办法。
类型1:改写属性值;类型2:添加维度行;类型3:添加维度列。
第二种类型最常用。
12、快变维度的处理办法:将这些迅速变化的属性分裂成一个或者多个单独的维度。
(第四章)13、维度的角色模仿。
在同一个维度表上通过视图的形式建立多个维度。
在实际运用中,很多OLAP工具都支持在同一个维度表上建多个维度,而并不需要建立视图。
14、实体之间存在固定的,不随时间变化的,强烈相关的关系时,显然应该将它们当作单一维度进行建模。
15、杂项维度。
将标志与指标符从设计中剥离出来,将其封装成一个或者多个杂项维度。
(第五章)16、将聚集事实放入维度表的优缺点。
优点:查询时可以对聚集属性进行约束。
缺点:ETL过程变麻烦了。
17、雪花模型的使用场合:粒度悬殊,节省空间(属性众多)。
18、宽度变化的属性集的处理办法:拆分成两个维度。
Oracle数据库不存在这个问题。
19、采用类型2的方式处理维度慢性变化时,应该注意避免计数过度。
20、深化不变的体系结构(层次、级别)。
一个层次建立单独的字段。
如果某一个级别没有值,就应该用较低级别的属性覆盖该值。
21、深度可变的体系结构。
使用桥接标来解决。
父到子的每一条路径都包含一行记录,到其自身长度为0的路径包含一行。
实际上是把循环递归的过程通过表数据的形式实现。
大量olap工具以提供了对小于64000个成员的中小尺寸维度中这些体系进行导航操作得更加强劲的内置功能支持。
(第六章)22、依照十五描述内容在每行加入生效和截止日期标记,可以将类型2渐变维度设计方案修改为允许自然的对维度在时间上进行非常精细的切割。
23、审计维度。
源系统的情况;抽取软件的版本;抽取记录数;开始时间;完成时间等。
24、维度的属性数量不确定时,使用关键词支架维度。
相当于将横表设计成纵表。
使用union和intersect命令解决SQL跨行约束问题。
(第八章)25、维度类型:因果维度、多日期或时间标记维度、退化维度、角色模仿维度、状态维度、审计维度、杂项维度。
26、多值维度。
概念:一个账户拥有多个客户,一个客户也可能拥有多个账户。
解决办法:桥接表。
27、异构产品方案。
概念:每种产品类型都有大量的专用属性与度量事实不能为其他产品所用。
解决方案:核心维度,定制维度,使用相同的代理关键字。
采用支架结构。
(第九章)28、日期维度。
国别历法的处理办法,做成日期维度的支架。
29、多个时区日期的处理办法,增加维度。
(第十章)30、多值维度解决方案。
所谓多值维度是指一个事实表对应多个值的维度,比如,住院结算事实表拥有多个疾病。
通过组桥表来实现。
组桥表可以增加起止时间来满足住院渐变维度。
可以增加加权因子来实现财务报表关于疾病的分类统计。
31、稀疏事实表的解决方案。
事实维度表。
实际上是纵表和横表的设计思想。
优点:灵活、结构简单、节省空间。
缺点:生成查询、报表复杂、行间计算困难。
32、迟到维度行的处理办法。
所谓迟到维度是指某项属性到当前时间才知道其以前的值。
通过渐变维度(类型2)的方法处理,在维度表中增加记录并修改其他型的起止时间,在事实表中修改该维度的代理关键字。
(第十三章)三、事实表建模技术1、事实表中的事实分为三种类型:可加性事实,半可加性事实,非可加性事实。
2、事实表的三种粒度:事务,周期快照,累计快照。
3、事实表倾向于具有更多的行和更少的列。
4、事实表的主键应采用复合主键,引入唯一的rowid关键字作为主键字并无什么优点可言。
(第一章)5、明显属于不同粒度的事实必须放在单独的事实表中。
6、将可计算得值作为事实的原因:消除用户出错的可能性,一致的引用它。
例如,利润=销售额-成本额,将利润作为一个事实而不是通过展现工具进行计算得到。
7、非可加性的数据项尽量不要放到事实表中。
例如,毛利润率是非可加性数据,不应该保存在事实表中,应保存分子和分母,再通过前端展现工具进行计算得到。
8、非事实型事实表。
解答什么促销产品没有卖出去的问题。
建立一张非事实型事实表,促销产品(周期快照)中每个商场的每隔促销产品每天创建一行。
再关联销售事实表来解决什么产品没有卖出去这个问题。
9、事实表的粒度很关键,决定了维度模型的扩展性。
过早汇总或者聚集处理必然限制对维度的增补。
10、半可加性事实。
对特定的维度具有可加性,对其他维度不具有可加性。
11、周期快照事实表是最常见的库存设计方案。
12、一致性事实。
一致的事实定义,一致的测量单位。
(第三章)13、使用单个事实表(通过增加事务类型维度)还是多个事实表的选择:(1)、业务需求(目标是降低复杂度,用最有效的形式将数据展示给用户)。
(2)、业务处理的关联性。
(3)、源系统。
(4)、维度是否完全一致。
(第四章)14、事实表的规范化。
纵表和横表的设计方式。
优缺点。
事实设置显得比较稀疏并且不在事实之间运算的情形是有用的。
15、不同粒度事实的处理办法。
例如,订货系统中的订货分列项事实表(基于产品)与装运费(基于订单)。
两种处理方式:(1)、分配到细节层次(装运费à产品)。
(2)、建立两个事实表。
优先采用第一种方式。
16、累计快照。
采用对整个订单处理流程的分析感性趣,他们想了解产品的移动速度,累计快照很好的体现这种业务情景。
适用:具有明确起止时间的短期处理应用。
17、多个计量单位的处理办法。
将转移因子写入事实表。
18、三种事实粒度的比较:(第五章)19、至今为止事实:应该计算出来,而不是保存在事实表中。
数字型事实必须与粒度保持一致。
20、事实的变化通过增加一行冲减记录,而不是通过修改原事实数据。
21、事实的自由分段。
通过分段定义表连接到事实表上,来灵活划分和定义分段。
分段事实字段需建索引。
(第七章)22、时间点结余建模。
在事实表中增加最后标记字段和事务结束结余来实现。
使用事务表来代替日快照事实表。
(第九章)23、多个事实表粒度。