其关系代数表达式为:πCname(σSdept=’IS’(σStudent.Sno=SC.Sno(σCourse.Cno=SC.Cno(Student) X SC) X Course))优化后的关系代数表达式如下:πCname(σCourse.Cno=SC.Cno ((σStudent.Sno=SC.Sno(πSno(σSdept=’IS’(Student) X πSno,Cno(SC)))X πCno,Cname(Course)用关系代数表达式表示的语法树如下左图所示,优化处理后的标准语法树如右图所示。
(建议在一个数据库上实际运行以下查询,使用本书的Web网站db-book.com上提供的样本数据。网站还提供了 如何建立一个数据库和加载样本数据的说明。) 1. 使用大学模式(参见教材第6版第2章),用SQL写出如下查询。 a. 找出Comp.Sci. 系开设的具有3个学分的课程名称。 b. 找出名叫Einstein 的教师所教的所有学生的ID,保证结果中没有重复。 c. 找出教师的最高工资。 d. 找出工资最高的所有教师(可能有不止一位教师具有相同的工资)。 e. 找出2009年秋季开设的每个课程段的选课人数。 f. 从2009年秋季开设的所有课程段中,找出最多的选课人数。 g. 找出在2009年秋季拥有最多选课人数的课程段。 2. 使用大学模式,用SQL写出如下查询。 a. 找出所有至少选修了一门Comp.Sei.课程的学生姓名,保证结果中没有重复的姓名。 b. 找出所有没有选修在2009年春季之前开设的任何课程的学生的ID和姓名。 c. 找出每个系教师的最高工资值。可以假设每个系至