复习题(一)
E1=
参考答案:如果R只有1行,则结果为空;否则,结果为R本身。
E2=
2、设有下列关系:
R( A, B, C, D ) S( C, D, E) T( F, C, D)
b b c d c d m e c d
f a e f c d n c e f
b b e f e f n
f a d e
d g e f
d g c d
(1) 试计算下列关系表达式的值:
E1={t |(u)(v)(w)(R(u)∧S(v)∧T(w)∧u[3]>’c’∧v[2] ≠’d’∧w[3] ≠’f’∧u[4]=v[2]∧v[1]>w[2]∧t[1]=u[2]∧t[2]=u[3]∧t[3]=v[1]∧t[4]=w[3]∧t[5]=w[2])}
参考答案:
E1( B, R.C, S.C, T.D, T.C)
a e e d c
b e e d c
g e e d c
E2 = A, B, R.C, R.D,E,F ( A < 'f'∧E<'n'∧F≠'c' (R⋈ S ⋈T))
参考答案:
E2(A, B, R.C, R.D, E, F)
b b c d m e
d g c d m e
E3 = R÷ C,D(S)
参考答案:
E3(A B )
b b
d g
(2) 试将E1转换为等价的关系代数表达式
参考答案:
E1= B, R.C, S.C,T.D, T.C( C<’c'∧R.D≠'d'∧T.D≠'f'∧R.D=S.D∧S.C>T.C(RⅹSⅹT))
(3) 试将E2转换为等价的关系元组演算表达式
参考答案:
E2={t|u)(v)(w)(R(u)∧S(v)∧T(w)∧u[1]<'f'∧v[3]<'n'∧w[1]≠'c'∧u[3]=v[1]∧u[4]=v[2]∧v[1]=w[2]∧v[2]=w[3]∧t[1]=u[1]∧t[2]=u[2]∧t[3]=u[3]∧t[4]=v[2]∧t[5]=v[3]∧t[6]=w[1])}
(4) 对E2进行代数优化
参考答案:
3、设有下列关系:
R( A, B, C, D) S( A, B, E) T( C, F, G)
a2 b2 c2 d1 a1 b1 e2 c1 f1 g1
a3 b1 c2 d2 a1 b1 e3 c2 f2 g2
a3 b1 c3 d3 a1 b4 e2 c2 f3 g1
a3 b3 c1 d1 a2 b1 e2
a3 b4 c2 d2 a2 b2 e1
a3 b4 e3
(1) 试计算下列关系表达式的值:
E1={t|( u)( v)( w)(R(u)∧S(v)∧T(w)∧u[2]=’b1’∧v[1]>’a1’∧w[1]>’c1’∧u[1]>v[1]
∧u[2]=v[2]∧u[3]=w[1]∧t[1]=u[4]∧t[2]=v[3]∧t[3]=w[2])}
参考答案:
E1( D E F)
d2 e2 f2
d2 e2 f3
E2= R.B,R.C,S.A,F( D>’d1’∧E=’e3’∧F>’f2’∧R.A=S.A∧R.B=S.B∧R.C=T.C(R×S×T))
参考答案:
E2( R.B R.C S.A F)
b4 c2 a3 f3}
E3=R÷S
参考答案:
E3(A,B)
(2) 试将E1转换为等价的关系代数表达式
参考答案:
E1= R.D,R.E,T.F( B>’b1’∧S.A>’a1’∧T.C>’c1’∧R.A>S.A∧R.B=S.B(R×S×T))
(2) 试将E2转换为等价的关系元组演算表达式
参考答案:
E2={t|( u)( v)( w)(R(u)∧S(v)∧T(w)∧u[4]>’d1’∧v[3]=’e3’∧w[2]>’f2’∧R.A=S.A∧R.B=S.B∧R.C=T.C∧t[1]=u[2]∧t[2]=u[3]∧t[3]=v[1]∧t[4]=w[2])}
(4) 对E2进行代数优化
4、设有下列关系:
R( A, B, C) S( B, C, D, E) T( D, F, G)
a1 b2 c1 b2 c2 d1 e1 d1 f1 g1
a1 b2 c2 b2 c2 d2 e1 d1 f2 g2
a2 b2 c1 b2 c1 d2 e2 d2 f1 g3
a2 b2 c2 b2 c1 d3 e3 d2 f3 g4
a2 b3 c1 b3 c4 d1 e1 d3 f1 g5
a3 b1 c2 d3 f2 g6
a3 b2 c4
a3 b3 c4
(1) 试计算下列关系表达式的值:
E1= A,S.B,E,F( A=’a2’∧E=’e1’∧G<’g4’(R⋈S⋈T))
参考答案:
E1( A , S.C, E, F)
a2 c2 e1 f2
a2 c2 e1 f1
E2={xyz|( quvw)∧(R(wqx)∧S(qxyu)∧T(yvz)∧w>’a2’∧u<’e2’∧v=’f1’)}
参考答案:
E2(C, D, G)
c4 d1 g1
(2) 试将E1转换为等价的关系元组演算表达式
参考答案:
E1={t|( u)( v)( w)(R(u) ∧S(v) ∧T(w) ∧u[2]=v[1] ∧u[3] =v[2]
∧v[3]=w[1] ∧u[1]=’a2’ ∧v[4]=’e1’ ∧w[3]<’g4’ ∧t[1]=u[1]
∧t[2]=v[2] ∧t[3]=v[3] ∧t[4]=w[2]}
(3) 试将E2转换为等价的关系代数表达式
参考答案:
E2= C,D,G( A>’a2’∧E<’e1’∧G=’f1’ ∧R.B=S.B∧R.C=S.C∧S.D=T.D(R×S×T))
E2= C,D,G( A>’a2’∧E<’e2’∧F=’f1’ (R⋈S⋈T))
(4) 对E1进行代数优化
5、以下定义的是某汽车修理厂管理系统数据库,其中加下划线的为关系模式主键,斜体字为外键。该修理厂雇用若干名修理工并划分为不同的班组,汽车维修以班组为单位进行,每个班组安排一名修理工作为组长负责分配给该组的汽车维修事宜。
● 修理工(工号,,年龄,参加工作时间,班组号)
● 班组(班组号,人数,组长工号)
● 汽车(车牌号,车主,车型,联系)
● 维修(维修记录编号,车牌号,班组号,维修时间,收费)
试针对上述关系数据库写出如下SQL查询:
(1)查询该修理厂划分的维修班组总数。
(2)查询各维修班组的班组号及其组长。
(3)查询车牌号为“V0075”的汽车在“2011-01-01”至“2011-12-31”期间由修理工“E029”所在班组进行维修的费用总额。
(4)将修理工“E010”所在分组编号调整为“T03”。
参考答案:
(1)SELECT COUNT(班组号)
FROM 班组
(2)SELECT 班组号, 组长
FROM 班组,修理工
WHERE 组长工号=工号
(3)SELECT SUM(收费)
FROM 维修,班组,修理工
WHERE 车牌号=’V0075’ AND维修时间>=’2011-01-01’ AND
维修时间<=’2011-12-31’ AND 工号=’E029’ AND
维修.班组号=班组.班组号AND班组.班组号=修理工.班组号
(4)UPDATE 修理工
SET 班组号=’T03’
WHERE 工号=’E010’
6、以下定义的是某手机话费充值卡管理系统数据库,其中加下划线的为关系模式主键,斜体字为外键。每充值卡通过卡号及密码为手机充值,一充值卡只能为一个手机充值且一次充值过程必须消费完卡上的所有金额。每个手机只属于一个机主,而每位机主可以拥有多个手机。
● 充值卡(卡号,密码,面额,是否已售出)
● 手机(手机,开户时间,开户地点,机主编号)
● 充值(卡号,手机,充值时间)
● 机主(机主编号,,,联系地址,)
针对上述关系数据库写出如下SQL查询:
(1)查询尚未售出(是否已售出属性取值为“否”)的充值卡数。
(2)查询“”姓手机机主的及持有的手机。
(3)查询开户地点为“交通大学”的所有手机在“2010-11-01”至“2010-11-30”期间的充值总额。
(4)将卡号为“SX010323”的充值卡面额增加一百元。
参考答案:
(1)SELECT count(*)
FROM 充值卡
WHERE 是否已售出=’否’
(2)SELECT ,手机
FROM 手机,机主
WHERE like ‘%’ and 手机.机主编号=机主.机主编号
(3)SELECT sum(面额)
FROM 充值卡,充值,手机
WHERE 开户地点=’交通大学’ and 充值时间>’2010-11-01’ and充值时间<’2010-11-30’ and 充值卡.卡号=充值.卡号 and 手机.手记=充值.手机
发布评论