1问答题3-关系代数一、第2章课后习题P74-5.设有一个SPJ数据库,包括S、P、J、SPJ四个关系模式:S(SNO,SNAME,STATUS,CITY)表示:供应商代码,供应商名,供应商状态,所在城市P(PNO,PNAME,COLOR,WEIGHT)表示:零件代码,零件名,颜色,重量J(JNO,JNAME,CITY)表示:工程项目代码,工程项目名,工程项目所在城市SPJ(SNO,PNO,JNO,QTY)表示:供应商代码,零件代码,工程项目代码,供应数量今有若干数据如下:S表:SPJ表:J表:P表:试用关系代数完成如下查询:(1)求供应工程J1零件的供应商号码SNO答:))(('1'SPJJJNOSNO10东方红S2北京STATUSSNAMESNO20精益S130S320丰泰盛S4CITY天津北京天津30为民S5上海JAMEJNOCITY三建J1北京一汽J2长春弹簧厂J3天津造船厂J4天津机车厂J5唐山无线电厂J6常州半岛体厂J7南京J1P1S1200JNOPNOSNOJ3P1S1J4P1S1QTY100700J2100J1P2S2400J2P3S2200P1S1J4P3S2500J5P3S2400J1P5S2400J2P5S2100J1P1S3200J1P3S3200J1P5S4100J3P6S4300J4P6S4200J4P2S5100J1P3S5200J2P6S5200J4P6S5500红螺母P112COLORPNAMEPNO绿螺栓P2蓝螺丝刀P3WEIGHT1714红螺丝刀私心P414蓝凸轮P540红齿轮P630盛锡2(2)求供应工程J1零件P1的供应商号码SNO答:))(('1''1'SPJPPNOJJNOSNO(3)求供应工程J1零件为红色的供应商号码SNO答:))((('1',SPJJJNOPNOSNOSNO)))((''PCOLORPNO红(4)求没有使用天津供应商生产的红色零件的工程号JNO答:''()((())JNOJNOSNOCITYJS天津)(,,SPJJNOPNOSNO)))((''PCOLORPNO红(5)求至少用了供应商S1所供应的全部零件的工程号JNO答:)(,SPJPNOJNO÷))(('1'SPJSSNOPNO二、补充题1.已知R1:ABR2:BC12214556788987810试求出R=R1R2。答:ABC12145678978102.设有关系R、S,如图所示,求:RSR.BS.BR:S:答:R.CR.BR.AcbaS.CS.BS.AgfdcbakhfdabgfddabkhfedcgfdedckhfgfdkhfCBAcbadabedcgfdBACdabgfdkhf33.设有关系R、S,如图所示,求:RSR:S:答:4.设有关系R、S,如图所示,请求出:R∪S、R-S、R∩S、)(,RCA、)(RBA、R×S。R:S:答:R∪S:R-S:R∩S:)(,RCA:)(RBA:R×S:CBAcbadabedcgfdCBAdabgfdkhfCBAcbadabedcgfdkhfCBAcbaedcCBAdabgfdCBAdabCAcadbecgddR.CR.BR.AcbacbacbadabS.CS.BS.AdabgfdkhfdababdabedcedcedcgfdkhfdabgfdkhfCBAcbadabedcgfdkhfDCAdcagfdkecgdbBAbaabdcDCdcgdked45.设有关系R、S,如图所示,求R÷S。R:S:答:(1)根据除法定义,此题的X有属性A、B,Y有属性C、D,则R÷S应当满足元组在X上的分量值x像集Yx包含在X上投影的集合。而结果集的属性为A、B。(2)在关系R中,属性组X(即A、B)可以取3个值{(a,b),(b,d),(c,k)},其中:(a,b)的像集为{(c,d),(e,f),(h,k)}(b,d)的像集为{(e,f),(d,l)}(c,k)的像集为{(c,d),(e,f)}(3)S在Y(即C、D)的投影为{(c,d),(e,f)}从以上分析可以看出,只有(a,b),(c,k)包含了S在Y(即C、D)的投影,所以,R÷S={(a,b),(c,k)}。结果如下图所示。6.设有学生课程数据库中包含3个关系:学生关系S、课程关系C、学生选课关系SC,如图所示。请用关系代数表达式检索选修课程名为“数学”的学生学号和姓名。S:C:SC:gfdgfdgfddabgfdkhfCBAcbaebahbaedbddbDdfkflckcdekcfDCdcfeBAbakcSexSnameSno女男男男男男王萍张勇刚黎明刘明远赵国庆樊建玺300130024003400410411042AgeSD181918192020计算机计算机机械机械通信通信PcnoCnameCno347612数据库数学操作系统数据结构数字通信信息系统程序设计1234567Credit4443342CnoSno12323123001300130013002300210421042Grade958584759392825答:SCnameSnameSno(('',数学SCC))因为SSCC为自然连接,所以去掉重复列后的结果如下图所示。满足条件的结果集:7.设有职工关系EMPLOYEE(工号,姓名,性别,技能),有关系代数运算表达式:4,2,1(EMPLOYEE)÷4(''2CHEN(EMPLOYEE)),请用汉语句子写出其表示的查询。答:检索具备职工“CHEN”所有技能的职工号、姓名和技能SC:8.如图所示关系S、SC和C,用关系代数表达式表示下列的查询。S:C:(1)检索“程军”老师所授课程的课程号(C#)和课程名(Cname)))(('',#CTeacherCnameC程军(2)检索年龄大于21的男学生学号(S#)和姓名(Sname)))((''21,#SSexAgeSnameS男(3)检索选修课程名为“C语言”的学生学号(S#)和姓名(Sname)SSnameS(,#SCS(#)))(''CCCname语言(4)检索选修课程包含“程军”老师所授课程之一的学生学号(S#)SCS(#)))((''#CTeacherC程军SexSnameSno女女女男男男男王平王平王平张勇张勇樊建玺樊建玺3001300130013002300210421042CnoAgeSD123231218181819192020计算机计算机计算机计算机计算机通信通信Grade93848483938482Cname数据库数学操作系统数学操作系统数据库数学Pcno3443Credit3444434Sno300130021042Sname王平张勇樊建玺AgeSnameS#23李强122刘丽222张友3GradeC#S#83K1185K1292K15Sex男女男TeacherCname李明C语言程军数据库原理程军编译原理C#K1K5K890K5284K5580K856(5)检索至少选修了“程军”老师所授全部课程的学生姓名(Sname)SSname()(#,#SCCS÷)))((''#CTeacherC程军(6)检索“李强”同学不选的课程号(C#))(()(''##SCSnameCC李强SC)(7)检索至少选修了两门课程的学生学号(S#)))((]5[]2[]4[]1[#SCSCS(8)检索全部学生都选修的课程号(C#)和课程名(Cname)CCnameC(,#)((#,#SCCS÷)))(#SS(9)检索至少选修了课程号为k1和k5的学生学号(S#))(#,#SCCS÷))(('5'#'1'##CkCkCC(10)检索选修了全部课程的学生姓名(Sname)SSname(()(#,#SCCS÷)))(#CC