前言
视图更新与关系数据库理论
本书是这个系列的第3本书,它的两位“前辈”是:
《SQL and Relational Theory: How to Write Accurate SQL Code》(第2版)
《Database Design and Relational Theory: Normal Forms and All That Jazz》
以上两本书于2012年由O’Reilly出版发行。第1本书的目标读者是所有种类数据库的从业人员,书中解释了关系理论的基本原理,以及以此为基础如何将SQL当作一个关系型数据库使用(在那本书中我使用的一条准则是“关系化地使用SQL”)。第2本书则针对性强一些,它瞄准的读者群是那些对数据库设计感兴趣的行业专家,书中解释了关系型数据库设计的一些理论,并展示了为什么这些理论如此重要。而第3本书,也就是本书,则针对性更强。本书专注于对一个非常关键的问题的研究,而这个问题则涉及关系型数据库应该如何运行(与目前大部分商业SQL数据库系统的运行表现恰恰相反)这一核心内容。这个问题就是“更新理论”。这个理论正如本书的题目显示的那样,适用于视图的更新——不论是在一般情况下,还是特定情况下。同时,本理论也适用于“基础数据”的更新。
注意:尽管我的理论包含上面的最后一句话,但我还是决定在本书的题目中更加强调对视图的更新,因为据我观察,一般数据库从业者相信他们自己能够理解对于基础数据为对象的更新是如何运作的,而一旦对象变成视图,他们的典型反应就是极度怀疑无论使用什么办法,对视图的更新能否真的实现。其实我一直很奇怪,关于视图更新的讨论居然曾经是并且依旧是一个有争议性的话题,当然这也是最初让我决定撰写这本书的一个重要原因。
目录
第1章 抛砖引玉
1.1 可交换性原则
1.2 仅限基表:约束
1.3 仅限基表:补偿性操作
1.4 视图:约束和补偿性操作
1.5 规则至上
1.6 小结
第2章 技术背景
2.1 关系和关系变量
2.2 关系赋值
2.3 一致性约束
2.4 关系变量谓词
2.5 MATCHING,NOT MATCHING以及EXTEND
2.6 数据库与数据库变量