1

我必须使用元组关系演算来解决查询,我只想知道我是否正确地完成了它们。我正在使用这个数据库:

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))}

任何帮助都感激不尽。

编辑:假设只有一名员工可以拥有最高/最低薪水。

4

1 回答 1

1

猜测基本关系的含义,自然语言与微积分一致。从技术上讲,如果您不给出基表的含义(谓词),则无法找到答案。至于你是否通过正确的推理得到了正确的答案,你必须给出你的答案。PS如果可以有多个员工的薪水最高或最低,那么这些问题就有缺陷。

于 2017-06-08T05:01:27.773 回答