关系代数的乘法

时间:2015-01-14 19:24:22

标签: sql translation multiplication algebra relational

请您帮我找到以下SQL查询到关系代数表达式的直接翻译?

select s.name, c.course_id, t.grade
from student s, course c, takes t
where s.ID = t.ID and c.course_id = t.course_id
and t.year = 2010

我有一个想法是:

π s.name, c.course_id, t.grade (σ s.id= t.id ^ c.course_id=t.course_id ^ t.year=2010 (course c x (takes t x student s)))

但是,我不确定关系代数中表的乘法?

编辑:我不确定书面关系代数中给定表的正确笛卡尔连接?

1 个答案:

答案 0 :(得分:1)

使用自然连接

(学生自然联接需要)将等于两个表的ID。

(学生自然加入需要)自然加入课程最终将把course_id等同,然后使用select运算符将年份选择为2010。现在使用投影选择名称course_id和成绩。

要记住的一件事是,自然连接会自动将通用属性(在本例中为id和course_id)等同起来,并且与叉积不同,通用属性将仅被选择一次