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

发布于:2021-01-27 12:00:19

0

430

0

ER建模 实体关系模型 数据库

什么是ER建模?

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

实体是现实世界中与周围环境不同的事物或物体。例如,公司的每个员工都是一个独立的实体。以下是实体的一些主要特征。

  • 一个实体有一组属性。

  • 实体属性可以有值。

让我们再考虑一下我们的第一个例子。公司的雇员是一个实体。如果张三是微软的程序员(一名员工),他可以拥有属性(属性),比如姓名、年龄、体重、身高等。很明显,这些属性确实包含与他相关的值。

每个属性都可以有值。在大多数情况下,单个属性只有一个值。但是属性也有可能具有多个值。例如,彼得的年龄只有一个值。但他的“电话号码”属性可以有多个值。

实体之间可以有关系。让我们考虑一下最简单的例子。假设每个微软程序员都有一台电脑。很明显,彼得的电脑也是一个实体。彼得在用那台电脑,彼得也在用同一台电脑。换句话说,彼得和他的电脑之间有一种相互的关系。

在实体关系建模中,我们对实体及其属性和实体之间的关系进行建模。

增强实体关系模型

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

EER使用UML表示法。UML是统一建模语言(Unified Modeling Language)的缩写,是设计面向对象系统时使用的通用建模语言。实体表示为类图。关系表示为实体之间的关联。下面所示的图表说明了使用UML表示法的ER图。


 

为什么使用ER模型?

现在您可能会想,既然我们可以简单地创建数据库及其所有对象而不需要ER建模,为什么还要使用ER建模?设计数据库时面临的一个挑战是,设计者、开发人员和最终用户往往以不同的方式查看数据及其使用。如果不检查这种情况,我们最终会生成一个不满足用户需求的数据库系统。

所有涉众(技术用户和非技术用户)都能理解的通信工具对于生成满足用户需求的数据库系统至关重要。ER模型就是这种工具的例子。

ER图还提高了用户的生产效率,因为它们可以很容易地转换为关系表。

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

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

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

让我们看看为这个数据库开发EER图的步骤:

  1. 识别实体并确定它们之间存在的关系。

  2. 每个实体、属性和关系都应具有非技术人员也容易理解的适当名称。

  3. 关系不应直接相互连接。关系应该连接实体。

  4. 给定实体中的每个属性都应该有一个唯一的名称。

“MyFlix”库中的实体

ER图中包含的实体包括:

  • 会员-此实体将保存会员信息。

  • 电影-此实体将保存有关电影的信息

  • 类别-此实体将保存将电影分为不同类别的信息,如“戏剧”、“动作”和“史诗”等。

  • 电影租赁-此实体将保存有关出租给会员的电影的信息。

  • 付款-此实体将保存有关会员付款的信息。

定义实体之间的关系

会员和电影

关于这两个实体之间的相互作用,以下是正确的。

  • 一个会员可以在一段时间内租用多部电影。

  • 一部电影可以在一段时间内由多个会员租用。

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

电影和分类实体

关于电影和电影类别,以下是正确的。

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

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

会员和支付实体

关于会员和付款,以下是正确的。

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

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

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

在MySQL工作台中,单击-“+”按钮。

  

双击adddiagram按钮打开ER图的工作区。

  

出现以下窗口。

  

让我们看看我们将要处理的两个对象。

  • 表对象允许我们创建实体并定义与特定实体关联的属性。

  • 放置关系按钮允许我们定义实体之间的关系。

会员“实体将具有以下属性

  • 会员编号

  • 全名

  • 性别

  • 出生日期

  • 实际地址

  • 邮政地址

现在创建members表

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

2.把它放到工作区。出现一个名为表1的实体

3.双击它。将显示下面显示的属性窗口

  

接下来

  1. 将表1更改为会员

  2. 编辑默认的idtable1到会员编号

  3. 单击下一行添加下一个字段

  4. 对会员实体中标识的所有属性执行相同操作。

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

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

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

  

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

  • 也使用现有列选择位置关系

  • 单击会员表中的会员编号

  • 单击moviententals表中的参考编号

  

对其他关系重复上述步骤。你的ER图应该是这样的:

  

摘要

  • ER的完整形式是实体和关系图。它们在数据库设计过程中起着非常重要的作用。它们是技术人员和非技术人员的非技术交流工具。

  • 实体代表现实世界的事物;它们可以是概念性的销售订单,也可以是实体性的,如客户。

  • 所有实体都必须具有唯一的名称。

  • ER模型还允许数据库设计者识别和定义实体之间存在的关系。

整个ER模型附在下面。您只需将其导入MySQL工作台即可。