嘿,我被问到这个问题:
将以下SQL转换为关系代数
SELECT DISTINCT Student.Name, Course.Name
FROM Student,
Attendee,
Course
WHERE
Student.Name = Attendee.Name
AND Attendee.CourseId = Course.CourseId
AND StudyCourse = ‘CS’
AND Course.CourseId > 42
AND Year = 2011
我试图环顾四周,但我似乎无法找到关于如何做到这一点的具体答案。
答案 0 :(得分:2)
符号含义:
σ:选择
Π:投影
⋈:加入
Χ:笛卡尔十字架
答案:
Π Student.Name,Course.Name (σ (Attendee.Name = Student.Name)&& (StudyCourse ='CS')&&(Course.CourseId> 42)&&(Year = 2011)(学生Χ参加者Χ课程))
。
SQL和Relation Algebra(RA)之间的一个区别是SQL返回Table,其中允许重复并需要显式删除而RA返回set。