知识卡片

视图谓词是派生谓词

普通读书笔记卡

内容

[[互换性原理及其重要推论]]直接推出:视图和基关系变量一样也有关系变量谓词, 参数与视图自身的属性一一对应。区别在于,视图的谓词是派生谓词——它由定义视图 时所用的关系变量的谓词、加上视图定义表达式中关系运算的语义共同派生出来,这 正是[[关系表达式的谓词含义可由关系变量谓词推导]]那条一般性规则应用在视图 这个特例上的具体体现。以视图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"。