天天看点

《视图更新与关系数据库理论》——第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为基础,而其实更准确的说法应该为这些讨论本质上是建立在“宣言”的理念基础上的。本章的其余部分包含一个关于这些理念想法的调查(当然,调查并不包含与我们的文章主题关系不大的那些观点)。换句话说,它主要是由一些你可能已经比较熟悉的内容组成的。即使如此,这一章仍然值得你至少“从头到尾马马虎虎地”读一遍,只要能对后面章节所倚重的概念和名词做些了解就可以。