实体-联系模型 (Entity-Relationship Model) 学习笔记

E-R图

2167字

E-R图学习笔记


1. 概述

实体-联系模型 (E-R模型) 是一种用于数据库设计的概念模型,它提供了一种描述数据结构的高层视图,独立于任何特定的数据库管理系统 (DBMS)。E-R模型使用实体、属性和联系来表示现实世界中的数据及其相互关系。

主要目标:

  • 清晰地表示数据需求。
  • 为后续的数据库逻辑设计提供基础。
  • 促进数据库设计者和用户之间的沟通。

2. 基本概念

2.1 实体 (Entity)

  • 定义: 现实世界中可以区分的、独立存在的“事物”或“对象”。例如:学生、课程、教师、部门等。
  • 表示: 通常用矩形框表示,框内写明实体的名称。
    1
    2
    3
    
    +----------+
    |   学生   |
    +----------+
    

2.2 属性 (Attribute)

  • 定义: 描述实体特征的性质。例如:学生的学号、姓名、年龄;课程的课程号、课程名、学分等。
  • 表示: 通常用椭圆表示,并用直线连接到所属的实体。属性名写在椭圆内。
    1
    2
    3
    4
    5
    6
    7
    8
    
        +----------+
        |   学生   |
        +----------+
           /   |   \
          /    |    \
      +-------+ +-------+ +-------+
      | 学号  | | 姓名  | | 年龄  |
      +-------+ +-------+ +-------+
    
  • 属性类型:
    • 简单属性 (Simple Attribute): 不能再分解为更小部分的属性,如年龄。
    • 复合属性 (Composite Attribute): 可以分解为更小部分的属性,如地址 (可以分解为省、市、街道等)。
    • 多值属性 (Multivalued Attribute): 对于一个实体实例可以有多个值的属性,如一个学生可以有多个兴趣爱好。通常用双层椭圆表示。
      1
      2
      3
      4
      5
      6
      7
      
          +----------+
          |   学生   |
          +----------+
               |
          +----------+
          | 兴趣爱好 |
          +----------+
      
    • 派生属性 (Derived Attribute): 其值可以从其他属性计算得到的属性,如学生的年龄可以从出生日期计算得到。通常用虚线椭圆表示。
      1
      2
      3
      4
      5
      6
      7
      
          +----------+
          |   学生   |
          +----------+
               |
          +----------+
          |   年龄   | (派生)
          +----------+
      
  • 主键 (Primary Key): 唯一标识一个实体实例的一个或一组属性。通常在属性名下方加下划线表示。一个实体只能有一个主键。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
        +----------+
        |   学生   |
        +----------+
           /   |   \
          /    |    \
      +--------+ +-------+ +-------+
      | 学号   | | 姓名  | | 年龄  |
      +--------+ +-------+ +-------+
        -------
    
  • 候选键 (Candidate Key): 可以唯一标识一个实体实例的一个或一组属性。一个实体可以有多个候选键,但只能选择一个作为主键。

2.3 联系 (Relationship)

  • 定义: 实体之间的关联或相互作用。例如:学生选修课程,教师教授课程,部门拥有员工等。
  • 表示: 通常用菱形框表示,框内写明联系的名称,并用直线连接到相关的实体。
    1
    2
    3
    
        +----------+        +----------+
        |   学生   |--------|  选修  |--------|   课程   |
        +----------+        +----------+        +----------+
    

2.4 联系的度 (Cardinality)

  • 描述参与联系的实体实例之间的数量关系,也称为基数比率。常见的基数比率有:
    • 一对一 (1:1): 实体集A中的每个实体最多与实体集B中的一个实体相关联,反之亦然。
      1
      2
      3
      
      +-----+     1:1     +-----+
      |  A  |-------------|  B  |
      +-----+             +-----+
      
    • 一对多 (1:N): 实体集A中的每个实体可以与实体集B中的零个或多个实体相关联,但实体集B中的每个实体最多与实体集A中的一个实体相关联。
      1
      2
      3
      
      +-----+     1:N     +-----+
      |  A  |-------------|  B  |
      +-----+             +-----+
      
    • 多对多 (M:N): 实体集A中的每个实体可以与实体集B中的零个或多个实体相关联,并且实体集B中的每个实体也可以与实体集A中的零个或多个实体相关联。
      1
      2
      3
      
      +-----+     M:N     +-----+
      |  A  |-------------|  B  |
      +-----+             +-----+
      
  • 表示方法: 将基数比率标注在连接联系和实体的直线上。通常在靠近实体的一侧标注该实体参与联系的最小和最大实例数。例如:
    • 1:1
    • 1:N(0,N)(1,N)
    • M:N(0,M, 0,N)(1,M, 1,N)

2.5 联系的属性

  • 联系本身也可以拥有属性,这些属性描述了实体之间联系的特征。例如,学生选修课程的联系可以有“选修日期”和“成绩”等属性。
  • 表示: 联系的属性用椭圆表示,并用虚线连接到所属的联系菱形框。
    1
    2
    3
    4
    5
    6
    7
    
        +----------+        +----------+        +----------+
        |   学生   |--------|  选修  |--------|   课程   |
        +----------+        +----------+        +----------+
                               |
                           +----------+
                           |  成绩  |
                           +----------+
    
  • 注意: 只有在多对多联系中,联系才通常拥有自己的属性。在一对一或一对多联系中,联系的属性通常可以转移到参与联系的某个实体中。

2.6 弱实体 (Weak Entity)

  • 定义: 依赖于另一个实体 (称为强实体或标识实体) 而存在的实体,自身没有主键。弱实体通过与强实体的联系以及自身的局部键来唯一标识。
  • 表示:双层矩形框表示。
  • 标识性联系 (Identifying Relationship): 弱实体与强实体之间的联系,用于标识弱实体实例。用双层菱形框表示。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
        +------------+      +--------------------+      +----------+
        ||  家属  ||------||  属于 (标识性)  ||------|   员工   |
        +------------+      +--------------------+      +----------+
           /   |   \
          /    |    \
      +-------+ +-------+
      | 姓名  | | 关系  |
      +-------+ +-------+
        ------- (局部键)
    
    在上面的例子中,“家属”是弱实体,它依赖于“员工”实体存在,自身的“姓名”不足以唯一标识一个家属,需要结合其所属的员工才能唯一确定。

3. E-R图的绘制步骤

  1. 识别实体: 从需求描述中找出所有重要的名词,它们通常代表实体。
  2. 识别属性: 为每个实体确定其相关的特征属性。确定主键、候选键、复合属性、多值属性和派生属性。
  3. 识别联系: 找出实体之间的动词或动词短语,它们通常代表实体之间的联系。
  4. 确定联系的类型和基数比率: 分析每个联系所涉及的实体数量关系 (一对一、一对多、多对多)。
  5. 为联系添加属性 (如果需要): 如果联系本身具有需要记录的信息,则为其添加属性。
  6. 绘制E-R图: 使用标准的E-R图符号将实体、属性和联系连接起来。
  7. 完善E-R图: 检查E-R图是否准确、完整地反映了数据需求。考虑是否存在冗余或不清晰的地方。

4. E-R模型的优点

  • 简单直观,易于理解和沟通。
  • 独立于具体的数据库实现。
  • 为数据库设计提供了一个清晰的概念框架。
  • 有助于发现和解决数据设计中的问题。

5. E-R模型的局限性

  • 对于复杂的约束和规则,E-R模型可能难以清晰表达。
  • 缺乏形式化的定义,可能存在二义性。
  • 不直接支持数据操作的描述。

6. 总结

E-R模型是数据库设计的重要工具,通过实体、属性和联系的概念,能够有效地描述现实世界的数据及其关系。掌握E-R模型的基本概念和绘制方法,对于进行良好的数据库设计至关重要。在实际应用中,通常会使用专门的建模工具来辅助E-R图的绘制和管理。

如对内容有异议,请联系关邮箱2285786274@qq.com修改