DBMS怎么画ER图?

文章导读
Previous Quiz Next 使用整个数据库的图形表示来设计数据库会变得更容易。其中最好的工具之一就是实体-关系图 (ERD)。它有助于捕获业务环境中实体、它们之间的关系以及任何约束的重要细节。
📋 目录
  1. Company 数据库表设计
  2. ER 图基础
  3. ER 图中的视觉表示
  4. 真实世界示例:COMPANY 数据库 ER 图
  5. 构建 ER 图
  6. 绘制 ER 图的特殊注意事项
  7. 结论
A A

DBMS - 绘制 ER 图



Previous
Quiz
Next

使用整个数据库的图形表示来设计数据库会变得更容易。其中最好的工具之一就是实体-关系图 (ERD)。它有助于捕获业务环境中实体、它们之间的关系以及任何约束的重要细节。

在本章中,我们将学习如何使用 COMPANY 数据库的真实世界示例来设计 ERD。我们将分解每个步骤,解释实体和关系类型,并使整个过程易于理解。

Company 数据库表设计

COMPANY 数据库中有以下表 −

EMPLOYEE

Fname Minit Lname Ssn Bdate Address Sex Salary Super_ssn Dno

DEPARTMENT

Dname Dnumber Mgr_ssn Mgr_start_date

DEPT_LOCATIONS

Dnumber Dlocation

PROJECT

Pname Pnumber Plocation Dnum

WORKS_ON

Essn Pno Hours

DEPENDENT

Essn Dependent_name Sex Bdate Relationship

ER 图基础

为了理解示例,让我们来看看 ERD 的基础概念:它有几个组成部分。

  • 实体 (Entities):表示系统中的对象或项目,例如 EMPLOYEE、DEPARTMENT 和 PROJECT
  • 属性 (Attributes):定义实体的特征。例如,一个 EMPLOYEE 可能具有 NameSsnAddressSalary 等属性。
  • 关系 (Relationships):连接实体并表示它们如何交互。例如,一个 EMPLOYEE 可能为一个 DEPARTMENT 工作。

ER 图中的视觉表示

我们在 ER 图中使用以下形状进行视觉表示 −

  • 矩形 (Rectangles) 表示实体
  • 菱形 (Diamonds) 表示关系
  • 椭圆 (Ovals) 表示属性
  • 双椭圆 (Double ovals) 表示多值属性
  • 双矩形 (Double Rectangle):弱实体
  • 双菱形 (Double Diamond):弱关系
Visual Representation in ER Diagrams

真实世界示例:COMPANY 数据库 ER 图

COMPANY 数据库展示了一个复杂的业务结构。以下是如何为其创建 ERD,包含关键实体和关系:

识别核心实体

COMPANY 数据库中的主要实体如下所示 −

EMPLOYEE − 表示员工,具有 NameSsnSalaryBdate 等属性。

COMPANY Database ER Diagram

DEPARTMENT − 组织单元,具有 NameNumber 等属性。

Identifying the Core Entities

PROJECT − 由部门管理的任务,具有包括 NameNumber 在内的属性。

Identifying Core Entities

DEPENDENT − 依赖于员工的个人,具有 NameRelationshipBirth_date 等属性。

Individuals dependent on an employee

定义关键关系

以下是连接这些实体的主要关系:

  • MANAGESEMPLOYEEDEPARTMENT 之间的关系。每个部门有一个经理,但员工可能管理或不管理部门。
  • WORKS_FORDEPARTMENTEMPLOYEE 之间的关系。每个部门有多个员工,每个员工必须分配到一个部门。
  • CONTROLS − 一种关系,其中 DEPARTMENT 监督一个或多个 PROJECTS。一个项目总是由一个部门管理。
  • SUPERVISION − 一种关系,其中一个 EMPLOYEE 监督其他员工。
  • WORKS_ON − 一种关系,显示员工可以参与多个项目,反之亦然。此处的 Hours 属性用于表示花费的时间。
  • DEPENDENTS_OFEMPLOYEEDEPENDENT 之间的关系,强调一个员工可能有一个或多个 dependents。

构建 ER 图

现在让我们了解创建 ER 图的逐步过程:

  • 绘制实体 − 创建标记为 EMPLOYEEDEPARTMENTPROJECTDEPENDENT 的矩形。将带有关键属性如 Name、Ssn 和 Salary 的椭圆连接到 EMPLOYEE。将 Number 等属性链接到 DEPARTMENT。我们在之前的图中已经见过这些实体。
  • 定义关系 − 使用菱形表示 WORKS_FOR、MANAGES 等关系。使用直线将这些菱形连接到相关实体。对于部分参与使用单线,对于完全参与使用双线。

示例分解:下图展示了 COMPANY ER 图 −

Structuring the ER Diagram
  • MANAGES 表示每个 DEPARTMENT 必须有一个经理(DEPARTMENT 的完全参与)。但是,一个 EMPLOYEE 可能不管理任何部门(部分参与)。
  • WORKS_ON 连接 EMPLOYEEPROJECT,表示带有属性 Hours 的 M 关系。它描述了员工在项目上工作的时间长度。
  • DEPENDENTS_OF 展示了 EMPLOYEEDEPENDENT 的 1
  • 比例,表明虽然员工可能没有 dependents(部分参与),但每个 DEPENDENT 必须有一个关联的 EMPLOYEE(完全参与)。

绘制 ER 图的特殊注意事项

在绘制 ER 图时,请注意以下特殊事项:

  • 弱实体和识别关系:在 ERD 中,我们可以看到 DEPENDENT 是一个弱实体。它通过与 EMPLOYEE 的连接来识别。它不能独立存在,并以双矩形显示。我们还可以注意到 DEPENDENTS_OF 关系是一个识别关系,以双菱形显示。
  • 冗余和精简:在这里,当必要时应将属性合并到关系中。例如,来自 DEPARTMENT 的 Manager 和 Manager_start_date 被移动到 MANAGES 关系中以减少冗余。
  • 复合和多值属性:我们还可以看到 EMPLOYEE 的属性如 Name 可能是复合的(由 Fname、Minit、Lname 组成)。DEPARTMENT 的多值属性如 Locations 使用双椭圆显示。
  • 角色名称 − 当同一实体参与多次时,为关系添加角色名称,例如 SUPERVISION,其中一个 EMPLOYEE 充当主管,另一个充当被主管。

结论

在本章中,我们使用真实世界的 COMPANY database 示例,学习了如何逐步设计 ER 图。我们识别了主要实体,定义了它们之间的关系,标记了参与度和基数,并使用弱实体和复合属性等特殊元素来增加清晰度。这种结构化方法有助于设计 ER 图,以清晰地可视化数据模型,从而实现有效的数据库设计。