数据库管理:大数据与小数据的存储、管理及分析实战
作者 : [比利时]维尔弗里德·勒玛肖(Wilfried Lemahieu) 赛普·凡登·布鲁克(Seppe vanden Broucke) 巴特·巴森斯(Bart Baesens) 著
译者 : 李川 林旺群 郭立坤 龚勋 何军 等译
丛书名 : 计算机科学丛书
出版日期 : 2020-09-22
ISBN : 978-7-111-66519-9
定价 : 149.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 617
开本 : 16
原书名 : Principles of Database Management: The Practical Guide to Storing, Managing and Analyzing Big and Small Data
原出版社: Cambridge University Press
属性分类: 教材
包含CD : 无CD
绝版 :
图书简介

本书全面讲解数据库设计、建模、系统构建、数据存储以及数据仓库、数据治理等方面的基础知识,并提出了一种数据库管理的新方法。本书的三位作者均为该领域专家,在大数据、数据分析、数据质量和数据集成方面经验丰富。全书理论结合实践,既有对现有数据库技术的讲解,又有对最新技术趋势的分析。为了帮助读者更好地理解基本概念,书中包含大量真实案例,涉及查询实例、代码以及图形等,并搭建了在线学习环境,这使本书成为信息系统或计算机科学专业本科生和研究生入门课程的完美教材。

图书特色

全面涵盖基础理论与新兴热点,培养下一代数据管理人才的必选书目

图书前言

恭喜!当你拿起这本书的时候,你已经向数据库的奇妙世界迈出了第一步。正如你将在本书中看到的,数据库有许多不同的形式—不仅有简单的电子表格和其他基于文件的形式以及层次结构,还有关系的、面向对象的甚至面向图形的形式。世界上的各行各业都使用数据库来管理、存储和分析数据。
十多年来,我们一直在教授本科生的数据库管理课程,以及研究生的高级数据库管理课程,这本书就是教学成果的结晶。多年来,我们发现没有一本教科书能在既不涉及过多理论细节又不失去重点的情况下全面涵盖这些内容。因此,我们决定合著一本书。写这本书的目的是提供一份完整和实用的指南,涵盖数据库管理方面的所有指导原则,包括:
端到端覆盖知识点,从传统技术到大数据、NoSQL数据库、分析学、数据治理等新兴趋势。
关于如何从过去的数据管理中吸取可能与今天的技术环境相关的教训的独特看法(如定位访问及其在CODASYL和XML/OO数据库中的风险)。
根据我们自己的经验,在实施所考虑的技术时,对数据和分析相关的项目进行批判性的反思并考虑相应的风险管理。我们的合作伙伴来自各行各业,包括银行、零售、政府以及文化部门。
理论和实践相结合,包括来源于多种多样的商业实践、科学研究和学术教学经验的练习、行业实例和案例研究。
这本书还包括一个附录,阐述了我们的“online playground”环境,你可以用它尝试书中讨论过的许多概念。本书网站附加的资源中还包括一个在线考试题库,包含一些跨章节的问题和YouTube课程的参考资料。
我们希望你会喜欢这本书,并希望你在工作、学习或研究中存储、管理和分析小数据或者大数据时,会发现它是一份有用并且值得信赖的参考资料。
目标读者
我们试图让这本书对新手、有经验的数据库从业人员和学生都一样全面和有用。无论你是一个刚刚开始使用数据库管理系统的新手,一个有经验的旨在温习基础知识概念或理论的SQL用户,或者是希望学习更新、更现代的数据库方法的人,本书都将帮助你熟悉所有必要的概念。因此,这本书非常适合以下人群:
在信息管理或计算机科学的理学学士和理学硕士课程中学习数据库管理的本科生或研究生;
希望与时俱进学习数据库管理知识的专业人员;
信息架构师、数据库设计人员、数据所有者、数据管理员、数据库管理员或对该领域的新发展感兴趣的数据科学家。
由于本书包含贯穿各章节的练习和行业实例,因此也可以用于数据库管理原理、数据库建模、数据库设计、数据库系统、数据管理、数据建模和数据科学课程。此外,本书也对大学制定学位有帮助,例如大数据和分析学等课程或专业。
主要内容
本书由四部分组成。第1~4章是对数据库和数据库设计的初步介绍,首先在第1章介绍了基本概念,紧接着在第2章介绍了常用的数据库管理系统的类型及其架构。第3章讨论了概念数据建模,第4章是对数据管理中涉及的不同角色及其职责的概述。
第二部分将深入介绍各种类型的数据库,从以前的遗留数据库和关系数据库管理系统(第5~7章)到新的技术,如面向对象的、对象关系的和基于XML的数据库(第8~10章),最后在第11章中对NoSQL技术的可靠性和新进展进行概述。这部分还包括在第7章中对结构化查询语言(SQL)的全面概述。
在第三部分中,将深入讨论物理数据存储、事务管理和数据库访问的相关内容。第12章讨论了物理文件组织和索引,第13章讲述了关于物理数据库组织以及业务连续性的内容。接下来在第14章中概述了事务管理的基础知识。第15章介绍了数据库访问机制和各种数据库应用程序编程接口(API)。第16章通过着重介绍数据分布和分布式事务管理对这一部分进行了总结。
第17~20章是本书的最后一部分。在这一部分,我们缩小范围,详细介绍了数据仓库和人们感兴趣的新兴领域,如数据治理、大数据和分析学。第17章深入讨论了数据仓库和商务智能。第18章介绍了数据集成、数据质量和数据治理等管理概念。第19章对大数据进行了深入讨论,并展示了可靠的数据库设置如何成为现代分析环境的基石。第20章通过讨论不同类型的分析方法来总结这一部分和这本书。
看完这本书后,你将获得足以构建一个数据库管理系统的全面且深入的知识体系。你将能够辨别不同的数据库系统,并且对比它们的优缺点。你将能够通过概念、逻辑和物理数据建模,对大数据和分析应用程序做出最佳(投资)决策。你将对SQL有深刻的理解,并将了解数据库管理系统在物理层面上是如何工作的—包括事务管理和索引。你将了解如何从外部访问数据库系统,以及如何将它们与其他系统或应用程序集成。最后,你还将了解在使用数据库时所涉及的各种有关管理的内容,包括所涉及的角色、数据集成、质量和治理方面,你还会对如何将数据库管理系统的概念应用于大数据和数据分析有清晰的想法。
如何阅读本书
这本书既可以作为有针对性的参考手册,提供给希望温习某些方面知识和技能的较有经验的读者,也可以作为对整个数据库管理系统领域的概述,提供给入门阶段的读者。读者可以自由地从头到尾阅读,或者跳过某些章节直接从感兴趣的部分开始。我们把这本书清楚地分成了不同的部分和章节,所以读者应该不难理解这本书的整体架构并找到正确的阅读方向。当某个概念将在后面的章节中被扩展,或者重复使用前面章节介绍的概念时,我们会提供清晰的“知识关联”模块,这样读者可以在继续阅读之前快速复习一下前面的章节,或者到书中的其他地方继续学习。
下面的概述根据你可能感兴趣的领域提供了一些常见的“阅读路径”:
希望快速掌握关系数据库系统和SQL的新手:从第一部分开始看,然后阅读第6~9章。
有一定经验希望紧跟技术趋势学习新知识的读者:先阅读第11章,然后阅读第15~20章。
希望对数据库系统有更深入了解的数据库日常用户:阅读第一部分。
希望粗略了解一些基本概念以及管理相关内容的管理人员:从第一部分开始,然后继续阅读第17~20章。
数据库管理本科课程的教授:阅读第一和第二部分。
高级数据库管理研究生课程的教授:阅读第三和第四部分。
下表总结了每种对应身份的读者适合阅读的章节以及其他一些章节(将在第4章讨论)。
章节 新手 有一定经验的用户 数据库
用户 管理
人员 教授
(本科课程) 教授
(研究生课程) 信息
架构师 数据库设计师 数据库管理员 数据
科学家
1 X X X X X X X
2 X X X X X X X
3 X X X X X X X
4 X X X X X X X
5 X X X
6 X X X X
7 X X X X
8 X X X X
9 X X X X
10 X X X
11 X X X X X X
12 X X X
13 X X X
14 X X
15 X X
16 X X X
17 X X X X X
18 X X X X X
19 X X X X X
20 X X X X

每一章内容都坚持理论与实践相结合的原则,因此书中的理论概念经常与来自行业的例子交替出现,在“知识延伸”模块中通过提供更多的背景知识或有趣的故事来说明概念。书中还包括对特定技术优缺点的理论讨论。每一章都有一些练习题来测试你的掌握程度,包括多项选择题和开放性问题。
跨章节的案例研究:Sober
在整本书中,我们使用了一个贯穿始终的案例(一个虚构的名为“Sober”的自动驾驶汽车出租公司),在每一章中都会重新回顾并对案例进行延伸扩展。因此,当你从头到尾阅读这本书的时候,你将仿佛在和Sober的数据库工程师一起学习,体验他们的数据库管理系统是如何从简单的小规模系统发展成更加现代化并且更加健壮的系统的。从实践的角度来看,不同的章节也形成了一个紧密联系的整体,你将看到如何把所有的技术和概念结合在一起。
补充材料
我们很乐意向你推荐本书网站www.pdbmbook.com。该网页包括一些补充信息,如更新信息、幻灯片、视频讲座、附加资料和问答。它还提供了一个可以动手操作的在线环境,读者可以使用SQL操作MySQL关系数据库管理系统、运行NoSQL数据库系统以及其他的小示例,而不需要安装任何工具。你可以在附录中了解相关信息,它会帮助你学会如何使用。
致谢
感谢各位同事、朋友和数据库管理爱好者在本书写作过程中的贡献和帮助。这本书是多年数据库管理研究和教学的成果。
首先要感谢我们的出版商—剑桥大学出版社在两年前接受了我们的出版计划。我们还要感谢Lauren Cowles对整个过程的监督。我们第一次见到Lauren是2016年8月在旧金山,我们一边吃着饭(蟹饼搭配纳帕白葡萄酒),讨论这本书的细节,一边俯瞰着一群正在晒太阳的海豹。事实证明,这是一个可以促成成功伙伴关系的完美环境。我们也要感谢剑桥大学出版社在编辑、生产和营销此书的过程中所给予的帮助。
Gary J. O’Brien也特别值得一提,他的仔细校对对书稿贡献巨大。尽管打开一份含有Gary评论的Word文档有时会让人感到担忧,但其中夹杂的一些切中要点的评论以及幽默的注释给文档修改增添了不少乐趣。
我们还要感谢Jacques Vandenbulcke教授,他是第一个向我们介绍数据库管理这个神奇世界的人。能超越Jacques精湛教学才能的只有他的旅游规划技能。他的影响贯穿全书,不仅涉及数据库专业知识(例如,数据库的概念和实例),还涉及旅行经历(例如,英文版封面上的地下水宫和Meneghetti葡萄酒)。
我们也要感谢在过去几年中与我们合作的许多同事、教授、学生、研究人员、业务联系人和朋友所提供的直接和间接的帮助。非常感谢为我们提供了各种用户论坛、博客、在线讲座和教程的活跃的数据库管理社区,这给我们带来了很大的帮助。
最后,感谢伴侣、孩子、父母和家人给我们的爱、支持和鼓励!我们相信他们会从头到尾阅读这本书,这会给一日三餐带来很多生动有趣的话题。
我们尽可能使这本书完整、准确和有趣。当然,真正重要的是作为读者的你对它的看法。所以,请与我们分享你的观点。我们欢迎所有对本书的反馈和评论,所以不要犹豫,让我们知道你的想法吧。
封面:英文版封面图片描绘的是地下水宫,这是位于伊斯坦布尔的一个巨大的地下蓄水设施,由罗马人建于公元6世纪。为什么放这张图片?简单来说,它是那座宏伟城市的重要地标,在整个历史中一直是文化、文明甚至大陆的交汇点。然而,更重要的是,它是一个按行和列组织的存储结构,甚至包括复制和镜像结构,更不用说可以存储历史数据了。此外,它还包含了有史以来最著名的主键之一—007,因为它在詹姆斯·邦德的电影From Russia With Love中有着重要意义。
Sober 1000‰技术驱动 Sober是一家新的通过部署自动驾驶汽车来提供出租车服务的公司。虽然该公司拥有自己的自动驾驶出租车车队,但人们也可以将自己的汽车登记为Sober的出租车,并在不用车时让它们提供出租车服务。对于后者,Sober还会与车主保持联系。
Sober提供两种出租车服务:叫车和拼车。叫车服务是指顾客可以呼叫一辆出租车,然后乘车前往目的地,这项服务基于时间和距离进行计费。叫车是一种即时的、按需的服务,可以通过Sober的应用程序进行呼叫。用户只需在屏幕上轻轻一点,就可以在任何地方呼叫出租车,并且会看到估计等待时间,以及车辆到达通知。除了通过Sober应用程序来呼叫出租车,用户在看到Sober的出租车经过时还可以挥手叫车。此时,Sober基于深度学习的图像识别系统将挥手动作识别为“出租车请求”。对于每次叫车业务,Sober想要存储接上与送达乘客的时间、接上与送达乘客的地点、乘车时间、距离、乘客数量、乘车费用、乘车请求类型(通过Sober的应用程序或者挥手示意)以及主要客户(支付费用的人)的号码和姓名。叫车服务最多允许6位乘客。
拼车是另一项由Sober公司提供的服务,它需要更详细的设计。它也可以被称为顺风车,旨在降低成本,减少交通拥堵和碳排放。拼车服务支持灵活分配费用,即每辆出租车的顾客越多,每名顾客的费用就越低(定价灵活)。为了提供环保的激励政策,Sober承诺为每位请求了20次拼车服务的顾客种一棵树。对于每次拼车业务,Sober想要存储接上与送达乘客的时间、接上与送达乘客的地点、乘车时间、距离、所有客户的号码和姓名以及预付的费用。拼车服务最多允许10位乘客。
由于自动驾驶技术的不成熟,事故不能100%排除。Sober也想要存储事故发生的日期、地点和每辆车的损失金额信息。

专家评论

尽管已经有很多数据库经典教材了,但由于技术发展突飞猛进,我们还是需要一本紧跟技术趋势的新教材,以涵盖大数据分析、NoSQL等重要主题。本书满足了这一需求,是培养下一代数据管理人才的必选书目。
—Jian Pei,西蒙弗雷泽大学
这本与时俱进的教材令我眼前一亮,书中既包含常规的基础知识,也涵盖新的技术热点,如数据建模、关系型数据库、面向对象数据库、XML、分布式数据管理、NoSQL和大数据等。三位作者将这些知识点完美融合,篇章结构合理且可读性强,对于导论课程和高级课程都非常有益。
—Martin Theobald,卢森堡大学
这是一本非常及时的书,不仅全面涵盖数据库的各大主题,而且对细节知识的讲解也特别出色。书中既深入讨论了数据建模和关系数据库等传统主题,也包含XML数据库、NoSQL数据库、大数据和分析等新的前沿主题。对于数据库专业人员而言,这是一本不容错过的好书,可以在学习及工作中随时翻阅。
—J. Leon Zhao,香港城市大学
这是一本易于阅读且内容权威的书籍,书中介绍了数据管理中最重要的基本概念,并从实践的角度讨论了新的技术进展。对于数据领域的从业人员,这两方面都是必不可少的。
—Foster Provost,纽约大学斯特恩商学院
本书通过对基本原理和实际部署的讲解,指导读者学会管理大数据和小数据。书中讨论了一系列数据库及其与数据分析的关联。大量的案例研究、开源软件链接以及一个非常有用的数据分析抽象,将帮助读者更有效地选择解决方案,因此本书对于实践者颇具实用价值。同时,数据库原理是成功和可持续的数据科学的关键,本书对原理的清晰阐述有助于推动这些知识的传播,因此本书对于学术界也非常重要。
—Sihem Amer-Yahia,格勒诺布尔信息实验室,VLDB Journal主编
本书几乎涵盖数据库实现和数据库设计课程的全部内容,通过对大数据、分析模型/方法和NoSQL等章节的学习,学生将紧跟发展趋势,了解数据管理方面的新技术。
—Han-fen Hu,内华达大学拉斯维加斯分校

上架指导

计算机\数据库

封底文字

尽管已经有很多数据库经典教材,但由于技术发展突飞猛进,我们还是需要一本紧跟技术趋势的新教材。本书满足了这一需求,是培养下一代数据管理人才的必选书目。
—— 裴健,西蒙弗雷泽大学教授
本书通过对基本原理和实际部署的讲解,指导读者学会管理大数据和小数据。大量的案例研究、开源软件链接以及一个非常有用的数据分析抽象,将帮助读者更有效地选择解决方案,因此本书对于实践者颇具实用价值。同时,数据库原理是成功和可持续的数据科学的关键,本书对原理的清晰阐述有助于推动这些知识的传播,因此本书对于学术界也非常重要。
—— Sihem Amer-Yahia,法国格勒诺布尔信息实验室主任,VLDB Journal主编
我们正在进入智能机器的技术新时代,数据驱动的算法为这个时代注入了强劲动力,理解数据管理的基本概念及其最新应用变得比以往任何时候都更加重要。如果你有兴趣了解数据库系统、大数据技术和数据科学的新进展,那么本书绝对不容错过。书中包含大量示例和案例研究,不仅展现了作者的深刻见解,还与产业实践关系密切。
—— Nesime Tatbul,英特尔实验室、麻省理工学院高级研究员
这本与时俱进的教材令我眼前一亮,书中既包含常规的基础知识,也涵盖新的技术热点,如数据建模、关系型数据库、面向对象数据库、XML、分布式数据管理、NoSQL和大数据等。三位作者将这些知识点完美地融合起来,篇章结构合理且可读性强,对于导论课程和高级课程都非常有益。
—— Martin Theobald,卢森堡大学教授

译者序

数据库产生于20世纪60年代,其按照数据结构来组织、存储和管理数据,因此可被视为存放数据的仓库。随着信息技术和市场的发展,数据库已成为一门内容丰富的学科,并形成了总量达数百亿美元的软件产业。整体而言,数据库有多种类型,但无论是最简单的表格存储,还是能够进行海量数据存储的大型数据库系统,均在各个方面和领域获得了广泛应用。在信息化社会中,充分有效地管理和利用各类信息资源至关重要,而数据库技术作为管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,已成为进行科学研究和决策管理的重要技术方式。因此,有大量的学者和技术人员积极投身于数据库技术的无涯探索之中。
本书共分为20章,依内容划分为四个部分。第一部分由第1~4章组成,主要对数据库和数据库设计进行初步介绍;第二部分包含第5~11章,深入讲解各种类型的数据库并对结构化查询语言(SQL)进行全面概述;第三部分由第12~16章组成,分别对物理数据存储、事务管理和数据库访问等内容进行讨论,且在第16章通过着重介绍数据分布和分布式事务管理对该部分进行总结;第四部分由第17~20章组成,主要对数据仓库及数据库新领域(如数据治理、大数据和数据分析学等内容)进行详细论述。总之,本书兼顾数据库相关知识的深度和广度,且通过一个贯穿始终的案例使各部分构成一个紧密联系的整体,再辅以丰富的图文信息,令读者的学习与理解更为深刻和透彻。因此,无论是对于初学者还是有经验的数据库从业人员,本书均可作为获取数据库知识的有力工具。
本书的翻译工作是在极其紧张的条件下,经过所有团队成员的艰辛拼搏而最终定稿的,其中凝聚着所有参与者的心血。本书的翻译工作由李川副教授统一协调,参与的人员还有
林旺群、郭立坤、龚勋、何军、谢英杰、戴文鑫、李亚莹、丁云平、崔艺婵、陈荣、赵意如、胡振鑫、王聪、任景睿、曾严、刘江亭等。大家在节假日、在寒夜里加班工作,对译文字斟句酌,最终有了本书的诞生。特别是,林旺群、何军、郭立坤在工作非常紧张、繁忙的情况下,挤出时间在稿件校对与资料整理方面做了大量工作,在此表示衷心感谢!
此外,由衷感谢机械工业出版社的曲熠编辑和朱秀英编辑,感谢她们在本书成书过程中给予的支持与帮助!
尽管译者心正意诚,然则受限于自身水平,本书难免存在问题。期望各位读者给予批评、指正,使本书更趋完善。最后,真诚期望本书对大家有益,这是对我们翻译工作的最大认可!

译者
2020年7月

图书目录

出版者的话
赞誉
译者序
前言
作者简介
第一部分 数据库与数据库设计
第1章 数据库管理的基本概念 2
1.1 数据库技术的应用 2
1.2 关键定义 3
1.3 基于文件与数据库的数据管理方法 3
1.3.1 基于文件的方法 3
1.3.2 基于数据库的方法 4
1.4 数据库系统的元素 6
1.4.1 数据库模型与实例 6
1.4.2 数据模型 7
1.4.3 三层架构 7
1.4.4 目录 8
1.4.5 数据库用户 9
1.4.6 数据库语言 9
1.5 数据库系统和数据库管理的优点 9
1.5.1 数据独立性 9
1.5.2 数据库建模 10
1.5.3 管理结构化、半结构化、非结构化数据 10
1.5.4 管理数据冗余 10
1.5.5 指定完整性约束 11
1.5.6 并发控制 11
1.5.7 备份和恢复设备 12
1.5.8 数据安全性 12
1.5.9 性能分析工具 12
总结 12
关键术语表 13
思考题 13
问题和练习 14
第2章 数据库管理系统的架构与分类 15
2.1 DBMS的架构 15
2.1.1 连接管理器和安全管理器 16
2.1.2 DDL编译器 16
2.1.3 查询处理器 16
2.1.4 存储管理器 19
2.1.5 DBMS工具 20
2.1.6 DBMS接口 20
2.2 DBMS分类 21
2.2.1 基于数据模型的分类 21
2.2.2 基于同步访问的分类 23
2.2.3 基于架构的分类 23
2.2.4 基于使用方法的分类 24
总结 25
关键术语表 26
思考题 26
问题和练习 28
第3章 使用(E)ER模型和UML类图进行概念数据建模 29
3.1 数据库设计阶段 29
3.2 实体关系模型 30
3.2.1 实体类型 31
3.2.2 属性类型 31
3.2.3 关系类型 32
3.2.4 弱实体类型 36
3.2.5 三元关系类型 36
3.2.6 ER模型示例 38
3.2.7 ER模型的局限性 40
3.3 扩展的实体关系模型 40
3.3.1 特化/泛化 41
3.3.2 分类 42
3.3.3 聚集 43
3.3.4 EER模型的示例 43
3.3.5 设计EER模型 44
3.4 UML类图 45
3.4.1 面向对象概述 45
3.4.2 类 45
3.4.3 变量 46
3.4.4 访问修饰符 46
3.4.5 关联 47
3.4.6 特化/泛化 49
3.4.7 聚集 49
3.4.8 UML示例 49
3.4.9 高级UML建模概念 50
3.4.10 UML与EER的对比 52
总结 53
关键术语表 56
思考题 56
问题和练习 59
第4章 数据管理的组织方面 62
4.1 数据管理 62
4.1.1 目录和元数据的作用 62
4.1.2 元数据建模 63
4.1.3 数据质量 63
4.1.4 数据治理 67
4.2 数据管理中的角色 68
4.2.1 信息架构师 68
4.2.2 数据库设计师 68
4.2.3 数据所有者 68
4.2.4 数据管理员 68
4.2.5 数据库管理员 69
4.2.6 数据科学家 69
总结 69
关键术语表 70
思考题 70
问题和练习 70
第二部分 数据库系统类型
第5章 传统数据库 72
5.1 分层模型 72
5.2 CODASYL模型 75
总结 79
关键术语表 79
思考题 80
问题和练习 80
第6章 关系数据库:关系模型 81
6.1 关系模型 81
6.1.1 基本概念 82
6.1.2 正式定义 83
6.1.3 键的类型 84
6.1.4 关系约束 86
6.1.5 关系数据模型的示例 87
6.2 规范化 88
6.2.1 非规范化关系模型中的插入、删除和更新异常 88
6.2.2 非正式的规范化准则 89
6.2.3 函数依赖和主属性类型 90
6.2.4 规范化形式 90
6.3 将概念ER模型映射到关系模型 96
6.3.1 实体类型映射 96
6.3.2 关系类型映射 97
6.3.3 多值属性类型映射 103
6.3.4 弱实体类型映射 103
6.3.5 小结 104
6.4 将概念EER模型映射到关系模型 105
6.4.1 EER特化映射 106
6.4.2 EER类别映射 107
6.4.3 EER聚集映射 108
总结 109
关键术语表 110
思考题 110
问题和练习 114
第7章 关系数据库:结构化查询语言 116
7.1 关系数据库管理系统和SQL 116
7.1.1 SQL的关键特征 116
7.1.2 三层数据库架构 118
7.2 SQL数据定义语言 119
7.2.1 DDL的关键概念 119
7.2.2 DDL的示例 120
7.2.3 参照完整性约束 123
7.2.4 DROP和ALTER命令 123
7.3 SQL数据操作语言 125
7.3.1 SQL SELECT语句 125
7.3.2 SQL INSERT语句 149
7.3.3 SQL DELETE语句 149
7.3.4 SQL UPDATE语句 150
7.4 SQL视图 152
7.5 SQL索引 154
7.6 SQL权限 155
7.7 用于元数据管理的SQL 156
总结 157
关键术语表 159
思考题 160
问题和练习 167
第8章 面向对象的数据库以及对象持久性 169
8.1 概述:OO的基本概念 169
8.2 OO的高级概念 171
8.2.1 方法重载 171
8.2.2 继承 171
8.2.3 方法重写 173
8.2.4 多态和动态绑定 173
8.3 对象持久性的基本原则 175
8.4 面向对象数据库管理系统 176
8.4.1 对象标识符 177
8.4.2 ODMG标准 177
8.4.3 对象模型 178
8.4.4 对象定义语言 178
8.4.5 对象查询语言 181
8.4.6 语言绑定 183
8.5 评估OODBMS 185
总结 186
关键术语表 186
思考题 187
问题和练习 188
第9章 扩展关系数据库 189
9.1 关系模型的局限性 189
9.2 RDBMS主动拓展 190
9.2.1 触发器 190
9.2.2 存储过程 192
9.3 对象-关系型RDBMS扩展 193
9.3.1 用户定义类型 194
9.3.2 用户定义函数 197
9.3.3 继承 198
9.3.4 行为 200
9.3.5 多态性 201
9.3.6 集合类型 201
9.3.7 大对象 203
9.4 递归的SQL查询 203
总结 205
关键术语表 206
思考题 207
问题和练习 208
第10章 XML数据库 209
10.1 可扩展标记语言 209
10.1.1 基本概念 210
10.1.2 文档类型定义和XMLSchema定义 213
10.1.3 可扩展样式表语言 216
10.1.4 命名空间 219
10.1.5 XPath 219
10.2 处理XML文档 220
10.3 存储XML文档 221
10.3.1 面向文档的XML文档存储方法 222
10.3.2 面向数据的XML文档存储方法 222
10.3.3 存储XML文档的组合方法 222
10.4 XML数据和关系数据之间的差异 223
10.5 XML文档和(对象-)关系数据之间的映射 223
10.5.1 基于表的映射 223
10.5.2 模式无关的映射 224
10.5.3 模式感知的映射 226
10.5.4 SQL/XML 227
10.6 搜索XML数据 230
10.6.1 全文搜索 231
10.6.2 基于关键字的搜索 231
10.6.3 XQuery的结构化搜索 231
10.6.4 使用RDF和SPARQL进行语义搜索 232
10.7 用于信息交换的XML 234
10.7.1 面向消息的中间件 235
10.7.2 基于SOAP的Web服务 235
10.7.3 基于REST的Web服务 238
10.7.4 Web服务和数据库 239
10.8 其他数据表示格式 239
总结 243
关键术语表 245
思考题 246
问题和练习 247
第11章 NoSQL数据库 249
11.1 NoSQL运动 249
11.1.1 “一体适用”时代的终结? 249
11.1.2 NoSQL运动的出现 250
11.2 键-值存储 252
11.2.1 从键到哈希 252
11.2.2 水平扩展 253
11.2.3 实例:Memcached 254
11.2.4 请求协调器 256
11.2.5 一致性哈希 256
11.2.6 复制和冗余 258
11.2.7 最终一致性 259
11.2.8 稳定化 260
11.2.9 完整性约束和查询 261
11.3 元组和文档存储 261
11.3.1 带键的项 262
11.3.2 过滤和查询 263
11.3.3 使用MapReduce进行复杂查询和聚合 266
11.3.4 SQL毕竟…… 275
11.4 面向列的数据库 276
11.5 基于图的数据库 277
11.5.1 Cypher概述 279
11.5.2 探索社交图谱 280
11.6 其他NoSQL类别 285
总结 286
关键术语表 287
思考题 288
问题和练习 289
第三部分 物理数据存储、
事务管理和数据库访问
第12章 物理文件组织和索引 292
12.1 存储硬件和物理数据库设计 292
12.1.1 存储层次结构 292
12.1.2 硬盘驱动器的内部结构 293
12.1.3 从逻辑概念到物理结构 296
12.2 记录组织 298
12.3 文件组织 300
12.3.1 基本概念:搜索键、主文件和辅助文件组织 300
12.3.2 堆文件组织 301
12.3.3 顺序文件组织 301
12.3.4 随机文件组织(哈希) 302
12.3.5 索引顺序文件组织 306
12.3.6 列表数据组织(线性与非线性表) 310
12.3.7 辅助索引和倒排文件 313
12.3.8 B-树和B+-树 318
总结 322
关键术语表 323
思考题 324
问题和练习 325
第13章 物理数据库组织 326
13.1 物理数据库组织和数据库访问方法 326
13.1.1 从数据库到表空间 327
13.1.2 索引设计 328
13.1.3 数据库访问方法 330
13.1.4 连接操作 337
13.2 企业存储子系统和业务连续性 338
13.2.1 磁盘阵列和RAID 339
13.2.2 企业存储子系统 341
13.2.3 业务连续性 347
总结 350
关键术语表 351
思考题 351
问题和练习 353
第14章 事务管理基础 354
14.1 事务、恢复和并发控制 354
14.2 事务和事务管理 355
14.2.1 描述事务和事务生命周期 355
14.2.2 涉及事务管理的DBMS组件 356
14.2.3 日志文件 357
14.3 恢复 358
14.3.1 故障类型 358
14.3.2 系统恢复 359
14.3.3 介质恢复 360
14.4 并发控制 361
14.4.1 典型的并发性问题 361
14.4.2 调度和串行调度 363
14.4.3 可串行化调度 363
14.4.4 乐观和悲观调度器 365
14.4.5 锁和锁协议 365
14.5 事务的ACID属性 371
总结 372
关键术语表 372
思考题 373
问题和练习 375
第15章 数据库访问和数据库API 376
15.1 数据库系统的架构 376
15.1.1 集中式系统架构 376
15.1.2 分层架构 377
15.2 数据库API的分类 379
15.2.1 专有与通用API 380
15.2.2 嵌入式与调用级API 380
15.2.3 早期绑定与晚期绑定 381
15.3 通用数据库API 382
15.3.1 ODBC 382
15.3.2 OLE DB和ADO 383
15.3.3 ADO.NET 384
15.3.4 Java数据库连接 387
15.3.5 插曲:SQL注入与访问安全 392
15.3.6 SQLJ 393
15.3.7 插曲:嵌入式API与嵌入式DBMS 395
15.3.8 语言集成查询 396
15.4 对象持久性和对象关系映射API 398
15.4.1 使用Enterprise JavaBeans的对象持久性 398
15.4.2 使用Java持久性 API实现对象持久性 402
15.4.3 使用Java数据对象的对象持久性 407
15.4.4 其他宿主语言中的对象持久性 410
15.5 数据库API总结 414
15.6 万维网中的数据库访问 416
15.6.1 最初的Web服务器 416
15.6.2 通用网关接口:面向动态网页 416
15.6.3 客户端脚本:对更丰富Web的渴望 418
15.6.4 作为平台的JavaScript 419
15.6.5 DBMS自适应:REST、其他Web服务和展望 421
总结 423
关键术语表 424
思考题 424
问题和练习 426
第16章 数据分布和分布式事务管理 427
16.1 分布式系统和分布式数据库 427
16.2 分布式数据库的架构规则 428
16.3 分割、分配和复制 430
16.3.1 垂直分割 430
16.3.2 水平分割(分片) 431
16.3.3 混合分割 431
16.3.4 复制 433
16.3.5 元数据的分布和复制 433
16.4 透明性 434
16.5 分布式查询处理 435
16.6 分布式事务管理和并发控制 437
16.6.1 主站点和主副本2PL 437
16.6.2 分布式2PL 438
16.6.3 两阶段提交协议 439
16.6.4 乐观并发和松耦合系统 441
16.6.5 基于补偿的事务模型 442
16.7 最终一致性和BASE事务 445
16.7.1 水平分割和一致性哈希 445
16.7.2 CAP定理 445
16.7.3 BASE事务 446
16.7.4 多版本并发控制和向量时钟 447
16.7.5 基于Quorum的一致性 448
总结 450
关键术语表 451
思考题 451
问题和练习 452
第四部分 数据仓库、数据治理
和大数据分析
第17章 数据仓库与商务智能 454
17.1 操作与战术/战略决策 454
17.2 数据仓库定义 455
17.3 数据仓库模式 457
17.3.1 星形模式 457
17.3.2 雪花模式 458
17.3.3 事实星座模式 458
17.3.4 特定的模式问题 459
17.4 抽取、转换和加载过程 465
17.5 数据集市 467
17.6 虚拟数据仓库和虚拟数据集市 468
17.7 操作数据存储 469
17.8 数据仓库与数据湖 469
17.9 商务智能 470
17.9.1 查询和报告 471
17.9.2 数据透视表 471
17.9.3 联机分析处理 471
总结 479
关键术语表 480
思考题 481
问题和练习 483
第18章 数据集成、数据质量和数据治理 485
18.1 数据与流程集成 485
18.1.1 分析型和操作型数据需求的融合 486
18.1.2 数据集成和数据集成模式 487
18.1.3 数据和流程集成中的数据服务和数据流 494
18.2 搜索非结构化数据和企业搜索 500
18.2.1 全文搜索原理 500
18.2.2 索引全文文档 501
18.2.3 网络搜索引擎 502
18.2.4 企业搜索 504
18.3 数据质量和主数据管理 505
18.4 数据治理 506
18.4.1 全面数据质量管理 507
18.4.2 能力成熟度模型集成 507
18.4.3 数据管理知识体系 508
18.4.4 信息和相关技术的控制目标 508
18.4.5 信息技术基础架构库 508
18.5 展望 508
总结 509
关键术语表 509
思考题 510
问题和练习 511
第19章 大数据 513
19.1 大数据的5个V 513
19.2 Hadoop 516
19.2.1 Hadoop的历史 516
19.2.2 Hadoop堆栈 517
19.3 Hadoop中的SQL 528
19.3.1 HBase:Hadoop上的第一个数据库 528
19.3.2 Pig 533
19.3.3 Hive 533
19.4 Apache Spark 536
19.4.1 Spark Core 536
19.4.2 Spark SQL 538
19.4.3 MLlib、Spark Streaming和GraphX 540
总结 541
关键术语表 542
思考题 543
问题和练习 544
第20章 分析学 546
20.1 分析过程模型 546
20.2 分析应用程序实例 548
20.3 数据科学家职务简介 549
20.4 数据预处理 550
20.4.1 用于分析的去规范化数据 550
20.4.2 抽样 551
20.4.3 探索性分析 551
20.4.4 缺失值 552
20.4.5 异常值检测和处理 553
20.5 分析的类型 553
20.5.1 预测性分析 553
20.5.2 评估预测模型 560
20.5.3 描述性分析 566
20.5.4 社交网络分析 570
20.6 分析模型的后处理 574
20.7 分析模型成功的关键因素 575
20.8 分析中的经济学视角 576
20.8.1 总所有权成本 576
20.8.2 投资回报 576
20.8.3 内包与外包 577
20.8.4 本地解决方案与云解决方案 578
20.8.5 开源软件与商业软件 579
20.9 提高分析的投资回报率 580
20.9.1 新的数据来源 580
20.9.2 数据质量 582
20.9.3 管理支持 583
20.9.4 组织因素 584
20.9.5 交叉应用 584
20.10 隐私和安全 585
20.10.1 关于隐私和安全的总体考虑 585
20.10.2 RACI矩阵 586
20.10.3 访问内部数据 587
20.10.4 隐私条例 591
总结 592
关键术语表 593
思考题 594
问题和练习 597
附录 使用在线环境

教学资源推荐
作者: John Adolph Palinski
作者: [美] 亚伯拉罕·西尔伯沙茨 (Abraham Silberschatz) [美] 亨利·F. 科思 (Henry F. Korth) [印] S. 苏达尔尚(S. Sudarshan) 著
作者: Abraham Silberschatz;Henry F. Korth;S. Sudarshan
作者: Philip M. Lewis, Arthur Bernstein, Michael Kifer
参考读物推荐
作者: [美]拉斐尔·酷奇(Rafal; Kuc) 马雷克·罗戈任斯基(Marek Rogoziński) 著
作者: (美)Christopher Allen
作者: (加)洪松林(Hong Song Lin) (中)庄映辉 李堃 著
作者: (美)Donald K.Burleson