西安交大_数据库_练习卷答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

复习题(一)1、设R是二元关系,请分别说明下列关系表达式的结果是什么?并将E1和E2转换为等价的关系代数表达式E1=)))2211()()(()(ututuRtRut参考答案:如果R只有1行,则结果为空;否则,结果为R本身。E2=)()(baRabRab参考答案:结果为R中第1分量和第2分量交换位置后仍然属于R的数据行。2、设有下列关系:R(A,B,C,D)S(C,D,E)T(F,C,D)bbcdcdmecdfaefcdncefbbefefnfadedgefdgcd(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)aeedcbeedcgeedcE2=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)bbcdmedgcdmeE3=R÷C,D(S)参考答案:E3(AB)bbdg(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.CT.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)a2b2c2d1a1b1e2c1f1g1a3b1c2d2a1b1e3c2f2g2a3b1c3d3a1b4e2c2f3g1a3b3c1d1a2b1e2a3b4c2d2a2b2e1a3b4e3(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(DEF)d2e2f2d2e2f3E2=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.BR.CS.AF)b4c2a3f3}E3=R÷S参考答案:E3(A,B)(2)试将E1转换为等价的关系代数表达式参考答案:E1=R.D,R.E,T.F(B’b1’∧S.A’a1’∧T.C’c1’∧R.AS.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)a1b2c1b2c2d1e1d1f1g1a1b2c2b2c2d2e1d1f2g2a2b2c1b2c1d2e2d2f1g3a2b2c2b2c1d3e3d2f3g4a2b3c1b3c4d1e1d3f1g5a3b1c2d3f2g6a3b2c4a3b3c4(1)试计算下列关系表达式的值:E1=A,S.B,E,F(A=’a2’∧E=’e1’∧G’g4’(R⋈S⋈T))参考答案:E1(A,S.C,E,F)a2c2e1f2a2c2e1f1E2={xyz|(quvw)∧(R(wqx)∧S(qxyu)∧T(yvz)∧w’a2’∧u’e2’∧v=’f1’)}参考答案:E2(C,D,G)c4d1g1(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)SELECTCOUNT(班组号)FROM班组(2)SELECT班组号,姓名组长姓名FROM班组,修理工WHERE组长工号=工号(3)SELECTSUM(收费)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)SELECTcount(*)FROM充值卡WHERE是否已售出=’否’(2)SELECT姓名,手机号码FROM手机,机主WHERE姓名like‘刘%’and手机.机主编号=机主.机主编号(3)SELECTsum(面额)FROM充值卡,充值,手机WHERE开户地点=’西安交通大学’and充值时间’2010-11-01’and充值时间’2010-11-30’and充值卡.卡号=充值.卡号and手机.手记号码=充值.手机号码(4)UPDATE充值卡SET面额=面额+100WHERE卡号=’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余额,每日消费限额FROM就餐卡WHERE卡号=’053021’(2)SELECTSUM(消费金额)FROM消费WHEREPOS编号=’029’AND消费日期=’2012-12-01’AND消费日期=’2012-12-31’(3)SELECTCOUNT(*)FROM学生,就餐卡,消费WHERE学生.卡号=就餐卡.卡号AND姓名=’张蓓’AND消费日期=’2010-10-01’ANDPOS编号=’029’(4)SELECT卡号FROM消费WHERE消费日期=’2008-10-01’AND消费日期=’2008-10-31’GROUPBY卡号HAVINGSUM(消费金额)=ALL(SELECTSUM(消费金额)FROM消费WHERE消费日期=’2008-10-01’AND消费日期=’2008-10-31’GROUPBY卡号)(5)INSERTINTO学生VALUES(‘08054001’,‘白杨’,‘女’,‘计算机81’,‘1990-11-08’,‘020567’)INSERTINTO就餐卡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)SELECTSUM(支付金额)FROM订单WHERE下单时间=’2010-01-22’(3)SELECT书名,定购册数FROM图书,订单,订单明细WHERE图书.图书编号=订单明细.图书编号AND订单.订单编号=订单明细.订单编号AND客户编号=’0323’(4)UPDATE图书SET库存册数=库存册数+100WHERE书名=’数据库系统教程’AND出版社=’科学出版社’9、设有关系模式R(A,B,C,D,E,G)函数依赖集F={BE,DG,AB,EA,DEC}及R的一个分解р={R1(D,G),R2(B,E),R3(C,D,E),

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功