数据仓库多维数据模型研究及其设计方法

本文探讨了数据仓库技术的重要性,并详细介绍了数据仓库的两种主流建模方法:Inmon的企业级数据仓库模型和Kimball的多维模型。重点分析了多维建模技术,包括星形模式和雪花模式的特点及适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 随着市场竞争的日趋激烈,信息对于企业的生存和发展发挥着越来越重要的作用。由于计算机技术的普遍应用,承载信息的数据随着时间的推移而不断增长,并且分布在不同的系统平台上,具有多种存储形式,这使得企业难以从巨量的数据中找到真正有用的决策信息。因此企业迫切需要新的技术和方法对原有的信息进行提炼和加工,需要为企业领导提供集成化和历史化的数据,需要为企业全局的战略决策和长期趋势分析提供更有效的支持。这种情况下,一种适用于决策支持系统的数据组织与管理技术—数据仓库技术应运而生。 数据仓库不是为了存储数据,而是为更好地利用企业内所有可能收集到的数据进行决策支持。数据仓库的概念是W.H.Inmon在其《建立数据仓库》一书中提出的,他指出“数据仓库是面向主题的、集成的、具有时间特征的、稳定的数据集合,用以支持经营管理中的决策制定过程”。 简单的讲,数据仓库就是企业内部一个专门的、大型统一的数据存储,支持更快速、更灵活、更有效的分析型数据查询。 数据仓库的数据模型 数据模型是对现实事物的反映和抽象,它可以帮助我们更加清晰地了解客观世界。对于传统的OLTP系统,我们总是按照应用来建立它的模型。也就是说,OLTP系统是面向应用的。而数据仓库是面向主题的,一般按照主题来建模。主题是一个在较高层次将数据进行归类的标准,每个主题基本对应一个宏观的分析领域,满足该领域决策的需要。例如从整个银行的角度考虑,其数据模型不再面向个别应用,而是面向整个银行的主题,如客户、产品、渠道等。主题的抽取按照分析的要求来确定的。 建模原则 要成功地建立一个数据仓库,必须有一个合理的数据模型。数据仓库建模在业务需求分析之后开始,是数据仓库构造的正式开始。在创建数据仓库的数据模型时应考虑: 满足不同层次、用户的需求;兼顾查询效率与数据粒度的需求;支持用户需求变化;避免业务运营系统性能影响;提供可扩展性。数据模型的可扩展性决定了数据仓库对新的需求的适应能力,建模既要考虑眼前的信息需求,也要考虑未来的需求。 两种主流模型分析 目前两类主流的数据仓库模型分别是由Inmon提出的企业级数据仓库模型和由Kimball提出的多维模型。Inmon提出的企业级数据仓库模型采用第三范式(3NF),先建立企业级数据仓库,再在其上开发具体的应用。企业级数据仓库固然是我们所追求的目标,但在缺乏足够的技术力量和数据仓库建设经验的情况下,按照这种模型设计的系统建设过程长,周期长,难度大,风险大,容易失败。这种模型的优点是信息全面、系统灵活。由于采用了第三范式,数据存储冗余度低、数据组织结构性好、反映的业务主题能力强以及具有较好的业务扩展性等,但同时会存在大量的数据表,表之间的联系比较多,也比较复杂,跨表操作多,查询效率较低,对数据仓库系统的硬件性能要求高等问题。另一方面,数据模式复杂,不容易理解,对于一般计算机用户来说,增加了理解数据表的困难。 Kimball提出的多维模型降低了范式化,以分析主题为基本框架来组织数据。以维模型开发分析主题,这样能够快速实施,迅速获得投资回报,在取得实际效果的基础上,再逐渐增加应用主题,循序渐进,积累经验,逐步建成企业级数据仓库。这也可以说是采用总线型结构先建立数据集市,使所有的数据集市具有统一的维定义和一致的业务事实,这种方法融合了自下而上和自上而下两种设计方法的思想。这种模型的优点是查询速度快,做报表也快;缺点是由于存在大量的预处理,其建模过程相对来说就比较慢。当业务问题发生变化,原来的维不能满足要求时,需要增加新的维。由于事实表的主码由所有维表的主码组成,所以这种维的变动将是非常复杂、非常耗时的。而且信息不够全面、系统欠灵活、数据冗余多。 本文主要研究多维模型的建模技术及其设计方法。 多维建模技术 多维数据建模以直观的方式组织数据,并支持高性能的数据访问。每一个多维数据模型由多个多维数据模式表示,每一个多维数据模式都是由一个事实表和一组维表组成的。多维模型最常见的是星形模式。在星形模式中,事实表居中,多个维表呈辐射状分布于其四周,并与事实表连接。 星形模式 位于星形中心的实体是指标实体,是用户最关心的基本实体和查询活动的中心,为数据仓库的查询活动提供定量数据。每个指标实体代表一系列相关事实,完成一项指定的功能。位于星形图星角上的实体是维度实体,其作用是限制用户的查询结果,将数据过滤使得从指标实体查询返回较少的行,从而缩小访问范围。每个维表有自己的属性,维表和事实表通过关键字相关联。 星形模式虽然是一个关系模型,但是它不是一个规范化的模型。在星形模式中,维度表被故意地非规范化了,这是星形模式与OLTP系统中的关系模式的基本区别。 使用星形模式主要有两方面的原因:提高查询的效率。采用星形模式设计的数据仓库的优点是由于数据的组织已经过预处理,主要数据都在庞大的事实表中,所以只要扫描事实表就可以进行查询,而不必把多个庞大的表联接起来,查询访问效率较高。同时由于维表一般都很小,甚至可以放在高速缓存中,与事实表作连接时其速度较快;便于用户理解。对于非计算机专业的用户而言,星形模式比较直观,通过分析星形模式,很容易组合出各种查询。 雪花模式 在实际应用中,随着事实表和维表的增加和变化,星形模式会产生多种衍生模式,包括星系模式、星座模式、二级维表和雪花模式。 雪花模式是对星形模式维表的进一步层次化,将某些维表扩展成事实表,这样既可以应付不同级别用户的查询,又可以将源数据通过层次间的联系向上综合,最大限度地减少数据存储量,因而提高了查询功能。 雪花模式的维度表是基于范式理论的,因此是界于第三范式和星形模式之间的一种设计模式,通常是部分数据组织采用第三范式的规范结构,部分数据组织采用星形模式的事实表和维表结构。在某些情况下,雪花模式的形成是由于星形模式在组织数据时,为减少维表层次和处理多对多关系而对数据表进行规范化处理后形成的。 雪花模式的优点是:在一定程度上减少了存储空间;规范化的结构更容易更新和维护。同样雪花模式也存在不少缺点:雪花模式比较复杂,用户不容易理解;浏览内容相对困难;额外的连接将使查询性能下降。在数据仓库中,通常不推荐“雪花化”。因为在数据仓库中,查询性能相对OLTP系统来说更加被重视,而雪花模式会降低数据仓库系统的性能。 事实表、维表及码的设计 事实表和维表是多维模型中的两个基本概念,事实表是数据分析所对应的主要数据项,一般是企业内的某项业务或某个事件。事实表中的事实一般具有数据特性和可加性,这种特征对于分析型应用而言是非常重要的。在这类应用中,人们所关心的不是单一的一条记录,而是关心汇总的、综合性的数据,因此一次性检索的记录可能是几百条、几千条甚至可能几百万条,而且还要求可能按不同的粒度汇总。事实表中可以存储不同粒度的数据,同一主题中不同粒度的数据一般存储在不同的事实表中。在数据仓库中,对于比较简单的主题,一般一个主题对应一个事实表,对于比较复杂的分析主题,很可能一个主题对应多个事实表。 维表中包含的一般是描述性的文本信息,这些文本信息将成为事实表的检索条件,如按地区分类查询销售信息,或按季度考察销售变化趋势等。所以维表的属性长度可能出现较宽的情况,但它们的数据行数往往很小,在数据仓库中占用的存储空间也比较小。维表中的维属性应该具体明确,体现出维层次的划分,能够成为分析型查询的约束条件,这是数据仓库与操作型应用在数据模型设计上的一个不同点。 维表层次的级别数量取决于查询的粒度。在实际业务环境中,多维数据模型一般含有4~15维,更多的维数或更少的维数一般都很少见。在具体工作中,设计人员一定要根据企业的实际情况确定相应的维。 在多维模型中,事实表的主码是组合码,维表的主码是简单码,事实表中与维表主码相对应的各个组成部分是外码。事实表通过与各维相对应的外码值同维表联系在一起。查询时通过事实表和维表之间的这种对应关系。 结束语 建设数据仓库项目必然涉及到数据仓库建模的问题,合理而完备的数据模型是用户业务需求的体现,是数据仓库成败的技术因素。因此,数据模型的创建能直接反映出业务需求,对系统的物理实施起着指导性的作用,是数据仓库的核心问题。在设计数据仓库模型时,不仅要考虑数据存储效率,同时也要考虑数据仓库系统查询性能和OLAP分析性能,并根据具体项目情况灵活调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值