《视图更新与关系数据库理论》——1.4 视图:约束和补偿性操作

简介:

本节书摘来自异步社区出版社《视图更新与关系数据库理论》一书中的第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中也会产生对应的关联效果,只是他看不到而已。

相关实践学习
MySQL数据库快速部署实践
本场景主要介绍如何在一台配置了CentOS 7.7版本的ECS实例(云服务器)上安装mysql,执行mysql的常用操作,学习基本的SQL语句。
相关文章
|
5月前
|
存储 安全 关系型数据库
MySQL数据库约束条件概述及其重要性讨论。
正确地实现并管理好各类紧缩条件将直接影响到企业信息管理水平与服务质量,在当今大数据背景下更显得格外重要;任何设计师都需要深刻理解其原理与运作机晰承担起责任使得所托管资料安全稳固同时又具备良好伸缩灵活度迎合日益复杂商务需求变动.
199 11
|
5月前
|
存储 人工智能 数据库
视图是什么?为什么要用视图呢?数据库视图:定义、特点与应用
本文三桥君深入探讨数据库视图的概念与应用,从定义特点到实际价值全面解析。视图作为虚拟表具备动态更新、简化查询、数据安全等优势,能实现多角度数据展示并保持数据库重构的灵活性。产品专家三桥君还分析了视图与基表关系、创建维护要点及性能影响,强调视图是提升数据库管理效率的重要工具。三桥君通过系统讲解,帮助读者掌握这一常被忽视却功能强大的数据库特性。
1553 0
|
存储 关系型数据库 MySQL
MySQL数据库基础:约束
约束是对数据库表中字段施加的规则,确保数据的正确性、有效性和完整性。主要分为非空约束、唯一约束、默认约束、主键约束和外键约束。非空约束禁止字段值为null;唯一约束确保字段值唯一,允许null值重复;默认约束设定默认值;主键约束结合非空与唯一约束,并可设为自增型;外键约束则通过关联其他表的主键,保证数据一致性。检查约束确保字段值满足特定条件。
310 2
|
消息中间件 关系型数据库 数据库
实时计算 Flink版操作报错合集之在使用RDS数据库作为源端,遇到只能同步21个任务,是什么导致的
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
存储 缓存 关系型数据库
MySQL 视图:数据库中的灵活利器
视图是数据库中的虚拟表,由一个或多个表的数据经筛选、聚合等操作生成。它不实际存储数据,而是动态从基础表中获取。视图可简化数据访问、增强安全性、提供数据独立性、实现可重用性并提高性能,是管理数据库数据的有效工具。
302 0
|
存储 数据管理 数据库
约束:数据库完整性的守护者
【8月更文挑战第31天】
462 0
|
存储 SQL 关系型数据库
MySQL数据库进阶第四篇(视图/存储过程/触发器)
MySQL数据库进阶第四篇(视图/存储过程/触发器)
|
数据采集 关系型数据库 MySQL
MySQL数据库基础第三篇(约束)
MySQL数据库基础第三篇(约束)
|
SQL 关系型数据库 MySQL
MySQL数据库——基础篇总结(概述、SQL、函数、约束、多表查询、事务)一
MySQL数据库——基础篇总结(概述、SQL、函数、约束、多表查询、事务)一
151 5
|
缓存 分布式计算 关系型数据库
数据管理DMS操作报错合集之当进行RDS实例的可用区迁移时,提示“缓存清理”是什么意思
数据管理DMS(Data Management Service)是阿里云提供的数据库管理和运维服务,它支持多种数据库类型,包括RDS、PolarDB、MongoDB等。在使用DMS进行数据库操作时,可能会遇到各种报错情况。以下是一些常见的DMS操作报错及其可能的原因与解决措施的合集。
293 3