多维数据集
- 多维数据集最简单的结构是一个事实表和多个维度表,事实表主要是由维度外键和度量值组成,维度表由n个键值对组成(如xxID、xxName)
- 最简单的理解就是立方体,事实表是核心,维度表则包裹事实表组成立体表面,对立方体进行切面则意味着从不同角度看事实
- 维度是可以被共用的,例如基本上一个多维库只有一个时间维度
- 维度表其实很纯洁,千万不要将其复杂化,以时间维度为例,大家会认为日期与具体的时分秒就是一个维度,其实千万不要这样做,首先这样做会无形中加大很多的维度数据量,其次分解成两个维度会更适合设计、也更适合业务,做报表时可以查日期维度(年月日)、也可以单独查时间维度(上午/下午。。。)的一些销售记录,拆开来就可以单独看每个时段的销售量,分析客户习惯
关系表设计
- 主题域:可以理解为一个主题域可以代表一个主题域,所有的主题组成一个整个多维数据库
- 在需求明确、主题域分解完毕后,最好先直接用模型定好主外键关系,画好最终效果(即fact-dim的效果),这样可以快速看到最终效果,如果不这样做,可能要到做部署项目时才能看到效果,而且有不断修改的风险
- 要注意的是,直接用模型写好的东西,很多表的结构都不是一个单纯的实体,这样就不符合范式,所以要将不符合范式的结构拆分,拆分成一系列实体与联系
- 同时要注意的是,其实事实表可以存在重复记录的,因为可能在一个维度下可以同时存在多个属性,所以直接设计成表其实不适合
- 经过上面的解释,大家其实也想到了,其实多维数据库的很多事实表是建立在视图之上的,通过视图,可以让表通过不同的连接方式实现重复记录的形式
SSAS
- 概念:Sql Server Analysis Services,其实就是微软推出的可以部署多维数据库的技术工具
- 通过增加商业智能组件的VS,可以创建SSAS项目,这样就可以开始部署工作
- 注意:要设计好数据视图,把必要的视图和表放进去,并设计好缺失的关系;最好不要把所有主题放进同一个立方体里,这样的视图可读性很差,不易维护,而且没有必要,而且一个多维库可以承载多个立方体,所以千万不要把鸡蛋放进同一个篮子里
- 会有特殊的维度设计,除了对称维度外,会有非对称维度的做法,以后再介绍
SSRS
- 概念:Sql Server Report Services,也是微软推出的可视化快速设计报表工具,不仅支持关系数据库,还支持多维数据库
- 通过上一个介绍的扩展,就可以创建SSRS项目并部署成网页,通过网页链接,你可以做很多集成