RDBMS/SQL中的“Relation”和“relationship”有何区别?

6

从问题“Relation” versus “relationship”而来。

在关系型数据库管理系统(或数据库理论)中,“relation”与“relationship”的定义是什么?

更新:
对于我问题的评论让我有些困惑:

“relation是table的同义词,因此在计算机中存储模式方面具有非常精确的含义”

更新2:
如果我在RDBMS方面回答错误,写道relation是单向连接依赖链接的单方向性单一连接,即从一个表到另一个表,而relationship意味着(不一定明确)在一个方向上存在多个链接连接(从一个表到另一个表)?


好问题,但对于SO来说太过技术性了。任何基于学术问题和定义的好答案都会被那些声望高而没有学术背景的人投票反对并争论。 - PerformanceDBA
@PerformanceDBA,我开始怀疑你的远见能力,因为它没有被downvote,但是我在English.stackExchange.com上得到了1000天的禁言,之前没有任何警告。 - Gennady Vanin Геннадий Ванин
3
你是一个有趣的人,对学习也很认真。不要太过认真地对待 Stack Overflow(简称SO)。每当我指出错误信息时,我就会被禁言,尽管我只是在支持FAQ "首要原则是诚实......纠正错误信息"。这个网站无法提升其低技术形象。声望是受欢迎程度的结果,而不是技术准确性。我并不认为你有任何冒犯之处。 - PerformanceDBA
这个回答解决了你的问题吗?为什么数据库中有“关系”,而不只是使用SQL的连接? - philipxy
3个回答

16

关系是一个由一组域的笛卡尔积中的子集构成的概念 (http://mathworld.wolfram.com/Relation.html)。在日常术语中,关系 (或更具体地说,关系变量) 是大多数人所称的数据结构表格 (虽然 SQL 中的表格不一定符合关系的要求)。

关系是关系数据库模型的基础。

而关系性是另一种不同的事物。关系性是一种语义上的“关联”。


@vgv8。谢谢你的赞美。 - PerformanceDBA
我可以建议,对于听众中的非理论人士进行更详细的阐述。 - PerformanceDBA
1
“关系”在数学中也被用来表示“关联”的意思,就像“函数”一样。我高中时的一本教科书叫做《函数与关系》。这些词可以表示关联(“内涵”或“含义”)或者是特定形式的元组集合(“外延”)。在关系模型中,“关系”这个词的两种意义都适用。 - philipxy

6

关系是数学术语,指集合论中的一个概念。在关系型数据库世界中,“关系”方面的意思是数据被组织成表格,反映了每一行(元组)与所有其他行相关联的事实。它们都是相同类型的信息。

但是,你还有ER(实体关系)这种建模方法,其中你可以识别真实世界中的对象及其关系。然后将每个对象建模为一个表格,并将每个关系建模为一个只包含外键的表格。

例如,如果你有3个实体:教师、学生、班级;那么你可能还会创建几个表来记录这两个关系:TaughtBy和StudyingIn。TaughtBy表将具有一个教师ID和一个班级ID的记录,以记录这个班级由这个教师教授。而StudyingIn表将具有一个学生ID和一个班级ID,以反映该学生正在上这门课程。

这样,每个学生可以在许多班级中,每个教师也可以在许多班级中,而不需要在任何记录中包含一个包含班级ID列表的字段。SQL无法处理包含一系列事物的字段。


0
关系是一个具有列和行的表格。
而且,
关联是关系/表格之间的关联
例如,雇员表与分公司之间有关系,这被称为雇员表和分公司表之间的关联

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接