数据仓库(Data Warehouse
)是一个存储企业数据的集合,是一个综合性的数据存储环境,用于支持企业的决策制定和分析。 在数据仓库中,实体是指可以被表示和存储的实际或抽象的对象,例如订单、客户、产品等。实体的重要性在于其可以提供有助于业务决策的数据。
实体分类
在数据仓库中,实体可以分为以下几类:
在数据仓库中,实体包括事实(Facts
)、维度(Dimensions
)、属性(Attributes
)等。其中,事实是数据仓库中的核心,表示业务过程发生的具体情况与事实有关的数据,例如销售量、成本、利润等重要指标;维度则是描述事实的一个框架,帮助用户以不同的角度来查看事实数据,有助于用户分析和决策制定;属性则是描述实体特定方面的信息,例如产品的名称、价格、尺寸等信息,帮助用户了解实体的情况。以上是数据仓库中实体的基本概念,不同实体之间存在关系,在实际应用中需要根据具体业务需求设计出相应的结构,并构建相应的数据模型。
举个例子
以一个电商平台的场景为例:
在一个电商平台中,一个订单可以作为一个事实(Facts
),它包含了这个订单的信息,例如购买的商品、购买的数量、订单时间、支付方式等内容。其中,购买的商品可以作为一个维度(Dimensions
),可以有不同的级别,例如类别、品牌、型号等。这个维度可以帮助用户了解哪些商品更受欢迎、哪些品牌和型号更受欢迎等信息。另外,订单中的商品也有相关的属性(Attributes
),例如商品的名称、价格、尺寸等信息。这些属性可以帮助用户更加详细地了解商品的情况。电商平台还可以使用统计数据,例如销售量、收益等,这些统计数据也可以作为事实(Facts
)存储在数据仓库中,帮助业务用户更好地了解销售情况并支持决策制定。
在数据仓库中,订单、商品、统计数据等都是实体,它们的属性、关系可以用于支持业务分析和决策制定。
实体分类
照实体含义进行分类:
分类方式 | 实体含义 | 例子 |
---|---|---|
业务实体 | 客户、订单、产品、员工等 | 电商平台的用户、订单、商品、库存记录等 |
度量实体 | 销售量、成本、收益等 | 每月销售额、每年总收益等 |
参照实体 | 商品分类、地理位置、时间等 | 商品分类、产品所在国家/城市、发货时间等 |
上下文实体 | 当前的周期、历史趋势等 | 当前季度、去年同期销售额等 |
控制实体 | 用户信息、权限、日志等 | 用户账号、管理员权限、操作日志等 |
按照模式分类的:
模式 | 描述 | 例子 |
---|---|---|
明细事实(Factless Fact) | 描述实体和关系之间的情况,没有度量值,例如客户没有下单的情况。 | 网站日访问记录,描述访问者和关系状态(登录/未登录)。 |
累积快照(Accumulating Snapshot) | 描述实体在特定时间点的相关指标,例如库存、订单状态等,通常是在事实表中加入状态字段。 | 班机飞行状态,包括班机出发时间、到达时间、飞行距离等状态。 |
周期快照(Periodic Snapshot) | 描述实体在一段时间内的情况,例如每日销售情况、每月运输状况等。 | 每天网站访问用户数,需要每天对该指标进行快照记录。 |
连续事实(Continuous Fact) | 描述实体一段时间内的数据变化情况,例如温度、湿度、压力等变化趋势。 | 温度传感器的数据记录,需要每秒记录温度变化情况。 |
多对多关系(Many-to-Many Relationship) | 描述实体之间的复杂关系,例如供应商和产品之间的关系。 | 电商平台中用户和关注商品之间的关系,一个用户可以关注多个商品,一个商品也可以被多个用户关注。 |
构建过程中需要注意的
在构建实体时,需要注意以下几点:
- 实体的定义:实体应该被清晰地定义,并且应该有一个与之相关的名称。这有助于其他人理解实体,并确保每个人都对实体有相同的理解。
- 实体的属性:实体应该包含与之相关的属性,这些属性描述了实体的特征。每个属性应该有一个名称,并且应该有一个数据类型。
- 实体之间的关系:不同的实体之间可能存在关系,如一对一、一对多或多对多等。构建实体时需要考虑这些关系并将其包含在实体中。
- 实体的标识:每个实体都应该有一个唯一的标识符。这可以是一个主键或一个组合键。
- 实体的范围:在构建实体时需要确定实体的范围。这可以包括实体的目的、实体的所属领域、实体的使用方式等。
- 实体的维护:在构建实体时需要考虑如何维护它,包括如何创建、更新和删除实体及其属性。
- 实体的命名规范:为了方便管理和维护,实体的命名应符合一定的规范,尽可能使用简洁易懂的名称。
- 实体的设计原则:构建实体时需要考虑一些设计原则,如单一责任原则、开闭原则、依赖倒置原则等,以确保实体的可维护性和扩展性。
构建实体的步骤
- 确定实体的目的:在开始构建实体之前,需要确定它的目的并明确它在系统中的作用。为此,需要进行系统需求分析,并确定实体的必要性。
- 确定实体的属性:确定实体包含的属性,即实体的特征。这有助于更好地理解实体,并帮助其他人使用实体时了解其特性。
- 确定实体之间的关系:如果存在多个实体之间的联系,需要考虑如何将它们联系起来并描述它们之间的关系。
- 建立实体的数据模型:完成上述步骤后,建立实体的数据模型。这通常包括使用类图或ER图等形式的建模工具,以绘制实体之间的关系,并将它们与属性相连。
- 设计实体的标识:每个实体应该有一个唯一的标识符。这可以是一个主键或一个组合键。
- 选择实体的属性类型:为每个实体属性选择适当的数据类型。这有助于确保实体属性的正确性及其在系统中的可用性。
- 建立数据表:将实体及其属性和关系转化为数据库表结构。这可以通过使用SQL或数据库管理系统的建立表工具完成。
- 测试和迭代:通过测试确保实体及其属性和操作的正确性,并进行必要的迭代和修改。
以上是构建实体的基本步骤,但实际情况可能会更复杂,需要逐步进行,并根据需要进行调整。
标签:yyds,实体,数据仓库,建模,用户,干货,构建,描述,属性 From: https://blog.51cto.com/hiszm/6108927