复习题(一)
1、设R是二元关系,请分别说明下列关系表达式的结果是什么?并将E1和E2转换为等价的关系代数表达式
E1=t(u)(R(t)R(u)(t1u1t2u2)))
参:如果R只有1行,则结果为空;否则,结果为R本身。
E2=abR(ab)R(ba)
参:结果为R中第1分量和第2分量交换位置后仍然属于R的数据行。
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 手机.手记=充值.手机
(4)UPDATE 充值卡
SET 面额=面额+100
WHERE 卡号=’SX010323’
7、以下是某学生食堂就餐卡管理系统中的部分表,其中加下划线的属性为主键,斜体字属性为外键,每个学生只可办理一就餐卡。
学生(学号,,性别,班级,出生年月,卡号)
就餐卡(卡号,开户日期,失效日期,密码,余额,每日消费限额) POS终端(POS编号,地理位置)
消费(卡号,POS编号,消费日期,消费金额) 充值(卡号,充值时间,金额) 针对上述关系数据库写出如下SQL查询:
(1)查询卡号为“053021”的就餐卡余额及每日消费限额。 (2)查询编号为“018”的POS终端2010年12月的总收入。
(3)查询“蓓”同学2010年10月1日在编号为“029”的POS终端上的消费次数。 (4)查询曾经在“西八食堂”(地理位置)就餐过的学生学号及。 (5)请为一名新入校同学增加其相关信息,学号:10054001,:白,性别:女,班级:计算机01,出生日期:1992-11-08,该同学于2010-09-01办理的新就餐卡卡号为060567, 失效日期:2014-08-31,默认密码:123456,每日消费限额:50元。 参:
(1)SELECT SUM(消费金额)
FROM 消费
WHERE POS编号=’029’ AND 消费日期>=’2008-09-01’ AND消费日期
<=’2008-09-30’
(2)SELECT 学号, 余额, 每日消费限额
FROM 学生, 就餐卡
WHERE 学生.卡号=就餐卡.卡号 AND =’吴斌’ (3)SELECT 卡号
.
.
FROM 消费
WHERE消费日期>=’2008-10-01’ AND消费日期<=’2008-10-31’ GROUP BY 卡号
HAVING SUM(消费金额)>=ALL (
SELECT SUM(消费金额) FROM 消费
WHERE消费日期>=’2008-10-01’ AND消费日期<=’2008-10-31’ GROUP BY 卡号)
(4)INSERT INTO 学生
VALUES (‘08054001’, ‘白’, ‘女’, ‘计算机81’, ‘1990-11-08’, ‘020567’)
INSERT INTO 就餐卡
VALUES (‘020567’,’2008-09-01’, ‘2012-08-31’, ‘123456’, 0, 50)
8、下面定义的是某网上书店的数据库,其中加下划线的是主键,斜体字的是外键
图书(图书编号,书名,定价,库存册数,)
客户(客户编号,账号,口令,账户余额,客户类别,,送货地址) 订单(订单编号,客户编号,下单时间,支付金额) 订单明细(订单编号,图书编号,单价,定购册数) 针对上述关系数据库写出如下SQL查询:
(1)查询书名以“数据库系统”开头的所有图书编号及库存册数。 (2)查询2010年01月22日所有订单支付金额的总额。
(3)查询编号为“0323”的客户购买过的所有图书名称及各种图书的定购册数。 (4)将科学出版的《数据库系统教程》库存册数增加100册。 参:
(1)SELECT 图书编号,库存册数
FROM 图书
WHERE 书名 LIKE ‘数据库系统%’ (2)SELECT SUM(支付金额)
FROM 订单
WHERE 下单时间=’ 2010-01-22’ (3)SELECT 书名,定购册数
FROM 图书,订单,订单明细
WHERE 图书.图书编号=订单明细.图书编号 AND 订单.订单编号=订单明细.订单编
号 AND 客户编号=’0323’
(4)UPDATE 图书
SET 库存册数=库存册数+100
WHERE 书名=’数据库系统教程’ AND =’科学’
9、设有关系模式 R(A, B, C, D, E, G) 函数依赖集F={BE, DG, AB, EA,DEC} 及R的一个分解р={R1(D, G), R2(B, E), R3(C, D, E), R4(A, B)}
(1) 试判断р是否无损联结?(构造M矩阵判断) (2) 试判断р是否保持函数依赖集F?并说明为什么? 参:
.
.
(1)р的初始符号表:(A, B, C, D, E, G) R1 b11 b12 b13 a4 b15 a6
R2 b21 a2 b23 b24 a5 b26 R3 b31 b32 a3 a4 a5 b36 R4 a1 a2 b43 b44 b45 b46
р经过F变换后的终止符号表: (A, B, C, D, E, G) R1 b11 b12 b13 a4 b15 a6 R2 a1 a2 b23 b24 a5 b26
R3 a1 a2 a3 a4 a5 a6 R4 a1 a2 b43 b44 a5 b46
(2)р是无损联结分解,因为р经过F变换后的终止符号表中出现了全’a’行
10、设有关系模式R(A,B,C,D,E,G,H),F={CDB,CDEA,AB,BE,GAEH,HEG} (1)试求F的最小函数依赖集FMIN; (2)试求R的所有候选键;
(3)试将R分解成3NF模式集,要求分解无损连接且保持函数依赖; 参:
(1)Fmin ={CDA,AB,BE,GA,GH,HG} 或 {CDA,AB,BE,HA,GH,HG} (2)KEY1 = CDG KEY2 = CDH
(3)R可分解为:{R1(C,D,A),R2(A,B),R3(B,E),R4(H,A),R5(G,H),R6(C,D,G)} 或 {R1(C,D,A),R2(A,B),R3(B,E),R4(H,A),R5(G,H),R6(C,D,H)} 或 {R1(C,D,A),R2(A,B),R3(B,E),R4(G,A),R5(G,H),R6(C,D,H)} 或 {R1(C,D,A),R2(A,B),R3(B,E),R4(G,A),R5(G,H),R6(C,D,G)} 11、判断下列关系模式最高属于第几式,并解释原因 R1(ABCDE),F= F={ED,DA,AE,BA} R2(EXGH),F ={ E→H, E→G, GHX→E } R3(XYZ),F ={ X→Y, Y→Z, Z→X } R4(ABCD),F ={ A→B, CD→A } R5(XYZ), F={X→→Y|Z} 参:
R1的候选键是{BC},最高属于1NF。 R2的候选键是{GHX,EX},最高属于3NF R3的候选键是{X,Y,Z},最高属于BCNF R4的候选键是{CD},最高属于2NF R5的候选键是{XYZ},最高属于BCNF
12、下面是用ORDB的定义语言定义的数据库:
CREATE TYPE MyString char varying; CREATE TABLE university(uname MyString, city MyString, president ref(faculty), staff setof(ref(faculty)), edit setof(ref(coursetext))); CREATE TABLE faculty(fno integer,
.
.
fname MyString, age integer, salary integer, works_for ref(university), teach setof(ref(coursetext))); CREATE TABLE coursetext(cname MyString, textname MyString, teacher ref(faculty),
editor ref(university));
(1)试画出上述数据库的对象联系图 参:
fnofacultyfnameagesalarypresidentwork_forstaffteacheditorteacheruniversityunamecityeditcoursetextfnametextname
(2)试用ORDB的查询语言写出下列查询:
(i) 检索采用“Mathematical Analysis\"教材讲授”MATHS”课的教师工号和。 参:
SELECT F.fno,F.fname FROM faculty as F
WHERE F.teach IN (‘MATHS’,’Mathematical Analysis’) ; (ii) 检索地区各大学超过年龄50岁的教师 参:
Select B.fname
From university as A, A.staff as B Where A.city = ‘xian’ And B.age > 50
(iii) 检索交大每位老师上课所用教材及其编写学校 参:
.
.
Select B.fname, C.textname, C.editor.uname
From university as A, A.staff as B, B.teach as C Where A.uname =‘交大’
.
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务