【问题标题】:Can we apply selection over projection in relational algebra我们可以在关系代数中应用选择而不是投影吗
【发布时间】:2017-11-11 05:45:15
【问题描述】:

这是工作表的架构 (人名、年龄、公司名称、等级)

现在我想要所有名为 megha 并且在 mtbank 公司工作的元组

我知道我可以这样做:

π personName, age (σ companyName="M&T Bank" and personName="megha"(works))

但是我们可以这样做吗:

π personname, age (σ personName="megha" (π personName, age (σ companyName="M&T Bank" (works)))

我们可以像这样在投影上应用选择吗?

【问题讨论】:

  • 嗨。做什么,怎么样?请自行解释。您还没有说该代码应该做什么。对于“选择而不是投影”,以一种或另一种方式给出论点和/或您将如何处理这一点和/或教科书中的相关内容。给出你应该使用的关系代数版本的参考或定义。请阅读minimal reproducible exampleHow to Ask 并采取行动并点击谷歌搜索“stackexchange 作业”。
  • 嗨。您可以通过@user notifications 联系提问者、回答者或评论者。 (例如,告诉我您已编辑。)请在完成编辑帖子之前查看格式化的输出。您可以通过单击“已编辑”链接查看编辑。 (我刚刚再次格式化了你的代码。)“I”总是大写的。 PS请阅读我的最后评论。展示一些研究/努力。为什么你认为他们给出相同的结果?为什么你认为它们不同?另外,您似乎问,这个特别的投影和选择/限制重新排序是否给出相同的答案。
  • 对此的合理回答必须谈论 π 和 σ 的作用。为了让您根据他们的行为方式接受答案所说的内容,您必须同意他们行为方式的一些定义。所以你需要给出一些你理解的定义。否则答案必须猜测并希望您理解并接受他们的定义。
  • 嗨。你的问题有所改善。但请注意,第二个查询中的外部π personname, age 没有效果。为什么会在那里?也许您以某种方式使用π 与每个σσ 连词;但您没有解释“像这样”是什么意思,那么我们该如何回答您的问题呢?我们可以讨论何时可以以相反的顺序进行投影和选择,但我们不知道这是否就是您想知道的全部内容。

标签: relational-algebra


【解决方案1】:

唯一不能嵌套表达式的情况是输入对于操作员来说是非法的。例如在算术中除以零。例如,具有不同标题的两个关系的关系联合、交叉或差异。例如,对缺少的属性进行投影或对提及缺少属性的条件进行限制/选择。

具体细节取决于您所谈论的关系代数(关系和运算符)的版本以及关系名称可以代表的值范围。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多