【数据库】ER图(实体-关系图)介绍

[复制链接]
发表于 5 天前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
一、ER图的基本概念

1. 界说与起源



  • 界说:ER图(Entity-Relationship Diagram)是一种用于数据库设计的结构化图形工具,通过实体属性关系描述实际天下的数据模型。
  • 起源:1976年由美籍华人计算机科学家Peter Chen提出,后成为数据库设计的标准方法。
2. 核心目标



  • 抽象实际:将复杂的业务需求转化为可视化的数据模型。
  • 沟通工具:便于开发者、设计师和业务职员明白数据逻辑。
  • 数据库蓝图:引导后续的数据库表结构设计和SQL实现。

二、ER图的组成要素

1. 实体(Entity)



  • 界说:实际天下中可独立存在的对象(如“门生”“订单”“产品”)。
  • 类型

    • 强实体:不依赖其他实体存在(如“用户”)。
    • 弱实体:必须依赖强实体才能存在(如“订单项”依赖“订单”)。
    • 关联实体:为解决多对多关系而引入的中间实体(如“选课表”)。

2. 属性(Attribute)



  • 界说:描述实体的特性或性子。
  • 分类

    • 简单属性:不可再分的最小单位(如“学号”)。
    • 复合属性:可拆分为多个子属性(如“地址”→省、市、街道)。
    • 派生属性:由其他属性计算得出(如“年事”由“出生日期”计算)。
    • 多值属性:一个属性有多个值(如“联系电话”可能多个号码)。
    • 键属性:唯一标识实体的属性(主键、外键)。

3. 关系(Relationship)



  • 界说:实体间的交互或关联。
  • 类型

    • 一对一(1:1):如“员工”与“社保账户”。
    • 一对多(1:N):如“部门”与“员工”。
    • 多对多(M:N):如“门生”与“课程”(需通过关联表实现)。

  • 关系的属性:关系自己可附加属性(如“选修”关系中的“成绩”)。

三、ER图的符号体系

1. 基本符号



  • 实体:矩形框(强实体)、双线矩形框(弱实体)。
  • 关系:菱形框,标注关系名称。
  • 属性:椭圆形,通过直线毗连实体或关系。
  • 主键:属性名下方加下划线。
  • 外键:属性名旁标注FK,或通过箭头指向被引用实体。
2. 基数束缚(Cardinality)



  • 体现实体到场关系的数量限定:

    • 1: 必须且仅有一个实例。
    • N: 多个实例(无上限)。
    • 0…1: 可选(0或1个实例)。
    • 1…N: 至少一个实例。

  • 体现方法

    • Chen体现法:标注在关系连线上(如“1:N”)。
    • 乌鸦脚体现法(Crow’s Foot):用符号体现基数(如“|”体现1,“⚡”体现多)。

3. 弱实体的体现



  • 弱实体用双线矩形框体现,并通过依存关系(双线菱形)毗连到强实体。

四、ER图的设计步调

1. 需求分析



  • 明确业务需求,辨认系统中的核心实体和关键流程。
  • 示例:电商系统中需包含“用户”“商品”“订单”“付出”等实体。
2. 实体与属性界说



  • 列出所有实体及其属性,确定主键(唯一标识符)。
  • 优化原则

    • 避免冗余属性(如“订单总价”可通过计算得出)。
    • 拆分复合属性(如将“地址”拆分为省、市、街道)。

3. 关系建模



  • 分析实体间的交互,确定关系类型(1:1、1:N、M:N)。
  • 多对多关系的处理:必须引入关联实体(如“选课表”包含门生ID、课程ID和成绩)。
4. 基数束缚标注



  • 明确每个实体在关系中的到场度(如一个用户可创建多个订单,但一个订单仅属于一个用户)。
5. 规范化设计



  • 遵照数据库范式(如第三范式,3NF)消除数据冗余:

    • 1NF:属性不可再分。
    • 2NF:消除部门依赖。
    • 3NF:消除传递依赖。

6. 验证与优化



  • 检查是否覆盖所有业务场景。
  • 合并重复实体或关系,简化模型。

五、ER图的扩展与高级概念

1. 加强型ER图(EER图)



  • 在传统ER图基础上增长以下特性:

    • 继承(泛化/特化):如“员工”可细化为“经理”和“普通员工”。
    • 聚合(Aggregation):将关系自己视为更高条理的实体(如“项目”由“员工”和“任务”组成)。

2. 递归关系(自反关系)



  • 同一实体内部的关系:

    • 如“员工”实体中,某员工是其他员工的“上级”。

3. 脚色标注(Role)



  • 在关系中标注实体的脚色:

    • 如“员工”与“部门”的关系中,“部门”扮演“所属部门”脚色。


六、ER图的实际应用案例

1. 图书馆管理系统



  • 实体:读者、图书、借阅记载、出书社。
  • 关系

    • 读者借阅图书(M:N,关联实体“借阅记载”)。
    • 出书社出书图书(1:N)。

2. 医院管理系统



  • 实体:患者、大夫、病历、科室。
  • 关系

    • 大夫诊治患者(1:N,属性:诊断时间、诊断结果)。
    • 科室包含大夫(1:N)。


七、ER图的工具与最佳实践

1. 常用工具



  • 画图工具:Lucidchart、draw.io、Microsoft Visio。
  • 数据库设计工具:MySQL Workbench、ER/Studio、PowerDesigner(支持正向/逆向工程)。
2. 设计原则



  • 清晰性:避免交错连线,公道结构。
  • 模块化:复杂系统分模块设计(如用户模块、订单模块)。
  • 划一性:同一符号和命名规则(如驼峰命名法)。
3. 常见错误与规避



  • 过度设计:避免添加不必要的实体或属性。
  • 忽略范式:冗余数据可能导致更新异常。
  • 混淆实体与属性:如“订单”是实体,而“订单状态”是其属性。

八、ER图与其他模型的对比

1. ER图 vs. UML类图



  • ER图:专注于数据结构和关系,用于数据库设计。
  • UML类图:描述对象的行为和交互,用于面向对象编程。
2. ER图 vs. 关系模型



  • ER图:概念模型,独立于具体数据库。
  • 关系模型:逻辑模型,直接对应数据库表结构。

九、总结

ER图是数据库设计的核心工具,通过实体、属性、关系三要素抽象实际天下,资助设计者构建高效、无冗余的数据库结构。掌握ER图的绘制与规范化原则,提升数据建模本事,为后续的SQL实现奠基坚实基础。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复

使用道具 举报

×
登录参与点评抽奖,加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表