E-R图总结规范

简介: E-R图总结规范

E-R图总结规范

七:总结

前言

本文将会带你认识什么是E-R图,带你认识E-R图的基本构成,以及绘画E-R图的具体步骤。和验证E-R图的标准,希望通过此篇文章能带你认识且用好ER图这个工具。


一:基本概念

ER图(实体关系图)是一种用于建模现实世界中数据的图形化表示方式。

它用于描述系统中各种实体之间的关系,这些实体可以是人、物、概念或事件等。


ER图可以用于描述数据模型的逻辑结构,它包含实体、属性和关系等元素。

在ER图中,实体表示一个具体的事物或概念,属性描述实体的特征,而关系描述实体之间的相互关系。


ER图是数据库设计中最常用的工具之一,它可以帮助开发人员更好地理解数据模型的结构和关系,从而更好地设计和开发数据库应用程序。


简单的E-R图示例:

二:基本构成

2.1 实体(Entity)

实体(Entity):实体指现实世界中的一个具体的事物或概念,如人、物、地点、事件等。在ER图中,实体用一个矩形表示,并在矩形中写明实体名称。例如,一个学校管理系统中可以包含学生、教师、课程等实体。

2.2 属性 (Attribute)

属性指实体的特征或属性,如学生的姓名、年龄、性别等。在ER图中,属性用一个椭圆形表示,并在椭圆形中写明属性的名称。例如,一个学生的属性可以包括学号、姓名、年龄、性别等。

2.3 关系(Relationship)

关系指实体之间的联系或连接,如学生选课、教师授课等。在ER图中,关系用菱形表示,并在菱形中写明关系的名称。例如,一个学生可以选多门课程,而一门课程也可以有多个学生选修。

三:E-R图的绘制阶段

3.1 需求分析和设计阶段

E-R图通常在软件工程的需求分析和设计阶段进行绘制。在需求分析阶段,E-R图可以用于识别和定义系统中的实体、属性和关系,以及它们之间的联系和约束条件。在设计阶段,E-R图可以用于详细说明系统中各个实体和关系之间的结构和行为,并为实现数据模型提供指导和支持。

四:绘画E-R图具体步骤

4.1 确定实体(Entity)

识别系统中存在的实体,如人、物、概念或事件等。


4.2. 确定实体的属性(Attribute)

对于每个实体,确定它所具有的属性。


4.3 确定实体之间的关系(Relationship)

确定实体之间的关系,如一对多、多对多等。使用箭头表示关系的方向。


4.4 绘制ER图

使用矩形表示实体,椭圆形表示属性,菱形表示关系。在每个矩形、椭圆形和菱形中写明名称。使用箭头表示关系的方向。


4.5 确定实体之间的基数(Cardinality)

确定实体之间的关系数量,如一对多、多对多等。使用符号表示基数,如“1”表示一个实体,“*”表示多个实体。


4.6 完善ER图

检查ER图是否准确地表示了系统中的实体、属性和关系。如果有需要,可以添加弱实体、继承关系等其他元素。


4.7 其他

需要注意的是,ER图绘制的关键是识别系统中的实体和它们之间的关系,以及确定它们的属性和基数。在绘制ER图时,应该避免混淆实体之间的关系和属性,确保ER图的准确性和可读性。


五:E-R图的验证

验证ER图的正确性是数据库设计中非常重要的一步。下面是验证ER图的步骤:


5.1 验证实体(Entity)

检查ER图中的实体是否完整、准确和明确。确保每个实体都有一个明确的名称,并且它们的属性和关系都正确。


5.2 验证属性(Attribute)

检查ER图中的属性是否正确,每个实体都应该有合适的属性,属性的数据类型、长度等也应该符合实际需要。


5.3 验证关系(Relationship)

检查ER图中的关系是否正确。关系的基数、约束条件等也应该符合实际需要。


5.4 验证弱实体(Weak Entity)

如果ER图中存在弱实体,则需要确保弱实体的依赖关系和主实体的关系正确。另外,弱实体的标识符也需要正确定义。


5.5 验证继承关系(Inheritance)

如果ER图中存在继承关系,则需要确保继承关系正确,子类和父类的属性和关系正确。


5.6 验证完整性约束(Integrity Constraint)

检查ER图中的完整性约束条件是否正确,如主键、外键等。


5.7 验证ER图的正规化(Normalization)

检查ER图是否符合数据库设计的正规化原则,以确保数据库的数据完整性、一致性和有效性。


在验证ER图时,需要使用数据字典、样本数据等工具,对ER图进行测试和模拟。如果发现错误或不一致的地方,需要及时修改和调整ER图,以确保数据库设计的正确性和有效性。


六:其他注意事项

词汇表达准确,实体为名词,联系为动词。

图形使用是否准确,见上文。

实体之间的关系正确,如学生与课程之间的关系为多对多。

实体名称和属性与数据库中的表名和字段对应。实体为数据库中表的名字,属性为数据库中的字段。

七:总结

本文详细的介绍了ER图的概念以及使用ER图的各种注意点,希望读者通过此篇文章学会使用E-R图进行数据建模。


目录
相关文章
|
安全 数据库
通过E-R理解 主键和外键的关系
实例 现有课程和教师两个实体,课程实体的属性有课程名称、课程编号、课程属性、考试类型;教师实体的属性包括姓名、工号、职称;一门课程可以有多个教师,且每一位教师可以教授多门课程。教师每教授一门课有课序号。
6377 1
通过E-R理解 主键和外键的关系
|
存储 算法 NoSQL
还分不清 Cookie、Session、Token、JWT?看这一篇就够了
Cookie、Session、Token 和 JWT(JSON Web Token)都是用于在网络应用中进行身份验证和状态管理的机制。虽然它们有一些相似之处,但在实际应用中有着不同的作用和特点,接下来就让我们一起看看吧,本文转载至http://juejin.im/post/5e055d9ef265da33997a42cc
47381 13
|
机器学习/深度学习 人工智能 运维
10 分钟搞懂 LLMOps
10 分钟搞懂 LLMOps
2357 0
|
存储 缓存 NoSQL
MySQL索引详解(一文搞懂)
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。
49354 17
MySQL索引详解(一文搞懂)
|
前端开发 JavaScript 应用服务中间件
multer实现文件上传功能全解(form上传、fetch请求上传、多文件上传)
multer实现文件上传功能全解(form上传、fetch请求上传、多文件上传)
multer实现文件上传功能全解(form上传、fetch请求上传、多文件上传)
|
12月前
|
前端开发 Java 数据安全/隐私保护
用户登录前后端开发(一个简单完整的小项目)——SpringBoot与session验证(带前后端源码)全方位全流程超详细教程
文章通过一个简单的SpringBoot项目,详细介绍了前后端如何实现用户登录功能,包括前端登录页面的创建、后端登录逻辑的处理、使用session验证用户身份以及获取已登录用户信息的方法。
1551 2
用户登录前后端开发(一个简单完整的小项目)——SpringBoot与session验证(带前后端源码)全方位全流程超详细教程
|
10月前
|
存储 自然语言处理 算法
【北京大学 软件工程】四、结构化分析方法
结构化分析方法是一种系统化的软件开发方法学,旨在通过使用问题域术语建立系统的功能模型,以明确“系统必须做什么”。该方法包括结构化分析、设计和程序设计三个主要部分。其核心工具是数据流图(DFD),用于表达系统功能模型,并结合数据字典定义数据流和数据存储。此外,还使用加工小说明(如判定表或判定树)描述加工逻辑。 结构化分析过程遵循自顶向下、逐步求精的原则,首先建立系统环境图确定边界,然后通过分解加工、分派数据流和引入文件来细化模型。整个过程中需确保模型平衡和信息组织的复杂性控制。最终输出为需求规格说明书(SRS),确保需求的正确性、无二义性、完整性和可验证性等特性。
|
存储 前端开发 Java
在线学习|基于SpringBoot的在线学习系统的设计与实现
在线学习|基于SpringBoot的在线学习系统的设计与实现
927 0
|
12月前
|
设计模式 Java 测试技术
优雅代码,建议掌握这 11个编程原则!
高质量的代码不仅让人信服,还能提升开发效率。本文总结了多位高手的经验,提炼出11条编码基本原则:DRY(避免重复)、KISS(简洁至上)、重构(优化代码)、SOLID(设计原则)、文档编写、创建优于继承、YAGNI(避免过度设计)、委托原则、始终保持代码清洁、封装变化以及优先使用组合而非继承。遵循这些原则,你的代码将更加优雅和高效。
495 3
|
前端开发 Linux API
无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案
【8月更文挑战第3天】无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案
无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案