当前位置:文档之家› 数据仓库数据库设计的心得总结

数据仓库数据库设计的心得总结

数据仓库数据库设计的心得总结
数据仓库是企业商业智能分析环境的核心,它是建立决策支持系统的基础。

一个良好的数据仓库设计应该是构建商业智能和数据挖掘系统不懈的追求。

下面把数据仓库数据库设计的心得做一小结。

一透彻理解数据仓库设计过程
商业智能和数据挖掘归根到底是“从实践中来,到实践中去”。

也就是说现实需求决定系统需求,业务数据决定系统构架,最终使用的时候又必须作用于现实需求,同时通过决策的行为影响业务。

那么可以把数据仓库的设计看做是前一部分,即“从实践中来”,数据仓库的应用可以看做是“到实践中去”。

把“从实践中来”这个过程进行抽象,数据仓库的设计就是“客观世界→主观世界→关系世界”的过程。

在前面几节完成了6个任务:选择被建模主题的商业过程、确定事实表的粒度、区分每一个事实表的维和层、区分事实表的度量、确定每一个维表的属性、在D BMS中创建和管理数据仓库。

实际上这些任务都可以归结到从客观世界到关系世界的过程。

那么把这个过程再进行归纳,可以得到如图3-61所示的综合了模型、方法和过程的示意图。

图3-61 数据仓库设计过程的模型和方法示意图
二把握设计的关键环节
如果将时间、精力、金钱和人事优先花在前面的20%,那么这20%会创造出80%
的价值。

这就是有名的2/8原则。

下面将介绍在数据仓库设计中,哪些因素是属于这20%的范围。

1.需求
需求分析在任何如见项目中都是最为重要的因素之一。

企业模型是从企业的各个视点对企业数据需求及数据间关系的抽象。

通过将企业模型映射到数据库系统,可以很快地了解现有数据库系统完成了企业模型中的哪些部分,还缺少哪些部分。

然后再将企业模型映射到数据仓库系统,发现企业需要的(或可以构造的)主题。

通过这样的过程完成对企业数据需求和现有数据的了解,达到明了原有系统和需要建设的主题域间共性的目的。

2.关键性能指标(KPI)
一般而言,一个决策支持系统最重要的就是要呈现决策数据。

而KPI就是决策过程中要显示的数据结果的部分,如销售数量、销售金额、毛利和运费等数值部分的数据。

这些KPI是通过与相关的维表进行连接而映射出来的。

在分析星形模式时,往往要首先确定KPI。

3.信息对象
信息对象是指在每个分析过程中那些会影响到决策的因素。

以销售分析为例,时间、产品、员工与客户就是影响决策的大因子,而每个因子又可以分离出多个分层结构,如时间可分为年、季度、月、周和日等,员工可分为年龄层、年龄、年薪层、年薪和员工所在城市等,也就是影响决策的详细因子。

这些都是信息对象。

从这里我们可以看出,每个大因子如时间、产品、员工与客户等就可以构成如时间维表、产品维表、员工维表与客户维表等。

而时间维表又可分为年、季度和日等字段。

在分析和设计这些信息对象组成的维度时,需要注意维的唯一性和公用性,千万不要在不同的主题中定义多个表示同一内容的维,如果有可能,一个维表要尽量被多个主题共享。

4.数据粒度
在数据仓库的每个主题中,都必须考虑事实数据的粒度。

粒度的具体划分将直接影响到数据仓库中的数据量及查询质量。

在数据仓库开始进行分析时。

就需要建立合适的数据粒度模型,指导数据仓库设计和其他问题的解决。

如果数据粒度定义不当,将会影响数据仓库的使用效果,使数据仓库达不到设计数据仓库的目的。

5.数据之间的联系
在数据仓库中,不同主题的数据之间的物理约束或许不再存在,但无论这些数据如何变化,要知道必须有一些“键”在逻辑上保持着不同数据之间的联系,这样
就可以保证有联系的主题数据之间可以进行汇总以支持未知的应用,否则数据仓库的数据便是一潭死水,不可能灵活支持各种应用。

三分离非分析数据
为了提供OLAP分析的性能,应当让维表和事实表尽量“精练”,也就是只包含分析需要的数据,而对于分析不需要或者很少使用的数据,应当将它们从维表分离出去。

如果维表占据的空间比较小,维表就可以存放在一个磁盘块中,在该磁盘块被读取后,维表能够始终放在高速缓存中,从而提高多维查询的速度。

对于数据是否是非分析性数据,必须具体问题具体分析。

就拿姓名来说,很少问题会分析它,客户的姓名只是客户的一种标识,在维表和事实表中使用客户标识号比使用客户姓名要方便得多。

但是如果是人口普查部门调查姓氏的构成情况和重名情况,此时姓名就成为非常关键的分析变量。

因此,数据仓库设计时应当对维表和事实表中的各个字段都进行推敲,尽可能地将不必要的数据从维表中分离出去。

数据仓库的数据内容、结构、粒度、分割及其他物理设计需要根据用户所返回的信息不断地调整和完善,而且数据仓库需要通过不断地理解用户的分析需求,向用户提供更准确和更有用的决策信息,所以数据仓库对灵活性和扩展性有较高的要求,它的建立是一个动态、循环和反馈的过程,数据仓库的设计也必须遵循螺旋式发展的道路。

相关主题