天天看點

《視圖更新與關系資料庫理論》——第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為基礎,而其實更準确的說法應該為這些讨論本質上是建立在“宣言”的理念基礎上的。本章的其餘部分包含一個關于這些理念想法的調查(當然,調查并不包含與我們的文章主題關系不大的那些觀點)。換句話說,它主要是由一些你可能已經比較熟悉的内容組成的。即使如此,這一章仍然值得你至少“從頭到尾馬馬虎虎地”讀一遍,隻要能對後面章節所倚重的概念和名詞做些了解就可以。