一。如果一个关系具有下面的特点,则表示这个关系有多少种不同的方法?
     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.   

    一。如果一个关系具有下面的特点,则表示这个关系有多少种不同的方法?
         1。具有3个属性和3个元组
         2。具有N个属性和M个元组
    -------------
    公式: N個屬性有N!種, M個元組有M!種,所以第2問答案: N!*M! 
          同理第一問 3!*3!=36
      

  2.   

    一。如果一个关系具有下面的特点,则表示这个关系有多少种不同的方法?
         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...)
      

  3.   

    1,一般说来常规的可以接受的有9种左右吧
    2, 
       1,最大个数为 m+n,最小个数为 m与n中的比较大的那个
       2,m与n复重的个数,相当于 m ∩ n其它的有人说了,我就不说了
      

  4.   

    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...)union all   
    inner join
    where
    这个三麻烦解释一下,我看不懂。。
      

  5.   

    我以数学来解释
    有二集合
    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虽然结果一样,但我通常不这么写,因为在解决问题时,连接条件和过滤条件分开写语义正明确,跟思路有关.