考虑关系 R 和 S ,其中 R 有 m 个元组,S 有 n 个元组。m<=n 。在以下每种情况下,元组的最小和最大数量是多少(假设没有提到关键约束)
- R 联合 S
- R 交叉口 S
- RS
- SR
- R 自然加入 S
- R 左外连接 S
- R/S
我的工作
- RUNION S
max : n+m (联合我们添加两个关系中的所有元组)
min: 0 (取 m=n=null )
- R 交叉点 S
max : m ( m < n 两个关系都包含相同的键,那么我们可能会得到最大的 m 个键)
min: 0(如果两个关系中都没有公共键,则取 m=n=null)
- R - S
max : m (如果它们是不相交的,那么在 RS 中我们将得到 R 的所有元组)
min: 0(如果 R 中的所有元组也存在于 S 中)
- SR
最大值:n(如上所述)
min: 0(如上所述)
- R 自然连接 S
max : n*m (如果没有匹配的键约束自然连接将产生笛卡尔积)
min: m ( m < n 当考虑到关键约束时)
- R 左外连接 S
max : m (即使不匹配也会输出左表中的所有内容)
min: 0 (当 m=0 时)
- R/S
最大值:m(当 n=0 时)
min:我无法下结论
是的,您的答案大部分是正确的,除了一些错误:
1.
R UNION S
max : n+m (联合我们将两个关系中的所有元组相加)
正确,当 R 和 S 没有公共元组时。
min: 0 (取 m=n=null )
错误,最小值是
n
(m 和 n 两个尺寸中最大的一个)。当 R 的所有元组也存在于 S 中时。并且 m 和 n 不能为空,它们是关系的大小,它们是数字(整数)。
2.
R INTERSECTION S
最大:m(
m<n
两个关系包含相同的键,那么我们可能会得到最大 m 个键)正确但推理是错误的。您比较两个关系的元组,而不是键。
min: 0(如果两个关系中都没有公共键,则取 m=n=null)
正确但推理错误。结果可能为 0,因为这两个关系可能没有共同的元组)。
3.
R - S
最大值:m(如果它们不相交,那么在 RS 中我们将得到 R 的所有元组)
正确
min: 0(如果 R 中的所有元组也存在于 S 中)
正确
4.
S - R
最大值:n(如上所述)
正确
min: 0 (如上所述)
错误,最小值为
n - m
.5.
R natural join S
max : n*m (如果没有匹配的键约束自然连接将产生笛卡尔积)
正确
min: m (m < n 当考虑到关键约束时)
错误,最小值是
0
。您可以轻松找到与案例 2 (INTERSECTION
) 相同的示例。6.
R LEFT OUTER JOIN S
max : m (即使不匹配也会输出左表中的所有内容)
错误,最大值为
m * n
,与自然连接相同。或者只是采取ON TRUE
。min: 0 (当 m=0 时)
错误,最小值为
m
。示例可以与NATURAL
上面的 join 相同(或者只是 takeON FALSE
),但它不能给出 lees 比R
(连接中的左关系)中的元组数。7.
R / S
最大值:m(当 n=0 时)
正确,但不必为 n=0 或 m=0。你可以找到另一个例子。
min:我无法下结论。
最小值是
0
考虑到关系除法类似于整数除法。3 / 7
例如给出0
整数除法。尝试将其转换为关系除法。我已经更清楚地重新编译了上面的答案,并添加了一些更多的关系代数运算。希望,它很有用:)
考虑关系 R 和 S,其中 R 有 m 个元组,S 有 n 个元组。m<=n 。在以下每种情况下,元组的最小和最大数量是多少(假设没有提到关键约束)
这些结果是在没有涉及任何给定候选键的情况下考虑通用表确定的。
注意:如果给定表的候选键,那么结果会有所不同。
1.
R UNION S
原因:联合我们添加了两个关系中的所有元组。即当R 和S 没有公共元组时。
原因:最小值是
n
(两个尺寸中最大的一个,m 和 n)。当 R 的所有元组也存在于 S 中时。2.
R INTERSECTION S
m<n
)原因:两个关系都包含相同的元组,那么我们可能会得到最多 m 个键
原因:如果两个关系中没有公共元组
3.
R - S
原因:如果它们是不相交的(如果它们没有共同的元素),那么在 RS 中我们将得到 R 的所有元组
原因:如果 R 中的所有元组也存在于 S 中
4.
S - R
原因:如果它们是不相交的(如果它们没有共同的元素),那么在 SR 中我们将得到 S 的所有元组
原因:m<n 删除普通元组后,S 中会有一些元组
5.
R natural join S
原因:如果没有匹配的键约束,自然连接会产生笛卡尔积
原因:与案例 2 (
INTERSECTION
) 相同。6.
R LEFT OUTER JOIN S
原因:如果左表中的所有行都与右表中的所有行匹配
原因:如果两个表之间没有元组匹配,但我们仍然必须包含左表中的所有元组。
m=1 时最小值为 1,m= 2 时最小值为 2,m=0 时最小值为 0
7.
R / S
原因:当 n=0 时
原因:考虑到关系除法类似于整数除法。
3 / 7
例如,在整数除法中给出 0。尝试将其转换为关系除法8.
R CROSS PRODUCT S
原因:将 R 中的每一行与 S 中的每一行结合起来。
9.
R RIGHT OUTER JOIN S
原因:如果左表中的所有行都与右表中的所有行匹配
原因:如果两个表之间没有元组匹配,但我们仍然必须包含右表中的所有元组。
n=1 时最小值为 1,n= 2 时最小值为 2,n=0 时最小值为 0
10.
R FULL OUTER JOIN S
原因:如果左表中的所有行都与右表中的所有行匹配
原因:如果两个表之间没有元组匹配,但我们仍然必须包括左表和右表中的所有元组。
原因:当一个表中的每个元组与另一个表中的元组匹配时。
详细解释 min: max(m,n) for Full Outer Join:
考虑具有 4 个元组的关系 R 和具有 8 个元组的关系 S。
因此,如果没有匹配项,则外部连接的最小值将是。即 m+n = 4+8 = 12 个元组。
但这不是获得绝对最小值的情况。
得到分钟。在完全外连接中:
考虑一下,R 中 4 个元组中有 4 个与 S 的元组匹配(4 个 8 与 R 相同)
这一次,结果关系将有:4(匹配)+ 4(不匹配)元组 = 8 个元组。(小于 12)