2014-10-11 63 views
0

在关系代数考试昨天我有一个问题,我不能回答,想知道它将如何解决。对问题的限制是我没有被允许使用我觉得困难的聚合函数。模式如下。如何解决以下关系代数查询

EMPLOYEE = {id, name, phone} with id PK 
COURSE = {course_no, title, subject} with course_no PK 
COMPLETED = {course_no, student_id, grade, semester} with {course_no,id,semester} PK 

问题去:列出对谁已完成同样的课程,并一直完成了同里,这些相同的课程,并从未接受过级“d”在任何这些课程的员工。列出每一对?

如果有任何可以提供一些线索,这将是巨大的。

回答

0

基本上,你首先建立一个连接表在一起,形成每名雇员的属性所需的列表查询。

然后复制这两个查询和加入course_no结果和 - 我猜 - 学期(记住在排除同一个员工ID出现在两侧行)。

最后您筛选这一结果的等级。

还有其他可能的变化,但这是一般的想法。