【问题标题】:Duplicate tuples in tuple relational calculus元组关系演算中的重复元组
【发布时间】:2017-07-05 07:23:30
【问题描述】:

假设我们有一个包含 2 个元组 (a,100) 和 (a,100) 的关系 Student(Name,Marks)。 现在,如果我有这样的表达:- { t.Name, t.Marks | Student(t) 和 t.Marks=100) 。那我会得到两个元组还是只得到一个元组?

我知道在关系代数中我们使用删除重复项的项目运算符。

我找不到说明在元组关系演算中我们不考虑重复项的参考资料。

【问题讨论】:

  • 无论您使用微积分什么参考(即?),找到“关系”的定义。因为 {...} 表达式表示一个。当您在这里找到他们对 {...} 的定义时,它将告诉您,当某些名称表示关系时,{...} 表示根据命名的关系的关系。 PS Projection 不会“删除重复项”。 (合理地它“删除属性”。)它返回基于其他关系的某些关系。 “删除重复项”是对投影返回的某些描述的一部分,该描述涉及操纵有时对应于关系的 非关系

标签: database tuple-relational-calculus


【解决方案1】:

关系被定义为集合,而不是表/包。这意味着关系没有多个相同的元组。

两次代表相同的数字/值/事实并不意味着我代表了两个不同的数字/值/事实。

【讨论】:

  • 假设两个元组是 (a,100) 和 (a,95)。现在这两个元组不相同。现在,如果我只需要分数大于 90 的学生的姓名,那么如果我使用元组关系演算,“a”会出现两次还是只出现一次?
  • 如果您的结果关系只包含学生姓名,那么您只会得到一次a
猜你喜欢
  • 2011-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-13
相关资源
最近更新 更多