UML 和 SQL 中实体和关系的区别

Difference between entity and relation in UML and SQL

提问人:Oskar Ray-Frayssinet 提问时间:11/16/2023 最后编辑:lemOskar Ray-Frayssinet 更新时间:11/17/2023 访问量:43

问:

只是想确保我理解正确:

  • 设计UML图,我们谈论的是实体之间的关系?
  • 在SQL的上下文中,表是一种关系吗?

我记得不久前,我的老师在谈论实体之间的关联,这让我不确定在UML图和SQL的上下文中使用哪些词是正确的方法。

要弄清楚的词:实体、关系和关联。上下文:UML 和 SQL。

MySQL 数据库设计 UML 实体关系

评论

1赞 Ister 11/16/2023
你已经做了什么研究?这些确实是 UML 的核心基础。
0赞 Akina 11/16/2023
设计UML图我们在谈论实体之间的关系?该图描述了实体以及它们之间的关系。在SQL的上下文中,表是一种关系吗?该表是存储实体实例的实体容器。
0赞 Oskar Ray-Frayssinet 11/16/2023
@Ister,我翻阅了大学时期的笔记,阅读了Stackoverflow中的帖子,在谷歌上查看了图片,阅读了《应用UML和模式》一书。

答:

2赞 Ister 11/16/2023 #1

首先,让我开始说这个问题有很多混乱。有些术语在 UML 上下文中未使用。因此,就此建立理解至关重要。 对于 StackOverflow 来说,答案必须太宽泛了,但让我给出几个应该就足够了的方向。

首先,必须正确更正术语。在 UML 中,我们没有术语 Entity。我们有作为模型组成部分的元素。然后将元素(除其他元素外)划分为分类器关系分类器虽然比我们在 SQL 上下文中通常在 Entity 下理解的范围更广,但是一个很好的近似值。最常用的分类器类型是。在大多数情况下,ERD 图中的实体将由 UML 类图中的表示。

关系显示元素之间的关联方式(注意,关系也是一个元素)。虽然几种类型的关系,但分类器(例如)之间的关系中最广泛的类型是依赖关系。此关系类型仅显示一个分类器需要另一个分类器才能运行。在语义上比依赖关系更精确的关系关联。在 SQL 术语中,只有一些关联是重要的,这些关联通常表示为外键约束

我想说你应该回去阅读应用的 UML 和模式。这一切都在那里解释,并举例说明。首先关注 UML,忽略 SQL 部分。一旦你掌握了它,回到与SQL的关系。

评论

1赞 Ister 11/17/2023
根据定义 - 正确。然而,从语义上讲,依赖关系是分类器之间关系最弱的类型,而关联则更强。我稍微更正了答案以使其更准确,尽管我不确定这是否会降低清晰度。
0赞 Christophe 11/17/2023 #2

UML 中,我们有和关联。UML 规范中没有实体,尽管流行的类构造型“实体”

实体表示与利益干系人相关的长期信息

换言之,它通常是指存储在数据库中的一组抗性域对象。

在 SQL 数据库中,我们有。表表示关系代数中所谓的关系。现在,数据库建模者已经发明了实体术语,它对应于一组关系,以及对应于实体之间的映射的关系。

所以你在你的问题中混合了非常不同的概念。但是,它们有一些相似之处:关系实体对应于没有行为的简单类的子集,而关系对应于关联。使用类映射关系世界的字段称为对象关系映射 (ORM)。ORM 是一组技术,允许将对象类映射到数据库表,并将关联映射到关系,反之亦然。