知识卡片
视图谓词是派生谓词
内容
[[互换性原理及其重要推论]]直接推出:视图和基关系变量一样也有关系变量谓词, 参数与视图自身的属性一一对应。区别在于,视图的谓词是派生谓词——它由定义视图 时所用的关系变量的谓词、加上视图定义表达式中关系运算的语义共同派生出来,这 正是[[关系表达式的谓词含义可由关系变量谓词推导]]那条一般性规则应用在视图 这个特例上的具体体现。以视图LS(London供应商,定义为对S的限制)为例,它的 谓词就是S的谓词与限制条件”城市为London”的逻辑AND:完整版是”供应商SNO签订 了合同,名称为SNAME,状态为STATUS,位于城市CITY,且城市为London”,通俗地 可以简化说成”供应商SNO签订了合同,名称为SNAME,状态为STATUS,位于城市 London”,但这个通俗说法有一处容易被忽视的地方——CITY其实仍然是这个谓词的 一个参数,只是它对应的实参永远被固定成常量’London’,并没有像[[关系表达式的 谓词含义可由关系变量谓词推导]]里的投影场景那样,把CITY变成被”存在某个城市” 量化掉的约束变元;正因如此,从关系设计角度看,视图LS更实际的版本应该再对 CITY做一次投影去掉这个恒定不变的属性,只是为了保持示例简单,书中没有这样做。
参考来源
- 位置:《SQL与关系数据库理论——如何编写健壮的SQL代码》第9章"SQL与视图"
9.2节"视图和谓词"(源文件:OEBPS/text00101.html)
- 结论依据:原文明确"互换性原理暗示着视图与基关系变量一样也有关系变量谓词
……用于视图V的谓词是派生谓词:它从定义视图V时所用关系变量的谓词派生而来,
并依据视图定义表达式中的关系运算语义得到……然而要注意,口语化的通俗说法
掩盖了CITY是参数的事实。实际上,CITY确实就是参数,只不过其对应实参总是
常量'London'"。
- 原始内容:用于视图V的谓词是派生谓词:它从定义视图V时所用关系变量的谓词
派生而来,并依据视图定义表达式中的关系运算语义得到……CITY确实就是参数,
只不过其对应实参总是常量"London"。