教学管理数据库包含了学院表College(CollegeID,CollegeName)和教师表Teacher(TeacherID,TeacherName,CollegeID)。学院表College中已有20个学院信息,教师表Teacher中已有4000名教师信息。假定需要查询输出“软件学院”的教师名单,其查询SQL语句如下: SELECT A.CollegeName, B.TeacherID, B.TeacherName FROM College AS A, Teacher AS B WHERE A.CollegeID=B.CollegeID AND A.CollegeName=’软件学院’ 在执行处理该查询语句时,可以采用如下3种等价的关系运算表达式来解析该查询语句。 Q1=ΠA.CollegeName,B.TeacherID,B.TeacherName(σA.CollegeID=B.CollegeID L A.CollegeName=’软件学院’(College×Teacher)) Q2=ΠA.CollegeName,B.TeacherID,B.TeacherName(σA.CollegeName=’软件学院’(College∞Teacher)) Q3=ΠA.CollegeName,B.TeacherID,B.TeacherName(Teacher∞(σA.CollegeName=’软件学院’(College))) 1)研究分析Q1、Q2、Q3三种查询方案的执行代价,请选出一个最优查询方案。 2)在以上最优查询方案基础上,对College表和Teacher表的主外键列创建了索引,并且CollegeName列也创建了索引,其查询代价又如何?
时间: 2023-06-01 17:02:56 浏览: 216
2.3-PostgreSQL数据库关系操作实践.ppt
1)Q1、Q2、Q3三种查询方案的执行代价分别为: Q1:关系代数运算符为自然连接,需要对College表和Teacher表进行连接操作,然后在连接结果上进行选择操作,因此执行代价较高。 Q2:关系代数运算符为半连接,需要对College表进行半连接操作,得到符合条件的College记录,然后对Teacher表进行连接操作,因此执行代价较低。 Q3:关系代数运算符为半连接,需要对College表进行半连接操作,得到符合条件的College记录,在对Teacher表进行半连接操作,因此执行代价较低。 综合考虑,最优查询方案为Q2或Q3。
2)在College表和Teacher表的主外键列创建了索引,并且CollegeName列也创建了索引后,查询代价会大大降低。 对于Q2或Q3查询方案,College表和Teacher表的主外键列已经创建了索引,因此连接操作的代价会降低。对于CollegeName列创建了索引,可以加快对College表的半连接操作,因此查询代价会进一步降低。因此,在索引的帮助下,查询代价会更低。
阅读全文