1.若有关系R (A, B, C, D)和S (C, D, E),则与表达式
文章图片
等价的SQL语句如下:
SELECT(17) FROM (18) WHERE(19);
(17)A. A,B,C,D,EB. C,D,E
C. R.A,R.B,R.C, R.D, S.ED. R.C,R.D,S.E
(18)A.RB.SC.R,SD.RS
(19)A.D
RxS就是4+3列的组合,也就是笛卡儿积
文章图片
文章图片
R*S就是
文章图片
σ选择运算
先计算σ4<5 (R×S) 的意思在RxS的结果中,选择出满足属性列4 的值 <属性列5的值的那些行。
第四列是R中的D列,第五列是S中的C列,假如d1
所以总结一下,选择 σ4<5 (R×S)是对关系(R x S)的映射,选出满足4<5关系的行。
文章图片
π投影运算
再计算π3,4,7(σ4<5 (R×S)),其实比较简单了,就是在σ4<5 (R×S)的结果中选择相应的列,这里对应的是第3,4,7列
为了避免C,D两列区分不清,要加上相应的关系名
文章图片
【答案】DCB
2.
(1)已知5行5列的二维数组a中各元素占两个字节,求元素a[2][3]按行优先存储的存储地址?
【解析】
第一题:由于数组下标是从0开始的,因此a[2][3]是位于图中如下位置。
a[2][3]的存储地址=a+(i*n+j)*len=a+(2*5+3) * 2个字节
【软件评测师重点题目记录(1)】
文章图片
文章图片
【答案】a[2][3]的存储地址=a+(i*n+j)*len=a+(2*5+3) * 2个字节
(2)设数组a[1...n,1...m](n>1,m>1)中的元素以行为主序存放,每个元素占用1个存储单元,则数组元素a[i,j](1<=i<=n, 1<=j<=m)相对于数组空间首地址的偏移量为()
A (i-1)*m+j-1B (i-1)*n+j-1C (j-1)*m+i-1D(j-1)*n+i-1
【解析】
【答案】A
(3)若二维数组arr[1...M, 1...N]的首地址为base,数组元素按列存储且每个元素占用K个存储单元,则元素arr[i,j]在该数组空间的地址为()
A base+((i-1)*M+j-1)*KB base+((i-1)*N+j-1)*KC base+((j-1)*M+i-1)*KD base+((j-1)*N+i-1)*K
【解析】
二维数组arr[1..M,1..N]的元素可以按行存储,也可以按列存储。按列存储时,元素的排列次序为,先是第一列的所有元素,然后是第二列的所有元素,最后是第N列的所有元素。每一列的元素则按行号从小到大依次排列。因此,对于元素aix[i,j],其存储位置如下计算:先计算其前面j-1列上的元素总数,为然后计算第j列上排列在arr[i,j]之前的元素数目,为i-1,因此arr[i,j]的地址为base+((j-1)*M+i-1)*K。
【答案】C