数据仓库事实表的建模理论与方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据仓库技术就是对已有的信息进行统计与分析,以便为相应业务作出科学合理的决策。这些信息实际上是由业务运行系统产生的,譬如商业公司的销售记录、加工公司的生产记录、证券市场的交易记录等等,都是数据仓库系统的信息源。将这些信息源()后就变ETL Extract Transform Load 成了数据仓库系统的明细数据,数据仓库系统中的任何操作与处理都是以这些明细数据库()为基DDB Detail Database 础的。接下来就是创建所谓星型模型()的事实Star Schema 表(),这类数据库实际上就是统计数据库Fact Table SDB (),如何构造是本文讨论的重点。Statistic Database SDB 此外还有被称为立体模型的数据库(),主要Cube Database 用于在线分析(),本文不打算讨论这类数据库。
OLAP 数据库空间
1 本文所讨论的数据库都是关系数据库(简称),空DB 间也是相应关系数据库的空间(简称空间)。众所周DB 知,任一都有关键字,它可以唯一地标识的一个记录DB DB (其严格定义请参考有关资料)。
定义1 空间的维度由的关键字组成,维度的值域DB DB 对应相应关键字的定义域,空间的一个点则对应中非关DB 键字字段的相应值。
一般来说,组成的关键字都是复合型的,即有一个DB 以上的字段组成,在数据库理论中称为关键字的长度,这里则称为空间的维度数。每一个维度都对应一个维表(其DB 也是关系数据库),用以定义该维度一些必要的属性。非关键字段称为空间的指标,维度的一组值唯一决定了空DB DB 间的一个点,也决定了对应的一组指标值。
需要指出的是,空间不是一个连续空间,并且仅当DB 中有一条记录,空间才有相应点。因此,你甚至不能DB DB 认为维度值的划分是按等步长的,实际也没有必要去刻意讨
论这些。数据库空间是一个概念,是帮助我们构造的工SDB 具,具体是什么型态并不重要。与函数空间相比,关键字相当于函数的自变量,数据库相当于函数,其每一条记录DB 相当于函数值,如此理解也就可以了。这里最大的区别是:函数空间的一个点只对应函数的一个值,而空间的一个DB 点却可对应多个指标的值。现在以证券市场的交易成交库为例,看一看空间的情况。
Match Match 设为成Match(Day, Stock, Seat, Possessor, Price, Quantity)交明细数据库(),各字段的中文描述为日期,证DDS Day 券代码,席位代码,股东代码,成交价Stock Seat Possessor ,成交量。显然,其关键字为Price Quantity Day + Stock + ,相应空间为,,,Seat + Possessor Match {Day Stock Seat ,括号内是它的个维度,和是该空Possessor}4Price Quantity 间的两个指标,图是某一个交易日的空间示意图。
1Match
指标组(Price ,Quantity )
Seat
物理维度与逻辑维度
2 引入数据库空间的概念后,就可以把注意力集中在空间的维度上,维度的变化是导致空间变化的根本原因,指标是
数据仓库事实表的建模理论与方法
万南洋
深圳证券交易所,深圳)
(
518010摘要: 该文在引入数据库空间概念的基础上,分析了数据仓库明细数据库的维度特性,抽象出其统计空间的通用、对象和主体种逻辑维3度,提出了一套构造数据仓库事实表的建模理论与方法,生成了所有可能的事实表,并辅之以计算机建模。关键词:数据仓库;数据库空间;统计数据库;建模
Modeling Theory and Method for Constructing Fact Table
of Data Warehouse
WAN Nanyang
(Shenzhen Stock Exchange, Shenzhen 518010)
【】Abstract Based on importing the concept of database space, this paper analyzes the characteristic of detail database dimension of data warehouse, abstracts to three logical dimensions from its statistic space: universal dimension, object dimension and main dimension, introduces a suit of modeling theory and method for constructing fact table of data warehouse, creates all potential fact table. This modeling process can be assisted by computer.
【】Key words Data warehouse; Database space; Statistic database; Modeling
第卷 第期2811№
Vol.28 11计 算 机 工 程Computer Engineering
年月
200211 November 2002
・开发研究与设计技术・ 中图分类号: TP311.13
文章编号:———10003428(2002)11 0253
03文献标识码:A
随着维度变化而变化的。此外,我们要讨论的数据库空间主要是数据仓库的明细数据库空间以及的统计空间DDB DDB 。
SDB 定义2 设是的一个维度, a DDB a 1 , a 2 , ..., a n 是一组属性,若存在关联关系←→a a i 或←…←a a i (≤≤),则称1i n (A a , a 1 , a 2 , ..., a n )为关于的逻辑维度,或 DDB a a a i 都是的物理维度。
A 这里←→a a j 表示与a a i 是多对多的关系,←a a i 表示 a i 与 是一对多的关系,←…←a a a i 表示传递一对多关系。显然,若←→a a j 且 a j ← a i ,必有← a a i 。逻辑维度是由一组相互关 联的物理维度组成的,其关联关系有两层含义:首先,这些物理维度是与的维度关联的,说明DD
B a a i 同在关联方面具a 有相同的物理意义;其次,和a a i 之间是不同粒度的数据, ←a a i 说明 a i 的粒度高于,←→a a a i 虽不能判定谁的粒度高,但表明了和a a i 的粒度是不同的。的任一维度都对DDB 应着一个逻辑维度,其至少含有导出该逻辑维度的的DDB 那个物理维度。
现在来看由,,,导出Match{Day Stock Seat Possessor}的维度,其有个物理维度,相对应的应有个逻辑维度。
4()4实际上是一个时间维度,可以充当时间维度的还有Day 月、季、年等,且←←(Month)(Season)(Year)Day Month ←,得逻辑维度,,,Season Year Period(Day Month Season 。
Year)是证券交易的金融产品代号,还可以将其按上市Stock 公司所属行业()、证券品种(,如股,Industry S_kind A B 股,债券等)来分类,且←←,得逻辑Stock Industry S_kind 维度(,,)。
Product Stock Industry S_kind 是证券交易中的一个中介工具代号,还有使用该工Seat 具的中介机构证券营业部(),营业部的管理机构证Depart 券公司(),且←→,←,Broker Seat Depart Seat Broker ←,得逻辑维度(,,Depart Broker Member Seat Depart )。
Broker 是证券投资者,可按类别分为自然人Possessor (P_type)和法人,且←,得逻辑维度Possessor P_type Investor ,)。
(Possessor P_type 的逻辑空间
3 DDB 设有逻辑维度DDB L 1 , L 2 , ..., L m ,由它们构成了的
DDB 逻辑空间L m
{L 1 , L 2 , ..., L m 。这里
} L i ≤≤是逻辑维度 (1i m)名,暂时不去考虑其所含的物理维度。显然,逻辑空间是一个虚拟空间,既没有维度值也没有指标,其是我们构造的统计空间的形态空间。属于的逻辑空间不DDB SDB DDB 仅仅是 L m ,还有 L m 的所有合规的逻辑子空间,我们就是要 找出这些子空间。
按照一般子空间的定义,由 L m
中任意个逻辑维度的任 意组合,都属于其子空间,共有个,但它们并非都
具有统计意义。逻辑空间 L m 作为统计形态空间,它必 DDB 定有时间维度,称其为通用维度。 L m 必须有一个也只有一 个统计对象,称其为对象维度。 L m 中的其它维度都是统计 主体,统称为主体维度。命题1 的任一逻辑子空间都必须含有通用维度; DDB 两维或两维以上的逻辑子空间都必须有对象维度;主DDB 体维度可以组合参与构成两维以上的逻辑子空间。
DDB 统计主体参与统计,自然是在某时间段内对统计对象的
指标进行统计,故其只能是在通用维和对象维都存在的情况下出现,且可以单独或组合出现。命题实际已经给出了全1部有统计意义的逻辑子空间,设 L m 的 L 1 为通用维,L 2 为对象维, L 3 ,..., L m 为主体维,则有
通用维单独组成的逻辑空间1) L 1 { L 1 ;
}通用维和对象维组成的逻辑空间2) L 2 {L 1 ,L 2 ;
}主体维参与组成的逻辑空间3) L W {L 1 ,L 2 ,..., L i ,...}
(≤≤≤≤共有(≥)个。3w m,3i m ), m 3 这就是的全部逻辑空间,包括DDB
L m 自身,一共是
(≥)个,都是具有统计意义的合法空间。一2+
m 3 般都不很大,、维就算不少了。例如,其,
m 45Match m=4应有个逻辑空间,分别为:
5L 1 {Period}
L 2, {Period Product}
L 31,, {Period Product Member}L 32,, {Period Product Investor}
L 4,,, {Period Product Member Investor }
维度的可标识域
4 这里所说的维度是指物理维度。一个维度或关键字都有一个可标识域,超出这个域就是失去了它的标识功能。譬如日期,在一个月内绝没有编号相同的,即的可标识Day Day 域是一个月。在实际问题中,许多维度的可标识域是需要扩充的,如何进行可标识域的扩充呢?下面的命题可回答这个问题。
命题2 设维度和属于同一个逻辑维度,且←,
A B A B 则就将的可标识域扩充至的可标识域。"A+B"A B 这里是这两个维度的连接,从逻辑上讲仍是一A+B A+B 个维度,且是按的粒度级来统计的,实际相当于将相应空A 间增加了一个物理维度。
统计空间的所有维度的可标识域,都不得小于DDB 的定义域,以此构造出的统计空间才能覆盖DDB SDB DDB 的全部指标定义域。达到这个目的有两种办法:一是将维度编码成定义域可标识的;另一种办法就是按命题借助DDB 2于高级维度的帮助,将可标识域扩充至的定义域,这DDB 两种办法都是可行的,依实际需要选择。
例如逻辑维度中就有几个物理维度的可标识域需Match 要扩充。中的,,的可标识域都必须Period Day Month Season 扩充,令,则使它们都扩充至Date = Day + Month + Year 的可标识域。令为期间标志字段,用以指示统计数Year Flag 据库中的日月末季末年末的统计记录,则就完///Date + Flag 全取代了中的个维度,而相当于一个(辅助)物Period 4Flag 理维度。为方便起见,后面仍以代替。此Date Date + Flag 外,也需要扩充,其仅仅是券种内(如股、股)Industry A B 可标识的,以取代之即可。同样,后面亦Industry + S-kind 是以替代。
Industry Industry + S-kind 的统计空间5 DDB SDB
前面已经从各个方面作了准备,构造的条件业已成SDB 熟。从的逻辑空间变换成其统计空间的方法,就DDB SDB 是将各逻辑维度中的物理维度组合置换成其相应逻辑维度。
命题3 设有逻辑空间 L{L 1 , L 2 , ...,L i ,..., L m 其逻辑维度
},各为L 1 … ( ),,L i … ( ), , L m ( ), ——
254∑−=1
1
m i i
m
c ∑−=−2
1
2
m i i
m c ∑−=−2
12
m i i m c 112111,...,,g l l l i g i i i
l l l ,...,,21m g m m m
l l l ,...,,21