【发布时间】:2017-07-28 17:34:03
【问题描述】:
考虑以下关系数据库方案:
COURSES (Cno,name)
PRE-REQ(Cno, pre-Cno)
COMPLETED (student_no, Cno)
COURSES 给出所有可用课程的编号和名称。
PRE-REQ 提供有关哪些课程是给定课程的先决条件的信息。
COMPLETED 表示学生已经完成了哪些课程
使用关系代数表达以下内容:
列出 student_no = 2310 的学生已完成所有先决条件的所有课程。
该问题可以通过 SQL 查询来解决,但无法导出等价的关系代数。
【问题讨论】:
-
我投票决定将此问题作为题外话结束,因为它与软件开发无关,而且是家庭作业问题,没有付出任何努力来解决它。
-
我尝试过使用除法运算符(%),但它不正确。
-
所以你可以给出你用过的SQL;以及您尝试过的除法;并解释为什么它不正确。这将显示您付出了多少努力。也许@EpicPandaForce 更愿意将关系代数问题转到 cs.stackexchange?
-
@AntC 好吧,它 is 比 SO 更适合那里。请记住,最初的问题仅包含要解决的任务,有点像直接从测试作业中得出。
-
SELECT cno FROM Completed, Pre-Req WHERE student_no = '2310' GROUP BY CNO HAVING pre-Cno IN (SELECT C.cno FROM Completed AS C WHERE C.student_no = '2310'; )
标签: database relational-algebra