本文共 551 字,大约阅读时间需要 1 分钟。
你不可不知的关系数据库理论
在理想与现实之间,往往会有阴影降临。——T.S.Eliot:The Hollow Men(1925)
从前面几章的介绍可以看出,SQL与关系模型不是一回事,或者更具体一点地说,SQL被看作是一种具体的关系型语言,但显然SQL在很多方面都无法把想法和潜在的抽象关系模型相对应。实际上,SQL要忍受两方面的过错,即省略的过错和代理的过错,一方面它不能正确支持(或者根本就不支持)关系模型的很多地方,另一方面它所支持的地方又不能与任何关系模型相对应。(当然,在整本书中我只把注意力局限在这里,即只关心SQL的核心特征。)省略的一些例子可以很好地支持等价、表类型、关系代数运算符。非关系型特征的例子有空值、重复行、从左到右排序的列等。
本书中我的主要目的是描述和解释关系模型,而不是SQL。但是我认为给出SQL的普遍存在的特征(更确切地说,不论好坏,有一点可以坚持,即数据库专业人员确实需要面对它,利用它处理实际问题)可以为专业人士提供多种方法解决问题,SQL的这些方法都违背了抽象模型的一些规定。实际上,我非常相信这样的专业人士对关系模型本身已经了如指掌,知晓模型和SQL之间的差异可以对他们有所帮助,因此本章内容就来讲解SQL与关系模型之间的差异。
转载地址:http://xbmia.baihongyu.com/