海量数据库解决方案

作者序言

这已经是第四次为本书写作者序言了,此时此刻过去20年的生活如同电影般在我的脑海里一一掠过。当我最初决定步入IT领域时就为自己立下了誓言,时至今日回想起多年走过的历程,其间充满了艰辛,也正是这无数的艰辛让我最终体验了收获的愉悦。

回望这20多年的足迹,我一直努力用新的视角去观察他人所忽视的领域,尝试用崭新的思维和充满创意的双手去耕耘。尽管如此,也仍然无法紧跟IT技术飞快的发展步伐。我为实现理想而终日不停前行的脚步,虽然忙碌但却无限满足。

众所周知,能够加工成宝石的原石比比皆是,一分耕耘,一分收获,每当我们初次接触某个新的东西时都会或多或少有些紧张。因此从这一层面来看,数据库散发着无穷的魅力,它如同渊博精深的智者般质朴,总是以真实、坦诚的心去面对每一位学习和研究它的人。

在过去并不短暂的岁月里我一直深信数据库的骨骼就是“数据”,并为这一理论的发展不断努力,吸收同仁们分享的经验而持续奋斗。为了打破始终在理论表面徘徊的固有模式而不断寻求新的尝试,并试图探求能够让IT工作者在实际工作中轻松应用并掌控的巧妙方法。

这种巧妙方法不能是只通过经验和试验才能获得的,它必须是利用日常常识就可以理解说明的方法。有这么一句话“会者不难,难者不会”,如果能够把一些复杂的理论与通俗浅显的常识相结合,那么不仅有利于人们的理解,更有利于人们在合适的情况下加以灵活运用。相反,有这么一句话“一知半解以为是”,意思是指那些只观其表不观其里就加以相信的人。

很多程序员只忠实地相信自己的经验,当问及为何如此时,大部分人的答案都是“因为我那样做过”或“那样比较好”。10种类型的原理可以组合出10的阶乘(3 628 800)种现象,那么100种类型的原理所能够表现出来的现象数可以认为是一个天文数字。

如若仅凭经验去思考问题,无论怎么努力,最终也只能获得其中一部分的原理而已。然而,事实上我们是完全有能力深刻地理解这100种原理的。但如果不试图进行深刻钻研而只停留在表面,最终只能是一无所获。宝石是不会被轻易发现的,只有凭借最大的努力去寻找方能找到。

在不知不觉中当我们遇到了从表面上看无法解决的复杂问题时,会出现两种人:其一,是坚持不懈、彻夜不休也要寻找到最佳解决办法的人,这种人通过不懈的努力最终能够获得什么呢?事实上随着岁月的流逝,他们终将成为众人皆知的专家;其二,是认为过于烦琐,直接予以放弃的人,这种人只会让自己的血汗变成廉价的废弃物。

可以自豪地说“我付出了常人所无法想象的艰辛”,为了寻求完美的真理舍弃了很多常人的生活。在没有钓到鱼时钓鱼人也许会为此而耿耿于怀,但在我看来问题的关键在于没有寻找到有效的钓鱼方法。如果钓鱼人能够充分理解我的想法,并甘愿为了改变自己的固有观念而付出较大努力,尽管他也可能会为此而花费大量的时间和心血,但坚信他一定能够获得别人所无法获得的成果。如果他研究出了别人所无法研究出的钓鱼方法,那么从此就再也不用为钓不到鱼而担心了。

各位读者在工作的同时究竟是否一直在使用一种平凡的方法呢?还是为了解决明天必须要完成的任务而临时抱佛脚呢?现在该到结束这种恶性循环的时候了。应用程序其实就是处理数据的手段而已,它需要紧跟流行的步伐,如不及时进行更新,在不经意之间就已经落伍了。

然而数据和数据库并非如此,不论岁月如何流失,我们积攒起来的“内功”是不会消失的。如果能对其原理有一个深刻的理解,那么不论何时何地都能够随心所欲地钓到很多鱼。随着数据库技术的发展进步,能够精确执行指令的DBMS与日俱增,随着对DBMS应用能力的不同所获得的性能差异使我们从技术中获得满足感。

不知不觉中《海量数据库解决方案》系列丛书深受广大读者的喜爱已经长达10年之久,在被誉为“圣经”的同时,它已经变成了数据库用户不可或缺的必读书籍。截至今日,本书依旧深受广大读者的喜爱。

IT领域技术10年的发展状况与其他领域100年的发展状况相当, 在数据库的发展历程中,有一些技术和原理被不断更新,有一些技术和原理被直接替代,也有一些技术和原理始终被维持使用。其中能够被持续使用而没有被改进的,说明它们是完美的,是适应性非常强的。

然而,我并没能及时将数据库所提供的新功能的真正含义和特性,及其在实际工作中的灵活运用方法和准则介绍给各位读者,借这次机会向各位忠实的读者表示深深的歉意。我知道很多读者对这本新书寄予了厚望,相信通过我的努力能够让各位读者如愿以偿。

事实上,本人在此期间为了研究数据架构(Data Architecture)的相关理论花费了大量的时间和精力,因为我认为数据架构的重要性和根本性主要体现在它是搜集和管理数据体系的理论,它的目的在于以数据库技术为基础,构建更加深邃、全面的数据体系。现在,有很多用户开始对数据构建的相关理论感兴趣,并且一些用户还组织了专门的学习小组,我为此而感到非常欣慰。

随着信息化进程的不断加快,利用数据库所要管理的数据不仅会显著增多,而且也会变得非常复杂,由此而引发的数据合并、标准化、数据质量等方面的问题也已经到了不得不解决的境地了,实际上可以说是迫在眉睫。因此,构建以监督数据构架是否按照要求构建、完善对数据进行有效控制的元数据系统,已经成了我们所必须完成的迫切任务。

幸运的是,很多开发人员和管理人员都对数据构架注入了极大的关心,韩国政府为此专门设置了数据构架资格考试,也正是由于国家和各位IT领域从业者的努力才使得数据构架有了今天的良好发展形势。为了使其得到进一步的发展,我们为此而研究出了更为体系化的理论方法,出版了高质量的书籍,设置了高标准的培训课程,构建出了将数据构架解决方案和相关组件相结合的元数据系统。

然而,在我为了推进数据构架的发展而付出大量时间和精力的同时,并没有放弃对数据库的研究。在此期间,我不仅连续不断地向很多用户提供数据库的咨询工作,而且也在不断地研究着新出现的技术。虽然我并没有公开地出版新书,但是却编写了大量的研究材料,并将其中相当大一部分在公司韩国数据库振兴院的主页上公开发表。尽管如此,现在对数据库的深刻研究,并将这些材料系统化的工作已经迫在眉睫了。

经过一年的昼夜工作终于完成了本书,并为了在本书中涵盖所有DBMS的“最小公倍数”而付出了很大的努力。虽然在各个DBMS之间多少都有一些差异,但是如果从原理和灵活运用准则的角度来看,它们之间其实并没有太大的差异。如若对所有DBMS的功能进行详细说明,反倒不利于各位读者的理解,所以在本书中以Oracle为基准进行说明的部分比较多。

尽管在本书中所使用的描述方法和命令语言主要以Oracle为基准,但所说明的原理和概念适用于所有的DBMS,这就像尽管每一个照相机的具体操作方法都有所不同,但从拍摄照片的角度来看却并没有太大的差异一样。为了帮助各位读者更好地理解和应用本书中所介绍的原理和方法,介绍其被应用在各个不同DBMS中的相关书籍在不久的将来将呈现给各位读者。

本书将整体内容分为两个部分,在第1部分中以影响数据读取效率的所有要素为类别,对其各自的概念、原理、 特征、应用准则,以及表的结构特征、多样化的索引类型、优化器的内部作用、优化器为各种结果制定的执行计划予以详细说明,并以对优化器的正确理解为基础,提出了对执行计划和执行速度产生最大影响的索引构建战略方案。

在第2部分中主要介绍提高数据读取效率的具体战略方案。在这部分中,介绍与数据读取效率相关的局部范围扫描的原理和具体应用方法,以及对被认为是提高数据库使用效率基础的表连接的所有类型予以详细说明。

在第1部分的第1章中,主要对数据库在存储数据时所使用的基本存储结构进行详细说明。就像人类无法生活在水中,鱼类无法生活在陆地一样,结构上的特征对很多方面都有着根本性、决定性的影响。尽管不同的DBMS所使用的术语有所不同,但是当我们依据其本质进行分类时就会发现所有表现出来的形式都属于同一种类型。

在第1部分的第2章中,主要对优化器制定执行计划影响最大的所有索引类型进行详细说明。在此所涉及的索引类型有被广泛使用的最一般的B-Tree索引、在海量数据处理或数据仓库中能够获得较好效果的位图索引、基于虚拟列所创建的多样化的用户自定义函数索引等。

在第1部分的第3章中,主要对优化器进行深刻剖析。在此不仅介绍优化器在实现最优化操作时所执行的内部执行步骤,还对作为数据库处理数据步骤的执行计划的各种类型进行了分类说明。如果各位读者能够对各个具体的执行单位有一个很好的理解,那么仍然能够对将其组合在一起的整体执行计划有一个很好的理解。另外,为了引导优化器按照我们所期望的方式制定执行计划,又对各种类型的提示(Hint)进行了说明。

在第1部分的第4章中,非常具体地提出了对制定最优化执行计划有着非常大影响的索引构建战略方案。优化器并不能开辟出新的读取路径,而只能在现有的读取路径中选择出比较有效的路径。因为按照本书中所提出的索引构建战略方案所构建出的索引能够改变现有的读取路径,所以如果没有依据此方案来构建战略性的索引,那么数据的读取效率必然会在很大程度上受到影响。

在第2部分的第5章中,以对执行计划的正确理解为基础,通过具体事例,对只读取了部分数据就能获得结果的秘诀——局部范围扫描的原理和多样化的应用类型进行了详细说明。在这里从一个新的高度对前面所介绍的方法进行了扩充说明。最后对在各种比较流行的留言板中实现局部范围扫描的方法进行了详细说明。

在第2部分的第6章中,对表连接的所有类型进行了详细说明。在这里对作为传统型的表连接方式——嵌套循环连接和排序合并连接,以及能够有效实现海量数据连接目的的哈希连接的相关原理进行了彻底剖析,并提出了多种灵活运用准则。另外,又对以多样化类型出现的半连接和在数据仓库中必须要使用的星型连接,以及星变形连接进行了详细说明。最后附加性地提出了位图连接索引的基本概念和灵活运用方法。

在这里向各位读者郑重承诺,我将在尽可能短的时间内完成其他两本系列书籍的编写工作。由于我经常在读者所期待的时间内未能出版约定的书籍,也许各位读者对我如期完成这两本书并不抱太大的希望,所以在这里希望各位读者能够谅解。我在管理自己企业的同时,既要研究新的技术,又要提供解决方案和编写书籍,时间的不足真的让我窘迫和无奈。

由于这两本系列书籍会同时在国外出版发行,所以不论我被多少琐事所困扰,都必须在约定的时间内完成编写工作。因此,这次我可以在这里向各位读者郑重承诺,在本书出版发行后我会以最快的速度完成这两本系列书籍的编写工作。

只凭借对方法的理解是无法征服数据世界的,即使将本书已经阅读了数十遍也只不过是停留在对其表层内容的理解上而已。所以希望各位读者能够对自己提出更高的要求,不要停留在对表层内容的理解上,而是以对本书中所介绍的所有原理的正确理解为前提,以本书中所提供的案例为参考,在适当的实际案例中加以灵活运用。我希望各位读者能够通过自己的努力和奋斗,发现别人所不能发现的新世界,而不是仅将自己局限于众人都能够看到的世界里。要勇敢地去挑战自己的极限,走向更大的成功。

2005年12月13日

En-core Consulting

代表咨询师 李华植

海量数据库解决方案1

书名:海量数据库解决方案

作者:[韩]李华植 著

译者:郑保卫 盖国强 译

ISBN 978-7-121-11883-8

出版日期:2011年1月

定价:69.00元

开本:16

页码:460

宣传语

涵盖数据库专家最新核心技术的RDBMS经典书籍

包含了将代码缩减为原来的1/10倍而速度提高至原来10倍的先进方法。

揭开了关系数据库的真面目,展示了截至目前为止未能被灵活使用的新技术。

内 容 简 介

本书将整体内容分为两部分,在第1部分中以影响数据读取效率的所有要素为类别,对其各自的概念、原理、特征、应用准则,以及表的结构特征、多样化的索引类型、优化器的内部作用、优化器为各种结果制定的执行计划予以详细说明,并以对优化器的正确理解为基础,提出对执行计划和执行速度产生最大影响的索引构建战略方案;在第2部分中主要介绍提高数据读取效率的具体战略方案,在这部分中介绍与数据读取效率相关的局部范围扫描的原理和具体应用方法,以及对被认为是提高数据库使用效率基础的表连接的所有类型予以详细说明。

《海量数据库解决方案》系列丛书深受广大读者的喜爱已经长达10年之久,在被誉为“圣经”的同时,它已经变成了数据库用户不可或缺的必读书籍。作者竭力探求能够让IT工作者在实际工作中轻松应用并掌控的巧妙方法,提供事半功倍的海量数据库解决之道。

本书适合数据库开发人员和数据库管理员等阅读。

posted @ 2010-11-05 08:40  博文视点(北京)官方博客  阅读(359)  评论(0编辑  收藏  举报