数据库系统:面向应用的方法(第2版)

第一部分 简介
第1章 数据库和事务概述
1.1 什么是数据库和事务
1.2 现代数据库和事务处理系统的特性
1.3 数据库和事务处理系统的实现和支持中的主要角色
1.4 决策支持系统--OLAP和OLTP
第2章 综述
2.1 案例学习:学生选课系统
2.2 关系数据库绪论
2.3 使程序成为事务--ACID属性
参考文献注解
习题
第二部分 数据库管理
第3章 关系数据模型
3.1 什么是数据模型
3.2 关系模型
3.2.1 基本概念
3.2.2 完整性约束
3.3 SQL的数据定义子语言
3.3.1 定义关系类型
3.3.2 系统目录
3.3.3 码约束
3.3.4 处理缺失信息
3.3.5 语义约束
3.3.6 用户定义的域
3.3.7 外码约束
3.3.8 反应性约束
3.3.9 数据库视图
3.3.10 修改已有定义
3.3.11 SQL模式
3.3.12 访问控制
参考文献注解
习题
第4章 用E-R图和UML构建数据库的概念模型
4.1 用E-R方法进行概念建模
4.2 实体和实体类型
4.3 联系和联系类型
4.4 概念数据建模中的高级特性
4.4.1 实体类型层次
4.4.2 参与约束
4.4.3 part of联系
4.5 从E-R图到关系数据库模式
4.5.1 实体的表示法
4.5.2 联系的表示法
4.5.3 在关系模型中表示IsA层次
4.5.4 参与约束的表示法
4.5.5 part of联系的表示法
*4.6 UML:一种新方法
4.6.1 在UML中表示实体
4.6.2 在UML中表示联系
4.6.3 UML中的高级建模概念
4.6.4 转换为SQL
4.7 一个经纪公司的例子
4.7.1 实体-联系设计
*4.7.2 UML设计
4.8 案例学习:学生注册系统的数据库设计
4.8.1 需求文档的数据库部分
4.8.2 数据库设计
4.9 数据建模方法的局限性
参考文献注解
习题
第5章 关系代数和SQL
5.1 关系代数:SQL的秘密
5.1.1 基本运算符
5.1.2 导出运算符
5.2 SQL的查询子语言
5.2.1 简单SQL查询
5.2.2 集合运算
5.2.3 嵌套查询
5.2.4 量化谓词
5.2.5 数据上的聚集
5.2.6 FROM子句中的连接表达式
5.2.7 一个简单的查询求值算法
5.2.8 再谈SQL中的视图
5.2.9 物化视图
5.2.10 NULL值的两难问题
5.3 在 SQL中修改关系实例
5.3.1 插入数据
5.3.2 删除数据
5.3.3 更新现有的数据
5.3.4 视图上的更新
参考文献注解
习题
第6章 用关系规范化理论设计数据库
6.1 冗余问题
6.2 分解
6.3 函数依赖
6.4 函数依赖的特性
6.5 范式
6.5.1 Boyce Codd范式
6.5.2 第三范式
6.6 分解的特性
6.6.1 无损分解和有损分解
6.6.2 保持依赖分解
6.7 BCNF分解的一个算法
6.8 3NF模式的合成
6.8.1 最小覆盖
6.8.2 通过模式合成进行3NF分解
6.8.3 通过3NF合成得到BCNF分解
6.9 第四范式
*6.10 高级4NF设计
6.10.1 MVD及它们的特性
6.10.2 4NF的设计难点
6.10.3 如何进行4NF分解
6.11 范式分解总结
6.12 案例学习:学生注册系统的模式细化
6.13 调优问题:分解还是不分解
参考文献注解
习题
第7章 触发器和主动数据库
7.1 什么是触发器
7.2 触发器处理中的语义问题
7.3 SQL∶1999中的触发器
7.4 避免链式反应
参考文献注解
习题
第8章 在应用中使用SQL
8.1 所涉及的主要问题
8.2 嵌入式SQL
8.2.1 状态处理
8.2.2 会话、连接和事务
8.2.3 执行事务
8.2.4 游标
8.2.5 服务器上的存储过程
8.3 深入完整性约束
8.4 动态SQL
8.4.1 动态SQL中的语句准备
*8.4.2 预备语句和描述符区域
8.4.3 游标
8.4.4 服务器上的存储过程
8.5 JDBC和SQLJ
8.5.1 JDBC基础
8.5.2 预备语句
8.5.3 结果集和游标
8.5.4 获得关于结果集的信息
8.5.5 状态处理
8.5.6 执行事务
8.5.7 服务器上的存储过程
8.5.8 一个例子
8.5.9 SQLJ:面向Java的语句级接口
*8.6 ODBC
8.6.1 预备语句
8.6.2 游标
8.6.3 状态处理
8.6.4 执行事务
8.6.5 服务器上的存储过程
8.6.6 一个例子
8.7 比较
参考文献注解
习题
第三部分 数据库管理系统性能优化和事务处理
第9章 物理数据组织与索引
9.1 磁盘组织
9.2 堆文件
9.3 顺序文件
9.4 索引
9.4.1 聚集索引与非聚集索引
9.4.2 稀疏索引与稠密索引
9.4.3 搜索码包含多个属性
9.5 多级索引
9.5.1 索引顺序访问
9.5.2 B+树
9.6 散列索引
9.6.1 静态散列
9.6.2 动态散列算法
9.7 特殊用途索引
9.7.1 位图索引
9.7.2 连接索引
9.8 调优问题:为应用选择索引
参考文献注解
习题
第10章 查询处理基础
10.1 查询处理概述
10.2 外部排序
10.3 投影、集合并与集合差
10.4 选择
10.4.1 简单条件的选择
10.4.2 访问路径
10.4.3 复杂条件的选择
10.5 连接
10.5.1 简单的嵌套循环连接
10.5.2 归并连接
10.5.3 散列连接
*10.6 多关系连接
10.7 聚集函数
参考文献注解
习题
第11章 查询优化概述
11.1 查询处理的架构
11.2 基于关系代数等价性的启发式优化
11.3 查询执行计划的开销估计
11.4 输出结果大小的估计
11.5 选择一个计划
参考文献注解
习题
第12章 数据库调优
12.1 磁盘高速缓存
12.2 模式调优
12.2.1 索引
12.2.2 反向规范化
12.2.3 重复组
12.2.4 分片
12.3 数据操纵语言调优
12.4 工具
12.5 管理物理资源
12.6 影响优化器
参考文献注解
习题
第13章 事务处理概述
13.1 隔离性
13.1.1 可串行性
13.1.2 两阶段加锁
13.1.3 死锁
13.1.4 关系数据库加锁
13.1.5 隔离级别
13.1.6 加锁粒度与意向锁
13.1.7 小结
13.2 原子性与持久性
13.2.1 先写式日志
13.2.2 从大容量存储器故障中恢复
13.3 实现分布式事务
13.3.1 原子性与持久性--两阶段提交协议
13.3.2 全局可串行性与死锁
13.3.3 复制
13.3.4 小结
参考文献注解
习题
第四部分 软件工程问题和文档
第14章 需求与规约
14.1 软件工程方法学
14.2 学生注册系统的需求文档
14.3 需求分析--新的问题
14.4 学生注册系统的规约说明
14.5 学生注册系统的规约文档:第III部分
14.6 软件工程过程的下一步
参考文献注解
习题
第15章 设计、编码与测试
15.1 设计过程
15.1.1 数据库设计
15.1.2 用UML状态图描述对象的行为
15.1.3 设计文档的结构
15.1.4 设计评审
15.2 测试计划
15.3 项目计划
15.4 编码
15.5 增量开发
15.6 项目管理计划
15.7 学生注册系统的设计与编码
15.7.1 完成数据库设计:完整性约束
15.7.2 注册事务的设计
15.7.3 注册事务的部分代码
参考文献注解
习题
第五部分 数据库高级主题
第16章 对象数据库介绍
16.1 关系数据模型的不足
16.2 概念对象数据模型
16.2.1 对象与值
16.2.2 类
16.2.3 类型
16.2.4 对象-关系数据库
16.3 SQL∶1999和SQL∶2003中的对象
16.3.1 行类型
16.3.2 用户定义类型
16.3.3 对象
16.3.4 查询用户定义类型
16.3.5 更新用户定义类型
16.3.6 引用类型
16.3.7 继承
16.3.8 集合类型
参考文献注解
习题
第17章 XML和Web数据介绍
17.1 半结构化数据
17.2 XML概述
17.2.1 XML元素与数据库对象
17.2.2 XML属性
17.2.3 命名空间
17.2.4 DTD
17.2.5 DTD作为数据定义语言的不足
17.3 XML模式
17.3.1 XML模式和命名空间
17.3.2 简单类型
17.3.3 复杂类型
17.3.4 整合
17.3.5 捷径:匿名类型与元素引用
17.3.6 完整性约束
17.4 XML查询语言
17.4.1 XPath:一种轻量级的XML查询语言
17.4.2 SQL/XML
参考文献注解
习题
参考文献
索引
第1章 数据库和事务概述
1.1 什么是数据库和事务
1.2 现代数据库和事务处理系统的特性
1.3 数据库和事务处理系统的实现和支持中的主要角色
1.4 决策支持系统--OLAP和OLTP
第2章 综述
2.1 案例学习:学生选课系统
2.2 关系数据库绪论
2.3 使程序成为事务--ACID属性
参考文献注解
习题
第二部分 数据库管理
第3章 关系数据模型
3.1 什么是数据模型
3.2 关系模型
3.2.1 基本概念
3.2.2 完整性约束
3.3 SQL的数据定义子语言
3.3.1 定义关系类型
3.3.2 系统目录
3.3.3 码约束
3.3.4 处理缺失信息
3.3.5 语义约束
3.3.6 用户定义的域
3.3.7 外码约束
3.3.8 反应性约束
3.3.9 数据库视图
3.3.10 修改已有定义
3.3.11 SQL模式
3.3.12 访问控制
参考文献注解
习题
第4章 用E-R图和UML构建数据库的概念模型
4.1 用E-R方法进行概念建模
4.2 实体和实体类型
4.3 联系和联系类型
4.4 概念数据建模中的高级特性
4.4.1 实体类型层次
4.4.2 参与约束
4.4.3 part of联系
4.5 从E-R图到关系数据库模式
4.5.1 实体的表示法
4.5.2 联系的表示法
4.5.3 在关系模型中表示IsA层次
4.5.4 参与约束的表示法
4.5.5 part of联系的表示法
*4.6 UML:一种新方法
4.6.1 在UML中表示实体
4.6.2 在UML中表示联系
4.6.3 UML中的高级建模概念
4.6.4 转换为SQL
4.7 一个经纪公司的例子
4.7.1 实体-联系设计
*4.7.2 UML设计
4.8 案例学习:学生注册系统的数据库设计
4.8.1 需求文档的数据库部分
4.8.2 数据库设计
4.9 数据建模方法的局限性
参考文献注解
习题
第5章 关系代数和SQL
5.1 关系代数:SQL的秘密
5.1.1 基本运算符
5.1.2 导出运算符
5.2 SQL的查询子语言
5.2.1 简单SQL查询
5.2.2 集合运算
5.2.3 嵌套查询
5.2.4 量化谓词
5.2.5 数据上的聚集
5.2.6 FROM子句中的连接表达式
5.2.7 一个简单的查询求值算法
5.2.8 再谈SQL中的视图
5.2.9 物化视图
5.2.10 NULL值的两难问题
5.3 在 SQL中修改关系实例
5.3.1 插入数据
5.3.2 删除数据
5.3.3 更新现有的数据
5.3.4 视图上的更新
参考文献注解
习题
第6章 用关系规范化理论设计数据库
6.1 冗余问题
6.2 分解
6.3 函数依赖
6.4 函数依赖的特性
6.5 范式
6.5.1 Boyce Codd范式
6.5.2 第三范式
6.6 分解的特性
6.6.1 无损分解和有损分解
6.6.2 保持依赖分解
6.7 BCNF分解的一个算法
6.8 3NF模式的合成
6.8.1 最小覆盖
6.8.2 通过模式合成进行3NF分解
6.8.3 通过3NF合成得到BCNF分解
6.9 第四范式
*6.10 高级4NF设计
6.10.1 MVD及它们的特性
6.10.2 4NF的设计难点
6.10.3 如何进行4NF分解
6.11 范式分解总结
6.12 案例学习:学生注册系统的模式细化
6.13 调优问题:分解还是不分解
参考文献注解
习题
第7章 触发器和主动数据库
7.1 什么是触发器
7.2 触发器处理中的语义问题
7.3 SQL∶1999中的触发器
7.4 避免链式反应
参考文献注解
习题
第8章 在应用中使用SQL
8.1 所涉及的主要问题
8.2 嵌入式SQL
8.2.1 状态处理
8.2.2 会话、连接和事务
8.2.3 执行事务
8.2.4 游标
8.2.5 服务器上的存储过程
8.3 深入完整性约束
8.4 动态SQL
8.4.1 动态SQL中的语句准备
*8.4.2 预备语句和描述符区域
8.4.3 游标
8.4.4 服务器上的存储过程
8.5 JDBC和SQLJ
8.5.1 JDBC基础
8.5.2 预备语句
8.5.3 结果集和游标
8.5.4 获得关于结果集的信息
8.5.5 状态处理
8.5.6 执行事务
8.5.7 服务器上的存储过程
8.5.8 一个例子
8.5.9 SQLJ:面向Java的语句级接口
*8.6 ODBC
8.6.1 预备语句
8.6.2 游标
8.6.3 状态处理
8.6.4 执行事务
8.6.5 服务器上的存储过程
8.6.6 一个例子
8.7 比较
参考文献注解
习题
第三部分 数据库管理系统性能优化和事务处理
第9章 物理数据组织与索引
9.1 磁盘组织
9.2 堆文件
9.3 顺序文件
9.4 索引
9.4.1 聚集索引与非聚集索引
9.4.2 稀疏索引与稠密索引
9.4.3 搜索码包含多个属性
9.5 多级索引
9.5.1 索引顺序访问
9.5.2 B+树
9.6 散列索引
9.6.1 静态散列
9.6.2 动态散列算法
9.7 特殊用途索引
9.7.1 位图索引
9.7.2 连接索引
9.8 调优问题:为应用选择索引
参考文献注解
习题
第10章 查询处理基础
10.1 查询处理概述
10.2 外部排序
10.3 投影、集合并与集合差
10.4 选择
10.4.1 简单条件的选择
10.4.2 访问路径
10.4.3 复杂条件的选择
10.5 连接
10.5.1 简单的嵌套循环连接
10.5.2 归并连接
10.5.3 散列连接
*10.6 多关系连接
10.7 聚集函数
参考文献注解
习题
第11章 查询优化概述
11.1 查询处理的架构
11.2 基于关系代数等价性的启发式优化
11.3 查询执行计划的开销估计
11.4 输出结果大小的估计
11.5 选择一个计划
参考文献注解
习题
第12章 数据库调优
12.1 磁盘高速缓存
12.2 模式调优
12.2.1 索引
12.2.2 反向规范化
12.2.3 重复组
12.2.4 分片
12.3 数据操纵语言调优
12.4 工具
12.5 管理物理资源
12.6 影响优化器
参考文献注解
习题
第13章 事务处理概述
13.1 隔离性
13.1.1 可串行性
13.1.2 两阶段加锁
13.1.3 死锁
13.1.4 关系数据库加锁
13.1.5 隔离级别
13.1.6 加锁粒度与意向锁
13.1.7 小结
13.2 原子性与持久性
13.2.1 先写式日志
13.2.2 从大容量存储器故障中恢复
13.3 实现分布式事务
13.3.1 原子性与持久性--两阶段提交协议
13.3.2 全局可串行性与死锁
13.3.3 复制
13.3.4 小结
参考文献注解
习题
第四部分 软件工程问题和文档
第14章 需求与规约
14.1 软件工程方法学
14.2 学生注册系统的需求文档
14.3 需求分析--新的问题
14.4 学生注册系统的规约说明
14.5 学生注册系统的规约文档:第III部分
14.6 软件工程过程的下一步
参考文献注解
习题
第15章 设计、编码与测试
15.1 设计过程
15.1.1 数据库设计
15.1.2 用UML状态图描述对象的行为
15.1.3 设计文档的结构
15.1.4 设计评审
15.2 测试计划
15.3 项目计划
15.4 编码
15.5 增量开发
15.6 项目管理计划
15.7 学生注册系统的设计与编码
15.7.1 完成数据库设计:完整性约束
15.7.2 注册事务的设计
15.7.3 注册事务的部分代码
参考文献注解
习题
第五部分 数据库高级主题
第16章 对象数据库介绍
16.1 关系数据模型的不足
16.2 概念对象数据模型
16.2.1 对象与值
16.2.2 类
16.2.3 类型
16.2.4 对象-关系数据库
16.3 SQL∶1999和SQL∶2003中的对象
16.3.1 行类型
16.3.2 用户定义类型
16.3.3 对象
16.3.4 查询用户定义类型
16.3.5 更新用户定义类型
16.3.6 引用类型
16.3.7 继承
16.3.8 集合类型
参考文献注解
习题
第17章 XML和Web数据介绍
17.1 半结构化数据
17.2 XML概述
17.2.1 XML元素与数据库对象
17.2.2 XML属性
17.2.3 命名空间
17.2.4 DTD
17.2.5 DTD作为数据定义语言的不足
17.3 XML模式
17.3.1 XML模式和命名空间
17.3.2 简单类型
17.3.3 复杂类型
17.3.4 整合
17.3.5 捷径:匿名类型与元素引用
17.3.6 完整性约束
17.4 XML查询语言
17.4.1 XPath:一种轻量级的XML查询语言
17.4.2 SQL/XML
参考文献注解
习题
参考文献
索引
Michael Kifer毕业于莫斯科大学数学系,曾任教于多伦多大学。他的研究领域包括数据库系统、知识表示和Web信息系统,在这些领域著述甚丰,他是著名的知识表示语言F-logic的发明者。
《数据库系统:面向应用的方法(第2版)》主要讲解数据库设计、实现及其应用的基本原理,侧重于介绍如何利用数据库来创建应用程序,而不是如何创建数据库管理系统本身。书中反映了数据库领域研究的最新进展,包括最新的SQL标准、UML、XML、面向对象数据库和数据库性能调优等。本书的主要内容包括关系数据模型、用ER图和UML建模、关系代数和SQL、数据库设计、SQL DBMS、查询处理和优化、数据库调优、事务处理以及与事务处理的实现有关的软件工程问题等。
本书适合作为高等院校计算机及相关专业本科生和研究生数据库课程的教材。
本书适合作为高等院校计算机及相关专业本科生和研究生数据库课程的教材。
比价列表
公众号、微信群

微信公众号

实时获取购书优惠