关系模型中的关系:标题和正文意义?



关系模型中的关系是SQL用表表示的关系。我们可以说表是SQL表示关系的尝试。 回到关系,这就是SQL试图用表表示的关系:关系 有一个标题和一个身体。标题是一组属性(SQL 试图表示什么 带列(,每个给定类型。属性由名称和类型名称标识。这 body 是一组元组(SQL 尝试用行表示的内容(。每个元组的标题是 关系的标题。每个元组属性的每个值都是其各自的类型。

我们所说的关系的标题是一组属性,而主体是一组元组是什么意思?

如果我们考虑这两个表:

Employee : EmployeeId,FirstName,LastName,DepartmentId
Department : DepartmentId, DepartmentName, Description

如果我想选择员工及其部门,查询将如下所示:

SELECT * FROM Employee E
LEFT Department D ON E.DepartmentId=D.DepartmentId

在这种情况下,对应于关系的数学定义的标题和正文是什么?

在关系模型中

属性是与数据类型配对的名称。

一组具有唯一名称的属性称为标题

元组是一组对应于特定标题的属性

关系是一组未排序的唯一元组

元组只有在其标题完全匹配时才能成为关系的一部分。

一组都对应于同一标题元组称为主体

因此,关系是特定标题和主体的组合(这是对应于该标题的一组元组(。

在关系数据库中

关系以表的形式实现。
(注意:关系模型将关系中的元组描述为唯一,但据我所知,除非声明唯一键(以主键、唯一约束或唯一索引的形式(,否则没有 RDBMS 强制执行该规则。

标题是表的列定义。

元组是表中的一行。

属性值是特定行中特定列的值。

回答您的问题

在这种情况下,对应于关系的数学定义的标题和正文是什么?

给定您在问题中描述的表,以及用于从这些表中进行选择的查询,该查询的结果集不能被视为关系,因为它的标题中具有重复的属性 -DepartmentId列存在于两个源表中。

这就是为什么数据库不允许你从这个查询创建视图(或 cte(的原因 - 因为视图或 cte 列名必须是唯一的,才能提供正确的标题。

有关更多信息,请阅读维基百科上的关系(数据库(。

最新更新