类似的 选择运算就是选出所需的行。
例如 一个表有 ABC列 ,123三行
你现在只需要AC列,就从表中投影出AC列
如果你只需要12行,那从表中选择12行
投影运算的含义简单点就是:从表中选择需要的属性列。列是属性,行是元组..
而且作投影之后可能会出现重复项,比如:
A B C
a1 b1 c1
a1 b2 c2
a2 b2 c3
作A的投影就是a1, a2 减少了一行
总结:
并:属性不变,元组可能增加(集合相等时不增加)
交:属性不变,元组可能减少(集合相等时不减少)
投影:属性可能减少(全投影时不减少),元组可能减少(投影后无重复项时不减少)
笛卡尔积:属性增加,元组可能增加(只有1个元组时不增加)
除运算:
R:
A
B
C
a1
b1
c2
a2
b3
c7
a3
b4
c6
a1
b2
c3
a4
b6
c6
a2
b2
c3
a1
b2
c1
S:
B
C
D
b1
c2
d1
b2
c1
d1
b2
c3
d2
R÷S
A
a1
/*
(1) 找S与R的共同属性,其元组看做整体 k
(2)选择R中包含k的 非S与R相同属性的 属性 即为R÷S
*/
解答如下:
在关系R中,A可以取四个值{a1,a2,a3,a4},其中:
a1的象集为:{(b1,c2),(b2,c3),(b2,c1)}就是a1 对应bc属性上的值
a2的象集为:{(b3,c7),(b2,c3)}
a3的象集为:{(b4,c6)}
a4的象集为:{(b6,c6)}
S在(B,C)上的投影为{(b1,c2),(b2,c3),(b2,c1)}。,只取BC两列
显然只有a1的象集(B,C)a1包含S在(B,C)属性组上的投影,全部包含,所以R÷S={a1}。
答案:由于“学号”能完全函数确定此关系模式的所有属性,故此关系模式的候选码为“学号”;
由于候选码由单一属性组成,不可能存在非主属性部分函数依赖于码“学号”,故此关系模式是第二范式的;
∵学号→所在系,所在系→宿舍楼
∴学号→宿舍楼
此关系模式中存在非主属性“宿舍楼”传递函数依赖于码“学号”,故此关系模式不是第三范式的。
采用投影分解法,消除其传递函数依赖,将其规范化为第三范式关系模式为:
Student11(学号,姓名,出生日期,所在系)
Student12(所在系,宿舍楼)
这个是第一题的答案、其实我也在找第二个的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)