例题1
在数据库逻辑结构的设计中,将E-R模型转换为关系模型应遵循相关原则。对于3个不同实体集和它们之间的多对多联系m:n:p, 最少可转换为 (1) 个关系模式。
(1)A. 2 B.3 C. 4 D. 5
答案:C
一个多对多的联系转化为一个关系模式,加上三个实体转化的关系模式,正好四个.
例题2
给定关系模式R(U,F),U={A,B,C,D,E},F={B→A,D→A,A→E,AC→B},其属性AD的闭包为 (2) ,其候选关 键字为 (3) 。
(2)A. ADE B. ABD C. ABCD D. ACD
(3)A. ABD B. ADE C. ACD D. CD
答案:A,D 很简单吧
例题3
若有关系模式R(A,B,C)和S(C,D,E),对于如下的关系代数表达式:
E1 =πA,D(σB<'2003'∧R.C=S.C∧E='80'(R×S))
E2 =πA,D(σR.C=S.C(σB<'2003'(R)×σE='80'(S)))
E3 =πA,D(σB<'2003'(R)∞σE='80'(S))
E4 =πA,D(σB<'2003'∧E='80'(R∞S))
正确的结论是 (4) ,表达式 (5) 的查询效率最高。
(4)A. E1≡E2≡E3≡E4 B. E3≡E4但E1≠E2
C. E1≡E2但E3≠E4 D. E3≠E4但E2≡E4
(5)A. E1 B. E3 C. E2 D. E4
答案:A,B
容易知道上述四个结果都是一样的,在效率方面,明显E1和E2相比,由于E2先做了选择,笛卡尔积所用时间更 小,同理E3和E4,E3所用时间更小。而且自然连接取消重复列,明显效率更高。
例题4
设学生S、课程C、学生选课SC的关系模式分别为:S(Sno,Sname,Sage,Saddr)、C(Cno,Cname,Pcno)及 SC(Sno,Cno,Grade)。
与关系代数表达式 πSno,Sname,Grade(σCname='数据库'(S∞SC∞C))等价的元组演算表达式为:{ (6) S(u)∧SC(v)∧C(w)∧ (7) ∧ (8) }
(6)A. B. C. D.
(7)A. u[1]=v[1]∧v[1]=w[l]∧w[1]='数据库' B. u[1]=v[2]∧v[2]=w[l]∧w[3]='数据库'
C. u[1]=v[1]∧v[2]=w[l]∧w[2]='数据库' D. u[2]=v[2]∧v[1]=w[2]∧w[2]='数据库'
(8)A. t[1]=u[1]∧t[2]=u[2]∧t[3]=v[3] B. t[1]=u[1]∧t[2]=u[2]∧t[3]=v[2]
C. t[1]=u[1]∧t[2]=w[1]∧t[3]=v[2] D. t[1]=u[1]∧t[2]=w[2]∧t[3]=v[3]
答案:C,C,A
例题5
设关系模式 R为 R(H,I,J,K,L),R上的一个函数依赖集为 F={H→J,J→K,I→J,JL→H},分解 (9) 是无损连接的。关系模式R (A,B,C,D,E) 中的关系代数表达式σ5<'2'(R) 等价于 SQL 语句 (10) 。
(9)A. p={HK,HI,IJ,JKL,HL} B. p={HIL,IKL,IJL}
C. p={HJ,IK,HL} D. p={HI,JK,HL}
(10)A. SELECT * FROM R WHERE E<'2' B. SELECT B,E FROM R WHERE B<'2'
C. SELECT B,E FROM R HAVING E<'2'D. SELECT * FROM R WHERE '5'<B
答案:B,A(第一个题略难,以后会单独一篇博文来讲无损连接问题)
例题6
关系R、S如表4-15所示,R÷( ) 的结果为 (11) ,左外连接、右外连接和完全外连接的元组个数分别为 (12) 。
(11)A. {d} B. {c,d} C. {c,d,8} D. {(a,b),(b,a),(c,d),(d,f)}
(12)A. 2,2,4 B. 2,2,6 C. 4,4,6 D. 4,4,4
表4-15 关系R和S
答案:A,C
例题7
关系数据库设计理论主要包括3个方面的内容,其中起核心作用的是 (13) 。在关系模型的完整性约束中,实体完整性规则是指关系中 (14) 。引用完整性规则要求 (15) 。
(13)A. 范式 B. 数据模式 C. 数据依赖 D. 范式和数据依赖
(14)A. 不允许有主行 B. 属性值不允许为空
C. 主键值不允许为空 D. 外键值不允许为空
(15)A. 不允许引用不存在的元组 B. 允许引用不存在的元组
C. 不允许引用不存在的属性 D. 允许引用不存在的属性
答案:C,C,A
设关系P和Q分别为二元和三元关系,则与关系代数表达式等价的是 (16) 。对于基本表 S(S#,NAME,SEX,BIRTEBAY)和SC(S#,C#,GRADE),其中S#、NAME、SEX、BIRTHDAY、C#和GRADE分别表示学号、姓名、性别、生日、课程号和成绩。
有一SQL语句:
SELECT S#,NAME
FROM S
WHERE S# NOT IN
( SELECT S#
FROM SC
WHERE C# = 'c102');
其等价的关系代数表达式是 (17) 。
(16)A. σ1<2(P×Q) B. σ1<4(P×Q)
C. σ1<2() D. σ1<4( )
(17)A. ∏s#,name(σc#≠ 'c102'(S SC)) B. ∏s#,name(S) –∏s#,name (σc#= 'c102' (S SC))
C. ∏s#,name(S σc# ≠ 'c102' (SC)) D. ∏s#name(S SC)
答案:B,B