形式化关系查询语言习题解答.pdf_第1页
形式化关系查询语言习题解答.pdf_第2页
形式化关系查询语言习题解答.pdf_第3页
形式化关系查询语言习题解答.pdf_第4页
形式化关系查询语言习题解答.pdf_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章第六章 形式化关系查询语言形式化关系查询语言 数据库系统概念 习题分析与解答 数据库系统概念数据库系统概念 2 第六章第六章 形式化关系查询语言形式化关系查询语言 6.2 考虑图考虑图6 6- -2222所示关系数据库,主码加了下划线。给所示关系数据库,主码加了下划线。给 出关系代数表达式来表示下列的每一个查询:出关系代数表达式来表示下列的每一个查询: a. a. 找出与其经理居住在同一城市同一街道的所有员工的姓名。找出与其经理居住在同一城市同一街道的所有员工的姓名。 b. b. 找出此数据库中不在找出此数据库中不在First Bank CorporationFirst Bank Corporation工作的所有员工的姓名。工作的所有员工的姓名。 c. c. 找出比找出比Small Bank CorporationSmall Bank Corporation的所有员工收入都高的所有员工的姓名的所有员工收入都高的所有员工的姓名。 employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name) 数据库系统概念数据库系统概念 3 第六章第六章 形式化关系查询语言形式化关系查询语言 6.2.a. Find the names of all employees who live in the same city and on the same street as do their managers. 找出找出与其经理居住在同一城市同一街道的所有员工的姓名。与其经理居住在同一城市同一街道的所有员工的姓名。 参考解答:参考解答: a. person-name (employee manages) (manager-name=employee2.person-nameemployee.street=employee2.streetemployee.city=employee2.city)(employee2(employee) employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name) 注:注:为自然连接符号为自然连接符号 数据库系统概念数据库系统概念 4 第六章第六章 形式化关系查询语言形式化关系查询语言 6.2.b. Find the names of all employees in this database who do not work for “First Bank Corporation”. 找出找出此数据库中不在此数据库中不在First Bank Corporation工作的所有工作的所有 员工的姓名。员工的姓名。 参考解答:参考解答: b.1)如果每个员工都有一个确定的公司:如果每个员工都有一个确定的公司: person-name(company-name“First Bank Corporation”(works) 2)如果存在有些员工不属于任何公司或者属于多个公司的情况:如果存在有些员工不属于任何公司或者属于多个公司的情况: person-name(employee) person-name(company-name=“First Bank Corporation”(works) employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name) 数据库系统概念数据库系统概念 5 第六章第六章 形式化关系查询语言形式化关系查询语言 6.2.c. Find the names of all employees who earn more than every employee of “Small Bank Corporation ”. 找出找出比比Small Bank Corporation的所有员工收入都高的所有员工收入都高 的所有员工的姓名。的所有员工的姓名。 参考解答:参考解答: c. person-name (works)(works.person-name (works (pany-name=“Small Bank Corporation”) works2(works) employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name) 返回返回 数据库系统概念数据库系统概念 6 第六章第六章 形式化关系查询语言形式化关系查询语言 6.8 考虑图考虑图6 6- -2222关系数据库,对于下列每个要求,给出一关系数据库,对于下列每个要求,给出一 个关系代数表达式:个关系代数表达式: a. a. 修改数据库,使修改数据库,使JonesJones现在居住在现在居住在NewtownNewtown。 b. b. 为数据库中所有经理都提高工资为数据库中所有经理都提高工资10%10%。 employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name) 数据库系统概念数据库系统概念 7 第六章第六章 形式化关系查询语言形式化关系查询语言 6.8.a. 修改数据库,使修改数据库,使JonesJones现在居住在现在居住在NewtownNewtown 参考解答:参考解答: a.employeeemplyee-name,street,city“Newtown”( employee=“Jones”(employee) (employee employee=“Jones”(employee) employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name) 数据库系统概念数据库系统概念 8 第六章第六章 形式化关系查询语言形式化关系查询语言 6.8.b. 修改数据库,为数据库中所有经理都提高工资修改数据库,为数据库中所有经理都提高工资10%10% 参考解答:参考解答: b. t1 works.person-name,company-name,salary ( works.person-name=manager-name(works manages) 找出所有经理找出所有经理 t2 person-name,company-name,1.1*salary(t1) 提高工资提高工资 works (works t1) t2 employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name) 返回返回 数据库系统概念数据库系统概念 9 第六章第六章 形式化关系查询语言形式化关系查询语言 6.15 考虑图考虑图6 6- -2222所示关系数据库,主码加了下划线。所示关系数据库,主码加了下划线。 给出关系代数表达式来表示下列的每一个查询:给出关系代数表达式来表示下列的每一个查询: a. a. 找出找出First Bank CorporationFirst Bank Corporation的所有员工的姓名。的所有员工的姓名。 b. b. 找出找出First Bank CorporationFirst Bank Corporation所有员工的姓名和居住的城市。所有员工的姓名和居住的城市。 c. c. 找出找出First Bank CorporationFirst Bank Corporation所有年收入在所有年收入在10 00010 000美元以上的员工的姓美元以上的员工的姓 名和居住的街道、城市。名和居住的街道、城市。 d. d. 找出所有居住地与工作的公司在同一城市的员工的姓名。找出所有居住地与工作的公司在同一城市的员工的姓名。 e. e. 假设公司可以位于几个城市中。找出位于假设公司可以位于几个城市中。找出位于Small Bank CorporationSmall Bank Corporation所在所在 的各个城市的所有公司的各个城市的所有公司。 employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name) 数据库系统概念数据库系统概念 10 第六章第六章 形式化关系查询语言形式化关系查询语言 6.15.a. 找出找出First Bank Corporation所有员工的姓名所有员工的姓名 参考解答:参考解答: a. person-name(company-name=“First Bank Corporation”(works) employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name) 数据库系统概念数据库系统概念 11 第六章第六章 形式化关系查询语言形式化关系查询语言 6.15.b. 找出找出First Bank Corporation的所有员工的姓名和居住的的所有员工的姓名和居住的 城市城市 参考解答:参考解答: b. person-name,city (employee (company-name=“First Bank Corporation”(works) employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name) 数据库系统概念数据库系统概念 12 第六章第六章 形式化关系查询语言形式化关系查询语言 6.15.c. 找出找出First Bank Corporation所有年收入在所有年收入在10 00010 000美元美元 以上的员工的姓名和居住的街道、城市。以上的员工的姓名和居住的街道、城市。 参考解答:参考解答: c. person-name,street,city (company-name=“First Bank Corporation”salary10000(works emplyee) employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name) 数据库系统概念数据库系统概念 13 第六章第六章 形式化关系查询语言形式化关系查询语言 6.15.d. 找出所有居住地与工作的公司所在城市相同的员工的姓找出所有居住地与工作的公司所在城市相同的员工的姓 名名 参考解答:参考解答: d. person-name(employee works company) employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name) 数据库系统概念数据库系统概念 14 第六章第六章 形式化关系查询语言形式化关系查询语言 6.15.e. 假设公司可以位于几个城市中假设公司可以位于几个城市中, ,找出位于找出位于Small Bank Corporation所在所在的各个城市的所有公司。的各个城市的所有公司。 参考解答:参考解答: e. company-name (company city(company-name=“Small Bank Corporation”(company) employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name) 返回返回 数据库系统概念数据库系统概念 15 第六章第六章 形式化关系查询语言形式化关系查询语言 6.11 考虑图考虑图6 6- -2222所示关系数据库,对于下列每个要求,给所示关系数据库,对于下列每个要求,给 出一个关系代数表达式:出一个关系代数表达式: a. a. 为为First Bank CorporationFirst Bank Corporation的所有员工都提高工资的所有员工都提高工资10%10%。 b. b. 为数据库中所有工资不高于为数据库中所有工资不高于100 000100 000美元的经理提高工资美元的经理提高工资10%10%,而高于,而高于100000 100000 美元的经理提高工资美元的经理提高工资3%3%。 c. c. 删除删除works works 关系中关系中Small Bank CorporationSmall Bank Corporation的员工的所有元组。的员工的所有元组。 employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name) 数据库系统概念数据库系统概念 16 第六章第六章 形式化关系查询语言形式化关系查询语言 6.11.a. 为为First Bank Corporation的所有员工都提高工资的所有员工都提高工资10%10% 参考解答:参考解答: a. workssalarysalary*1.1 ( company-name=“First Bank Corporation”(works) (works company-name=”First Bank Corporation”(works) employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name) 注:注:为自然连接符号为自然连接符号 数据库系统概念数据库系统概念 17 第六章第六章 形式化关系查询语言形式化关系查询语言 6.11.b. 为数据库中所有工资不高于为数据库中所有工资不高于100 000100 000美元的经理提高工美元的经理提高工 资资10%10%,而高于,而高于100 000100 000美元的经理提高工资美元的经理提高工资3%3%。 参考解答:参考解答: t1 works.person-name,company-name,salary( works.person-name=manager-name(works manages) 找出所有经理找出所有经理 t2person-name,company-name, salary*1.03 ( salary100000 (t1) person-name,company-name, salary*1.1 ( salary100000 (t1) 调整工资,注意顺序调整工资,注意顺序 works (works t1) t2 employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name) 数据库系统概念数据库系统概念 18 第六章第六章 形式化关系查询语言形式化关系查询语言 6.11.c. 删除删除works 关系中关系中Small Bank Corporation的员工的所的员工的所 有元组有元组 参考解答:参考解答: c. works works company-name=“Small Bank Corporation”(works) employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name) 返回返回 数据库系统概念数据库系统概念 19 第六章第六章 形式化关系查询语言形式化关系查询语言 6.13 考虑图考虑图6 6- -2222所示关系数据库,分别给出下列查询的所示关系数据库,分别给出下列查询的 关系代数表达式:关系代数表达式: a. a. 找出员工最多的公司。找出员工最多的公司。 b. b. 找出工资最少的员工所在公司。找出工资最少的员工所在公司。 c. c. 找出人均工资比找出人均工资比First Bank CorporationFirst Bank Corporation人均工资高的公司。人均工资高的公司。 employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name) 数据库系统概念数据库系统概念 20 第六章第六章 形式化关系查询语言形式化关系查询语言 6.13.a. 找出员工最多的公司找出员工最多的公司 参考解答:参考解答: t1 company-name G count-distinct (employee-name) (works) 按公司名计算每个公司员工数按公司名计算每个公司员工数 t2 G max(num-employee) (company-strength(company-name,num-employee)( t1) 重命名并找出最大值重命名并找出最大值 company-name (t3 (company-name,num-employee)( t1) t4 (num-employee)( t2) 投影投影 注:注:为自然连接符号为自然连接符号 employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name) 数据库系统概念数据库系统概念 21 第六章第六章 形式化关系查询语言形式化关系查询语言 6.13.b. 找出工资最少的员工所在公司。找出工资最少的员工所在公司。 参考解答:参考解答: t1 G min (salary) (works) 找出工资最小的员工找出工资最小的员工 company-name (works t1) 找出工资最小的员工的所在公司找出工资最小的员工的所在公司 注:注:为自然连接符号为自然连接符号 employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name) 数据库系统概念数据库系统概念 22 第六章第六章 形式化关系查询语言形式化关系查询语言 6.13.c. 找找出人均工资比找找出人均工资比First Bank Corporation人均工资人均工资 高的公司高的公司 参考解答:参考解答: t1 company-name G avg (salary) (works) 按公司名计算平均工资按公司名计算平均工资 t2 company-name=“First Bank Corporation” (t1) 得到得到FBCFBC的平均工资的平均工资 pany-name (t3(company-name,avg-salary)(t1) t3.avg-salaryfb.avg-salary (fb(company-name,avg-salary)(t2) 注:注:为自然连接符号为自然连接符号 employee(person_name,street,city) works(person_name,company_name,salary) company(company_name,city) manages(person_name,manager_name) 返回返回 数据库系统概念数据库系统概念 23 第六章第六章 形式化关系查询语言形式化关系查询语言 6.14 考虑以下的关系模式:考虑以下的关系模式: a.a.找出借了任何由找出借了任何由McGrawMcGraw- -HillHill出版的书的员工的姓名。出版的书的员工的姓名。 b.b.找出借了由找出借了由McGrawMcGraw- -HillHill出版的所有的书的员工的姓名。出版的所有的书的员工的姓名。 c.c.找出借了至少找出借了至少5 5本不同的由本不同的由McGrawMcGraw- -HillHill出版的书的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论