索引 / 001 ZH-CN
Fundamentals of Database Systems(数据库系统基础) cover

计算机科学

计算机科学

Fundamentals of Database Systems(数据库系统基础)

Ramez Elmasri; Shamkant B. Navathe

英文原名: Fundamentals of Database Systems

一本全面的数据库教材,从概念建模和关系模型出发,经过 SQL 和设计理论,讲到存储、查询处理、事务以及较新的系统。第七版新增了 NoSQL 数据库和大数据技术章节,同时保留了作者对实体–联系模型和增强实体–联系模型的详细讲解。

需要的基础: 程序设计入门与数据结构、离散数学,并对计算机组成基础有一定了解。

难度等级
中级
学术层次
本科
databasesrelational modelsqldatabase designtransaction processing教科书

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图。