设关系模式R为R(H,I,J,K,L),R上的一个函数依赖集为F=H→J,J→K,I→JJL→H,分解 (45) 是无损连接的。关系模式R(A,B,C,D,E)中的关系代数表达式σ5<’2’(R)等价于 SQL语句 (46) 。
(46)处填()。
A.SELECT* FROM R WHERE <’2’
B.SELECTB, E FROM R WHERE B<’2’
C.SELECTB, E FROM R HAVING E<’2’
D.SELECT* FROM R WHERE ’5’<B
参考答案:A
解析:
[分析]: (1)因为R上的一个函数依赖集为F={H→J,J→K,I→J,KL→J,JL→H),对于分解ρ ={HIL,IKL,IJL)可以构造一个二维表,如表7-14所示。
[*]
①根据函数依赖集中H→J,J→K对上表进行修改,由于属性列H和属性列J上午相同的元素,所以无法修改。但对于I→J在属性列I上对应的1,2,3行上为全a2元素,且J中的第3行为a3,所以可将属性列J的第1行b13和第2行b23改为a3。修改后的表如表7-15所示。
[*]
②JL→H在属性列JL上对应的1,2,3行上为a3,a5元素,属性列H的第1行为a1,所以将属性列H的第2行b21和第3行b31改为a1。修改后的表如表7-16所示。
[*]
从上表可以看到第2行全为ala2a3a4a5,所以ρ是无损的。
(2)因为关系代数表达式ρ5<’2’(R)的含义为选取关系R中第5个属性E的值小于“2”的元组,所以等价的SQL语句为SELECT* FROM R WHEREE<’2’。