在数据库中投影运算的含义

在数据库中投影运算的含义,第1张

投影就是从所给的表中,选出需要的列

类似的 选择运算就是选出所需的行。

例如 一个表有 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(所在系,宿舍楼)

这个是第一题的答案、其实我也在找第二个的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9655098.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存