在关系代数中,SQL Table 关系的等价物是什么?
What is the equivalent, in Relational Algebra, of a SQL Table Relationship?
如果我理解正确,关系代数 等价于 SQL table
是 relation
.
关系代数中SQLrelationship
的等价项是什么(即在两个表之间)?
我不相信有。相关集的概念不是集合论的一部分。您只有集合和作用于它们的运算符。
两个表或关系之间的“关系”[sic] 是来自 pseudo-ERM(Entity-Relationship 模型)信息建模方法、产品和演示文稿的概念,它们自称为 ERM 但不是因为他们误解、误用和歪曲了 ERM 和 RM(关系模型)。这不是来自 SQL 的术语。对应RM中的一个FK(外键)。
(在 ERM 和 RM 中,“关系”是一个“关联”,是 truth-valued 函数意义上的“关系”。如 RM 意义上的“关系”所表示一起参与的 entities/values 个元组的集合。)
A SQL FK 对应于我们可以合理地在 RM 中称为外部超级密钥的内容。 Does an empty SQL table have a superkey? Does every SQL table?
(ERM 和 SQL 也误解、误用和歪曲了 RM。What is the difference between an entity relationship model and a relational model?)
RA(关系代数)是一个值系统和关系运算符,可能还有其他类型。其表达式本质上是嵌套 RA 运算符调用的语言通常也被草率地称为 RA。关系(值或变量)FK 是属性的集合或列表,其子元组值被限制出现在别处。 FK 约束表示给定命名关系中给定集合或属性列表的子元组值也出现在第二个给定命名关系的给定属性下。 (这样的约束也被草率地称为 FK。)由于 FK 约束是关于关系值而不是关系值的陈述,因此它不能直接用关系值和运算符来表达。它可以使用特定的 RA-style 查询语言,让您可以编写 boolean-valued 表达式。
FK 集合的一个 RM 概念是 {r, ...} 是 R 中的 FK 引用 S 中的 CK {r, ...} iff/when project r, ... (R)
是一个限制project r,... (S)
个。 FK 作为列表的一个概念是 (r, ...) 是 R 中的 FK,在 S iff/when 中引用 (s, ...) {s, ...} 是 S 的 CK,并且 rename r\s, ... (project r, ... (R))
是 project s,... (S)
.
的限制
然而,在将我们自己限制在关系名称和嵌套 RA 调用的同时表达约束是直截了当的。我们通过具有某些 agreed-upon 属性 iff/when 约束的查询来表达约束是否对给定的命名关系成立。一个这样的约定是给出一个查询 returns 一个空关系 iff/when 其命名关系满足约束。最简单的约定是查询 returns 没有列的关系(其中有两个,一个有元组,一个没有)有一个元组 iff/when 满足约束。
如果我理解正确,关系代数 等价于 SQL table
是 relation
.
关系代数中SQLrelationship
的等价项是什么(即在两个表之间)?
我不相信有。相关集的概念不是集合论的一部分。您只有集合和作用于它们的运算符。
两个表或关系之间的“关系”[sic] 是来自 pseudo-ERM(Entity-Relationship 模型)信息建模方法、产品和演示文稿的概念,它们自称为 ERM 但不是因为他们误解、误用和歪曲了 ERM 和 RM(关系模型)。这不是来自 SQL 的术语。对应RM中的一个FK(外键)。
(在 ERM 和 RM 中,“关系”是一个“关联”,是 truth-valued 函数意义上的“关系”。如 RM 意义上的“关系”所表示一起参与的 entities/values 个元组的集合。)
A SQL FK 对应于我们可以合理地在 RM 中称为外部超级密钥的内容。 Does an empty SQL table have a superkey? Does every SQL table?
(ERM 和 SQL 也误解、误用和歪曲了 RM。What is the difference between an entity relationship model and a relational model?)
RA(关系代数)是一个值系统和关系运算符,可能还有其他类型。其表达式本质上是嵌套 RA 运算符调用的语言通常也被草率地称为 RA。关系(值或变量)FK 是属性的集合或列表,其子元组值被限制出现在别处。 FK 约束表示给定命名关系中给定集合或属性列表的子元组值也出现在第二个给定命名关系的给定属性下。 (这样的约束也被草率地称为 FK。)由于 FK 约束是关于关系值而不是关系值的陈述,因此它不能直接用关系值和运算符来表达。它可以使用特定的 RA-style 查询语言,让您可以编写 boolean-valued 表达式。
FK 集合的一个 RM 概念是 {r, ...} 是 R 中的 FK 引用 S 中的 CK {r, ...} iff/when project r, ... (R)
是一个限制project r,... (S)
个。 FK 作为列表的一个概念是 (r, ...) 是 R 中的 FK,在 S iff/when 中引用 (s, ...) {s, ...} 是 S 的 CK,并且 rename r\s, ... (project r, ... (R))
是 project s,... (S)
.
然而,在将我们自己限制在关系名称和嵌套 RA 调用的同时表达约束是直截了当的。我们通过具有某些 agreed-upon 属性 iff/when 约束的查询来表达约束是否对给定的命名关系成立。一个这样的约定是给出一个查询 returns 一个空关系 iff/when 其命名关系满足约束。最简单的约定是查询 returns 没有列的关系(其中有两个,一个有元组,一个没有)有一个元组 iff/when 满足约束。