注:本文参考Inmon的著作,Inmon支持关系模型,因此下面的观点基本都是支持关系模型的。关于多维模型的内容可参考Kimball的著作《数据仓库工具箱:维度建模的完全指南》等。
广泛采用的数据库设计模型有两种:关系型和多维型。在数据仓库的设计方法中关系模型是“Inmon”方法,多维模型是“Kimball”方法。在建立数据仓库过程中,对于数据库设计而言,建立关系型数据库是最佳的长期的方法;多维模型利于短期数据仓库,但这种方法适用的数据仓库的范围有限。
1 关系模型
数据库设计的关系型方法始于20世纪70年代,如IBM的DB2,Oracle,Teradata等,关系模型通过关键字和外键在不同行的数据间建立关联。关系模型自带一种结构化查询语言(SQL),作为程序和数据间的接口语言。
关系型数据以一种称为“标准化”的形式(即,通常所说的范式)存在。数据标准化是指数据库设计会使数据分解成非常低的粒度级。标准化的数据以一种孤立模式存在,这种情况下对数据表里的数据关系要求很严格。当进行标准化的时候,表中的数据只能与这张表里的其他数据关联。标准化基本分为三级:第一级标准形式(第一范式,1NF),第二级标准格式(第二范式,2NF),第三级标准格式(第三范式,3NF)。
关系模型的优点是灵活性和多功能性。
2 多维模型
多维模型方法也叫做星形连接。星形连接的中心是一张事实表,事实表是包含大量数据值的一种结构。事实表的周围是维表,用来描述事实表的某个重要方面。事实表包含的是那些多次出现的数据,维表包含相关的但独立的信息,维表表示一些与事实表相关的重要的但起辅助作用的信息。事实表与维表通过存在的公共数据单元相关联。
通常,星形连接只包含一张事实表。雪花结构中,不同的事实表通过共享一个或多个公共维表连接起来。有时称这些共享的维表为一致维表。
多维模型设计的最大优点在于访问的高效性。因为星形连接是根据用户的需求设计的。
3 关系模型和多维模型的区别
作为数据仓库设计的基础,星形连接和关系型结构两者之间存在很多不同。最重要的区别在灵活性和性能方面。关系模型具有高灵活性,但是对用户来说在性能方面却不理想。多维模型在满足用户需求方面是非常高效的,但灵活性不好。
另一重要区别在于设计的范围不同。多维设计通过请求过程(可理解为用户需求)建立模型,当收集到很多请求过程时设计会被中断,也就是说,多维设计只能在一组请求过程下得到最优化。关系模型要求数据以最低粒度级存储,那么就可以无限制地添加新数据。因此,关系模型适合大范围数据(如一个企业模型),而多维模型适合小范围数据(如一个部门)。
3.1 区别的由来
(1)二者在设计模式上的区别:关系模型由企业数据模型设计而来,星形连接或多维模型则是根据最终用户的请求(可理解为需求)塑造的。
这种区别导致两方面的差异:第一是适用性方面。关系模型通过抽象数据形成,所以模型非常灵活。第二,多维模型支持直接访问数据。而关系模型支持间接数据访问(这导致其数据读取性能不高,但可通过数据重建(参见3.2)提高数据访问性能)。
(2)而或则在起源上的第二点细微差别是关系模型隐含的数据模型有着非常高的抽象级,而多维模型包含的处理模型却不是抽象的。因为关系模型所处的抽象级,它可以支持很多用户。多维模型有非常明确的处理请求,所以,它只能支持一些特定的需求。但是,如果多维模型设计优良,还是能够很好地支持处理请求的。
3.2 重建关系型数据
关系模型中的基本数据能够根据需要以各种形式构造和重建。
3.3 数据的直接访问和间接访问
星形连接(也即多维方法)适用于只对一组用户做最优化的数据访问。星形连接无法同时满足多组用户的需求。
3.4 可扩展性(支持将来未知的需求)
关系模型中的粒度级数据可以支持位置需求。
3.5 支持适度变化的需求
关系模型的另一优点是具有适度变化的能力。数据仓库用户访问的是由关系模型转换而来的数据而不是关系模型本身的数据。
星形连接即多维方法不具有适度变化的能力。多维数据库设计是很脆弱的,是很多处理请求聚集在一起的结果。当处理请求变化时,多维数据库的设计未必能够适度地变化。数据一旦以多维方法建立,数据就被固定住,难以适应新需求。
因此,关系模型对数据仓库设计的最佳基础,而星形连接对于数据集市时最佳选择。
上面是Inmon对于二者的比较和结论。而Kimball在其著作中基本上是针对这些言论给予了反驳。其著作中介绍了对于维度模型的五个重大误解:
(1)维度模型与数据中心都只是应用于概要性数据的(即不包含细节数据)。
(2)维度模型与数据中心是针对部门而不是针对企业的解决方案。
(3)维度模型与数据中心是不可升级的。
(4)维度模型与数据中心仅当存在可预见的使用模式时才适合。即,维度模型对于不断变化的业务需求无能为力。
(5)维度模型与数据中心是不能集成的,从而只能形成直通的解决方案。
Kimball在其著作中对上述五点重要的误解一一反驳。
4 独立数据集市
独立数据集市:直接通过历史操作型数据创建的数据集市。它不需要“全局考虑”。多维方法建立的就是独立数据集市(这是Inmon的观点,Kimball认为多维方法也适用于建立数据仓库)。
从属数据集市:利用来自数据仓库的数据创建的数据集市。它的数据源不依赖于历史数据或操作型数据,只依赖于数据仓库。它需要“全局考虑”,要求有预先的计划、长期的观察、全局的分析和企业各不同部门对需求分析的合作和协调。
独立数据集市存在以下问题:
- 不提供数据重用平台
- 不提供数据一致性的基础
- 不提供单一历史接口程序基础
- 需要每个独立数据集市建立自己的细节数据集,而其他的独立数据集市也会建立大量冗余数据
从属数据集市克服了独立数据集市存在的体系结构问题。
参考资料:
[1]Inmon《Building the Data Warehouse》(Fourth Edition)(荫蒙《数据仓库》(第四版))
[2]关系模型和关系数据库设计权威著作可参考Ted Codd和Chris Date的书籍和文章
[3]关于多维数据库设计Kimball方法可参看Kimball的相关书籍和文章
[4]Kimball《数据仓库工具箱:维度建模的完全指南》
[5]王珊《数据仓库技术与联机分析处理》
分享到:
相关推荐
数据库、数据仓库和数据模型是现代信息技术中至关重要的组成部分。它们不仅支撑着企业级的数据处理需求,也是实现数据分析、商业智能等功能的基础。通过对这些核心概念的理解和掌握,IT专业人士可以更好地设计和实施...
物理模型设计是指对数据仓库模型的物理设计,包括设计策略及原则、数据库结构设计列表、物理表 A 和物理表 B 等。 1. 设计策略及原则 设计策略及原则是指数据仓库模型物理设计原则及其参考依据,例如:并行方面的...
1. **分析主题域,确定当前要装载的主题**:基于概念模型设计中确定的主题域,逻辑模型设计阶段需要更深入地分析每个主题域,并确定哪些主题域将被首先装载到数据仓库中。 2. **确定粒度层次划分**:粒度层次是指...
数据仓库是一种特殊设计的数据库系统,其主要目的是为了支持决策制定和数据分析。它与传统的在线事务处理(OLTP)系统不同,数据仓库更注重历史数据的存储和分析,而非实时的事务操作。在这个主题中,我们将深入探讨...
在仓库管理系统数据库设计中,数据安全性和备份恢复机制同样重要。需要设置用户权限,防止未授权访问;定期进行数据备份,以防数据丢失;并制定恢复策略,以应对突发事件。 六、数据库性能优化 随着数据量的增长,...
在当今的企业运营环境中,数据仓库模型的建立是帮助企业管理其财务数据,从而进行深入分析并制定策略的关键。对于企业而言,理解并构建基于财务数据分析的数据仓库模型是一项至关重要的工作。接下来,我们将详细介绍...
数据仓库模型设计是构建数据仓库的关键步骤,它与传统的数据库系统设计有所不同,主要面向数据分析而非日常事务处理。数据仓库模型设计主要包括概念模型、逻辑模型和物理模型三个层次,旨在确保数据的一致性、完整性...
根据对持卡人的职业、年龄、单位、客户相互之间的关系等基本的个人信息,持卡人的存款余额、存款发生额、存款笔数、取款发生额、取款笔数、交易金额、交易笔数信息等数据的综合,建立多种业务需要的分析模型,对应到...
在数据仓库维度建模实践中,模型设计是非常重要的一步。它强调从业务、数据存取和使用角度合理存储数据,以满足企业数仓的要求:强稳定、高质量、高效率、低成本。 一、数据仓库维度建模的痛点 在数据仓库维度建模...
### 数据仓库的模型设计 #### A. 数据建模方法论 **数据仓库模型设计**遵循“自顶向下、逐步求精”的设计原则。这一过程主要包括三个阶段:概念模型、逻辑模型以及物理模型。 ##### 1. 概念模型 概念模型是对...
数据库与数据仓库导论是一门深入探讨这些主题的课程或教材,旨在帮助学习者理解数据库的基本概念、设计原则以及数据仓库在现代商业智能中的作用。 首先,我们需要了解数据库的基本概念。数据库是一个有组织的数据...
数据库原理是指数据库管理系统(DBMS)的基本理论和原理,包括数据模型、数据库设计、数据库实现、数据库应用等方面的知识点。 1. 数据模型:数据模型是指对现实世界的抽象表示,包括概念数据模型、逻辑数据模型和...
数据治理及数据仓库模型设计 数据治理是指组织对其数据的管理和控制,以确保数据的质量、安全和一致性。数据仓库模型设计是指设计和实现数据仓库的...元数据的应用和重要性在数据治理和数据仓库模型设计中显著增加。
数据仓库模型设计说明书模板是构建高效、稳定且符合业务需求的数据仓库系统的关键文档。这份文档不仅为项目的参与者提供了清晰的设计蓝图,还确保了在开发过程中能够遵循统一的标准和最佳实践。下面将根据提供的标题...
3. 逻辑模型设计:将E-R图转换为具体的数据库模型,如关系模型,设计表结构,确定字段类型、长度和约束条件。 4. 物理模型设计:考虑数据库性能,对逻辑模型进行优化,如索引设计、分区策略等。 5. 数据库实施:...
这个数据库设计实例涵盖了数据库设计的方方面面,包括实体关系设计、ER 图模型、数据库设计模式、数据表设计、实体之间的关系、数据模型的应用、数据库设计的步骤、数据库设计的原则、数据库设计工具和数据库设计的...
在仓库管理中,数据库的设计至关重要,因为它决定了数据的存储、查询和管理效率。这份报告书将涵盖以下几个核心知识点: 1. 需求分析:首先,设计前需对仓库管理业务进行详细的需求分析,包括库存商品信息、入库...
- 逻辑模型:在数据仓库中,逻辑模型通常是关系模型,它详细描述了数据仓库的主题和它们之间的联系,反映了业务需求,并对物理实现提供指导。逻辑模型直接关联到业务部门的实际需求。 - 物理模型:这是逻辑模型的...