软件工程中的实体-关系图 (ERD)

2025 年 3 月 25 日 | 阅读 5 分钟

ER建模是一种在软件工程中用于生成信息系统概念数据模型的数据库建模方法。使用这种ER建模方法创建的图称为实体-关系图,或ER图,或ERD。

ERD的目的

  • 数据库分析师通过构建ERD的步骤,可以更好地理解数据库中将包含的数据。
  • ERD作为一种文档工具。
  • 最后,ERD用于将数据库的逻辑结构与用户连接起来。特别是,ERD可以有效地将数据库的逻辑传达给用户。

ER图的组成部分

Entity-Relationship Diagrams

1. 实体

实体可以是可识别的任何现实世界中的对象,无论是动态的还是静态的。在ER图中,实体表示为矩形。例如,在一个学校数据库中,学生、老师、班级和开设的课程都可以视为实体。所有这些实体都具有赋予它们身份的一些属性。

实体集

实体集是相关实体类型的集合。一个实体集可能包含具有相似属性值的实体。例如,一个学生集可能包含学校里的所有学生;同样,一个教师集可能包含学校里所有院系的所有教师。实体集不必是互斥的。

Entity-Relationship Diagrams

2. 属性

实体通过它们的属性来表示,这些属性称为属性。所有属性都有值。例如,一个学生实体可能具有姓名、班级和年龄作为属性。

属性的值存在一个域或范围。例如,学生的姓名不能是数字。它必须是字母。学生的年龄不能是负数等。

Entity-Relationship Diagrams

属性有四种类型

  1. 键属性
  2. 复合属性
  3. 单值属性
  4. 多值属性
  5. 派生属性

1. 键属性: 键是实体集中的一个或一组属性,它唯一地标识一个实体。例如,学生的学号使其在学生中可识别。

Entity-Relationship Diagrams

键主要有三种类型

  1. 超键: 一组属性,它们共同标识实体集中的一个实体。
  2. 候选键: 最小的超键称为候选键。一个实体集可以有多个候选键。
  3. 主键: 主键是数据库设计者选择的候选键之一,用于唯一标识实体集。

2. 复合属性: 由其他属性组合而成的属性称为复合属性。例如,在学生实体中,学生地址是一个复合属性,因为地址由其他特征组成,如邮政编码、州、国家。

Entity-Relationship Diagrams

3. 单值属性: 单值属性包含单个值。例如,社会保险号码。

4. 多值属性: 如果一个属性可以有多个值,则称为多值属性。多值属性用双椭圆表示。例如,一个人可以有多个电话号码、电子邮件地址等。

Entity-Relationship Diagrams

5. 派生属性: 派生属性是指在物理数据库中不存在,但其值是从数据库中存在的其他属性派生出来的属性。例如,年龄可以从出生日期派生出来。在ER图中,派生属性用虚线椭圆表示。

Entity-Relationship Diagrams
Entity-Relationship Diagrams

3. 关系

实体之间的关联称为关系。关系用菱形框表示。例如,一个员工在一个部门工作,一个学生报名参加一门课程。这里的“工作于”和“报名”称为关系。

Entity-Relationship Diagrams

关系集

一类相似关系的总称称为关系集。与实体一样,关系也可以有属性。这些属性称为描述属性。

关系集的度

参与到关系中的实体数量描述了关系的度。E-R模型中最常见的三个关系是

  1. 一元(度1)
  2. 二元(度2)
  3. 三元(度3)

1. 一元关系: 也称为递归关系。它是同一实体类型实例之间的关系。例如,一个人只与一个人结婚。

Entity-Relationship Diagrams

2. 二元关系: 它是两个实体类型实例之间的关系。例如,老师教授科目。

Entity-Relationship Diagrams

3. 三元关系: 它是三个实体类型实例之间的关联。在图中,“可能拥有”的关系提供了三个实体(即教师、学生和科目)之间的关联。这三个实体都是多对多参与者。三元关系中可能有一个或多个参与者。

通常,“n”个实体可以通过同一关系相关联,称为n元关系。

Entity-Relationship Diagrams

基数

基数描述了一个实体集中的实体数量,该实体数量可以通过关系集与另一个实体集中的实体数量相关联。

基数的类型

1. 一对一: 实体集A中的一个实体最多可以与实体集B中的一个实体相关联,反之亦然。假设每个学生只有一个学生ID,并且每个学生ID只分配给一个人。那么,这种关系将是一对一的。

Entity-Relationship Diagrams

使用集合表示如下

Entity-Relationship Diagrams

2. 一对多: 当一个实体实例与另一个实体的多个实例相关联时,称为一对多关系。例如,一个客户可以下多个订单;一个订单不能由多个客户下。

Entity-Relationship Diagrams

使用集合表示如下

Entity-Relationship Diagrams

3. 多对一: 实体集A中的多个实体最多可以与实体集B中的一个实体相关联,而实体集B中的一个实体可以与实体集A中的多个实体相关联。例如 - 许多学生可以就读于一所大学,但一个学生不能同时就读于许多大学。

Entity-Relationship Diagrams

使用集合表示如下

Entity-Relationship Diagrams

4. 多对多: 实体集A中的一个实体可以与实体集B中的多个实体相关联,反之亦然。例如,学生可以被分配到多个项目,而一个项目可以被分配给多个学生。

Entity-Relationship Diagrams

使用集合表示如下

Entity-Relationship Diagrams
下一主题软件配置管理