0


传统数据库三范式建模和数据仓库维度建模 详细篇

建模,说白了就是建库建表.无论是在数据库还是数据仓库中

一,三范式建模

一,三范式建模的概叙

  • 三范式建模时数据库设计的一种重要方法;
  • 它基于关系数据库的理论,通过规范数据表的设计来减少数据冗余
  • 从而提高数据一致性和查询效率。
  • 三范式,包括第一范式,第二范式,第三范式。每个范式都建立再前一个范式的基础上,对数据表提出更严格的要求。

二,三范式建模的作用

  1. 减少数据冗余。规范数据表的设计,避免一个数据库存储重复的数据,从而减少冗余
  2. 提高数据一致性。正式因为减少了数据冗余,因此在更新数据的时候,只需要在一个地方更改数据,就能保证整个数据的一致。
  3. 提高查询效率。虽然三方式建模导致查询的时候可能需要更多的表连接,但是由于数据冗余的减少,总体上也可以提高效率。
  4. 增强数据的事务性。这是主要的作用,极大的利于数据库的增删改。

三,三范式建模的定义

第一范式:数据库总每一列都是不可再分的,每个表的字段都是最基本,不可再分的数据单位。

第二范式:满足第一范式的基础上,表中的非主属性的字段必须都完全依赖主键。不能部分依赖;

第三范式,在满足第二范式的基础上,表中非主属性的字段不存在传递依赖关系。

四,三范式建模的举例

一范式

二范式 不允许有部分依赖,非主键的列必须完全依赖主键

三范式 在第二范式的基础上 不允许有传递依赖,也是必须完全依赖主键

二,维度建模的概念与定义

            维度建模(Dimensional Modeling)是数据仓库建设中的一种数据建模方法,它将数据结构化的逻辑设计方法,将客观世界划分为度量和上下文。这种模型设计技术旨在通过直观的标准框架结构来表现数据,允许高性能存取,并优化读取、报告和分析大量业务数据的性能。维度建模的核心在于将业务过程和事件组织成一组维度和事实,以描述业务活动的特征和结果。这种方法由Kimball最先提出,并广泛应用于数据仓库和商业智能系统的设计中。

一,维度建模的优势

  1. 提高数据分析效率:通过将业务数据进行有效组织,维度建模支持快速、有效的数据分析,使数据分析师能够更快地获取所需信息。
  2. 降低数据噪声:通过整合不同业务事件的数据,减少数据中的异常值和噪声,提高数据的一致性和准确性。
  3. 提高数据质量:维度建模通过规范化和标准化数据,确保数据的一致性和高质量,为决策提供可靠依据。
  4. 支持实时数据分析:结合增量建模技术,维度建模能够支持实时数据分析,满足业务决策对时效性的需求。
  5. 易于理解和查询:维度建模采用直观的结构设计,使得非技术用户也能更容易地理解和查询复杂的数据集。

二,维度建模的分类

维度建模主要分为以下几种类型:

  1. 星型模型(Star Schema): - 特点:包含一个事实表和多个维度表。事实表存储了度量数据(如销售额、交易数量等),而维度表提供了关于事实表中记录的上下文描述性信息(如时间、地点、产品等)。事实表与维度表通过主键外键相关联,形成星型结构。- 优点:结构简单,查询性能高,易于理解和实现。- 缺点:可能存在数据冗余。
  2. 雪花模型(Snowflake Schema): - 特点:雪花模型是对星型模型的扩展,其中一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上。这种结构类似于多个雪花连接在一起。- 优点:通过减少数据存储量以及联合较小的维表来改善查询性能。- 缺点:结构复杂,查询时可能需要更多的关联操作,影响性能。
  3. 星座模型(Constellation Schema): - 特点:星座模型是基于多张事实表,并且这些事实表共享维度表信息。这种模型适用于数据关系比星型模型和雪花模型更复杂的场合。- 优点:能够处理更复杂的数据关系,支持多个角度的数据分析。- 缺点:设计和实现复杂度较高。

三,维度建模的举例

以电商平台的销售数据为例,维度建模可以设计如下:

  • 事实表:销售事实表,包含字段如订单编号、订单日期、销售额、销售量等。

  • 维度表: - 时间维度表:包含日期、月份、季度、年份等字段。- 产品维度表:包含产品编号、产品名称、产品类型、价格等字段。- 客户维度表:包含客户编号、客户姓名、性别、年龄、地区等字段。

      通过这些维度表和事实表的关联,可以方便地查询和分析电商平台的销售数据,如某产品在某时间段的销售额、某客户在某时间段的购买记录等。这种设计使得数据分析更加直观和高效。
    

四,维度建模的具体示例:

三,三范式建模和维度建模的区别

区别点三范式建模维度建模设计目标减少数据冗余,保证数据一致性和完整性优化查询性能,支持快速的数据分析和决策制定数据结构通常具有规范化的、高度结构化的表,避免数据冗余以维度表和事实表为核心,可能存在一定的数据冗余数据存储数据分散在多个关联的表中数据主要集中在事实表和相关的维度表中业务理解难度对于业务人员来说,理解和使用相对较复杂更贴近业务逻辑,易于业务人员理解和分析查询性能对于复杂查询可能需要较多的表连接,影响性能针对常见的分析需求进行优化,查询性能较好适应变化适应业务变化的灵活性相对较低能够相对快速地适应业务变化和新的分析需求应用场景适用于事务处理系统,如在线交易系统适用于数据仓库和数据分析系统

标签: 数据库 linux hadoop

本文转载自: https://blog.csdn.net/qq_55006020/article/details/140953822
版权归原作者 凡梦_leo 所有, 如有侵权,请联系我们删除。

“传统数据库三范式建模和数据仓库维度建模 详细篇”的评论:

还没有评论