homework_1_ch2_关系代数参考答案.pdfVIP

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关系模式如下:  职工 E (ename, eno, bdate, addr, salary, dno) 姓名 工号 出生日期 家庭地址 工资 所在部门编号  部门 D (dname, dno, mgreno) 部门名称 部门编号 部门负责人的工号  项目 P (pname, pno, city, dno) 项目名称 项目编号 所在城市 主管部门编号  工作 W (eno, pno, hours) 职工工号 项目编号 工作时间  职工家属Depend (eno, name, sex) 职工工号 家属的姓名 家属的性别 请用关系代数表达式来表示下述数据查询操作。 1) 检索所有部门负责人的工号和姓名; ((E×D)where E.eno=D.mgreno)[eno,ename] 2) 检索职工Smith所参与的项目的编号和名称; 答案1: ((E×W×P)where E.ename=’Smith’and E.eno=W.enoandW.pno=P.pno)[P.pno,P.pname] 答案2: ((Ewhereename=’Smith’)[eno]join Wjoin P)[pno,pname] 注意点:当使用join 运算时,职工关系E和项目关系P 中的同名属性dno有干扰,需要提前通过 projection运算过滤掉其中的至少一个。 3) 检索拥有两个或两个以上家属的职工的姓名; 令D1:=Depend, D2:=Depend (((D1×D2)where D1.eno=D2.enoand D1.nameD2.name)[D1.eno]join E)[ename] 4) 检索不带家属的职工的姓名; 答案1:((E[eno]-Depend[eno])join E)[ename] 答案2:(E-(Depend[eno]join E))[ename] 注意点:不能直接用两个名字集合去执行减法,如果用 “E[ename]-(Dependjoin E)[ename]”来表 示该查询则是错误的 5) 检索参加过 ‘p2’号项目的职工的工号; (Wwhere pno=’p2’)[eno] 6) 检索只参加过 ‘p2’号项目的职工的姓名; ((W[eno]-(Wwhere pno ’p2’)[eno])join E)[ename] 注意点:参见第4)小题。 7) 检索只参加过一个项目的职工的姓名; 令W1 :=W,W2 :=W T1 :=((W1×W2)whereW1.eno=W2.enoandW1.pnoW2.pno)[eno] ((W[eno]-T1)join E)[ename] 注意点:参见第4)小题。 8) 检索参加了所有项目的职工的工号; W[eno, pno] ÷ P[pno] 注意点:正确书写除法表达式。 9) 检索全体3号部门的职工都参加了的项目的编号和名称; ((W[eno,pno] ÷ (Ewheredno=3)[eno])join P)[pno,pname] 注意点:正确书写除法表达式。 10)检索工资收入最高的职工的姓名; 令E1:=E, E2:=E 答案1: R1:=((E1×E2)where E1.salaryE2.salary)[E1.eno] R2:=((E[eno]-R1)join E)[ename] 答案2: R(res_no,eno) :=((E1×E2)where E1.salary=E2.salary)[E1.eno,E2.eno] T1 :=R[res_no,eno]÷E[eno] T2 :=((T1×E)whereT1.res_no=E.eno)[ename] 11) 查询每一个部门中工资收入最高的职工,结果返回部门编号以及该部门中工资收入最高的职工的工号。 令E1:=E, E2:=E T1 :=((E1×E2)where E1.dno=E2.dnoand E1.salaryE2.salary)[E1.dno,E1.eno]

文档评论(0)

JuanHuang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档