基于COMPANY数据库模式的关系代数查询作业答疑咨询
关系代数查询解答验证
(a) 检索在2号部门、每周在'ProductX'项目上工作时长不足5小时的员工地址
你的解答存在属性名匹配错误,关系代数需严格对应数据库模式中的属性名:
- EMPLOYEE表的部门号属性是
Dno而非department - WORKS_ON表的工时属性是
Hours而非hours_worked - PROJECT表的项目名属性是
Pname而非project
修正后的关系代数表达式:
π Address ( σ Dno=2 ∧ Hours<5 ∧ Pname='ProductX' ( EMPLOYEE ⋈ WORKS_ON ⋈ PROJECT ) )
(b) 检索参与所有项目的员工姓名与薪资
你的解答误用了SQL语法(SELECT/GROUP BY),关系代数中需通过除法操作实现“参与所有项目”的逻辑,具体步骤对应的表达式如下:
π Name,Salary ( ( π Essn,Pno (WORKS_ON) ÷ π Pnumber (PROJECT) ) ⋈ EMPLOYEE )
逻辑说明:
- 先提取所有员工参与的项目对:
π Essn,Pno (WORKS_ON) - 提取所有项目的编号集合:
π Pnumber (PROJECT) - 通过除法得到参与了所有项目的员工ID
- 关联EMPLOYEE表,投影出目标的姓名与薪资字段
内容的提问来源于stack exchange,提问作者Reema
相关产品推荐
相关产品推荐

