《交互式程序设计 第2版》一1.1 关系模型被严重地误解了

简介: 本节书摘来华章计算机《SQL与关系数据库理论——如何编写健壮的SQL代码》一书中的第1章 ,第1.1节 C. J. Date 著 单世民 何英昊 许侃 译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。</span>

本节书摘来华章计算机《SQL与关系数据库理论——如何编写健壮的SQL代码》一书中的第1章 ,第1.1节 C. J. Date 著 单世民 何英昊 许侃 译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.1 关系模型被严重地误解了

任何学科的专业人士都需要知道自己所在专业的基础。所以,如果你是数据库领域的专家,就需要知道关系模型,因为它是数据库领域的基础(至少是基础的主体)。当今,不论是商业化的应用培训还是学术化的理论课程,任何课程都至少提到关系模型的内容,但是大多数教学从结果上看都很糟。可以确定的是,数据库领域中的大多数人并没有很好地理解关系模型。造成这种情形的可能原因包括:

  • 脱离实践的关系模型教学。就是说,至少对于初学者,理解关系模型知识的关联性或关系模型所要解决的问题是很难的。
  • 授课的教师本身并没有充分理解或意识到关系模型知识内容的重要性。
  • 在实践中更可能存在的问题:就根本没教关系模型,授课中取而代之的是SQL语言,或者SQL语言的一些方言(比如Oracle的SQL方言)。

所以这本书的目标读者就是那些数据库实践人员,他们接触过关系模型,但仍然缺乏本应具有的全部知识(尤其是SQL实践人员)。这本书绝不是针对初学者而写的;不过,它也不是一个进修课程。具体而言,我可以确定你确实知道一些关于SQL的知识,但是请容我在此冒昧地说一句,如果你关于关系模型的知识仅仅来源于你所掌握的SQL知识,那么恐怕你并很好地理解关系模型,而且你所知道的还有可能是错的。我认为:SQL和关系模型不是一回事。这一点怎么强调都不过分不夸张地说,下面是一些SQL并不十分明确的关系化问题(下面的列表并不是全部的列表):

  • 数据库、关系及元组的确切含义;
  • 关系值和关系变量的区别;
    U谓词和命题的关联性;
  • 属性名称的重要性;
  • 完整性约束的关键角色;
  • 信息原理及其重要性。

所有这些问题以及其他很多问题,都在这本书中进行了阐述。
我再说一遍:如果你对于关系模型的知识仅仅来源于你对于SQL的知识,那么你所知道的有可能是错的。所以,你在阅读本书过程中可能会得到一个结论:你不得不进行一些反学习(unlearning,即把以前学习到的错误知识忘掉并重新学习正确的知识,避免以前的错误知识产生不利影响——译者注)。不幸的是,反学习是非常困难的。

相关文章
|
2月前
|
数据处理 Python
Python语言的数据模型
Python语言的数据模型
|
测试技术 uml
【UML 建模】UML建模语言入门-视图,事物,关系,通用机制(三)
【UML 建模】UML建模语言入门-视图,事物,关系,通用机制(三)
267 0
【UML 建模】UML建模语言入门-视图,事物,关系,通用机制(三)
|
运维 测试技术 uml
【UML 建模】UML建模语言入门-视图,事物,关系,通用机制(一)
【UML 建模】UML建模语言入门-视图,事物,关系,通用机制(一)
339 0
【UML 建模】UML建模语言入门-视图,事物,关系,通用机制(一)
|
存储 缓存 关系型数据库
MySQL数据库设计范式与反范式
每个列的值域都由原子值组成;每个字段的值都只能是单一值。1971年埃德加·科德提出了第一范式。即表中所有字段都是不可再分的。
2321 0
MySQL数据库设计范式与反范式