第2章 技术背景
视图更新与关系数据库理论
适合我的一切也应该能适合你。
——Walt Whitman《Leaves of Grass》(1885)
上一章的讨论是基于SQL的,因为大家对它都很熟悉。但实际上很可惜,SQL并不适合作为这种探究的基础,也无法满足目前手上课题对细节技术讨论的要求。一方面来讲,我们需要检验的概念很多时候完全无法用SQL语句表达;从另一方面来看,即使是可以表达的时候,SQL通常也会引入一大堆与之毫无关系而又没有必要的复杂内容,很容易使人一叶障目,不见森林。由于以上原因,在本文余下部分中,我将不会使用SQL作为论述基础(不过有些地方我还是要针对SQL做出一些说明),而是使用一种假想的语言,名字叫Tutorial D[1]。我相信现在这个语言已经广为人知了。不过,如果你需要一个比较综合的解释说明的话,可以在我和Hugh Darwen合著的《Databases, Types, and the Relational Model: The Third Manifesto》(第3版,Addison-Wesley出版,2006)[2]这本书中找到。
正如上面这本书的标题所写,后文中我会用“关于宣言的那本书”作为简称来引用,它还为大家介绍和解释了“第三宣言”,这是一个很精准的对于关系模型和支持类型理论(也包含了一个关于类型继承的复杂模型)的正式定义。在那本书中,我们使用“D”作为所有能够符合“宣言”原则要求语言的通用名。许多优秀的语言都够得上“D”的资格,很可惜,SQL是个例外。反观Tutorial D就是一个合格的“D”。实际上,Tutorial D原本就是被设计为一个说明和讲解“宣言”理念的合适载体,它也同样适合在本书中作为我研究的基础语言。因此,虽然我的说法是本书中的讨论要以Tutorial D为基础,而其实更准确的说法应该为这些讨论本质上是建立在“宣言”的理念基础上的。本章的其余部分包含一个关于这些理念想法的调查(当然,调查并不包含与我们的文章主题关系不大的那些观点)。换句话说,它主要是由一些你可能已经比较熟悉的内容组成的。即使如此,这一章仍然值得你至少“从头到尾马马虎虎地”读一遍,只要能对后面章节所倚重的概念和名词做些了解就可以。