(2001年试题8)
设有如下两个关系U和V,则U|×|V运算结果的元组个数是 __A__,属性个数是__B__;U|×|V运算结果的元组个                                                                              2=1 
数是__C__,属性个数是__D__。  
 
U:   A  B  C                 V:  B  C  D  
      3  2  1                      2  4  3
      6  5  4                      2  6  4
      9  8  7                      8  0  7
                                   8  7  9
ER 模型可以转换成关系模型。当两个实体间联系是 M:N 联系时,它通常可转换成__E__个关系模式。
供选择的答案:
A: ①1          ②2          ③3          ④4
B: ①6          ②5          ③4          ④3
C: ①1          ②2          ③3          ④4
D: ①6          ②5          ③4          ④3
E: ①Z          ②3          ③M+N        ④M×N
联接操作又称"θ联接"。联接运算是从关系R和S的笛卡儿积中选取属性值之间满足一定条件的元组,记为R|×|S,这里i和j分别是关系R和S中第i个、第j个属性。                                                                                                   
             iθj
  形式定义如下:
                   R|×|S≡σiθ(i+j)(R×S)
                    iθj
这里R的元数是r,θ是算术比较运算符。R|×|S操作是在R和S的笛卡儿积中挑选第i个
                                       iθj
分量和第(r+j)个分量满足θ运算的元组组成新的关系。如果θ是等号"=",那么这个联接操作称为"等值联接"。
自然联接(Natural Join)是构造新关系的有效方法,是关系代数中常用的一种运算。利用投影、选择和自然联接操作可以任意地分割和构造关系。一般,自然联接使用在R和S有公共属性的情况中。如果两个关系没有公共属性,那么它们的自然联接就化为笛卡儿积。
两个关系R和S的自然联接用R|×|S表示,具体计算过程如下:
计算 R×S;
设R和S的公共属性是A1,A2,…,Ak,挑选R×S中满足R.A1=S.A1, R.A2, …,R.Ak=S.Ak的那些元组:
去掉S.A1, S.A2, …,S.Ak列。
因而R|×|S可用下式形式定义:
           R|×|S≡πi1, i2, …, im(σR.A1=S.A1∧…∧R.Ak=S.Ak(R×S)谁能帮我解释一下 R|x|S怎么算?能帮我把具体的过程写一下吗?就题论题。

解决方案 »

  1.   

    等值联接:选出U,V中相同的列,即B和C,观察两个关系中B,C两列是否有相等的,上题中只有一行满足,为(8,7)=(8,7),所以结果为:
                   A   B   C   B   C   D
                   9   8   7   8   7   9
    自然联接:在等值联接的结果中可以看出,B和C的数据重复,即多余。平时的应用中都要去掉重复的列,因此有了自然联接,即去掉等值联接的结果中重复的列,上题结果为            
                   A   B   C   D
                   9   8   7   9
    第三问结果为‘3个关系模式’,分别记载实体1的属性,实体2的属性和两实体之间的关系。