01 / 导读
导读
引用
Elmasri, R., & Navathe, S. B. (2016). Fundamentals of Database Systems (7th ed.). Pearson.
章节概要
第7版有12个部分共30章,另有5个附录,约1240页。Pearson 称它是面向本科三、四年级或研究生的一到两学期数据库课程的教材,同时也是一本参考书。用出版社的话说,重点是数据库建模与设计的基础、数据库管理系统提供的语言和模型,以及数据库的实现技术。Pearson 说,这一版新增了两章,并增加了更多真实世界的问题。
第1部分,第1–2章:数据库与数据库用户;数据库系统概念与体系结构
引入部分,介绍什么是数据库、谁在使用它,然后讲数据库系统的概念与体系结构。
第2部分,第3–4章:使用实体联系(ER)模型进行数据建模;增强实体联系(EER)模型
概念建模排在关系模型之前,占两章:ER模型及其增强扩展。
第3部分,第5–9章:关系数据模型与关系数据库约束;基本SQL;更多SQL:复杂查询、触发器、视图与模式修改;关系代数与关系演算;通过ER和EER到关系的映射进行关系数据库设计
先讲关系模型及其约束,接着是分两章的SQL(基本SQL,然后是复杂查询、触发器、视图与模式修改),以及关系代数与关系演算。第9章把ER和EER模式映射为关系设计,与第2部分首尾呼应。
第4部分,第10–11章:SQL编程技术导论;使用PHP的Web数据库编程
两章讲如何编写数据库应用,后一章与一种具体的Web技术PHP绑定。
第5部分,第12–13章:对象与对象—关系数据库;XML:可扩展标记语言
对象与对象—关系数据库,以及XML。(Pearson 的目录把第二个标题印成了“XLM”,应为笔误。)
第6部分,第14–15章:函数依赖与关系数据库规范化基础;关系数据库设计算法与其他依赖
本书的设计理论排在编程和对象、XML模型之后:先是函数依赖与规范化,然后是设计算法和其他种类的依赖。
第7部分,第16–17章:磁盘存储、基本文件结构、散列与现代存储体系结构;文件的索引结构与物理数据库设计
物理层:存储设备、文件与散列,然后是索引结构和物理设计。
第8部分,第18–19章:查询处理策略;查询优化
查询如何执行,以及如何选择执行策略。
第9部分,第20–22章:事务处理概念与理论导论;并发控制技术;数据库恢复技术
事务、并发控制和恢复,连续三章。
第10部分,第23–25章:分布式数据库概念;NOSQL数据库与大数据存储系统;基于MapReduce和Hadoop的大数据技术
先是分布式,然后是NOSQL系统与大数据存储,再是MapReduce和Hadoop。Pearson 说这一版有两个新章,但没有说明是哪两章。
第11部分,第26–29章:增强数据模型(主动、时态、空间、多媒体和演绎数据库);信息检索与Web搜索导论;数据挖掘概念;数据仓库与OLAP概述
讲更多模型与应用的四章。它们的标题用了“导论”“概念”和“概述”这样的词,说明讲解是入门层次的。
第12部分,第30章:数据库安全
一章讲安全,为正文收尾。
附录A–E
ER模型的其他图示表示法,磁盘参数,QBE语言概述,以及层次数据模型和网状数据模型的概述。
核心概念
第1–3部分:建模与关系模型
- ER与EER建模:先于关系设计的概念设计。
- 关系约束、SQL与关系代数:关系模型及其语言。
- ER到关系的映射:把概念模式转换为表。
第4–6部分:应用、其他模型与设计理论
- 函数依赖与规范化:良好关系设计的理论。
- 对象—关系数据与XML:超出普通表格的模型。
- SQL编程技术:把SQL嵌入应用,Web方面使用PHP。
第7–12部分:实现与较新的系统
- 文件结构、散列与索引;查询处理与优化。
- 事务、并发控制与恢复。
- 分布式数据库、NOSQL、MapReduce与Hadoop;数据挖掘、数据仓库与OLAP;数据库安全。
评析
优点
- 概念建模有深度。 ER与EER占两章,向关系模式的映射有专门一章,附录还概述了ER的其他表示法。相比之下,书单中另一本综合性教材用一章讲E-R设计。
- 从设计到内部实现的一条完整路径。 从建模、关系模型、设计理论、存储与索引、查询处理、事务一直讲到分布式,所以可以作为两学期课程的唯一参考书。
- 涵盖较新的系统。 Pearson 强调了两个新章,第10部分涉及分布式数据库、NOSQL系统和基于MapReduce的大数据技术。
- 教材与参考书合一。 出版社把它同时定位为这两种用途,五个附录把较旧或较专门的内容(QBE、层次与网状模型、磁盘参数)放在正文之外。
局限
- 篇幅。 30章、超过1200页,超出一到两个学期的容量,教师必须取舍。
- 与具体技术绑定的章节。 第11章与PHP绑定,第12–13章讲对象—关系模型和XML。使用其他技术栈的课程要换成自己的材料。
- 后面的章节偏概览。 第26–29章的标题(“……导论”“概念”“……概述”)表明这些主题是入门介绍,而不是完整的论述。
- 无障碍提示。 Pearson 关于电子版的无障碍说明称,图像可能没有得到完整描述,这对使用屏幕阅读器的读者很重要。
在课程中的定位
Fundamentals of Database Systems 是书单中两本综合性数据库教材之一。Silberschatz、Korth 和 Sudarshan 的 Database System Concepts 涵盖大体相同的范围,SQL有三章(本书为两章),并且有更大一块并行与分布式系统的内容;Elmasri 和 Navathe 则更重视概念建模。两本都可以作主教材,选择可能取决于课程是从设计(本书)入手,还是从SQL入手。
Hernandez 的 Database Design for Mere Mortals 是一套通俗的设计方法,适合觉得第2部分和第6部分困难的读者。Ramakrishnan 和 Gehrke 的 Database Management Systems 是范围相近的基础性指南,Coronel 和 Morris 的 Database Systems 面向商业导向的设计、实现与管理。对于想深入了解事务实现的读者,Gray 和 Reuter 的 Transaction Processing 比第20–22章走得远得多。
如何使用本书
Pearson 说明,读者应熟悉基本的程序设计和数据结构概念,并对计算机组成的基础有所接触。本书适合本科三、四年级学生和研究生。
一个实用的读法:
- 第一门课的核心: 第1至3部分(第1–9章),然后读第6部分(第14–15章)学习设计理论。学SQL的章节(第6章和第7章)时,要打开一个真实的数据库。
- 实现: 第7至9部分(第16–22章),用于第二学期或偏实现的课程。
- 选读: 第10章和第11章讲应用编程,第10部分讲分布式与NOSQL系统,第26–30章作为简短的概览。
用章末习题练习建模,并在阅读映射一章之前,先自己画出ER图。
