2015-12-22 41 views
0

我需要帮助将sql查询转换为关系代数。将sql查询转换为关系代数

因此,例如,让我们说我有英语随机的SQL查询,由5个部分组成:

    1. 选择奥尔巴尼
  • 所有学校
  • 到那里总学校gpa(学生gpa/count学生)
    1. 平均校GPA < 3.5
  • 限制顶部10所学校
  • 由总校GPS
  • 秩他们

所以我创建了关系代数。

σ rownum() > 0 & rownum() ≤ 10 
    (π student gpa’s/count student -> total school gpa 
     (σ school = ‘albany’ & total school gpa < 3.5 (school Table))) 

我的问题:能有人仔细检查我的解决方案,让我知道,如果这是错误的。

回答

0

TL; DR您似乎正在从SQL进行翻译,但您并没有将自己限制为给予您的任何RA(关系代数)的特征。 如果不知道你的RA和你的基础关系的列和含义,我们就不能回答你的问题。


如果你要觉得在SQL方面,你需要找出如何每个RA运营商将在SQL来表达。 RA中没有NULL。关系中没有行号。您的RA可能有也可能没有订购属性和/或重复的属性名称和/或属性,其中点缀了别名。你需要清楚一个“关系”是什么和你的RA中“运营商”是什么

RA中通常没有功能,但比较(尽管如果你还没有获得学校平均分)没有count()或rownum(),通常在投影中没有重命名,一些RA的选择/限制操作符不允许使用布尔连接,没有排序,你依赖的是,但没有要求你不清楚你的基础关系名称或属性或含义

检出执行RA的(n SQLish版本)的RelaX