一文讲透实体-联系模型(E-R图)

目录

1.E-R图简介(什么是E-R图)

2.为什么要引入E-R图?

3.E-R图的构成

4.E-R图进阶

4.1弱实体

 4.2部分键


1.E-R图简介(什么是E-R图)

E-R模型(Entity-Relationship Model)是一种用于数据库设计的概念模型。它提供了一种描述现实世界中数据组织和关联的图形化方法,用于表示实体属性联系之间的关系。


2.为什么要引入E-R图?

使用E-R模型有以下几个主要原因:

  1. 数据建模:E-R模型提供了一种直观且易于理解的方法来建模现实世界中的数据。通过将实体、属性和关系抽象成图形化符号,可以更好地捕捉和表示数据之间的关系和结构。

  2. 数据可视化:E-R模型允许将数据的组织和关联可视化。通过图形表示,可以清晰地展示实体之间的关系、属性的特征以及它们之间的连接方式。

  3. 数据完整性:E-R模型有助于确保数据的完整性。通过定义实体之间的关系和约束条件,可以确保数据在插入、更新和删除时保持一致性和正确性。

  4. 查询优化:E-R模型可以帮助优化数据库查询。通过了解实体之间的关系,可以设计出更有效的查询和连接方式,提高查询性能和响应时间。E-R模型还可以指导索引的创建,以支持常见的查询操作。

总的来说,E-R模型提供了一种直观和规范的方法来描述和设计数据库。它有助于提高数据库设计的质量、数据的完整性和查询的性能,从而提升整个数据库系统的效率和可靠性。


3.E-R图的构成

  1. 实体(Entity):实体表示现实世界中的一个独立对象,可以是人、物、地点、概念等。在E-R图中,实体用矩形框表示,框内写上实体的名称。

  2. 属性(Attribute):属性是描述实体特征的信息。每个实体可以有多个属性,例如一个人实体可以有姓名、年龄、性别等属性。属性以椭圆形状表示,并与相应的实体相连。其中能够唯一标识实体的属性称为主键。一文讲透实体-联系模型(E-R图)_第1张图片

     

  3. 关系(Relationship):关系表示实体之间的相互作用或联系。关系可以是一对一、一对多或多对多的。在E-R图中,关系用菱形表示,并与相关的实体相连。关系还可以具有属性,用于描述与关系相关的信息。

  4. 主键(Primary Key):用于唯一标识实体的属性,通常在实体框内用下划线或加粗表示。主键属性的值在整个实体集合中必须是唯一的,用于区分不同的实体。

在 E-R 图中,根据实体之间的连接方式和关系类型,关联关系可以分为以下几种类型: 

  1. 一对一(One-to-One)关联:一个实体实例与另一个实体实例之间存在唯一的关联关系。这种关系表示为一个实体的一个实例与另一个实体的一个实例相连接。

  2. 一对多(One-to-Many)关联:一个实体实例与另一个实体实例之间存在一对多的关联关系。这种关系表示为一个实体的一个实例与另一个实体的多个实例相连接。

  3. 多对多(Many-to-Many)关联:多个实体实例与另一个实体实例之间存在多对多的关联关系。这种关系表示为一个实体的多个实例与另一个实体的多个实例相连接。

我们来用图片举个例子:

1.一对一

一文讲透实体-联系模型(E-R图)_第2张图片

2.一对多

 一文讲透实体-联系模型(E-R图)_第3张图片

3.多对多

 一文讲透实体-联系模型(E-R图)_第4张图片

 

 

 

在E-R图中,关系可以具有与之相关的属性,用于描述与该关系相关的信息。这些属性可以提供更详细的关系描述,以补充关系本身无法完全表达的信息。 比如职工与部门的工作关系,这个关系可以具有属性,如工作时间、工作性质。通过关系的属性以便于更好的描述职工在部门中的工作情况。

一文讲透实体-联系模型(E-R图)_第5张图片 

 

这三个部分是构成E-R图最关键的部分,我们通过一个例子来加深印象:

 让我们来设计一个简单的 E-R 图来表示学生和课程之间的关系。假设我们有两个实体:学生(Student)和课程(Course)。一个学生可以注册多门课程,而一门课程可以有多名学生。

设计过程如下:

  1. 确定实体(Entities)

    • 学生(Student):属性包括学生ID(Student ID)、姓名(Name)、年级(Grade)等。
    • 课程(Course):属性包括课程ID(Course ID)、课程名称(Course Name)、学分(Credit)等。
  2. 确定关系(Relationship)

    • 注册(Enrollment):学生和课程之间的关系。这是一个多对多的关系,因为一个学生可以注册多门课程,而一门课程可以有多名学生。此关系可以具有属性,如选课日期(Enrollment Date)。
  3. 确定主键(Primary Key)

    • 学生实体的主键为学生ID(Student ID)。
    • 课程实体的主键为课程ID(Course ID)。

E-R图如下:

一文讲透实体-联系模型(E-R图)_第6张图片 

 


4.E-R图进阶

恭喜你!现在你应该已经懂得如何画一个简单的E-R图了,现在我们要进一步学习E-R图中的部分细节。

4.1弱实体

想象一下,在数据库中,实体就像是人或物体,而属性就像是这些人或物体的特征。通常情况下,一个实体具有自己的标识,例如一个人有独特的身份证号码,一个产品有独特的产品编号。

然而,有时候存在一种情况,某个实体的标识依赖于与其相关联的另一个实体。这时,我们称这个实体为弱实体。弱实体没有自己的唯一标识,它的标识需要依赖于与其相关联的另一个实体(强实体)。

在 E-R 图中,弱实体通常用双矩形框表示。

我们来举一个例子:

订单小票和订单项(也就是小票上面的每个商品多少钱的那一项)之间的E-R图。

一文讲透实体-联系模型(E-R图)_第7张图片

 订单项并不是一个单独存在的项,而是基于订单小票才会产生的一个实体,所以我们把它划分为弱实体。

 4.2部分键

在 E-R 图中,弱实体通常没有自己的唯一标识,因此需要使用弱实体的部分键来唯一标识不同的实例。弱实体的部分键是通过指定其中一个属性与父实体的键结合从而形成相应弱实体的键,弱实体的这个属性称为弱实体的部分键。部分键用虚线标识。

我们来举一个例子:

还是订单小票和订单项(也就是小票上面的每个商品多少钱的那一项)之间的E-R图。

一文讲透实体-联系模型(E-R图)_第8张图片

这是我们上面的图片,我们基于这个进行一个拓展,把订单项这个弱实体中的部分键标识出来。

一文讲透实体-联系模型(E-R图)_第9张图片

我们只有通过商品ID与订单ID结合才能找到某一个订单项。 所以我们可以把商品ID定为部分键。

基于此,E-R图部分就全部讲解完了,如果想要熟悉掌握这门技能,还需要多加练习,加油!

 

 

你可能感兴趣的:(数据库)