试图理解元组关系演算中的“仅”和“所有”约束

时间:2017-10-24 04:10:38

标签: relational-database tuple-relational-calculus

假设我们有三个模式:

Instructor( id:integer , name:string, age:integer, salary:real)
Works( eid:integer, did:integer , pct-time:integer)
Dept( did:integer , budget:real, managerid:integer)

让我通过展示两个类似的问题来开始:

a)找到管理所有预算超过100万美元的部门的教师经理人。

soln1

b)查找仅管理预算超过100万美元的部门的教师经理ID。

soln2

我的问题是我无法弄清楚为什么u=[managerid] = s[managerid]u[budget] > 1000000约束被切换了。有人可以用语言解释为什么订单会影响结果吗?

1 个答案:

答案 0 :(得分:0)

(a)的微积分要求教师行,如果某个部门很大,那么他们就会管理它。

(b)的微积分要求教师行,如果他们管理一个部门那么它就很大。

我选择的措辞是通过使用英语单词来解释逻辑运算符。碰巧的是,如果你使英语更精确(占“所有”和“某些”/“存在”并命名“他们”和“它”),结构仍然是平行的。

关于“为什么”我们可以将你的英语短语描述为不同于一个单词的变化和移动,并且与我的英语具有相同的含义,那就是“因为”英语就是这样。这些查询实际上是定义短语“ subject s 动词所有对象 s”和“”的含义主题动词 名词 s“。

  

为什么要切换约束   为什么订单影响结果

数学中的“为什么”问题没有意义。我们假设陈述,那么一大堆事情都是真实的。假。没有“为什么”。我们可以合理地将“为什么......”解释为“什么是......的证明”?但你不是故意的。英语声明有所不同,为什么查询不同?查询不同,为什么结果不同?你是什​​么意思,“为什么”?究竟为什么是什么?为什么