查询的关系代数过滤结果
Relational Algebra Filtering Results of a query
寻求一些帮助解决使用关系代数的练习,table 模式如下:
学生(社会号、姓名、专业、出生日期)
COURSE(课程#,Cname,部门)
注册(Ssn、课程#、季度、年级)
BOOK_ADOPTION(课程#,学季,Book_isbn)
TEXT(Book_isbn, Book_title, 出版商, 作者)
我想解决的问题是:
检索采用其出版的教材的部门名称
仅限 Addison-Wesley。
我不知道如何过滤结果,这样如果我有一门课程已经切换到不再由 Addison-Wesley 出版的书籍。
非常感谢大家的帮助!
看查询,不清楚是指曾经采用过的所有书籍还是本季度采用的书籍。
考虑到第一种可能,即所有被采用的书籍,这里是一个可能的解决方案的草图:
找到关系 R(Dept, Book_isbn) 列出所有部门在任何课程、任何季度采用的书籍。
找出 Addison-Wesley 出版的所有书籍的关系 S(Book_isbn)。
然后,使用单个代数运算符(哪个?),您可以获得结果。
在第二种情况下,在第 1 步将列表限制为当前季度课程中采用的所有书籍。
感谢Renzo的帮助,我找到了答案!
- 查找 'Addison-Wesley'
未出版的所有书籍
- 将步骤 1 中的结果关系与 Book_Adoption 和课程以及部门项目相结合 - 这将提供所有使用过非 'Addison-Wesley'[=21= 出版的书籍的部门]
- 参加课程 table 并在部门上进行项目以获得所有可能的部门
- 减去第 3 步中的关系 - 第 2 步中的关系
πCourse.Dept(课程)-(πCourse.Dept(((σText.Publisher≠'Addison-Wesley'(文本))⨝Book_Adoption)⨝课程))
我用关系代数计算器测试了这个答案并给出了想要的结果!
寻求一些帮助解决使用关系代数的练习,table 模式如下:
学生(社会号、姓名、专业、出生日期)
COURSE(课程#,Cname,部门)
注册(Ssn、课程#、季度、年级)
BOOK_ADOPTION(课程#,学季,Book_isbn)
TEXT(Book_isbn, Book_title, 出版商, 作者)
我想解决的问题是:
检索采用其出版的教材的部门名称 仅限 Addison-Wesley。
我不知道如何过滤结果,这样如果我有一门课程已经切换到不再由 Addison-Wesley 出版的书籍。
非常感谢大家的帮助!
看查询,不清楚是指曾经采用过的所有书籍还是本季度采用的书籍。
考虑到第一种可能,即所有被采用的书籍,这里是一个可能的解决方案的草图:
找到关系 R(Dept, Book_isbn) 列出所有部门在任何课程、任何季度采用的书籍。
找出 Addison-Wesley 出版的所有书籍的关系 S(Book_isbn)。
然后,使用单个代数运算符(哪个?),您可以获得结果。
在第二种情况下,在第 1 步将列表限制为当前季度课程中采用的所有书籍。
感谢Renzo的帮助,我找到了答案!
- 查找 'Addison-Wesley' 未出版的所有书籍
- 将步骤 1 中的结果关系与 Book_Adoption 和课程以及部门项目相结合 - 这将提供所有使用过非 'Addison-Wesley'[=21= 出版的书籍的部门]
- 参加课程 table 并在部门上进行项目以获得所有可能的部门
- 减去第 3 步中的关系 - 第 2 步中的关系
πCourse.Dept(课程)-(πCourse.Dept(((σText.Publisher≠'Addison-Wesley'(文本))⨝Book_Adoption)⨝课程))
我用关系代数计算器测试了这个答案并给出了想要的结果!