元组关系演算:获取一个查询的结果并将其添加到另一个查询

时间:2013-10-28 20:33:34

标签: tuples min tuple-relational-calculus

我希望看到如何将一个查询的结果组合成另一个以TRC格式表示的查询。我将发布下面的问题和数据库的结构。

问题

Retrieve the names of employees who make at least $10,000 more than the employee who is paid the least in the Company.

数据库设置

EMPLOYEE: fname , minit , lname, ssn , bdate , address , sex , salary , superssn , dno
DEPARTMENT: dname dnumber , mgrssn , mgrstartdate
DEPT_LOCATIONS: dnumber , dlocation
PROJECT: pname , pnumber , plocation , dnum
WORKS_ON: essn , pno , hours
DEPENDENT: essn , dependent_name , sex , bdate , relationship

到目前为止,我已经找到了如何从链接How would I find the highest/largest of something with relation algebra, domain relational calculus and tuple relational calculushttp://www.cs.princeton.edu/courses/archive/spr00/cs425/soln_from_text_midterm.pdf找到薪水最低的员工(第32页,问题6,7和8)都使用这个逻辑进一步回答)。

我的问题是,我很难获得最低员工的结果,然后再加10000。我相信其余的查询应该很简单。我有以下几个来生成最低工资的员工,但显然这不会使员工返回到此之上。

{e1.salary | EMPLOYEE(e1) and NOT (∃e2) (EMPLOYEE(e2) and (e2.salary<e1.salary) ) }

任何帮助将不胜感激。

非常感谢!

2 个答案:

答案 0 :(得分:0)

我认为你可以直接在e2.salary + 10000&lt; e1.salary

答案 1 :(得分:0)

经过进一步审核,我认为以下内容将解决第二个问题...

{emp.fname, emp.minit, emp.lname | EMPLOYEE(emp) and (∃x) ( EMPLOYEE(x) and NOT (x.salary>emp.salary)) and x.dno=emp.dno)}

虽然我可能需要触摸它,但我认为它有基本的想法。从OOP的角度出发,将价值传递给链条肯定会有所消除。再次感谢!