博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《视图更新与关系数据库理论》——1.4 视图:约束和补偿性操作
阅读量:7057 次
发布时间:2019-06-28

本文共 853 字,大约阅读时间需要 2 分钟。

本节书摘来自异步社区出版社《视图更新与关系数据库理论》一书中的第1章,第1.4节,作者:【美】C.J. Date(达特),更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.4 视图:约束和补偿性操作

现在我要开始讨论本章的核心概念。如果前面两段中所涉及的表中有一部分或者全部都是视图的话,那么我们讨论的所有结论依旧成立,没有改变。例如,像之前一样,假设S是表,LS和NLS是视图。

CREATE TABLE S        ( .............. , UNIQUE ( SNO ) ) ;CREATE VIEW   LS   AS ( SELECT ... WHERE CITY = ‘London’ ) ;CREATE VIEW   NLS AS ( SELECT ... WHERE CITY <> ‘London’ ) ;

现在假设用户只能看到视图LS和NLS,但是希望像基表一样操作它们。在这个用户看来,这些表的语义如下。

LS:供应商SNO是已经签约的,名称为SNAME,有状态值STATUS,位于城市CITY中(London)。

NLS:供应商SNO是已经签约的,名称为SNAME,有状态值STATUS,位于城市CITY中(非London)。

此用户将会了解有下面的约束存在(注意这些约束没有提到表S,因为用户并不知道表S的存在)。

{SNO}是LS和NLS的键。

LS中的每一行CITY值均为London,NLS没有这样的行。
供应商编号不会同时出现在LS和NLS中。
但是,该用户并不会意识到有补偿性操作的存在,因为他并不知道LS和NLS实际上是表S的视图。如前所述,该用户甚至根本不知道表S的存在,因此他也并不知道实现这些操作的约束到底是什么,以及视图LS和NLS合起来就等于表S这个事实。该用户执行的针对视图LS和NLS的更新也都会生效,在他看来就像LS和NLS都是基表一样。同样,这个用户在视图LS和NLS执行的更新在S中也会产生对应的关联效果,只是他看不到而已。

转载地址:http://fpwll.baihongyu.com/

你可能感兴趣的文章
关于移动互联网产品的指标分析初探
查看>>
4.2019Android多线程总结
查看>>
Python函数式编程map()、reduce()
查看>>
(5keras自带的模型之间的关系)自己动手,编写神经网络程序,解决Mnist问题,并网络化部署...
查看>>
机器学习笔记——特征标准化
查看>>
ACM-ICPC 常用算法刷题网站整理(转)
查看>>
MySQL5.7并行复制乱序提交引起的同步异常
查看>>
这个AI杀手真的很冷!人脸识别+空间定位即可秒杀所有人
查看>>
soffice help (LibreOffice)
查看>>
留住人才,你需要强大的人才预测分析
查看>>
MYSQL笔记
查看>>
Python中对list进行排序
查看>>
CentOS忘记root密码
查看>>
压测工具ab(Apache)详解
查看>>
Cassandra用户管理
查看>>
CentOS 7.0 配置varnish缓存
查看>>
Java Service Wrapper简介与使用
查看>>
在Android中进行单元测试遇到的问题
查看>>
2.7. SNMP
查看>>
Android全局代理软件ProxyDroid和TransProxy源码分享
查看>>