一。如果一个关系具有下面的特点,则表示这个关系有多少种不同的方法?
1。具有3个属性和3个元组
2。具有N个属性和M个元组二。假定关系R和S分别有N和M个元组,试说明下列运算结果中的最小和最大元组个数:
1。R U S
2。R自然连接S
3。选择c(R)* S 其中c是条件表达式
4。IIc(R)- S 其中c是属性集合
有闲的朋友帮忙给个答案,如果更有空的朋友,能否把第一大题给我大概讲一下为什么?
因为我第一题整个不会做,第二题会一点的。 本人自学的,平时问不到人,只有来这里提问了,分不多了,谢谢!
1。具有3个属性和3个元组
2。具有N个属性和M个元组二。假定关系R和S分别有N和M个元组,试说明下列运算结果中的最小和最大元组个数:
1。R U S
2。R自然连接S
3。选择c(R)* S 其中c是条件表达式
4。IIc(R)- S 其中c是属性集合
有闲的朋友帮忙给个答案,如果更有空的朋友,能否把第一大题给我大概讲一下为什么?
因为我第一题整个不会做,第二题会一点的。 本人自学的,平时问不到人,只有来这里提问了,分不多了,谢谢!
1。具有3个属性和3个元组
2。具有N个属性和M个元组
-------------
公式: N個屬性有N!種, M個元組有M!種,所以第2問答案: N!*M!
同理第一問 3!*3!=36
1。具有3个属性和3个元组(表示此表有三个字段,且有三条记录)
2。具有N个属性和M个元组(表示此表有M个字段,且有N条记录)
说明:属性对应字段,元组对应记录二。假定关系R和S分别有N和M个元组,试说明下列运算结果中的最小和最大元组个数:
1。R U S (表示+,结果有N+M个元组,对应语句:union all)
2。R自然连接S(表示*,对应语句:inner join)
3。选择c(R)* S 其中c是条件表达式(对应语句:inner join where 条件c)
4。IIc(R)- S 其中c是属性集合( 对应语句:where 条件C AND NOT EXISTS...)
2,
1,最大个数为 m+n,最小个数为 m与n中的比较大的那个
2,m与n复重的个数,相当于 m ∩ n其它的有人说了,我就不说了
2。R自然连接S(表示*,对应语句:inner join)
3。选择c(R)* S 其中c是条件表达式(对应语句:inner join where 条件c)
4。IIc(R)- S 其中c是属性集合( 对应语句:where 条件C AND NOT EXISTS...)union all
inner join
where
这个三麻烦解释一下,我看不懂。。
有二集合
A,B
A:{2,3,4,5} 即A有元素 2,3,4,5
B:{1,3,5,6} 即B有元素 1,3,5,6
A U B 即A与B的并集(合集) 即 {1,2,3,4,5,6}, 可以理解为SQL中的UNION
当UNION后指定ALL关健字之后 那么合集就是 {1,2,3,3,4,5,5,6} (当然,数学中不存在这样的集合运算,另外,这里的排序我只是举个例子,实际上SQL中的UNION ALL不指定ORDER BY条件并且不考滤主健索引等条件时是按select的顺序显示的,而不指定ALL关健字时会呼略重复数据并按顺序排列)INNER JOIN 相当于交集
A ∩ B 即取二个集合中重复的部分,那么结果是 {3}
为了说明 WHERE,我改变一个A,B中的元素
A:{2,3,4,5} 即A有元素 2,3,4,5
B:{1,2,3,5,6} 即B有元素 1,2,3,5,6
此时
A ∩ B 为 {2,3} 即2,3元素在两个集合中都出现.
此时加 WHERE A.元素<>2时(实际上SQL不存在这种写法,我只是用来描述), 那么此时将对 A 进行过滤, 即将A中<>2的元素或者说将A集合去掉元素2,然后与 B 进行交集运算,此时结果为 {3}这是数据学中,再看SQL中的
Ta
ID Name
1 aa
2 bbTb
ID Name
1 aaa
2 bbb
3 xxx
4 vvvSELECT a.Name,b.Name FROM Ta a INNER JOIN Tb b ON a.ID=b.ID
此时按 ID相同取交集,那么结果是
Name Name
aa aaa
bb bbbSELECT a.Name,b.Name FROM Ta a INNER JOIN Tb b ON a.ID=b.ID WHERE b.ID<>2
此时过滤了Tb中第二条记录,将其它几条记录与Ta进行INNER JOIN,那么结果自然是
Name Name
aa aaa当然也可以把 WHERE b.ID<>2 加到 ON 的条件中:
SELECT a.Name,b.Name FROM Ta a INNER JOIN Tb b ON a.ID=b.ID AND b.ID<>2虽然结果一样,但我通常不这么写,因为在解决问题时,连接条件和过滤条件分开写语义正明确,跟思路有关.