实体-关系(ER)模型是数据库管理系统的主要组件之一,对于设计数据库的逻辑结构至关重要。它帮助我们定义数据以及数据实体之间的关系,并使系统更易于可视化。这就是为什么在设计关系数据库的结构时,我们通常会采用 ER 模型的原因。通过使用 ER 模型,我们可以轻松构建数据如何存储、访问甚至管理的层级结构。既然我们要深入讨论 ER 模型的用法,那么我们就必须先理解实体、实体集和实体类型这些术语,因为它们解释了数据库中的数据是如何分类和组织的。
什么是实体?
实体是指任何具有独立存在定义的现实事物。它可以是任何能够被描述、命名或从其他项目中区分出来的事物。这在数据库设计中至关重要,因为实体是数据库中存储和控制的信息的基本组成部分。每个实体都有属性,这些属性有助于描述实体的性质,并将其与其他实体区分开来。例如,学生、汽车和银行账户都被视为实体,因为它们分别拥有学号、注册号和账号来唯一标识它们。
实体可以有两种类型:
- 有形实体: 在现实世界中物理存在的实体。例如: 人、汽车等。
- 无形实体: 仅在逻辑上存在且没有物理实体的实体。例如: 银行账户等。
示例:
- 具有特定学号的学生是一个实体。
- 具有特定注册号的公司是一个实体。
- 具有唯一 ISBN 号的特定书籍是一个实体。
注意:
- 实体可以是具体的,如学生或书籍,也可以是抽象的,如假期或某个特定的概念。
- 实体由一组属性表示。
- 在 RDBMS 的特定关系中,特定的记录被称为实体。
什么是实体类型?
实体类型可以定义为一个框架或一类实体的集合,这也是我们关注的重点。它类似于模式图,定义了该类别对象的属性。实体类型有助于将相同类型的实体归类为一个组,这在处理数据库中的属性和关系时非常有用。例如,对于名为“学生”的实体类型,会存在学生及其各自的属性,如 studentID、姓名和年龄。实体类型是创建关系的重要组成部分,因为它们决定了将插入表中每一行的值。
示例:
- 大学数据库中的“student”表。
- 公司数据库中的“employee”表。
- 电子商务数据库中名为“product”的表,是所有产品的实体类型。
注意:
- 关系中特定实体的类别在 RDBMS 中被称为实体类型。
- 它由表的名称及其模式表示。
什么是实体集?
实体集是特定时刻所有相同类型实体的全面表示。使用实体集有助于聚合并管理数据库中的相似实体。实体集中的每个实体都具有共同的属性,但这些属性的值是不同的。实体集是数据库结构的重要组成部分,因为它们展示了信息如何在表中组织和存储。例如,“学生”表中的每一条记录代表一个学生,而所有记录的总和或集合就构成了一个实体集。然而,实体集并不是静态的,因为随着实体的添加或移除,它们有可能会增长或收缩。
示例:
- 特定时刻“student”表中所有学生的集合是一个实体集的例子。
- 特定时刻“employee”表中所有员工的集合是一个实体集的例子。
- “product”表中所有库存产品的集合构成了一个实体集。
注意:
- 实体集不必是不相交的。例如,“文章作者”实体集(本网站的所有内容创作者)和“文章读者”实体集(所有阅读本网站文章的学生)可能有共同的成员。
- RDBMS 关系中所有实体的集合被称为实体集。