什么是 ER 建模?通过示例学习

什么是 ER 建模?

实体关系模型 (ER 建模)是一种图形化的数据库设计方法。它是一种高级数据模型,用于定义特定软件系统的数据元素及其关系。ER 模型用于表示现实世界的对象。

An 实体 是现实世界中可与周围环境区分开的事物或对象。例如,组织中的每个员工都是一个单独的实体。以下是实体的一些主要特征。

  • 一个实体有一组属性。
  • 实体属性可以具有值。

让我们再次考虑我们的第一个例子。组织的员工是一个实体。如果“Peter”是一名程序员( 雇员)在 Microsoft,他可以拥有 属性 (属性)如姓名、年龄、体重、身高等。很明显,这些确实具有与他相关的价值。

每个属性可以有 理念。在大多数情况下,单个属性只有一个值。但属性有可能 多个值 也一样。例如,Peter 的年龄只有一个值。但他的“电话号码”属性可以有多个值。

实体可以有 相互关联的价值观运营。 相互影响。让我们考虑最简单的例子。假设每个 Microsoft 程序员得到了一台计算机。很明显 彼得的电脑 也是一个实体。Peter 正在使用那台计算机,而 Peter 也使用同一台计算机。换句话说,Peter 和他的计算机之间存在相互关系。

In 实体关系建模, 我们对实体、它们的属性以及实体之间的关系进行建模。

增强型实体关系 (EER) 模型

增强实体关系 (EER) 模型是一种高级数据模型,它扩展了原始 实体关系(ER)模型。 EER模型支持更多细节设计。 EER 建模是作为高度复杂数据库建模的解决方案而出现的。

EER 使用 UML 表示法。 UML 是 统一建模语言;它是一种通用建模语言,用于设计面向对象系统。实体表示为类图。关系表示为实体之间的关联。下图显示了使用 ER 图的 UML 符号.


增强实体关系 (EER)

为什么使用ER模型?

现在你可能会想,既然我们可以简单地 创建数据库 以及其所有对象,而无需 ER 建模?设计数据库时面临的挑战之一是设计人员、开发人员和最终用户往往以不同的方式看待数据及其使用方式。如果不加以控制,我们最终可能会生成一个无法满足用户要求的数据库系统。

所有利益相关者(技术和非技术用户)都理解的沟通工具对于生成满足用户要求的数据库系统至关重要。ER 模型就是此类工具的示例。

ER 图还可以提高用户的工作效率,因为它们可以轻松转换为关系表。

案例研究:“MyFlix”视频库的 ER 图

现在让我们使用 MyFlix 视频库数据库系统来帮助理解 ER 图的概念。我们将在本教程的其余部分使用此数据库进行所有动手操作

MyFlix 是一家向会员出租电影的商业实体。MyFlix 一直手动存储记录。管理层现在希望转向 DBMS

让我们看看为该数据库开发 EER 图的步骤 -

  1. 识别实体并确定它们之间存在的关系。
  2. 每个实体、属性和关系都应该有适当的名称,以便非技术人员也可以轻松理解。
  3. 关系不应直接相互连接。关系应该连接实体。
  4. 给定实体中的每个属性都应该有一个唯一的名称。

“MyFlix”库中的实体

纳入我们 ER 图 是;

  • 会员专区 – 该实体将持有会员信息。
  • 电影 – 该实体将持有有关电影的信息
  • 分类 – 该实体将保存将电影分为不同类别的信息,例如“戏剧”、“动作”和“史诗”等。
  • 电影租赁 – 该实体将持有有关出租给会员的电影的信息。
  • 支付记录 – 该实体将持有有关会员付款的信息。

定义实体之间的关系

会员和电影

关于两个实体之间的交互,以下内容成立。

  • 会员可以在规定时间内租借多部电影。
  • 在特定时期内,一部电影可以由多名会员租用。

从上面的场景我们可以看出,关系的本质是多对多。 关系数据库不支持多对多关系。我们需要引入一个连接实体。这就是 MovieRentals 实体扮演的角色。它与members表有一对多关系,与movies表有另一个一对多关系。

电影和类别实体

以下内容适用于电影和类别。

  • 一部电影只能属于一个类别,但一个类别可以包含多部电影。

由此我们可以推断类别和电影表之间的关系本质上是一对多。

会员和支付实体

以下关于会员和付款的说法正确

  • 一名会员只能拥有一个账户,但可以进行多次付款。

由此我们可以推断,会员和支付实体之间的关系本质上是一对多。

现在让我们使用创建 EER 模型 MySQL 工作台

在 MySQL 工作台,点击-“+”按钮

定义实体之间的关系

Double 单击添加图表按钮打开 ER 图的工作区。

定义实体之间的关系

出现以下窗口

定义实体之间的关系

让我们看看我们将使用的两个对象。

  • 定义实体之间的关系表对象允许我们创建实体并定义与特定实体关联的属性。
  • 定义实体之间的关系位置关系按钮允许我们定义实体之间的关系。

这款 会员的 实体将具有以下属性

  • 会员号码
  • 全名
  • 性别
  • 出生日期
  • 实际地址
  • 邮寄地址

现在让我们创建成员表

1.从工具面板中拖动表格对象

2.将其拖放到工作区中。出现一个名为表 1 的实体

3.Double 单击它。将出现如下所示的属性窗口

定义实体之间的关系

下一个 ,

  1. 将表 1 更改为成员
  2. 将默认的 idtable1 编辑为membership_number
  3. 单击下一行添加下一个字段
  4. 对成员实体中标识的所有属性执行相同的操作。

您的属性窗口现在应该如下所示。

定义实体之间的关系

对所有已识别的实体重复上述步骤。

您的图表工作区现在应如下所示。

定义实体之间的关系

让我们在会员和电影租赁之间建立关系

  1. 也使用现有列选择位置关系
  2. 单击“成员”表中的“membership_number”
  3. 单击 MovieRentals 表中的 reference_number

定义实体之间的关系

对其他关系重复上述步骤。您的 ER 图现在应如下所示 -

总结

  • ER 的全称是实体和关系图。它们在 数据库设计 流程。它们是技术人员和非技术人员的非技术交流工具。
  • 实体代表现实世界的事物;它们可以是概念性的销售订单,也可以是物理性的,例如客户。
  • 所有实体都必须有唯一的名称。
  • ER 模型还允许数据库设计者识别和定义实体之间存在的关系。

整个 ER 模型附在下面。您可以简单地将其导入 MySQL 工作台

点击此处下载 ER 模型