《视图更新与关系数据库理论》——1.2 仅限基表:约束

简介:

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

1.2 仅限基表:约束

另一个由可交换性原则引出的问题是表S、表LS和表NLS的行为不应该由基表和视图的分布来决定。为了解释这个问题,我们先假设它们全都是基表。

CREATE TABLE S     ( ... , UNIQUE ( SNO ) ) ;
CREATE TABLE LS     ( ... , UNIQUE ( SNO ) ) ;
CREATE TABLE NLS    ( ... , UNIQUE ( SNO ) ) ;

这样一来,所有的表就都受到约束的限制了。不过从实际情况来看,想在SQL中构造这些约束条件会非常复杂,因此为了便于表达和理解,我将用普通话来描述一下这些约束条件(大部分是大白话)。

{SNO}是每个表的键,同时,{SNO}对于LS和NLS来说是外键,引自于表S。注意:关于使用“{”和“}”的原因,请参阅《SQL and Relational Theory》[3]。
在任何时候,表LS都等同于表S中CITY值为London的限定,表NLS都等同于表S中CITY值不为London的限定。同时,表LS中每一行的CITY值都为London[4],表NLS中的每一行都不为London。
在任何时候,表S都等于表LS和NLS合并后的结果。同时要注意,这个合并是不相交的(对应的交集为空),没有数据会同时出现在表LS和表NLS中。具体来说就是:表S中的每一行都会根据限定条件准确地出现在表LS或表NLS中,而表LS或表NLS中的每一行也必定会出现在表S中。
最后,刚刚所说的由CITY值引发的约束以及{SNO}是所有三张表的键这个约束结合在一起,就会形成以下结果,即表S中每个具体的供应商编码(不仅是整行的信息)都会根据限定条件准确地出现在表LS和表NLS当中。而表LS或表NLS中的每一个具体的供应商编码也必定会出现在表S中。
当然,正如前面所说的几点所示,这些约束并不是完全独立毫不相干的,其中一些约束是另一些约束逻辑上导致的结果。

相关实践学习
MySQL数据库快速部署实践
本场景主要介绍如何在一台配置了CentOS 7.7版本的ECS实例(云服务器)上安装mysql,执行mysql的常用操作,学习基本的SQL语句。
相关文章
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之视图
【数据库SQL server】关系数据库标准语言SQL之视图
454 0
|
SQL 关系型数据库 MySQL
【MySQL 数据库】2、MySQL 的数据控制语言、函数和约束
【MySQL 数据库】2、MySQL 的数据控制语言、函数和约束
187 0
|
8月前
|
存储 安全 关系型数据库
MySQL数据库约束条件概述及其重要性讨论。
正确地实现并管理好各类紧缩条件将直接影响到企业信息管理水平与服务质量,在当今大数据背景下更显得格外重要;任何设计师都需要深刻理解其原理与运作机晰承担起责任使得所托管资料安全稳固同时又具备良好伸缩灵活度迎合日益复杂商务需求变动.
232 11
|
SQL 关系型数据库 MySQL
轻松入门MySQL:深入学习数据库表管理,创建、修改、约束、建议与性能优化(3)
轻松入门MySQL:深入学习数据库表管理,创建、修改、约束、建议与性能优化(3)
304 0
|
存储 关系型数据库 MySQL
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
982 0
|
存储 关系型数据库 MySQL
MySQL数据库基础:约束
约束是对数据库表中字段施加的规则,确保数据的正确性、有效性和完整性。主要分为非空约束、唯一约束、默认约束、主键约束和外键约束。非空约束禁止字段值为null;唯一约束确保字段值唯一,允许null值重复;默认约束设定默认值;主键约束结合非空与唯一约束,并可设为自增型;外键约束则通过关联其他表的主键,保证数据一致性。检查约束确保字段值满足特定条件。
352 2
|
存储 数据管理 数据库
约束:数据库完整性的守护者
【8月更文挑战第31天】
583 0
|
SQL 关系型数据库 MySQL
MySQL数据库——基础篇总结(概述、SQL、函数、约束、多表查询、事务)一
MySQL数据库——基础篇总结(概述、SQL、函数、约束、多表查询、事务)一
171 5
|
数据采集 关系型数据库 MySQL
MySQL数据库基础第三篇(约束)
MySQL数据库基础第三篇(约束)
|
数据库 数据库管理 索引
Liquibase中的约束与索引,让你的数据库管理如丝般顺滑
【Liquibase教程】数据库变更管理利器!学会添加主键、外键、检查约束和索引,提升开发效率。开源工具Liquibase帮你轻松控制数据库版本,确保数据完整性和一致性。示例代码教你如何在Liquibase中创建表并定义各种约束,让数据库管理更加高效。下次见!
Liquibase中的约束与索引,让你的数据库管理如丝般顺滑

热门文章

最新文章