📜  软件工程实体关系图

📅  最后修改于: 2021-01-09 15:11:07             🧑  作者: Mango

实体关系图

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

ERD的目的

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

ER图的组成

1.实体

实体可以是现实世界的对象,无论是有生命的还是无生命的,都只能是可识别的。实体在ER图中表示为矩形。例如,在学校数据库中,可以将提供的学生,教师,课程和课程视为实体。所有这些实体都具有赋予其标识的某些属性或特性。

实体集

实体集是相关类型的实体的集合。实体集可以包括具有共享相似值的属性的实体。例如,一个学生集可能包含一个学校的所有学生;同样,教师组可以包括来自所有系的一所学校的所有教师。实体集不需要是不相交的。

2.属性

实体是利用其属性(称为属性)来表示的。所有属性都有值。例如,一个学生实体可能具有名称,类别和年龄作为属性。

存在可以分配给属性的值的域或范围。例如,学生的姓名不能是数字值。它必须按字母顺序。学生的年龄不能为负数,等等。

有四种类型的属性:

  • 关键属性
  • 复合属性
  • 单值属性
  • 多值属性
  • 派生属性

1.键属性:键是在实体集中唯一标识一个实体的属性或属性集合。例如,学生的roll_number使得他在学生中是可识别的。

密钥主要有三种:

  • 超级键:一组属性,用于共同标识实体集中的实体。
  • 候选键:最小超级键称为候选键。一个实体集可能有多个候选密钥。
  • 主键:主键是数据库设计者用来唯一标识实体集的候选键之一。

2.复合属性:将其他属性组合而成的属性称为复合属性。例如,在学生实体中,学生地址是一个复合属性,因为地址由其他特征(例如密码,州,国家/地区)组成。

3.单值属性:单值属性包含一个值。例如,Social_Security_Number。

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

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


3.关系

实体之间的关联称为关系。关系由菱形框表示。例如,某个员工在某个部门工作,则一名学生注册了课程。在这里,Works_at和Enrolls称为关系。

关系集

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

关系集的程度

关系中参与实体的数量描述了关系的程度。 ER模型中三个最常见的关系是:

  • 一元(1级)
  • 二进制(度2)
  • 三元(度3)

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

2.二进制关系:这是两个实体类型的实例之间的关系。例如,老师教主题。

3.三元关系:这是三种实体类型的实例之间的关系。在图中,关系“可以具有”提供三个实体的关联,即,教师,学生和主题。这三个实体都是多对多参与者。三元关系中可能有一个或多个参与者。

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

基数

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

基数类型

1.一对一:实体集A中的一个实体最多可包含实体集B中的一个实体,反之亦然。让我们假设每个学生只有一个学生ID,并且每个学生ID仅分配给一个人。因此,这种关系将是一对一的。

使用集合,可以表示为:

2.一对多:当一个实体的单个实例与另一个实体的一个以上实例相关联时,则称为一对多关系。例如,客户可以下很多订单;许多客户无法下订单。

使用集合,可以表示为:

3.多对一:实体集A的一个以上实体可以与实体集B的一个实体最多关联,但是实体集B的实体可以与实体集A的一个以上实体关联。例如-许多学生可以在一所大学学习,但是一个学生不能同时在许多大学学习。

使用集合,可以表示为:

4.多对多: A中的一个实体可以与B中的一个以上实体关联,反之亦然。例如,可以将一个学生分配给许多项目,并且可以将一个项目分配给许多学生。

使用集合,可以表示为: