提问人:Oskar Ray-Frayssinet 提问时间:11/16/2023 最后编辑:lemOskar Ray-Frayssinet 更新时间:11/17/2023 访问量:43
UML 和 SQL 中实体和关系的区别
Difference between entity and relation in UML and SQL
问:
只是想确保我理解正确:
- 设计UML图,我们谈论的是实体之间的关系?
- 在SQL的上下文中,表是一种关系吗?
我记得不久前,我的老师在谈论实体之间的关联,这让我不确定在UML图和SQL的上下文中使用哪些词是正确的方法。
要弄清楚的词:实体、关系和关联。上下文:UML 和 SQL。
答:
首先,让我开始说这个问题有很多混乱。有些术语在 UML 上下文中未使用。因此,就此建立理解至关重要。 对于 StackOverflow 来说,答案必须太宽泛了,但让我给出几个应该就足够了的方向。
首先,必须正确更正术语。在 UML 中,我们没有术语 Entity。我们有作为模型组成部分的元素。然后将元素(除其他元素外)划分为分类器和关系。分类器虽然比我们在 SQL 上下文中通常在 Entity 下理解的范围更广,但是一个很好的近似值。最常用的分类器类型是类。在大多数情况下,ERD 图中的实体将由 UML 类图中的类表示。
关系显示元素之间的关联方式(注意,关系也是一个元素)。虽然有几种类型的关系,但分类器(例如类)之间的关系中最广泛的类型是依赖关系。此关系类型仅显示一个分类器需要另一个分类器才能运行。在语义上比依赖关系更精确的关系是关联。在 SQL 术语中,只有一些关联是重要的,这些关联通常表示为外键约束。
我想说你应该回去阅读应用的 UML 和模式。这一切都在那里解释,并举例说明。首先关注 UML,忽略 SQL 部分。一旦你掌握了它,回到与SQL的关系。
评论
在 UML 中,我们有类和关联。UML 规范中没有实体,尽管流行的类构造型是“实体”
:
实体表示与利益干系人相关的长期信息
换言之,它通常是指存储在数据库中的一组抗性域对象。
在 SQL 数据库中,我们有表。表表示关系代数中所谓的关系。现在,数据库建模者已经发明了实体术语,它对应于一组关系,以及对应于实体之间的映射的关系。
所以你在你的问题中混合了非常不同的概念。但是,它们有一些相似之处:关系实体对应于没有行为的简单类的子集,而关系对应于关联。使用类映射关系世界的字段称为对象关系映射 (ORM)。ORM 是一组技术,允许将对象类映射到数据库表,并将关联映射到关系,反之亦然。
上一个:角色和许可架构设计问题
评论