在日常生活中,我们要使用大量的应用程序来生成新的数据、变更数据、删除数据,当然在大多数的情况下我们还要查阅和分析数据。就来想象一个收发 email 的简单应用程序吧。我们已经存储了地址信息,可能还存储了一些文档。我们可以决定是否存储已经发送过的邮件,但是也可能隔一段时间后将其删除,或者删除已经发送过的所有邮件。那么我们该如何处理一段时间以前删除或者修改过的地址呢?我们再也不会看到它们了。
Email 程序大部分都属于不是很复杂的数据库,但是完全可以将其看作一个在单用户环境下的 OLTP(在线事务处理系统)简单示例。它使用了所有的所谓访问数据的操作 CRUD(创建、读取、更新、删除)。当数据存储达到一定量的时候,规模就会几乎保持不变,因为可以从存储中删除过期数据。
数据仓库就完全是一种不同种类的应用程序。它并不是用来运行当前的操作,例如发送邮件。它是用来分析数据并且从现有数据中发现新的价值,主要是用来预测未来的情况。数据仓库并不是解决所有问题的通用结构。它必须集中于某一问题领域,例如航空服务、顾客收益等。
数据仓库也有有趣的一面,那就是数据库本身是稳定增长的。数据没有被删除,也不发生变更。我们不需要将冗余数据置于数据库之外(因为加入仓库中的数据经过了数据净化的过程,该过程检查了数据的正确性)来减少复杂性同时增强读取操作的性能。
为了能够对数据仓库中的数据进行分析,数据存储于一个多维结构中,叫做星型模式。如果将星型模式扩展,就会得到雪花模式。本白皮书将会阐述如何使用IBM Rational Rose进行星型模式建模和雪花模式建模。
为了更好地解释如何对数据仓库建模,本白皮书将使用一个简单数据集市的的例子(即一个数据仓库或者数据仓库的一部分),来分析旅客乘坐航班 Happy Flying and Landing(愉快飞行平安降落)的行为和满意程度。
我们将存储乘客信息和每个航班的的相关数据、选择的菜单以及乘客对飞行的满意程度。
回页首
数据仓库引入了新的术语,扩展了数据建模的术语表。为使本文的阐述能够完备,下面我介绍一下最常用的术语。
数据仓库是一个支持管理决策的数据集合。数据是面向主题的、集成的、不易丢失的并且是时间变量。
数据仓库是所有操作环境和外部数据源的快照集合。它并不需要非常精确,因为它必须在特定的时间基础上从操作环境中提取出来。
数据仓库只限于单个主题的区域,例如顾客、部门、地点等。数据集市在从数据仓库获取数据时可以依赖于数据仓库,或者当它们从操作系统中获取数据时就不依赖于数据仓库。
事实是数据仓库中的信息单元,也是多维空间中的一个单元,受分析单元的限制。
事实存储于一张表中(当使用关系数据库时)或者是多维数据库中的一个单元。
每个事实包括关于事实(收入、价值、满意记录等)的基本信息,并且与维度相关。
在某些情况下,当所有的必要信息都存储于维度中时,单纯的事实出现就是对于数据仓库足够的信息。我们稍后讨论有关缺无事实的情况。
维度是绑定由坐标系定义的空间的坐标系的轴线。数据仓库中的坐标系定义了数据单元,其中包含事实。
坐标系的一个例子就是带有 x 维度和 y 维度的 Cartesian(笛卡尔)坐标系。
在数据仓库中,时间总是维度之一。
在数据仓库的数据中发现新信息的过程被称为数据挖掘,这些新信息不会从操作系统中获得。
分析空间是数据仓库中一定量的数据,用于进行数据挖掘以发现新信息同时支持管理决策。
一种用来在数据仓库中将一个维度中的分析空间限制为数据子集的技术。
一种用来在数据仓库中将多个维度中的分析空间限制为数据子集的技术。
一种使用关系数据库实现多维分析空间的模式,称为星型模式。
星型模式将在本白皮书中稍后进行进一步讨论。
不管什么原因,当星型模式的维度需要进行规范化时,星型模式就演进为雪花模式。
回页首
星型模式的基本形式必须实现多维空间(常常被称为方块),以使用关系数据库的基本功能。
首先,我们需要理解多维空间。
几何学中的方块是指一个三维空间,其中每个维度的尺寸都相同。想象一个立方体,每个维度都有三个单元,我们即得到相同结构的33=27个单元。
多维分析空间(或者数据仓库方块)与几何空间中的方块仅仅存在细节上的差异。
维度不仅限于 3 维。不过,处理很多维度的立方体也不是件轻松的事情,这会导致大多数的实现被限制于 6 或者 7 维。不要期盼使用图形可以很好地表示超过 4 的维度--如果您有幸能发现一种方法,别忘了告诉我一下。
维度并不具有相同的规模和单元。规模从几个单元到几百万个单元,差别巨大。单元可以是一天、一位顾客、部门等。
单元,相当于子方块(1×1×1等),包含事实。
数据立方体需要很大的内存以存储所有事实。无论是否包含事实,都必须要预留单元。
这就是为什么使用关系数据库和星型模式的原因。使用它们能够优化存储并且保持数据结构的灵活性。
星型模式的基本思想就是保持立方体的多维功能,同时也增加了小规模数据存储的灵活性。
在图3中,星型模式使用事实 Flight 表示了一个 4 维方块(Passenger、Menu、Flight Schedulet 和 Time)。基本上,事实必须指定一个维度,以将其放入立方体的单元中。
我们的例子中的维度是:
Passenger,描述了飞行航程中的每位乘客,由经常飞行号(frequent flyer number)指定。不是经常乘坐飞机的乘客不是数据仓库的一部分。
Flight Schedule,是指所有常规飞行的日程。
Menu,是用于飞行的菜单。只有对菜单进行基本的分类才会对数据挖掘有重要意义。
Time,是指飞行的时间。
事实 Flight 描述了乘客在唯一的 Time 的单程飞行上选择 Menu。
分析空间可以是完整的方块,或者我们可以根据维度将分析空间分割成小片。
每个维度根据一个对象进行描述,对象可以用类表示,这些类就是有关业务主题的名称。这一点对于成功建立数据仓库来说是很重要的,因为仓库的用户(经理、分析员、市场)对于信息技术的术语并不是很熟悉。
事实本身就是商业智能的另一个对象,仍然通过类进行表示。
事实指每个维度。事实与维度的关联常常是一对任意,这也就意味着每个事实都与单个维度的一个单元准确对应,而维度的每个单元(每个Passenger、Time等)可以与任意数量的事实发生关联(包括0个事实)。
使用 Rational Rose 将对象模型转换为数据模型即完成了星型模式的实现。这里我们可以看到转换后的结果。
在图4中,没有显示自动创建的主键和外键约束。
星型模式的维度是独立的表。当对象模型转换为数据模型时,Rational Rose 可以生成维度的主键。
事实表指从维度表中使用键迁移的维度,当生成数据模型时 Rational Rose 可以生成外键。
在星型模式中切片和切块是对维度的限制(选择)。这是一个运行时问题,而不是建模问题,但是模型必须分辨其需要。
基本的星型模式并不能满足数据挖掘的所有需要。我们需要更复杂的维度,例如时间。分析员希望根据周、月、季度等识别模式。
维度必须进行规范化。我们不需要冗余的维度表,这只会使数据切片变得更加复杂。这种过程中我们得到的模式被称为雪花模式。
我们来看一个简单的雪花模式例子。我们将时间维度规范化为周、月和季度。
我们希望能够使用附加的规范化维度将立方体切片:周、月和季度。在本例中,我们假定季度是月的平行层次,这也就意味着我们不能将季度假定为若干月的聚合。由于这个原因,我们将使用一张范化表(是对 OLAP 查询的一项简单附加)预先选择时间维度。
最终雪花模式添加了规范化维度。
当然,所有的维度都可以像时间例子那样进行规范化,这就导致了比较复杂的数据集市模式的出现。
由 Rational Rose 从雪花模式中开发的实现模式(数据模型)是完善的。
创建的约束在图中也没有显示。
雪花模式中可以存在切片,不仅仅在基本的 Time 维度上,也可以在规范化的 Week、Month 和 Quarter 维度上。
在一次飞行中,我们不仅仅只吃一顿饭。在长途飞行中可能要多次用餐。在这种情况下,我们认为事实 Flight 和 Menu 维度不是一对多的关联。我们必须使用多对多关联。不过,这种关联不可能在星型模式中实现。
雪花模式的一种特殊形式是使用一种必要的数据结构以满足这项要求。
首先,我们将模型变更为事实和维度间的多对多关联。使用 Rational Rose,这只是关联基数的变更。
我们无法在关系数据库中实现多对多关联。实现多对多关联需要使用另一种雪花模式。
在下图中,我们关注一下已经开发的雪花模式的一部分,该部分处理多对多维度。
Rational Rose 生成了附加的维度表 FlightMenu,它是指 Menu 维度和 Flight 事实。
确定关系用于解决多对多关联。
对于雪花模式的架构师来说,最重要的一点就是识别多对多关系。简单对象视图可能会使设计员理解概念,而生成的数据视图有助于进一步深入有关实现的问题。
数据挖掘可以从隐藏在操作系统表面下的数据中发现信息。我们想了解的一个问题就是选定菜单与乘客统计资料之间的依赖关系。
乘客统计资料数据可以在 Passenger 维度的层次上构建。乘客可以根据邮政编码分组,然后再按国家进行分组。
层次通过使用聚合来指定。聚合定义了所包括的内容。Country 包含了 ZIP 编码,ZIP 编码包含了多名 Passenger 信息。
最终通过使用外键实现了聚合。
点击查看大图
生成的约束仍然没有在图中表示出来。
使用聚合,维度可以在任何定义的级别上使用。分析空间可以通过 Passenger、ZIP Code或者 Country 进行切片。
随着数据仓库架构师不断地添加细节内容,雪花模式变得越来越复杂。因此设计过程必须在到达某种程度后停止以保持数据仓库运行良好。
星型或者雪花模式仍然仅仅关注于一个事实--在本例中就是Flight。那么复杂关系又是什么情况呢?
对于每个事实我们都必须设计其各自的模式。如果我们想要进行复杂查询的话,它们就必须具有共同的维度--我们称其为一致的维度。
让我们使用 Pilot 作为一个维度,PilotFlight 作为一个事实来定义第二个星型模式。我们还要使用附加的 Flight Schedule 维度和 Time 维度。
第二个模式可以单独使用或者与 Passenger 模式结合使用,从而根据使用一致维度的飞行员维度来查询 Passenger 的满意程度。
即使在使用一致维度的数据仓库的简单结构中,Pilot 与 Passenger 之间的关系也是简单的。
在开发数据模型时,数据仓库将大量小型星型模式与雪花模式相结合形成了大型的数据仓库模式。
我们想要评估乘客对于飞行的满意率。可以使用不满意到很满意几个级别进行评定。评定记录存放在事实表 Flight 中作为一个属性(列)。
如果我们想要得出一个平均记录,那么就必须为记录定义值以进行计算。我们可以将记录分为 0 到 10 级。这样就可以得到一个平均记录。平均值应该存储在维度表中,以用于简单的切片,其中我们只想进行一维切片。
Rational Rose 根据目标数据库的数据类型生成了实现属性。对象模型是用来定义数据库的数据源的。
IBM Rational Rose 是设计数据仓库实现的最佳工具。
对象模型定义了有关模式的全局结构的对象,和包括数据源的整体数据仓库。它代表了数据仓库中有关视图的对象,同时隐藏了实施细节。
数据模型是数据仓库的实现模型。数据模型可以从对象模型中生成,反之亦然。
数据分析咨询请扫描二维码
在准备数据分析师面试时,掌握高频考题及其解答是应对面试的关键。为了帮助大家轻松上岸,以下是10个高频考题及其详细解析,外加 ...
2024-12-20互联网数据分析师是一个热门且综合性的职业,他们通过数据挖掘和分析,为企业的业务决策和运营优化提供强有力的支持。尤其在如今 ...
2024-12-20在现代商业环境中,数据分析师是不可或缺的角色。他们的工作不仅仅是对数据进行深入分析,更是协助企业从复杂的数据信息中提炼出 ...
2024-12-20随着大数据时代的到来,数据驱动的决策方式开始受到越来越多企业的青睐。近年来,数据分析在人力资源管理中正在扮演着至关重要的 ...
2024-12-20在数据分析的世界里,表面上的技术操作只是“入门票”,而真正的高手则需要打破一些“看不见的墙”。这些“隐形天花板”限制了数 ...
2024-12-19在数据分析领域,尽管行业前景广阔、岗位需求旺盛,但实际的工作难度却远超很多人的想象。很多新手初入数据分析岗位时,常常被各 ...
2024-12-19入门数据分析,许多人都会感到“难”,但这“难”究竟难在哪儿?对于新手而言,往往不是技术不行,而是思维方式、业务理解和实践 ...
2024-12-19在如今的行业动荡背景下,数据分析师的职业前景虽然面临一些挑战,但也充满了许多新的机会。随着技术的不断发展和多领域需求的提 ...
2024-12-19在信息爆炸的时代,数据分析师如同探险家,在浩瀚的数据海洋中寻觅有价值的宝藏。这不仅需要技术上的过硬实力,还需要一种艺术家 ...
2024-12-19在当今信息化社会,大数据已成为各行各业不可或缺的宝贵资源。大数据专业应运而生,旨在培养具备扎实理论基础和实践能力,能够应 ...
2024-12-19阿里P8、P9失业都找不到工作?是我们孤陋寡闻还是世界真的已经“癫”成这样了? 案例一:本硕都是 985,所学的专业也是当红专业 ...
2024-12-19CDA持证人Louis CDA持证人基本情况 我大学是在一个二线城市的一所普通二本院校读的,专业是旅游管理,非计算机非统计学。毕业之 ...
2024-12-18最近,知乎上有个很火的话题:“一个人为何会陷入社会底层”? 有人说,这个世界上只有一个分水岭,就是“羊水”;还有人说,一 ...
2024-12-18在这个数据驱动的时代,数据分析师的技能需求快速增长。掌握适当的编程语言不仅能增强分析能力,还能帮助分析师从海量数据中提取 ...
2024-12-17在当今信息爆炸的时代,数据分析已经成为许多行业中不可或缺的一部分。想要在这个领域脱颖而出,除了热情和毅力外,你还需要掌握 ...
2024-12-17数据分析,是一项通过科学方法处理数据以获取洞察并支持决策的艺术。无论是在商业环境中提升业绩,还是在科研领域推动创新,数据 ...
2024-12-17在数据分析领域,图表是我们表达数据故事的重要工具。它们不仅让数据变得更加直观,也帮助我们更好地理解数据中的趋势和模式。相 ...
2024-12-16在当今社会,我们身处着一个飞速发展、变化迅猛的时代。不同行业在科技进步、市场需求和政策支持的推动下蓬勃发展,呈现出令人瞩 ...
2024-12-16在现代商业世界中,数据分析师扮演着至关重要的角色。他们通过解析海量数据,为企业战略决策提供有力支持。要有效完成这项任务, ...
2024-12-16在当今数据爆炸的时代,数据分析师是组织中不可或缺的导航者。他们通过从大量数据中提取可操作的洞察力,帮助企业在竞争激烈的市 ...
2024-12-16