1 星级酒店经营数据集市的“星型模型”
数据集市是数据仓库的一个子集,它面向部门级业务、面向某个特定主题的小型数据仓
库。实际上,多个相互联系的、围绕一个宏观大主题的多个数据集市的集成,就构成了数据
仓库。
建立星级酒店经营数据集市的数据模型,一般都是在对应用主题分析的基础上,首先建
立星型模型。“星型模型”是数据仓库(集市)广泛采用的数据模型。它能准确、简洁地描述
出实体之间的逻辑关系。一个典型的星型模式包括一个大型的事实表和一组逻辑上围绕这个
事实表的维度表。
事实表是星型模型的核心,事实表由主键和度量数据两部分组成。星型模型中各维度表
主键的组合构成事实表的主键。事实表中存放的大量数据,是同主题密切相关的、用户最关
心的度量数据。星级酒店最需要关注的是客户消费情况。为分析的需求,基础事实表中需要
记载的是客人最低粒度的消费事实。即用何种促销手段使某位客人在某个时间进行了何种形
式的消费,消费金额产多少。因此,在事实表中,要准确记载每位客人的消费形式、消费价
格、促销方式、促销折扣、消费金额、成本、利润等度量数据。
维度是观察事实、分析主题的角度。维度表的集合是构建数据仓库数据模式的关键。维
度表通过主键与事实表相连。用户依赖维表中的维度属性,从事实表中获取支持决策的数据。
围绕经营主题,星级酒店经营数据集市有以下典型的维度及其属性:
客户维:在客户维中,需要建立客户的基本信息。为决策分析需要,把客户分为常住客
户和流动客户。
消费项目维:经营星级酒店,要向客人提供高质量的消费,消费项目多种多样。把经常
性的消费项目归纳为:客房、餐饮、娱乐、其他等四类。每类消费都有消费内容的细节描述。
时间维:在数据仓库的多维数据结构中,时间维往往是不可少的一个维度。因为每项“销
售事实”都是在一定的时间或者时间段内发生。针对需求,时间维采用时、日、月、年四个
属性。
促销维:行业的竞争,使各酒店都采用了形形色色的促销方式。促销增加了营业额,但
同时也增加了运营成本。促销的形式和效果,对管理者的决策具有重要价值。在促销维中描
述了几种典型的促销方式:打折、中介、联营等作为维度属性。
根据分析主题和需求,建立星级酒店营销数据集市星型数据模型,如图 1 所示。
2 星型模型的优势和不足
2.1 星型模型在数据仓库中具有很大优势
(1)星型模型围绕一个确定的主题,体现了数据仓库对数据结构和组织的要求;
(2)星型模型简单、清晰的结构准确反映了用户的需求,使用户易于理解;
(3)星型模型维度表包含了用户经常查询和分析的属性,优化了对数据库的浏览,在
维度表和事实表之间没有任何“迷宫”。使查询的过程变得简单而直接;
(4)星型模型为 OLAP 提供了良好的工作条件,使 OLAP 能通过星型连接和星型索引,
显著提高查询性能。
2.2 星型模型也有明显的不足
(1)星型模型是非规范化的,星型模型以增加存储空间为代价来提高多维数据的查询
速度,造成很大的数据冗余;非规范化的、含有大量冗余的维度表,会使数据切片变得更加
复杂;
(2)由于星型模型中各维度表主键的组合构成事实表的主键。当星型模型的维不能满
足要求时,维的变化是非常复杂、耗时的;
(3)维度属性的复杂形成的大维度问题。大维度中的长文本字段占用存储空间,维度
数据不易更新和维护;向大维度表填充数据难度增大;对事实表的查询涉及大维度表时,会
影响效率;
(4)当维的属性复杂时,处理维的层次关系比较困难;
(5)对“多对多”关系,星型模型无能为力。
3 星级酒店经营数据集市的“雪花模型”设计
(1)客户维的“雪花化”。考虑数据分析的需要,把客户分为两种类型:常住客户和流
动客户。如外地派出机构或办事处工作人员租用酒店时间相对较长,属常住客户;临时性出
差、旅游住店属流动客户。这样分类后,有利于“一对一”服务,稳定常住客户,吸收流动客
户。此外,客户维中的有些属性与事实表中的度量数据无直接关系。例如:客户的基本信息,
将这些信息分离,使维表和事实表尽量“精练”。提高了多维查询的速度。当我们需要这些信
息时,才到分离的信息中查找。
(2)消费项目维的“雪花化”。星型模型中列出了四类消费项目,这四类消费项目之间
无直接的关联的属性,此外,同一客户不会是每种项目都进行消费,更不会同时进行几种消
费。把消费项目维按维的属性类别分解,不仅有利于维表的规范化,减少维表和事实表的数
据冗余,而且为数据的聚集打下了基础。
(3)时间维的“雪花化”。时间维中的四个时间属性,是典型的层次关系。可按维属性
的层次分解。其中,把“时”、“日”两个属性放在一起,是因为,需要了解同一天不同时间段
客户的消费需求。
(4)促销维的“雪花化”。是为了分类核算各种促销手段的成本和效果,以利今后对促
销策划的依据。
图 2 星级酒店经营数据集市雪花模型
总之,雪花模型要在星型模型的基础上,描述出属性间清晰的层次和分类关系。把图 1
所示的星级酒店营销数据集市的星型模型“雪花”化,就得到该集市的雪花模型。如图 2 所示。
4 星级酒店经营数据集市雪花模型的应用
雪花模型是星型模型的衍生,星型模型是雪花模型的“父类”。 雪花模型和星型模型各
具特色。在研究数据仓库(集市)数据模型的应用时,既要用雪花模型的优势弥补星型模型
的不足;还要充分继承星型模型的优势,扬长避短,使数据模型能在构建数据仓库和开发应
用中更好地发挥作用。
现假定:星级酒店经营数据集市经过 ETL 过程,将各种异构数据源中的数据抽取出来,
并将不同数据源的数据进行转换和整合,得出一致性的数据,然后加载到数据仓库中。并且
规范的元数据已经能有效地控制和支撑数据集市的运行。
4.1 雪花模型在处理大维度方面的应用
数据仓库的大维度问题虽然可以通过事实表来体现,但这种方法导致事实表极为庞大且
难于管理,当层次定义发生改变时,事实表需要重新设计和构建。
雪花模型通过对维度表的属性按层次和类别进行分解,将非分析数据进行分离,使大维
度表得到有效的规范化处理,较好地消除了数据的冗余,从而使事实表的字段数和总长度减
小,以节省存储空间。解决了星型模型中复杂的大维度问题。
4.2 建立使用频率高的聚集事实表
如何在数据仓库 SQL Server 2000 中建立星型模型多维数据集?
1.若不建立多维数据集,直接在 Brio 原有的 Northwind 数据库基础上选择“插入 OLAP 查
询”,显示“本区中
不可以用关系数据库连接,要求连接到一个多维数据库。”
2.本机原只安装个人版中的服务器,要建多维数据集,安装“Analysis Services”组件。
Analysis
Services 是用于多维数据集定义和存储的灵活而稳定的数据模型,使联机分析处理
(OLAP)和数据挖掘应
用程序更便于使用。
3.安装 Analysis Services 后,打开 Analysis Manager,连接服务器不成功,显示“无法连
接到服务器()上的
注册表,也可能您不是此服务器 OLAP Administrators 组的成员。”解决步骤:
(1)SQL Server 安装补丁。安装补丁知识:两种方法查看本机 SQL Server 是否已安装
补丁-[1]Dos 命令
窗口输入 netstat -a 命令,在端口显示栏中若未看到 1433 端口,表示没有安装补丁;
[2]查询分析器中
执行 select @@version;命令,返回版本号:2000-8.00.194.下载对应补丁,安装完
成后再次查询,版
本类型变为:2000-8.00.760.打开 Analysis Manager,仍和原来一样。
结果:
没有成功解决问题。
(2)查询方法,初步有:SQL Server 打完补丁后,Analysis Services 卸载后重新安装;
或将用户帐号添
加到 OLAP 管理组中;或仍需给 SQL Server Analysis Services 打补丁。网上提供的
方法有多种,但每个
项目的环境和遇到的问题不一样,对彼项目有用的方法不一定对此项目有效。需多次
尝试才能找到解决
办法。在第一步打完补丁后,第二步卸载 Analysis Services 并重新安装。 结果:没
有解决问题。
(3)给 SQL Server Analysis Services 打补丁。第一步中是给 SQL Server 安装补丁。
但现在问题出在
Analysis Services 的 Analysis Manager 中,有可能是因为未给该组件安装补丁。下
载安装 Analysis
Services SP4 补丁(安装时 Analysis Manager 必须关闭-重启电脑—重启 Analysis
Manager-服务器连
接成功。 结果:问题解决。 不需要再尝试“将用户帐号添加到 OLAP 管理组中”这
种方法。
4.在服务器名称上单击鼠标右键-选择“建立新数据库”-输入数据库名称“教程”-完
毕后在树形窗口
中打开数据库选项,显示“数据源”,“多维数据集”,“共享维度”等内容。Analysis
Services 多专
门用于支持数据仓库和数据挖掘类的项目实施。
5. 在“多维数据集”项目上单击鼠标右键,选择“新建多维数据集”,按照预先设计的维
度表,事实
表与对应联系设计各个维表的属性值。模型在“星型模型”或“雪花模型”等中选择
前者。包括时间维
度,地域维度,产品维度,分公司维度,产品维度,产品分类维度等。
至此,在数据仓库 SQL Server 2000 中成功建立星型模型多维数据集。