从SQL转换为关系代数

时间:2012-10-09 09:57:37

标签: sql relational-algebra

嘿,我被问到这个问题:

将以下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

我试图环顾四周,但我似乎无法找到关于如何做到这一点的具体答案。

1 个答案:

答案 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。