跳转到内容

ER 建模入门

ER(Entity-Relationship,实体-关系)建模是一种数据建模方法,用于定义和描述数据库的结构。ER模型通过图形化的方式表示实体(entities)、属性(attributes)和实体之间的关系(relationships),帮助设计者在逻辑上组织和理解数据库的结构。

对产品经理而言,ERD体现了实体、属性以及实体间的联系,抽象出了业务的核心特征;对开发人员来说,实体关系图显示数据库中的实体(表)以及该数据库中的表之间的关系,奠定了整个系统的框架基础。

ER 模型的基本构成

实体(Entity)

实体是数据库中的对象,可以是人、物品、事件等。 在ER图中,实体通常用矩形表示。 每个实体有一个名字,并有若干属性。

属性(Attribute)

属性是实体的特征或描述。 属性用椭圆形表示,并连接到对应的实体。 主键(Primary Key)是能够唯一标识实体的属性,通常用下划线标记。

关系(Relationship)

关系描述实体之间的关联。 关系用菱形表示,并连接相关的实体。 关系可以是一对一(1:1)、一对多(1:N )、多对多(M:N )。

ER 模型示例

为了更好地理解ER建模,下面以一个“学生注册课程”系统为例来展示ER模型。

示例说明

  • 我们有两个实体:“学生”(Student)和“课程”(Course)。
  • 每个学生有一个唯一的学生ID(StudentID)、名字(Name)、年龄(Age)和性别(Gender)。
  • 每门课程有一个唯一的课程ID(CourseID)、课程名(CourseName)和学分(Credits)。
  • 学生和课程之间存在“注册”(Enroll)关系,表示学生注册课程。注册关系有属性“注册日期”(EnrollmentDate)。
+-------------+ Enrolls +-------------+
| Student | <------------> | Course |
+-------------+ +-------------+
| StudentID | | CourseID |
| Name | | CourseName |
| Age | | Credits |
| Gender | +-------------+
+-------------+
| |
+---------+ +------+
| |
+-------------+ +-------------+
| Enrollment | | CourseName |
+-------------+ +-------------+
| EnrollmentDate |
+-------------+

ER 模型说明

  • Student 和 Course 是两个实体,分别有自己的属性。
  • Enrolls 是连接两个实体的关系,表示学生可以注册多门课程,课程也可以有多个学生注册,形成多对多关系。
  • Enrollment 实体作为连接实体,用来描述学生和课程的注册信息,并记录注册日期。

课程购买绘制 ER 模型示例

课程系统 ER 模型

使用 ER 建模的步骤

  1. 识别实体:确定系统中有哪些重要的对象,例如“学生”和“课程”。
  2. 定义属性:为每个实体定义属性,并标识出主键,例如“学生ID”和“课程ID”。
  3. 确定关系:定义实体之间的关系,例如学生与课程之间的“注册”关系。
  4. 绘制ER图:使用图形工具(如手绘、Microsoft Visio、Draw.io、钉钉等在线文档等)绘制ER图,表示实体、属性和关系。

使用 ER 模型的好处

  • 直观性:通过图形表示数据结构,使设计者和用户能直观理解数据库结构。
  • 逻辑设计:帮助设计者在逻辑上组织数据库,确保数据的一致性和完整性。
  • 沟通工具:作为产品和开发人员之间的沟通工具,提高沟通效率和准确性。