基本信息
- 原书名:Database In Depth——Relational Theory for Practitioners
- 原出版社: O'Reilly
- 作者: (美)C.J.Date
- 译者: 熊建国
- 丛书名: 博文视点O'REILLY丛书系列
- 出版社:电子工业出版社
- ISBN:9787121040009
- 上架时间:2007-5-29
- 出版日期:2007 年5月
- 开本:16开
- 页码:212
- 版次:1-1
- 所属分类:计算机 > 数据库 > 数据库理论 > 关系数据库
编辑推荐
领悟关系数据模型之精髓 洞察关系数据库开发之先机
数据库关系理论之父E.F.Codd 亲密合作伙伴,关系模型理论重要贡献者,畅销三十余载《数据库系统导论》作者C.J.Data 先生最新经典力作
内容简介
作译者
ABOUT THE AUTHOR
C. J. Date 是自由作家、讲师、研究员以及关系型数据库系统的专业顾问。E.F. Codd 构思前瞻性的关系模型基础时,他是最早慧眼识明珠的人物之一。他也曾在加州圣荷西的圣德兰实验室,参与 IBM SQL/DS 及 DB2 的技术规划。如今以数据库经典巨作《数据库系统导论 》享负盛名,全球畅销逾七十五万册;另外也和 Hugh Darwen 及 Nikos A. Lorentzos 等人合著《时间数据与关系模型》一书。他最擅长以驭繁于简的过人技巧来解释深奥技术,无人能出其右。
目录
TABLE OF CONTENTS
前言 I
序 III
第1章 绪论 1
术语说明 2
原理,而非产品 3
回顾原模型 4
模型和实现 11
关系的属性 14
关系和关系变量 17
值和变量 19
小结 20
练习 21
第2章 关系和类型 23
域限制比较 24
数值原子性 29
那么,什么是类型 32
标量和非标量类型 35
小结 36
译者序
关系数据库理论诞生至今,已经有30多年的历史,依托这一理论建立起来的商用关系数据库产品也得到了长足的发展,成为软件行业中一块巨大的市场。在中国,与数据库相关的IT从业人员多达几十万人,他们从事着数据库系统的管理和维护,数据库应用软件的开发等工作。然而,正如本书作者C.J.Date所言,不幸的是,大部分数据库技术人员对关系数据库的理解仅仅停留在表面,甚至还存在着许多错误的认识,尽管他们每天都要面对关系数据库的工作。
造成这一局面的原因有以下三点:第一,在中国,软件开发从业者的门槛比较低,很大一部分数据库管理和数据库应用软件开发的技术人员并非计算机专业毕业,并没有系统地学习过数据库系统原理等相关的课程;第二,许多即便是经过专业数据库系统原理训练的学生,也会因为教学或其他原因,对数据库系统原理和关系理论缺乏深刻的理解。第三,中国技术人员对相关产品使用技术或技巧的喜爱,一向都是远远超过对理论知识的喜爱。
所幸的是,大部分数据库技术人员,在这个行业工作若干年以后,都会感到理论知识的欠缺,正或多或少地影响着自己的工作,于是会重新拾起当年被自己轻视或忽略的、讲述数据库系统原理或关系理论的书籍。因为,在计算机技术方面,我一向认为,你的理论知识有多深厚,你的技术就可以做得有多深入。如果你正处在这样一个阶段,那么本书就是一个非常好的选择。
本书的作者C.J.Date先生是关系数据库技术领域中非常著名的独立撰稿人、学者和顾问,他正是《数据库系统导论》(第8版的影印版国内已经有售)的作者,该书近30年以来一直是数据库界的权威著作。除了这本书之外,C.J.Date先生还单独创作或与别人合作了很多其他的书籍。代表著作有:《对象关系数据库基础:第三次宣言》(1998),该书对数据库的未来发展方向做出了详细的预见;还有从不同层次对关系数据库技术的各个
方面加以论述的一系列的关系数据库专著;除此之外,他还写了一系列有关特定数据库系统和语言的著作如《DB2使用指南》(1993,第4版)等。在《深度探索关系数据库》一书当中,作者告诉我们,什么才是真正的关系模型?今天的关系数据库厂商提供的产品,在实现关系模型时,哪些方面还存在不足?我们应该如何看待“重复元组”和“空值”,该如何看待SQL和关系模型,等等。他给我们理清了许多对关系数据库概念上的认识错误。
尽管有过多年的数据库应用软件开发和数据库相关课程的教学经验,但在翻译本书的过程当中,本书作者C.J.Date凭借对关系模型的深刻洞察、对深奥理论的浅显解释,针对目前许多关于关系理论的不同观点所做的评论(有一些甚至是尖锐的评论),这一切,使我对关系数据库理论有了新的认识,如同是一次新的学习和洗礼。
在本书的翻译过程中,我要感谢许多支持和帮助我的人。首先要提到的是我的同事陈菲老师,她在离散数学方面有着丰富的教学经验,是她完成了本书第5章“关系代数”的初译工作。还要感谢的是电子工业出版社博文视点的周筠老师,她的严谨和细致是博文图书品质的有力保障,按照她的说法就是,“这是大师的作品,我们必须更加认真对待”。其次要感谢的是本书的技术审校赵凯,他修订了本书在翻译方面的一些纰漏,他是整本书的技术审校。另外,还要感谢本书的责任编辑晓菲,在整个翻译、审校和出版的过程当中,她做了很多艰苦而细致的工作。还有微软的刘铁锋,是他第一个阅读了我的翻译初稿,给出了很多翻译上的中肯建议,特别在很多技术名词的表达方面,使得它们更符合读者的习惯。
最后要感谢的是我的女友小舒,在整个书籍翻译、审校的近一年时间中,是她给予我无微不至的关怀和照顾,让我能够全身心地投入工作。
翻译是一种无止境的艺术,尽管我们很多人都做了非常细致和耐心的工作,但肯定还是会有一些错误在所难免,欢迎读者批评指正!
熊建国
2006年12月于北京
前言
Foreword
我清楚地记得第一次没有买Chris Date的书的情形。注意,我说的是“没有买”。那大概是1991年底或1992年初的样子。当时我在萨吉诺市密歇根州商业街的一家小店里寻找一本SQL方面的书。我找到了一本,作者是C.J.Date,而这个人我根本就没有听说过。
那本书看起来还不错,内容非常有条理,我当时有点想买,但是……价格太贵!我当时站在那儿,手里拿着这本书,虽然该书只有大概1/4英寸厚并且不到200页,价格却要30美元之多,这个价格,对当时的我来说有点贵。我在内心斗争了一会儿,然后,不情愿地把书放回原处走开了。
那真是一个天大的错误!差点就影响到了我的职业生涯,而我当时竟然还意识不到这点。
后来我补偿了自己,劝服老板为我买那本书,尽管他们花了一个月的时间来考虑是否订购此书。书到手后,我读了好几次。对我来说,这本书最好和最有启发意义的一部分就是附录,其中,Chris批评了当下流行的SQL语言。
我从Chris那里学到了不少东西,从那以后,我倾心于数据库工作,痴迷于像SQL这样的描述性语言。我只须描述我想要的结果,然后数据库引擎就会为我找出那些结果。同时,我也更加了解Chris,知道他在 Codd 早期研究关系型理论时所扮演的重要角色。
几年来我一直在订阅《数据库编程和设计》杂志,唯一的理由是Chris在里面有一个专栏。
我从Chris那里获得的有关SQL的知识(始于那本没有买的薄而贵的小书)在这些年有了一系列的连锁反应。那时所积累的数据库入门知识,在今天成为了我事业上的一个转折点,而Chris的清晰和严谨,对我在总体上把握SQL语言和数据库技术方面,产生了深远的影响。自此之后,SQL成为我最喜欢编写、学习,甚至近期最喜欢撰写的语言。
我不敢想象如果当时手头没有Chris的书,我今天的职业生涯将会怎么样。不要犯我当年犯的错误。不要把此书再次放回到书架上。阅读它!向那些可以帮助你去发现和提炼你工作所需的关系型模型的人学习。你也许不会赞同Chris所说的一切(你也不需要这样做),但是一定要理解他所说的。花时间去理解他对今天关系型模型的看法;花时间去理解他认真提出的关于开发商在产品里如何实现模型的问题。做了这些事之后,你将会发现你比那些没有花时间打基础的同行们高出一头。
如果我可以给你什么建议,那就是保持学习的热情。我非常荣幸能编辑这本由Chris所撰写的书,这是我从来没有想到的荣誉。我从与Chris的交谈以及他的手稿中获益匪浅。我是如何幸运地接到这个工作的呢?这是我和Oracle-L(译者注:Oracle 最有名的专家邮件列表)邮件列表中的几个非常聪明的同事,在激烈讨论有关SQL子查询(subquery)优化的意外收获。甚至更为间接的,是因为很多年前我第一次阅读Chris作品的机缘,促成了我为这本书工作。对知识的好奇心和热爱使我在事业上有了长足的进步,远超出我的想像,这些对你也同样适用。
——Jonathan Gennick
2005年于密歇根,穆尼星(Munising)
序言
Preface
在数据库领域的不同职位上工作了若干年之后,我突然意识到,确实有必要写本书。用一种没有被现有产品、商业手段或是SQL标准中各种古怪做法所影响的方式,为从业者(而不是新手)解释关系理论的基本原理。我写这本书正是为了满足这种需求。我预期的读者应该是富有经验的数据库开发者,或是那些能诚实地承认自己没有深入理解所擅长领域的基础理论的数据库专家, 而这些都是应该和能够理解的。我说的理论实际上就是关系数据模型,事实上,这一理论的基本概念都是非常简单的,但同时也被广泛地误解或是没有得到正确的评价,或是兼而有之。事实上,它们看上去并没有被完全理解。比如,下面是一些关系方面的问题,看看你可以回答多少?
1. 1NF到底是什么?
2. 关系和谓词之间的联系是什么?
3. 什么是语义优化(semantic optimization)?
4. 什么是连接依赖(join dependency)?
5. 半差运算为何重要?
6. 为什么延迟完整性检查是没有意义的?
7. 什么是关系变量?
8. 什么是无损分解?
9. 一个关系可以有值为关系的属性吗?
10. SQL与关系模型之间的区别是什么?
11.为什么信息法则(Information Principle)是重要的?
12. XML如何满足关系模型?
这本书给出了这些以及许多与之相关问题的答案。总体上,此书可以帮助数据库从业者深入理解关系理论,同时可以帮助他们在日常的工作中很好地运用这些理论。
本书的特点
What Makes This Book Different?
我必须在此首先说明,这本书谈及的新技术非常少,其中的大部分,我在以前的书上或其他的出版物上都说过。最近我发现仍然有再说一遍的必要。但是这次我打算换一种不同的说法:次序不同、节奏不同、风格和处理也不尽相同,同时针对的读者群也不同(待会儿再说这最后一点)。因此,即使部分材料以前在其他多个地方以某种形式出现过,我也认为这完全是一本新书。当然,本书的某些部分不可避免地和我在其他地方写的一些材料有些相似,因为这些材料都是来自于同样的地方,即:我的大脑以及多年以来我在研讨会上讲授这些素材的教学经验。但是这并不是一种直接的复制粘贴;直接地拿来并不是我的本意。不过,我有意识地重新使用了许多老的例子,因为这些经过多年锤炼的例子正好能够阐明我希望表达的观点。
我再说说关于本书目标读者的差异。正如已经指出的那样,先前我已经在数据库技术领域出版了几本书。因此,这一本书有何不同之处?尤其是,它和另外一些现有的书籍相比,有竞争吗?
【插图】
