DW Basic Knowledge2
DW的元数据是指除去数据本身之外的所有信息。
围绕DBMS方面的元数据可以描述为表定义,分区设置,索引视图定义,以及DBMS级安全方面的特权
与授权等内容。
在任何场合下,ODS要么是一个处在OLTP和DW之间的第三方物理系统,要么是DW的一个专门管理
的热区(用于支持实时交互操作,数据查询具有固定的结构形式)?
事实表的一行对应一个度量值,一个度量值就是事实表的一行,事实表的所有度量值必须具有相同的
粒度。
可加性事实:销售额
半可加性事实:库存 余额(除时间之外的维度可以用于聚合)
非可加性事实:比率
度量事实理论上讲可以是文本形式的,但这种情况很少出现,设计者应该尽可能地把
文本度量值转成维度,原因在于维度能够于其他文本维度属性更有效地关联起来,并且消耗
少得多的空间。
不能将冗余的文本信息存储在事实表内,除非文本对于事实表的每行都是唯一的。
所有事实表粒度都归属于三类之一:事务、周期快照与累积快照。
事实表本身通常也有由外关键字子集组成自己的主关键字,这个关键字通常称作复合或
者连接关键字。换句话说,在维度模型中每个表示多对多关系的表都是事实表,而所有其他的表
都是维度表。
通常情况下,只需要事实表复合关键字组成部分的一个字集,就可以确保行具有唯一。
所以,在事实表中引入一个唯一的rowid关键字作为主键关键字并无什么优点可言,这样只会
让事实表更大,当然,特别情况下的业务需求有需要时除外,(需要加载相同中记录到这样的表,
譬如把Fact表做成TYPE2时)
维度属性是查询约束条件、成组与报表标签生成的基本来源。
最好的属性是文本的和离散的,属性应该是真正的文字而不应是一些编码简写符号。
有时候,从数据生产源分析一个数字型的字段应该是作为事实还是维度属性来看,通常可以这样做
出决定 ,即看字段是否包含许多的取值并参与运算,(当成事实看待)还是一个变化不多并参与约束
条件的离散取值的描述(当维度属性看待)。
例如,一个产品的标准成本看起来是不变的属性,但由于经常改变,每一次交易都可能是不同的值,因而
最终应该当作度量值来处理。
维度表通常描述业务中的层次关系,譬如产品包含商标和分类,员工有所属的部门信息等。存放层次描述信息显得
很冗余,但是这样容易使用。
对于维度模型来说,是开放的设计,可以加入新的维度,只要其值对于现有的事实行存 在唯一性的定义就行,同样的,
可以向事实表中加入新的事实,只要其粒度和现有的事实表相一致即可。
DW Basic Knowledge2的更多相关文章
- DW Basic Knowledge1
以下内容,常读常新,每次都有新的感悟和认识. 数据仓库必须使组织机构的信息变得容易存取. 数据仓库的内容需要是容易理解的,数据对业务人员也必定是直观的,明显的. 数据仓库重新组织了原来OLTP数据库的 ...
- Atitit HTTP 认证机制基本验证 (Basic Authentication) 和摘要验证 (Digest Authentication)attilax总结
Atitit HTTP认证机制基本验证 (Basic Authentication) 和摘要验证 (Digest Authentication)attilax总结 1.1. 最广泛使用的是基本验证 ( ...
- Basic Tutorials of Redis(9) -First Edition RedisHelper
After learning the basic opreation of Redis,we should take some time to summarize the usage. And I w ...
- Basic Tutorials of Redis(8) -Transaction
Data play an important part in our project,how can we ensure correctness of the data and prevent the ...
- Basic Tutorials of Redis(7) -Publish and Subscribe
This post is mainly about the publishment and subscription in Redis.I think you may subscribe some o ...
- Basic Tutorials of Redis(6) - List
Redis's List is different from C#'s List,but similar with C#'s LinkedList.Sometimes I confuse with t ...
- Basic Tutorials of Redis(5) - Sorted Set
The last post is mainly about the unsorted set,in this post I will show you the sorted set playing a ...
- Basic Tutorials of Redis(4) -Set
This post will introduce you to some usages of Set in Redis.The Set is a unordered set,it means that ...
- Basic Tutorials of Redis(3) -Hash
When you first saw the name of Hash,what do you think?HashSet,HashTable or other data structs of C#? ...
随机推荐
- sql多行转一行,以逗号隔开
--SELECT ff= stuff((select ','+cast(WorkOrderNo as varchar)-- FROM dbo.TB_WorkOrder c -- where tpl.P ...
- Interlocked.CompareExchange
class SourceManager { private SourceManager() { } private static SourceManager sourceManager; public ...
- FreeBSD 10 发布
发行注记:http://www.freebsd.org/releases/10.0R/relnotes.html 下文翻译中... 主要有安全问题修复.新的驱动与硬件支持.新的命名/选项.主要bug修 ...
- FL2440驱动添加(5)ADC驱动学习笔记
由图可知,模拟ADC分为两部分功能,一部分是触屏功能,另一部分就是普通ADC功能.分别可以产生INT_TC和INT_ADC 两个中断.该ADC模块总共有8个通道可以进行模拟信号的输入,分别是AIN0. ...
- c++中stl容器的常用示例
1. set(集合)——包含了经过排序了的数据,这些数据的值(value)必须是唯一的. 也就是说输入set容器后得到数据,会去重并排序. s.insert()插入一个元素 s.begin ...
- dbcp/c3p0连接池设置mysql会话变量
我们有几个计算风控值的定时任务,几乎每隔5秒会更新所有账户的当前总资产并以此通知风控,每隔一小时就产生一两个G的binlog,几十台服务器折腾..数据库是公用的,代码是通过工具自动生成的,直接修改流程 ...
- Swift 学习笔记第一天-变量常量,及数据类型
1.定义变量 用关键字 var 比如 var i=2 2.定义常量用let 如let c=3 可见Swift 定义时不用指定类型.由编译器推断 如果想指定类型 var i:Int32=2 练习 let ...
- RHEL7文件权限
本文介绍Linux下的文件权限 操作系统为RHEL7.2_X86_64 可以从以下三种访问方式限制访问权限: 1 只允许用户自己访问 2 允许一个预先指定的用户组中的用户访问 3 允许系统中的任何用户 ...
- GitHub 基本常用知识解答
1.Fork.Watch.Star 是什么意思? fork的意思是从别人的代码库中复制一份到你自己的代码库,与普通的复制不同,fork包含了原有库中的所有提交记录, fork后这个代码库是完全独立的, ...
- 并查集(Disjoint Set)
在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中.这一类问题其特点是看似并不复杂, ...