将单词中的查询转换为关系代数

cp1*_*304 9 relational-theory relational-algebra

对于我之前在 SO 上提出的问题,我有一个后续问题

我想将以下内容转换为关系代数,而不是我最初的问题中的查询

列出并非总是受双重投标影响的投标人的姓名和电话号码。

注意:当两个不同的投标人对同一件商品出价相同时,就会出现双重投标。

我有一些关于如何进行的想法:

  • 找出所有有双重出价的投标人 (1)
  • 找出所有出价不是双重出价的投标人 (2)
  • 查找所有从未进行双重投标的投标人 (3)

从这里,我可以得到(1)和(2)的交集并将(3)加到这个交集上得到最终答案。(这是我的思考过程,如有不对请指正)

我可以找到所有双重出价的投标人,但随之而来的想法让我很困惑。这就是我对“所有双重出价的投标人”的看法:

  • 投标?项目 - (Q1)

  • 问题1?? 出价?出价',iid?iid',价格?价格'(Q1)-(Q2)

  • ? 出价(?出价!=出价'(Q2)??价格=价格'(Q2)??iid = iid'(Q2))-(Q3)

我如何使用它来找到不总是受双重投标影响的投标人?

顺便说一句,粗体文本仅用于标记目的,而不是答案的一部分。

小智 -1

这里的关键点是关系代数消除了结果中的重复项。因此,如果您使用项目操作员仅获取 iid 和价格,它将为您提供不包括重复投标的投标列表。如果您从整个投标集中减去此列表,您将得到重复的投标。