【发布时间】:2014-07-16 01:53:03
【问题描述】:
我正在阅读 Inside Microsoft SQL Server 2008: T-SQL Querying by Itzik Ben-Gan, Lubor Kollar, Dejan Sarka, and Steve Kass 中有关 Codd 的八个原始运算符的内容,但不了解 Divide 运算符。
定义 Divide 运算符的引号:
“除数关系用于划分除数关系和 产生商关系。商关系由那些组成 股息表中一列的值,第二个 列包含除数中的所有值。”
本声明与Wikipedia's definition and example一致。
“除法算子的公式包括三个关系:a 每个 c 除以 b,其中 a 是被除数,b 是除数,c 是 中介关系。让关系 a 有属性 A 和关系 b 属性 B. Divide 运算符返回包含的关系 来自除数的所有元组,使得元组 {A, B} 出现在 来自除数关系的所有元组的中介关系。”
下图用于演示此语句。我相信这些关系按以下顺序呈现:除数、除数、中介和最终结果。
第二个关系(除数)有 {a, x}, {a, z}, {b, x} 和 {b, z} 用于元组。我的思考过程如下,因为存在元组 {b, x} 和 {b, z},因此 b 应该包含在最终结果中。我已经在本书的网站(链接在本文开头)上检查了本书的更正,并且确定我错了。
为什么图表示例的结果是 a 而不是 a 和 b?
【问题讨论】:
标签: relational-algebra divide relational-division