天天看点

《你不可不知的关系数据库理论》导读

你不可不知的关系数据库理论

关系数据模型是百年来最伟大的技术发明之一,它是我们完成数据库领域任何事情的基础。的确,它使数据库管理成为一门科学,而不再像过去那样是一些技巧、技术和经验法则的特定集合。因此,每一个与数据库管理有关的专业人员,或多或少都会主动去获得一些与关系模型有关的知识,以加深对关系模型的理解。因为如果没有它,想开展高效的工作、获得较高的工作性能几乎是不可能的。

不幸的是,想要达到如上所说的“获得知识,加深理解”是不容易的。这有多方面的原因,但影响最大的原因是sql语言,它是一种“关系型”语言的官方标准1,当今市场上的每个数据库产品都支持其中的某些方面。大家普遍承认,至少是应该普遍承认,作为关系模型的抽象概念的某种具体实现,sql 有着非常严重的缺陷(这是我在前面那句话中给“关系型”加上引号的原因)。至于在数据库世界,每个人之所以都知道一些关于sql的知识,是几乎所有的关系型(或可能的关系型)教学的重点都倾向于sql本身,而不是基本的理论。因此,仅仅因为他们知道 sql,人们就认为他们知道关系理论,也就不足为奇了。然而,令人难过的是,如果你只是像这样知道 sql,那么你肯定不知道关系理论,而你不知道的事情最终可能会伤害你。

本书的首要目的就是详细地教你关系理论(至少是尽我所能地详细),第二个目的是从关系理论的角度描述sql(或者描述sql的核心特征),这也可能会给我带来一些其他灵感。一些读者可能知道,不久前我出版了另一本书来论述这件事情,书名为sql and relational theory: how to write accurate sql code(第2版,2012年o’reilly出版)。然而,与现在的这本书不同,早期的图书主要是面向数据库从业人员,通常情况下适用于至少有三四年的“工作在数据库系统第一线”的人员,或者经常把它作为日常工作一部分的人员(因此,肯定会有一些关于sql的工作经验)。那本书的主要目的是展示如何把关系理论应用到使用sql的过程中,因此,sql的行为看起来就像是一个真正的关系语言一样(在那本书中我引用的一个规则是,从关系型的角度使用sql)。在本书和那本书之间不可避免地会有一些重复。实际上,本书中有一些文字就是从早期写作的图书中复制和粘贴的,有些几乎是完全一样。不管怎样,你现在看到的一定是一本不同的图书,因为它是面向不同的读者(参看下面的详细解释)。然而,本书接下来的内容还需要频繁引用早期的图书,所有的引用都以简写的形式给出(即sql and relational theory)。而且,我认为如果你熟悉我的早期作品,那么你从本书中可能不会获得太多的知识。当然,我不是不鼓励你阅读此书,只是如果你读了,你可能不会发现太多的新知识。

<a href="https://yq.aliyun.com/articles/97841">1.1 什么是数据库</a>

<a href="https://yq.aliyun.com/articles/97846">1.2 什么是数据库管理系统</a>

<a href="https://yq.aliyun.com/articles/97853">1.3 什么是关系型dbms</a>

<a href="https://yq.aliyun.com/articles/97856">1.4 数据库系统与程序系</a>

<a href="https://yq.aliyun.com/articles/97876">1.5 练习</a>

<a href="https://yq.aliyun.com/articles/97883">14.1 概述</a>

<a href="https://yq.aliyun.com/articles/97928">14.2 sql与关系模型的不同点</a>

<a href="https://yq.aliyun.com/articles/97942/">14.3 练习</a>

<a href="https://yq.aliyun.com/articles/97946">14.4 答案</a>