数据库系统设计与原理

数据库系统设计与原理
作 者: 冯建华 周立柱
出版社: 清华大学出版社
丛编项: 清华大学计算机系列教材
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 数据库系统
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  周立柱,清华大学计算机系教授,博士生导师。1970年毕业于清华大学自动控制系,1983年在加拿大多伦多大学获计算机科学硕士学位。目前是国家教育部科技委委员;国家教育部计算机专业教学指导委员会副主任委员;中国计算机学会数据库专业委员会副主任委员。目前主要从事的研究方向为:数据库系统,数字化图书馆,Web与海量数据处理技术等。

内容简介

数据库系统设计与原理本书主要讲述数据库系统的设计与原理,第1章到第6章主要介绍数据库的设计内容和设计方法,包括数据库的概念设计、逻辑设计和物理设计,相关的模型主要介绍了实体-联系模型和关系模型。第7章和第8章主要介绍数据库的底层存储结构和索引的细节,侧重于文件组织、文件结构和索引结构。第9章到第11章主要介绍数据库管理系统的核心技术:包括查询处理、事务管理、并发控制和故障恢复等。第12章和第13章主要介绍数据库管理系统体系结构的扩展和数据库技术的研究进展以及当前出现的一些新的有关数据库研究的课题和应用领域。本书可作为高等院校计算机专业本科生的数据库课程的教材,也可以作为其他科技人员和高校教师的参考书。冯建华,男,山西运城人,1967年8月出生,副教授,现在清华大学计算机科学与技术系软件研究所工作。1986年从运城康杰中学考入清华大学计算机科学与技术系,1991年免试推荐直读清华大学计算机科学与技术系工学硕士研究生,1993年硕士毕业后留校工作至今,期间曾作为技术顾问在联合国国际原子能机构(1AEA,位于奥地利首都维也纳)工作近两年时间。现正在攻读清华大学计算机科学与技术系在职博士学位。主要研究方向为:数据库、数据仓储、XMI。数据库和WWW环境下的信息处理。曾参加了两项国家863项目的开发工作,负责一项国家973项目的子课题"万维网上的数据集成、数据仓储和知识发现的有效算法与软件系统"的研究工作。目前正在率领一个小组开发NativeXMLDatabaseManagementSystem。参与了计算机系两个大项目:"玉溪卷烟厂信息管理与决策支持系统"和"联合国IAEA技术合作局工作流系统"的设计与开发工作。目前已在国内核心期刊和国际会议上发表论文3多篇,其中被EI收录的十多篇。完成的数据库教材主要有《数据库系统设计与原理》和《SQl。Server数据库原理:设计与实现》。周立柱,清华大学计算机系教授,博士生导师。197年毕业于清华大学自动控制系,1983年在加拿大多伦多大学获计算机科学硕士学位。目前是国家教育部科技委委员;国家教育部计算机专业教学指导委员会副主任委员;中国计算机学会数据库专业委员会副主任委员。目前主要从事的研究方向为:数据库系统,数字化图书馆,Web与海量数据处理技术等。序清华大学计算机系列教材已经出版发行了近3种,包括计算机专业的基础数学、专业技术基础和专业等课程的教材;覆盖了计算机专业大...

图书目录

1 引言

1.1 数据库管理系统的产生

1.1.1 数据管理的进展

1.1.2 文件处理系统

1.1.3 数据库管理系统

1.2 数据视图

1.2.1 数据抽象

1.2.2 实例和模式

1.2.3 数据独立性

1.3 数据模型

1.3.1 数据模型的分类

1.3.2 实体—联系模型

1.3.3 面向对象模型

1.3.4 关系模型

1.3.5 网状模型

1.3.6 层次模型

1.4 数据库语言

1.4.1 数据定义语言

1.4.2 数据操纵语言

1.5 事务管理

1.5.1 问题的提出

1.5.2 事务的定义

1.5.3 事务管理器

1.5.4 并发控制管理器

1.6 存储管理

1.7 数据库用户

1.8 数据库管理系统的总体结构

1.8.1 查询处理器部件

1.8.2 存储管理器部件

1.8.3 必要的数据结构

1.9 商业数据库管理系统

1.9.1 Oracle数据库系统

1.9.2 Sybase数据库系统

1.9.3 Microsoft与IBM数据库系统

小结

习题

2 实体联系模型

2.1 基本概念

2.1.1 实体集与属性

2.1.2 属性类型的划分

2.1.3 联系集与属性

2.2 E-R模型设计中的问题

2.2.1 用实体集还是用属性

2.2.2 用实体集还是用联系集

2.2.3 用二元联系集还是n元联系集

2.3 映射约束

2.3.1 映射基数

2.3.2 映射基数与联系集的属性位置

2.3.3 存在依赖

2.4 码

2.4.1 码的作用

2.4.2 实体集的码

2.4.3 联系集的码

2.5 实体—联系图

2.5.1 E-R图的主要构件

2.5.2 E-R图的作用与好处

2.5.3 E-R图举例

2.6 弱实体集

2.6.1 基本概念

2.6.2 分辨符

2.6.3 弱实体集的E-R图

2.6.4 数据库设计中弱实体集的处理.

2.7 扩展E-R特性

2.7.1 特殊化

2.7.2 概括

2.7.3 聚集

2.8 数据库的E-R模式设计

2.8.i E-R模式设计的主要任务

2.8.2 E-R模式设计中的问题

2.9 将E-R模式转换为表

2.9.1 为什么要将E-R模式转换为表

2.9.2 用表表示强实体集

2.9.3 用表表示弱实体集

2.9.4 用表表示联系集

2.9.5 用表表示多值属性

2.9.6 用表表示概括

2.9.7 用表表示聚集

小结

习题

3 关系模型

3.1 关系数据库的结构

3.1.1 基本概念

3.1.2 数据库模式

3.1.3 码

3.1.4 查询语言

3.2 关系代数

3.2.1 选择运算

3.2.2 投影运算

3.2.3 并运算

3.2.4 集合差运算

3.2.5 笛卡儿积运算

3.2.6 命名运算

3.2.7 关系代数的形式化定义

3.2.8 集合交运算

3.2.9 自然连接运算

3.2.10 除运算

3.2.11 赋值运算

3.3 关系演算

3.3.1 元组关系演算

3.3.2 域关系演算

3.3.3 表达式的安全性与等价性

3.4 扩展关系代数运算

3.4.1 广义投影

3.4.2 外连接

3.4.3 聚集函数

3.4.4 分组聚集

3.5 数据库的修改

3.5.1 删除

3.5.2 插入

3.5.3 更新

3.6 视图

3.6.1 什么是视图

3.6.2 视图的使用

3.6.3 实体化视图

小结

习题

4 SQL

4.1 背景

4.1.1 SQL的起源

4.1.2 SQL的标准

4.1.3 结构化查询语言SQL

4.2 基本结构

4.2.1 SeleCt—rOm—Where

4.2.2 更名操作

4.2.3 字符串操作

4.3 集合操作

4.4 聚集函数

4.4.1 SQL中的聚集函数

4.4.2 分组聚集

4.5 空值

4.5.1 空值的测试

4.5.2 空值对SQL表达式的影响

4.6 嵌套子查询

4.6.1 集合成员资格的确认

4.6.2 集合的比较

4.6.3 集合基数的测试

4.? 派生关系

4.8 视图

4.9 数据库的修改

4.9.1 删除

4.9.2 插入

4.9.3 更新

4.10 关系的连接

4.10.1 连接类型和条件

4.10.2 举例

4.11 SQL DDL

4.11.1 SQL中的域类型

4.11.2 SQL的模式定义

4.11.3 模式的删除与修改

4.12 嵌入式SQL

4.13 其他SQL特性

小结

习题

5 完整性约束与模式分解

5.1 域约束

5.2 参照完整性

5.2.1 基本概念

5.2.2 E—R模型中的参照完整性

5.2.3 数据库的修改

5.2.4 SQL中的参照完整性

5.3 断言

5.4 触发器

5.5 函数依赖

5.5.1 基本概念

5。5.2 举例

5.5.3 函数依赖集的闭包

5.5.4 ArmstrOng公理

5.6 码与范式

5.7 关系数据库设计

5.8 模式分解

5.8.1 问题的提出

5.8.2 无损连接分解

5.8.3 规范化

小结

习题

6 数据库的物理设计

6.1 数据库设计的六阶段

6.1.1 数据库的设计过程

6.1.2 数据库的三级模式

6.2 数据库的物理组织

6.3 数据库的物理设计

6.4 数据的存储结构

6.5 数据的存取路径

6.6 物理设计的相关因素

小结

习题

7 存储结构和文件结构

7.1 物理存储介质:

7.1.1 三级存储体系

7.1.2 磁盘

7.1.3 RAID

7.1.4 第三级存储

7.2 文件组织

7.2.1 定长记录

7.2.2 变长记录

7.3 文件中记录的组织

7.3.1 堆文件组织

7.3.2 /顷序文件组织

7.3.3 散列文件组织

7.3.4 簇集文件组织

7.4 数据字典的存储

7.4.1 关系的元数据

7.4.2 用户的元数据

7.4.3 统计数据和描述数据

7.4.4 索引的元数据

7.4.5 系统表

小结

习题

8 索引和散列

8.1 基本概念

8.1.1 基本的索引结构

8.1.2 评价索引的标准

8.2 顺序索引

8.2.1 索引顺序文件

8.2.2 多级索引

8.2.3 索引的更新

8.2.4 辅助索引

8.3 B+树索引文件

8.3.1 B+树索引结构

8.3.2 B+树索引的缺点

8.3.3 B+树上的查询

8.3.4 B+树的更新

8.3.5 B+树文件组织

8.4 散列文件组织

8.4.1 散列文件的操作

8.4.2 散列函数

8.4.3 桶溢出控制

8.5 散列索引

8.6 J顷序索引和散列的比较

8.7 SQL中索引的定义

8.8 多码访问

小结

习题

9 查询处理

9.1 查询处理的过程

9.1.1 语法分析与翻译器

9.1.2 查询优化器

9.1.3 执行引擎

9.2 关系代数表达式的转换

9.2.1 等价规划

9.2。2 表达式转换举例

9.3 查询代价的度量

9.3.1 查询处理的代价

9.3.2 代价模型

9.3.3 用于估计代价的统计信息

9.4 实现关系运算的算法代价

9.4.1 选择运算

9.4.2 连接运算

9.5 表达式的求值方法

9.5.1 实体化计算方法

9.5.2 流水线计算方法

9.6 查询优化

9.7 查询优化器的构造

小结

习题

10 事务

10.1 事务的概念

10.1.1 背景知识

10.1.2 事务的特性

10.2 事务的状态

10.2.1 基本术语

10.2.2 抽象事务模型

10.3 原子性和持久性的实现

10.4 事务的并发执行

10.4.1 为什么要并发执行

10.4.2 调度

10.5 调度的可串行化

10.5.1 调度中指令的可交换性

10.5.2 冲突可串行化

10.5.3 视图可串行化。;.

10.6 调度的可恢复性

10.7 隔离性的实现

10.8 SQL中事务的定义

10.9 冲突可串行化的判定

10.9.1 判定方法

10.9.2 优先图

10.9.3 举例

小结

习题

11 并发控制

11.1 封锁协议

11.1.1 锁

11.1.2 基本的封锁协议

11.1.3 基本封锁协议的问题

11.1.4 两阶段封锁协议

11.1.5 加强的两阶段封锁协议

11.1.6 商用DBMS中封锁协议的实现

11.2 树形协议

11.2.1 树形协议的提出

11.2.2 树形协议内容

11.3 时间戳排序协议

11.3.1 时间戳

11.3.2 时间戳排序协议

11.3.3 ThOmas写规则

11.4 有效性检查协议

11.5 多粒度机制

11.6 多版本机制

11.7 死锁处理

11.7.1 死锁问题

11.7.2 死锁预防

11.7.3 死锁检狈0与恢复

11.8 插入与删除

11.8.1 删除

11.8.2 插入

小结

习题

12 数据库系统的体系结构

12.1 集中式系统

12.2 客户川艮务器系统

12.3 并行系统

12.4 分布式系统

小结

习题

13 数据仓库

13.1 数据库技术的发展

13.2 数据仓库

13.2.1 数据仓库的概念

13.2.2 数据仓库的结构

13.2.3 数据仓库的特点

13.3 数据集市

13.4 数据仓库的开发过程

13.5 基于数据仓库的决策支持系统的解决方案

小结

习题

附录 清华大学本科生课程概况

参考文献