元组关系演算中的员工部门查询和最低和最高工资?
Queries in tuple relational calculus re employee department and minimum & maximum salary?
我必须使用元组关系演算来解决查询,我只想知道我是否做对了。我正在使用这个数据库:
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
问题 1:检索比公司中薪酬最低的员工多赚至少 10,000 美元的员工的姓名。
{e.Lname, e.Fname | EMPLOYEE(e) AND (∃b) (EMPLOYEE (b) AND e.Salary >=
10000 + b.Salary AND NOT (∃a) (EMPLOYEE(a) AND b.Salary > a.Salary))}
Q2:查询在所有员工中工资最高的部门工作的所有员工的姓名。
{e.Lname, e.Fname | EMPLOYEE(e) AND (∃b) (EMPLOYEE (b) AND e.dno =
b.dno AND NOT(∃a)(EMPLOYEE(a) AND a.Salary > b.Salary))}
任何帮助将不胜感激。
编辑:假设只有一名员工可以获得 highest/lowest 薪水。
猜测基本关系的含义,自然语言与微积分一致。 Nb 从技术上讲,如果您不给出基表的含义 (predicates),就找不到答案。至于你是否通过正确的推理得到了正确的答案,你必须给出你的答案。 PS 如果可以有多个雇员的薪水最高或最低,问题 是有缺陷的。
我必须使用元组关系演算来解决查询,我只想知道我是否做对了。我正在使用这个数据库:
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
问题 1:检索比公司中薪酬最低的员工多赚至少 10,000 美元的员工的姓名。
{e.Lname, e.Fname | EMPLOYEE(e) AND (∃b) (EMPLOYEE (b) AND e.Salary >=
10000 + b.Salary AND NOT (∃a) (EMPLOYEE(a) AND b.Salary > a.Salary))}
Q2:查询在所有员工中工资最高的部门工作的所有员工的姓名。
{e.Lname, e.Fname | EMPLOYEE(e) AND (∃b) (EMPLOYEE (b) AND e.dno =
b.dno AND NOT(∃a)(EMPLOYEE(a) AND a.Salary > b.Salary))}
任何帮助将不胜感激。
编辑:假设只有一名员工可以获得 highest/lowest 薪水。
猜测基本关系的含义,自然语言与微积分一致。 Nb 从技术上讲,如果您不给出基表的含义 (predicates),就找不到答案。至于你是否通过正确的推理得到了正确的答案,你必须给出你的答案。 PS 如果可以有多个雇员的薪水最高或最低,问题 是有缺陷的。