数据建模是设计数据库的重要组成部分。如果要获得最佳结果,请确保利用可用的数据模型。请继续阅读以了解更多信息。
每个关系数据库都有明确定义的对象以及这些对象之间的关系。它们共同构成了数据模型。
本文介绍了数据建模的概念。首先,我们将介绍数据建模及其过程的步骤。然后,我们将跳转到各种类型的数据模型。您将看到概念、逻辑和物理数据模型的示例。我还将提到一些更具体的数据模型。
让我们开始吧!
关系数据库将数据组织到表中,这些表之间有连接。但在创建物理数据库之前,应对数据进行建模。数据模型有助于可视化数据并对其进行逻辑分组。以下是我们将在本文中重点介绍的三种数据模型:
基础是概念数据模型。以下是逻辑和物理数据模型。我们将在以下各节中了解有关这些数据模型的详细信息。
数据建模是一个庞大的主题。它对数据库设计过程至关重要。因此,请务必查看我们关于数据建模的其他文章,例如什么是数据建模,数据建模的好处以及为什么需要数据建模。如果您仍然询问为什么我们需要数据建模过程和图表,请阅读本文以了解可以通过遵循数据建模过程来避免的常见数据库设计错误。
在数据建模过程中,有几个步骤需要遵循。让我们一个接一个地介绍它们。
步骤 1.标识实体
此步骤是概念性数据建模的一部分。在这里,我们根据业务规则确定数据组。例如,在可视化杂货店数据库时,我们将具有产品、订单和客户等实体,如下所示:
步骤2.识别实体之间的连接
此步骤是概念数据建模的一部分。在这里,我们决定实体之间的关系(即连接)。例如,每个客户将有一个或多个订单,每个订单将有一个或多个产品。我们可以在下图中看到这一点。
第3步.标识实体的属性
此步骤是逻辑数据建模的一部分。每个实体都被分配了其属性;这成为物理数据模型的基础。例如,每个订单都有一个订单 ID、一个下订单的客户(customer_id)和订购的产品:
步骤 4.确定属性的特定数据类型
此步骤是物理数据建模的一部分。在这里,我们将特定于数据库的数据类型分配给每个实体的属性。例如,order_id将是整数,客户名称将是 VARCHAR,如下所示。
第5步.标识多对多关系并实现联结表
此步骤也是物理数据建模的一部分。在这里,我们创建一个存储多对多关系数据的附加表。例如,每个订单可以有一个或多个产品,同时,每个产品可以订购零次或多次。
第 6 步。创建数据库约束、索引、触发器和其他特定于数据库的对象
此步骤是物理数据建模的一部分。在这里,我们专注于实现特定于数据库的功能。例如,让我们标记每个表的主键和外键(如果需要):
完成数据建模过程后,您可以通过执行物理数据建模产生的 SQL 脚本立即创建物理数据库。
数据建模是数据库建模的一部分。查看本文,从不同的角度来看待整个数据库建模过程。
您现在了解了数据建模过程的基础知识。让我们看看在实践中如何使用它。
想象一下,当地动物园雇佣你来设计他们的数据库。我们将创建概念、逻辑和物理数据模型,以完成整个数据库设计过程。
概念数据模型侧重于识别实体及其之间的关系。我们考虑业务数据、业务规则和业务流程。
此数据模型是数据的严格抽象表示形式。其组件包括:
概念数据模型通常由数据架构师创建,以向业务利益干系人提供高级数据概述。
例
首先,让我们确定实体。
现在,让我们讨论一下实体之间的关系。
这是表示此数据的概念模型:
接下来,让我们转到逻辑数据模型。
逻辑数据模型深入研究数据结构,为每个实体分配属性,并指定数据库实现详细信息。
此数据模型是物理数据模型的基础。唯一的区别是逻辑数据模型不是特定于数据库的(与物理数据模型相反,物理数据模型是为Oracle或MySQL等数据库管理系统设计的)。
例
我们可以在 Vertabelo 中创建逻辑数据模型。请注意,还有更多详细信息:
除了属性名称之外,我们还有常规数据类型(即整数或 varchar)以及强制或不可为空的列 (M) 和主要标识符字段 (PI) 的指示器。PI 字段将成为物理数据模型中的主键。
此数据模型仍然与数据库无关。属性的数据类型是抽象的,但 Vertabelo 在生成物理数据模型时会将它们转换为特定于数据库的数据类型。
物理数据模型包括所有特定于数据库的功能,例如数据类型、数据库索引、触发器、约束等。
此数据模型与数据库直接相关,因为我们可以仅基于此数据模型生成数据库创建脚本。它包括主键和外键、列和值约束以及其他特定于数据库的功能。
例
让我们从 Vertabelo 中的逻辑数据模型生成一个物理数据模型。
此数据模型是特定于数据库的。在这里,我们使用的是后格雷SQL。若要了解有关概念、逻辑和物理数据模型的详细信息,请阅读本文。
现在我们已经了解了基本数据模型,让我们看一下其他可用的数据模型。
有许多不同的数据模型。统一建模语言 (UML) 提供了软件工程中使用的各种模型。其中一些(如类图)在数据建模中很有帮助。让我们看一下其他一些有用的数据模型。
维度数据模型用于实现数据仓库系统。这些数据模型在促进数据分析和检索方面非常方便。
多维数据模型的元素包括:
例如,如果我们认为动物业务流程的喂养是事实,则可能的维度包括看护人维度、食物类型维度和喂养时间维度。
面向对象的数据模型帮助我们更轻松地关联复杂的现实世界对象。此模型的元素包括:
下面我们有一个面向对象的数据模型示例:
此数据模型提供了有关每个对象/实体的特殊性的更多信息,
实体关系数据模型属于概念数据模型的类别。它由实体、其属性以及实体之间的任何关系组成。
概念数据模型都是关于对数据的正确感知。
任何数据库设计过程都从使用各种数据建模工具和图表可视化数据开始。我们通常使用自上而下的方法,从可用数据的一般概述(概念模型)开始,然后深入到越来越多的细节(逻辑和物理模型)。
按照这种方法,第一步是创建一个概念数据模型。它帮助我们最初组织数据并确定对象/实体以及它们之间的关系。接下来是一个逻辑数据模型,它提供有关数据结构的更多详细信息,例如每个实体的属性。最后,我们将逻辑数据模型转换为物理数据模型。物理数据模型是数据库的精确蓝图。
有了这些知识,您就可以设计自己的数据库了。