图书介绍

数据库系统概念 原书第6版pdf电子书版本下载

数据库系统概念  原书第6版
  • (美)西尔伯沙茨著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111375296
  • 出版时间:2012
  • 标注页数:805页
  • 文件大小:227MB
  • 文件页数:834页
  • 主题词:数据库系统-高等学校-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页 直链下载[便捷但速度慢]   [在线试读本书]   [在线获取解压码]

下载说明

数据库系统概念 原书第6版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 引言 1

1.1 数据库系统的应用 1

1.2 数据库系统的目标 2

1.3 数据视图 4

1.3.1 数据抽象 4

1.3.2 实例和模式 5

1.3.3 数据模型 5

1.4 数据库语言 6

1.4.1 数据操纵语言 6

1.4.2 数据定义语言 6

1.5 关系数据库 7

1.5.1 表 7

1.5.2 数据操纵语言 8

1.5.3 数据定义语言 8

1.5.4 来自应用程序的数据库访问 8

1.6 数据库设计 9

1.6.1 设计过程 9

1.6.2 大学机构的数据库设计 9

1.6.3 实体-联系模型 10

1.6.4 规范化 11

1.7 数据存储和查询 11

1.7.1 存储管理器 12

1.7.2 查询处理器 12

1.8 事务管理 12

1.9 数据库体系结构 13

1.10 数据挖掘与信息检索 15

1.11 特种数据库 15

1.11.1 基于对象的数据模型 15

1.11.2 半结构化数据模型 16

1.12 数据库用户和管理员 16

1.12.1 数据库用户和用户界面 16

1.12.2 数据库管理员 16

1.13 数据库系统的历史 17

1.14 总结 18

术语回顾 19

实践习题 19

习题 19

工具 20

文献注解 20

第一部分 关系数据库 22

第2章 关系模型介绍 22

2.1 关系数据库的结构 22

2.2 数据库模式 23

2.3 码 24

2.4 模式图 25

2.5 关系查询语言 26

2.6 关系运算 27

2.7 总结 28

术语回顾 29

实践习题 29

习题 30

文献注解 30

第3章 SQL 31

3.1 SQL查询语言概览 31

3.2 SQL数据定义 32

3.2.1 基本类型 32

3.2.2 基本模式定义 32

3.3 SQL查询的基本结构 34

3.3.1 单关系查询 34

3.3.2 多关系查询 35

3.3.3 自然连接 38

3.4 附加的基本运算 40

3.4.1 更名运算 40

3.4.2 字符串运算 41

3.4.3 select子句中的属性说明 42

3.4.4 排列元组的显示次序 42

3.4.5 where子句谓词 42

3.5 集合运算 43

3.5.1 并运算 43

3.5.2 交运算 44

3.5.3 差运算 44

3.6 空值 45

3.7 聚集函数 46

3.7.1 基本聚集 46

3.7.2 分组聚集 46

3.7.3 having子句 47

3.7.4 对空值和布尔值的聚集 48

3.8 嵌套子查询 48

3.8.1 集合成员资格 49

3.8.2 集合的比较 49

3.8.3 空关系测试 50

3.8.4 重复元组存在性测试 51

3.8.5 from子句中的子查询 52

3.8.6 with子句 53

3.8.7 标量子查询 53

3.9 数据库的修改 54

3.9.1 删除 54

3.9.2 插入 55

3.9.3 更新 56

3.10 总结 57

术语回顾 58

实践习题 58

习题 60

工具 61

文献注解 62

第4章 中级SQL 63

4.1 连接表达式 63

4.1.1 连接条件 63

4.1.2 外连接 64

4.1.3 连接类型和条件 67

4.2 视图 67

4.2.1 视图定义 68

4.2.2 SQL查询中使用视图 68

4.2.3 物化视图 69

4.2.4 视图更新 69

4.3 事务 71

4.4 完整性约束 71

4.4.1 单个关系上的约束 72

4.4.2 not null约束 72

4.4.3 unique约束 72

4.4.4 check子句 72

4.4.5 参照完整性 73

4.4.6 事务中对完整性约束的违反 75

4.4.7 复杂check条件与断言 75

4.5 SQL的数据类型与模式 76

4.5.1 SQL中的日期和时间类型 76

4.5.2 默认值 77

4.5.3 创建索引 77

4.5.4 大对象类型 77

4.5.5 用户定义的类型 78

4.5.6 create table的扩展 79

4.5.7 模式、目录与环境 80

4.6 授权 80

4.6.1 权限的授予与收回 81

4.6.2 角色 82

4.6.3 视图的授权 82

4.6.4 模式的授权 83

4.6.5 权限的转移 83

4.6.6 权限的收回 84

4.7 总结 85

术语回顾 85

实践习题 85

习题 87

文献注解 87

第5章 高级SQL 88

5.1 使用程序设计语言访问数据库 88

5.1.1 JDBC 89

5.1.2 ODBC 93

5.1.3 嵌入式SQL 95

5.2 函数和过程 97

5.2.1 声明和调用SQL函数和过程 98

5.2.2 支持过程和函数的语言构造 99

5.2.3 外部语言过程 101

5.3 触发器 102

5.3.1 对触发器的需求 102

5.3.2 SQL中的触发器 102

5.3.3 何时不用触发器 105

5.4 递归查询 106

5.4.1 用迭代来计算传递闭包 106

5.4.2 SQL中的递归 107

5.5 高级聚集特性 109

5.5.1 排名 109

5.5.2 分窗 110

5.6 OLAP 112

5.6.1 联机分析处理 112

5.6.2 交叉表与关系表 114

5.6.3 SQL中的OLAP 116

5.7 总结 118

术语回顾 118

实践习题 119

习题 120

工具 121

文献注解 122

第6章 形式化关系查询语言 123

6.1 关系代数 123

6.1.1 基本运算 123

6.1.2 关系代数的形式化定义 128

6.1.3 附加的关系代数运算 129

6.1.4 扩展的关系代数运算 132

6.2 元组关系演算 135

6.2.1 查询示例 135

6.2.2 形式化定义 137

6.2.3 表达式的安全性 137

6.2.4 语言的表达能力 138

6.3 域关系演算 138

6.3.1 形式化定义 138

6.3.2 查询的例子 138

6.3.3 表达式的安全性 139

6.3.4 语言的表达能力 140

6.4 总结 140

术语回顾 140

实践习题 140

习题 142

文献注解 143

第二部分 数据库设计 146

第7章 数据库设计和E-R模型 146

7.1 设计过程概览 146

7.1.1 设计阶段 146

7.1.2 设计选择 147

7.2 实体-联系模型 148

7.2.1 实体集 148

7.2.2 联系集 148

7.2.3 属性 150

7.3 约束 151

7.3.1 映射基数 152

7.3.2 参与约束 152

7.3.3 码 153

7.4 从实体集中删除冗余属性 153

7.5 实体-联系图 155

7.5.1 基本结构 155

7.5.2 映射基数 156

7.5.3 复杂的属性 156

7.5.4 角色 157

7.5.5 非二元的联系集 157

7.5.6 弱实体集 157

7.5.7 大学的E-R图 159

7.6 转换为关系模式 159

7.6.1 具有简单属性的强实体集的表示 160

7.6.2 具有复杂属性的强实体集的表示 160

7.6.3 弱实体集的表示 161

7.6.4 联系集的表示 161

7.7 实体-联系设计问题 163

7.7.1 用实体集还是用属性 163

7.7.2 用实体集还是用联系集 164

7.7.3 二元还是n元联系集 165

7.7.4 联系属性的布局 165

7.8 扩展的E-R特性 166

7.8.1 特化 166

7.8.2 概化 167

7.8.3 属性继承 168

7.8.4 概化上的约束 168

7.8.5 聚集 169

7.8.6 转换为关系模式 170

7.9 数据建模的其他表示法 171

7.9.1 E-R图的其他表示法 171

7.9.2 统一建模语言UML 173

7.10 数据库设计的其他方面 174

7.10.1 数据约束和关系数据库设计 174

7.10.2 使用需求:查询、性能 175

7.10.3 授权需求 175

7.10.4 数据流、工作流 175

7.10.5 数据库设计的其他问题 176

7.11 总结 176

术语回顾 177

实践习题 177

习题 179

工具 180

文献注解 180

第8章 关系数据库设计 181

8.1 好的关系设计的特点 181

8.1.1 设计选择:更大的模式 181

8.1.2 设计选择:更小的模式 182

8.2 原子域和第一范式 183

8.3 使用函数依赖进行分解 184

8.3.1 码和函数依赖 185

8.3.2 Boyce-Codd范式 186

8.3.3 BCNF和保持依赖 187

8.3.4 第三范式 188

8.3.5 更高的范式 189

8.4 函数依赖理论 189

8.4.1 函数依赖集的闭包 189

8.4.2 属性集的闭包 191

8.4.3 正则覆盖 191

8.4.4 无损分解 193

8.4.5 保持依赖 194

8.5 分解算法 195

8.5.1 BCNF分解 195

8.5.2 3NF分解 197

8.5.3 3NF算法的正确性 198

8.5.4 BCNF和3NF的比较 198

8.6 使用多值依赖的分解 199

8.6.1 多值依赖 199

8.6.2 第四范式 201

8.6.3 4NF分解 201

8.7 更多的范式 202

8.8 数据库设计过程 202

8.8.1 E-R模型和规范化 202

8.8.2 属性和联系的命名 203

8.8.3 为了性能去规范化 203

8.8.4 其他设计问题 204

8.9 时态数据建模 204

8.10 总结 206

术语回顾 206

实践习题 206

习题 208

文献注解 209

第9章 应用设计和开发 210

9.1 应用程序和用户界面 210

9.2 Web基础 211

9.2.1 统一资源定位符 211

9.2.2 超文本标记语言 211

9.2.3 Web服务器和会话 213

9.3 servlet和JSP 214

9.3.1 一个servlet的例子 215

9.3.2 servlet会话 216

9.3.3 servlet的生命周期 216

9.3.4 servlet支持 216

9.3.5 服务器端脚本 217

9.3.6 客户端脚本 218

9.4 应用架构 219

9.4.1 业务逻辑层 220

9.4.2 数据访问层和对象-关系映射 220

9.4.3 Web服务 222

9.4.4 断连操作 222

9.5 快速应用开发 222

9.5.1 构建用户界面的工具 223

9.5.2 Web应用框架 224

9.5.3 报表生成器 224

9.6 应用程序性能 225

9.6.1 利用缓存减少开销 225

9.6.2 并行处理 226

9.7 应用程序安全性 226

9.7.1 SQL注入 226

9.7.2 跨站点脚本和请求伪造 227

9.7.3 密码泄露 227

9.7.4 应用程序认证 228

9.7.5 应用级授权 229

9.7.6 审计追踪 230

9.7.7 隐私 230

9.8 加密及其应用 231

9.8.1 加密技术 231

9.8.2 数据库中的加密支持 233

9.8.3 加密和认证 233

9.9 总结 234

术语回顾 235

实践习题 235

习题 236

项目建议 237

工具 239

文献注解 239

第三部分 数据存储和查询 242

第10章 存储和文件结构 242

10.1 物理存储介质概述 242

10.2 磁盘和快闪存储器 244

10.2.1 磁盘的物理特性 244

10.2.2 磁盘性能的度量 245

10.2.3 磁盘块访问的优化 246

10.2.4 快闪存储 248

10.3 RAID 249

10.3.1 通过冗余提高可靠性 249

10.3.2 通过并行提高性能 250

10.3.3 RAID级别 250

10.3.4 RAID级别的选择 253

10.3.5 硬件问题 253

10.3.6 其他的RAID应用 254

10.4 第三级存储 254

10.4.1 光盘 254

10.4.2 磁带 255

10.5 文件组织 255

10.5.1 定长记录 256

10.5.2 变长记录 257

10.6 文件中记录的组织 259

10.6.1 顺序文件组织 259

10.6.2 多表聚簇文件组织 260

10.7 数据字典存储 261

10.8 数据库缓冲区 262

10.8.1 缓冲区管理器 262

10.8.2 缓冲区替换策略 263

10.9 总结 264

术语回顾 265

实践习题 265

习题 266

文献注解 267

第11章 索引与散列 268

11.1 基本概念 268

11.2 顺序索引 269

11.2.1 稠密索引和稀疏索引 269

11.2.2 多级索引 270

11.2.3 索引的更新 272

11.2.4 辅助索引 272

11.2.5 多码上的索引 273

11.3 B+树索引文件 274

11.3.1 B+树的结构 274

11.3.2 B+树的查询 275

11.3.3 B+树的更新 277

11.3.4 不唯一的搜索码 281

11.3.5 B+树更新的复杂性 282

11.4 B+树扩展 283

11.4.1 B+树文件组织 283

11.4.2 辅助索引和记录重定位 284

11.4.3 字符串上的索引 284

11.4.4 B+树索引的批量加载 285

11.4.5 B树索引文件 285

11.4.6 闪存 287

11.5 多码访问 287

11.5.1 使用多个单码索引 287

11.5.2 多码索引 287

11.5.3 覆盖索引 288

11.6 静态散列 288

11.6.1 散列函数 289

11.6.2 桶溢出处理 290

11.6.3 散列索引 291

11.7 动态散列 292

11.7.1 数据结构 292

11.7.2 查询和更新 293

11.7.3 静态散列与动态散列比较 297

11.8 顺序索引和散列的比较 297

11.9 位图索引 298

11.9.1 位图索引结构 298

11.9.2 位图操作的高效实现 299

11.9.3 位图和B+树 300

11.10 SQL中的索引定义 300

11.11 总结 300

术语回顾 301

实践习题 302

习题 303

文献注解 304

第12章 查询处理 305

12.1 概述 305

12.2 查询代价的度量 306

12.3 选择运算 307

12.3.1 使用文件扫描和索引的选择 307

12.3.2 涉及比较的选择 309

12.3.3 复杂选择的实现 309

12.4 排序 310

12.4.1 外部排序归并算法 310

12.4.2 外部排序归并的代价分析 311

12.5 连接运算 312

12.5.1 嵌套循环连接 312

12.5.2 块嵌套循环连接 313

12.5.3 索引嵌套循环连接 314

12.5.4 归并连接 314

12.5.5 散列连接 317

12.6 其他运算 320

12.6.1 去除重复 320

12.6.2 投影 320

12.6.3 集合运算 320

12.6.4 外连接 321

12.6.5 聚集 322

12.7 表达式计算 322

12.7.1 物化 322

12.7.2 流水线 323

12.8 总结 325

术语回顾 326

实践习题 326

习题 327

文献注解 328

第13章 查询优化 329

13.1 概述 329

13.2 关系表达式的转换 330

13.2.1 等价规则 331

13.2.2 转换的例子 333

13.2.3 连接的次序 334

13.2.4 等价表达式的枚举 335

13.3 表达式结果集统计大小的估计 335

13.3.1 目录信息 335

13.3.2 选择运算结果大小的估计 336

13.3.3 连接运算结果大小的估计 338

13.3.4 其他运算的结果集大小的估计 339

13.3.5 不同取值个数的估计 339

13.4 执行计划选择 340

13.4.1 基于代价的连接顺序选择 340

13.4.2 采用等价规则的基于代价的优化器 342

13.4.3 启发式优化 342

13.4.4 嵌套子查询的优化 344

13.5 物化视图 345

13.5.1 视图维护 346

13.5.2 增量的视图维护 346

13.5.3 查询优化和物化视图 348

13.5.4 物化视图和索引选择 348

13.6 查询优化中的高级话题 348

13.6.1 top-K优化 348

13.6.2 连接极小化 349

13.6.3 更新的优化 349

13.6.4 多查询优化和共享式扫描 349

13.6.5 参数化查询优化 350

13.7 总结 350

术语回顾 351

实践习题 351

习题 353

文献注解 353

第四部分 事务管理 356

第14章 事务 356

14.1 事务概念 356

14.2 一个简单的事务模型 357

14.3 存储结构 358

14.4 事务原子性和持久性 359

14.5 事务隔离性 360

14.6 可串行化 363

14.7 事务隔离性和原子性 366

14.7.1 可恢复调度 366

14.7.2 无级联调度 366

14.8 事务隔离性级别 366

14.9 隔离性级别的实现 368

14.9.1 锁 368

14.9.2 时间戳 368

14.9.3 多版本和快照隔离 368

14.10 事务的SQL语句表示 369

14.11 总结 370

术语回顾 371

实践习题 371

习题 372

文献注解 372

第15章 并发控制 373

15.1 基于锁的协议 373

15.1.1 锁 373

15.1.2 锁的授予 375

15.1.3 两阶段封锁协议 376

15.1.4 封锁的实现 377

15.1.5 基于图的协议 378

15.2 死锁处理 379

15.2.1 死锁预防 379

15.2.2 死锁检测与恢复 380

15.3 多粒度 381

15.4 基于时间戳的协议 383

15.4.1 时间戳 383

15.4.2 时间戳排序协议 384

15.4.3 Thomas写规则 385

15.5 基于有效性检查的协议 386

15.6 多版本机制 387

15.6.1 多版本时间戳排序 387

15.6.2 多版本两阶段封锁 388

15.7 快照隔离 388

15.7.1 更新事务的有效性检验步骤 389

15.7.2 串行化问题 389

15.8 插入操作、删除操作与谓词读 391

15.8.1 删除 391

15.8.2 插入 392

15.8.3 谓词读和幻象现象 392

15.9 实践中的弱一致性级别 394

15.9.1 二级一致性 394

15.9.2 游标稳定性 394

15.9.3 跨越用户交互的并发控制 394

15.10 索引结构中的并发 395

15.11 总结 397

术语回顾 399

实践习题 399

习题 401

文献注解 402

第16章 恢复系统 403

16.1 故障分类 403

16.2 存储器 403

16.2.1 稳定存储器的实现 404

16.2.2 数据访问 404

16.3 恢复与原子性 405

16.3.1 日志记录 406

16.3.2 数据库修改 407

16.3.3 并发控制和恢复 407

16.3.4 事务提交 408

16.3.5 使用日志来重做和撤销事务 408

16.3.6 检查点 410

16.4 恢复算法 411

16.4.1 事务回滚 411

16.4.2 系统崩溃后的恢复 411

16.5 缓冲区管理 412

16.5.1 日志记录缓冲 412

16.5.2 数据库缓冲 413

16.5.3 操作系统在缓冲区管理中的作用 414

16.5.4 模糊检查点 414

16.6 非易失性存储器数据丢失的故障 415

16.7 锁的提前释放和逻辑undo操作 415

16.7.1 逻辑操作 416

16.7.2 逻辑undo日志记录 416

16.7.3 有逻辑undo的事务回滚 417

16.7.4 逻辑undo中的并发问题 419

16.8 ARIES 419

16.8.1 数据结构 419

16.8.2 恢复算法 421

16.8.3 其他特性 422

16.9 远程备份系统 423

16.10 总结 424

术语回顾 425

实践习题 426

习题 427

文献注解 428

第五部分 系统体系结构 430

第17章 数据库系统体系结构 430

17.1 集中式与客户-服务器体系结构 430

17.1.1 集中式系统 430

17.1.2 客户-服务器系统 431

17.2 服务器系统体系结构 432

17.2.1 事务服务器 432

17.2.2 数据服务器 434

17.2.3 基于云的服务器 435

17.3 并行系统 435

17.3.1 加速比和扩展比 435

17.3.2 互连网络 437

17.3.3 并行数据库体系结构 437

17.4 分布式系统 439

17.4.1 分布式数据库示例 440

17.4.2 实现问题 441

17.5 网络类型 442

17.5.1 局域网 442

17.5.2 广域网 443

17.6 总结 443

术语回顾 444

实践习题 444

习题 445

文献注解 445

第18章 并行数据库 447

18.1 引言 447

18.2 I/O并行 447

18.2.1 划分技术 447

18.2.2 划分技术比较 448

18.2.3 偏斜处理 449

18.3 查询间并行 450

18.4 查询内并行 450

18.5 操作内并行 451

18.5.1 并行排序 451

18.5.2 并行连接 452

18.5.3 其他关系运算 455

18.5.4 运算的并行计算代价 455

18.6 操作间并行 456

18.6.1 流水线并行 456

18.6.2 独立并行 456

18.7 查询优化 456

18.8 并行系统设计 457

18.9 多核处理器的并行性 458

18.9.1 并行性与原始速度 458

18.9.2 高速缓冲存储器和多线程 458

18.9.3 适应现代体系架构的数据库系统设计 459

18.10 总结 459

术语回顾 460

实践习题 460

习题 461

文献注解 462

第19章 分布式数据库 463

19.1 同构和异构数据库 463

19.2 分布式数据存储 463

19.2.1 数据复制 464

19.2.2 数据分片 464

19.2.3 透明性 465

19.3 分布式事务 465

19.3.1 系统结构 466

19.3.2 系统故障模式 466

19.4 提交协议 467

19.4.1 两阶段提交 467

19.4.2 三阶段提交 469

19.4.3 事务处理的可选择性模型 469

19.5 分布式数据库中的并发控制 471

19.5.1 封锁协议 471

19.5.2 时间戳 473

19.5.3 弱一致性级别的复制 473

19.5.4 死锁处理 474

19.6 可用性 475

19.6.1 基于多数的方法 476

19.6.2 读一个、写所有可用的方法 477

19.6.3 站点重建 477

19.6.4 与远程备份的比较 477

19.6.5 协调器的选择 477

19.6.6 为可用性而牺牲一致性 478

19.7 分布式查询处理 479

19.7.1 查询转换 479

19.7.2 简单的连接处理 480

19.7.3 半连接策略 480

19.7.4 利用并行性的连接策略 481

19.8 异构分布式数据库 481

19.8.1 数据统一视图 481

19.8.2 查询处理 482

19.8.3 多数据库中的事务管理 482

19.9 基于云的数据库 483

19.9.1 云上的数据存储系统 484

19.9.2 云上的传统数据库 487

19.9.3 基于云的数据库的挑战 488

19.10 目录系统 488

19.10.1 目录访问协议 489

19.10.2 LDAP:轻量级目录访问协议 489

19.11 总结 492

术语回顾 493

实践习题 493

习题 495

文献注解 495

第六部分 数据仓库、数据挖掘与信息检索 498

第20章 数据仓库与数据挖掘 498

20.1 决策支持系统 498

20.2 数据仓库 499

20.2.1 数据仓库成分 499

20.2.2 数据仓库模式 500

20.2.3 面向列的存储 501

20.3 数据挖掘 501

20.4 分类 502

20.4.1 决策树分类器 503

20.4.2 其他类型的分类器 505

20.4.3 回归 507

20.4.4 分类器验证 507

20.5 关联规则 508

20.6 其他类型的关联 509

20.7 聚类 509

20.8 其他类型的数据挖掘 510

20.9 总结 511

术语回顾 511

实践习题 512

习题 512

工具 512

文献注解 513

第21章 信息检索 514

21.1 概述 514

21.2 使用术语的相关性排名 515

21.2.1 使用TF-IDF的排名方法 515

21.2.2 基于相似性的检索 516

21.3 使用超链接的相关性 517

21.3.1 流行度排名 517

21.3.2 PageRank 518

21.3.3 其他的流行度度量 518

21.3.4 搜索引擎作弊 519

21.3.5 将TF-IDF和流行度排名度量方法结合 520

21.4 同义词、多义词和本体 520

21.5 文档的索引 521

21.6 检索的有效性度量 522

21.7 Web的抓取和索引 523

21.8 信息检索:网页排名之外 524

21.8.1 查询结果的多样化 524

21.8.2 信息抽取 524

21.8.3 问答系统 525

21.8.4 查询结构化数据 525

21.9 目录与分类 526

21.10 总结 527

术语回顾 528

实践习题 528

习题 528

工具 529

文献注解 529

第七部分 特种数据库 532

第22章 基于对象的数据库 532

22.1 概述 532

22.2 复杂数据类型 532

22.3 SQL中的结构类型和继承 534

22.3.1 结构类型 534

22.3.2 类型继承 536

22.4 表继承 537

22.5 SQL中的数组和多重集合类型 538

22.5.1 创建和访问集合体值 539

22.5.2 查询以集合体为值的属性 539

22.5.3 嵌套和解除嵌套 540

22.6 SQL中的对象标识和引用类型 541

22.7 O-R特性的实现 542

22.8 持久化程序设计语言 543

22.8.1 对象的持久化 544

22.8.2 对象标识和指针 544

22.8.3 持久对象的存储和访问 545

22.8.4 持久化C++系统 545

22.8.5 持久化Java系统 547

22.9 对象-关系映射 548

22.10 面向对象与对象-关系 548

22.11 总结 549

术语回顾 549

实践习题 550

习题 551

工具 551

文献注解 552

第23章 XML 553

23.1 动机 553

23.2 XML数据结构 555

23.3 XML文档模式 558

23.3.1 文档类型定义 558

23.3.2 XML Schema 560

23.4 查询和转换 563

23.4.1 XML树模型 563

23.4.2 XPath 563

23.4.3 XQuery 565

23.5 XML应用程序接口 568

23.6 XML数据存储 569

23.6.1 非关系的数据存储 569

23.6.2 关系数据库 570

23.6.3 SQL/XML 572

23.7 XML应用 573

23.7.1 存储复杂结构数据 573

23.7.2 标准化数据交换格式 573

23.7.3 Web服务 574

23.7.4 数据中介 574

23.8 总结 575

术语回顾 576

实践习题 576

习题 577

工具 578

文献注解 578

第八部分 高级主题 580

第24章 高级应用开发 580

24.1 性能调整 580

24.1.1 提高面向集合的特性 580

24.1.2 批量加载和更新的调整 581

24.1.3 瓶颈位置 582

24.1.4 可调参数 583

24.1.5 硬件调整 584

24.1.6 模式调整 585

24.1.7 索引调整 585

24.1.8 使用物化视图 586

24.1.9 物理设计的自动调整 586

24.1.10 并发事务调整 587

24.1.11 性能模拟 589

24.2 性能基准程序 589

24.2.1 任务集 589

24.2.2 数据库应用类型 589

24.2.3 TPC基准程序 590

24.3 应用系统开发的其他问题 591

24.3.1 应用系统测试 591

24.3.2 应用系统移植 592

24.4 标准化 592

24.4.1 SQL标准 593

24.4.2 数据库连接标准 593

24.4.3 对象数据库标准 594

24.4.4 基于XML的标准 594

24.5 总结 595

术语回顾 595

实践习题 596

习题 596

文献注解 597

第25章 时空数据和移动性 598

25.1 动机 598

25.2 数据库中的时间 598

25.2.1 SQL中的时间规范 599

25.2.2 时态查询语言 599

25.3 空间与地理数据 600

25.3.1 几何信息表示 600

25.3.2 设计数据库 601

25.3.3 地理数据 602

25.3.4 空间查询 603

25.3.5 空间数据的索引 604

25.4 多媒体数据库 607

25.4.1 多媒体数据格式 607

25.4.2 连续媒体数据 607

25.4.3 基于相似性的检索 608

25.5 移动性和个人数据库 608

25.5.1 移动计算模型 609

25.5.2 路由和查询处理 610

25.5.3 广播数据 610

25.5.4 连接断开与一致性 610

25.6 总结 612

术语回顾 612

实践习题 613

习题 613

文献注解 613

第26章 高级事务处理 615

26.1 事务处理监控器 615

26.1.1 TP监控器体系结构 615

26.1.2 使用TP监控器进行应用协调 617

26.2 事务工作流 618

26.2.1 工作流说明 619

26.2.2 工作流的故障原子性需求 620

26.2.3 工作流执行 620

26.2.4 工作流恢复 621

26.2.5 工作流管理系统 621

26.3 电子商务 622

26.3.1 电子目录 622

26.3.2 市场 622

26.3.3 订单结算 623

26.4 主存数据库 623

26.5 实时事务系统 625

26.6 长事务 625

26.6.1 不可串行化的执行 626

26.6.2 并发控制 627

26.6.3 嵌套事务和多级事务 627

26.6.4 补偿事务 628

26.6.5 实现问题 628

26.7 总结 629

术语回顾 629

实践习题 630

习题 630

文献注解 631

第九部分 实例研究 634

第27章 PostgreSQL 634

27.1 概述 634

27.2 用户界面 634

27.2.1 交互式终端界面 634

27.2.2 图形界面 635

27.2.3 编程语言接口 636

27.3 SQL变化和扩展 636

27.3.1 PostgreSQL类型 637

27.3.2 规则和其他主动数据库特征 638

27.3.3 可扩展性 639

27.4 PostgreSQL中的事务管理 642

27.4.1 PostgreSQL的并发控制 642

27.4.2 恢复 647

27.5 存储和索引 647

27.5.1 表 648

27.5.2 索引 648

27.6 查询处理和优化 650

27.6.1 查询重写 650

27.6.2 查询规划和优化 650

27.6.3 查询执行器 651

27.6.4 触发器和约束 651

27.7 系统结构 652

文献注解 652

第28章 Oracle 654

28.1 数据库设计和查询工具 654

28.1.1 数据库和应用设计工具 654

28.1.2 查询工具 654

28.2 SQL的变化和扩展 655

28.2.1 对象-关系特性 655

28.2.2 Oracle XML DB 655

28.2.3 过程化语言 656

28.2.4 维度 656

28.2.5 联机分析处理 656

28.2.6 触发器 656

28.3 存储和索引 656

28.3.1 表空间 657

28.3.2 段 657

28.3.3 表 657

28.3.4 索引 659

28.3.5 位图索引 659

28.3.6 基于函数的索引 660

28.3.7 连接索引 660

28.3.8 域索引 660

28.3.9 划分 660

28.3.10 物化视图 661

28.4 查询处理和优化 662

28.4.1 执行方法 662

28.4.2 优化 663

28.4.3 并行执行 665

28.4.4 结果高速缓存 666

28.5 并发控制与恢复 666

28.5.1 并发控制 666

28.5.2 恢复的基本结构 667

28.5.3 Oracle数据卫士 668

28.6 系统体系结构 668

28.6.1 专用服务器:内存结构 668

28.6.2 专用服务器:进程结构 669

28.6.3 共享服务器 669

28.6.4 Oracle Real Application Clusters 669

28.6.5 自动存储管理器 670

28.6.6 Oracle Exadata 670

28.7 复制、分布以及外部数据 671

28.7.1 复制 671

28.7.2 分布式数据库 671

28.7.3 外部数据源 671

28.8 数据库管理工具 672

28.8.1 Oracle企业管理器 672

28.8.2 自动工作负载存储 672

28.8.3 数据库资源管理 672

28.9 数据挖掘 672

文献注解 673

第29章 IBM DB2 Universal Database 674

29.1 概述 674

29.2 数据库设计工具 675

29.3 SQL的变化和扩展 675

29.3.1 XML特性 675

29.3.2 数据类型的支持 676

29.3.3 用户自定义函数和方法 676

29.3.4 大对象 677

29.3.5 索引扩展和约束 677

29.3.6 Web服务 677

29.3.7 其他特性 678

29.4 存储和索引 678

29.4.1 存储体系结构 678

29.4.2 缓冲池 679

29.4.3 表、记录和索引 679

29.5 多维聚簇 680

29.5.1 块索引 681

29.5.2 块映射 682

29.5.3 设计考虑 682

29.5.4 对现有技术的影响 682

29.6 查询处理和优化 682

29.6.1 存取方法 684

29.6.2 连接、聚集和集合运算 684

29.6.3 对复杂SQL处理的支持 684

29.6.4 多处理器查询处理特性 684

29.6.5 查询优化 685

29.7 物化的查询表 685

29.7.1 查询路由到MQT 686

29.7.2 MQT的维护 686

29.8 DB2中的自治特性 686

29.8.1 配置 687

29.8.2 优化 687

29.9 工具和实用程序 687

29.10 并发控制和恢复 688

29.10.1 并发与隔离 688

29.10.2 提交与回滚 689

29.10.3 日志与恢复 689

29.11 系统体系结构 690

29.12 复制、分布和外部数据 691

29.13 商务智能特性 691

文献注解 692

第30章 Microsoft SQL Server 693

30.1 管理、设计和查询工具 693

30.1.1 数据库开发和可视化数据库工具 693

30.1.2 数据库查询和调优工具 693

30.1.3 SQL Server Management Studio 695

30.2 SQL变化和扩展 696

30.2.1 数据类型 696

30.2.2 查询语言增强 697

30.2.3 例程 697

30.2.4 带过滤的索引 698

30.3 存储和索引 699

30.3.1 文件组 699

30.3.2 文件组内的空间管理 699

30.3.3 表 699

30.3.4 索引 699

30.3.5 分区 700

30.3.6 在线创建索引 700

30.3.7 扫描和预读 700

30.3.8 压缩 700

30.4 查询处理和优化 700

30.4.1 编译处理概述 700

30.4.2 查询简化 701

30.4.3 重排序和基于代价的优化 701

30.4.4 更新计划 702

30.4.5 优化时的数据分析 702

30.4.6 部分搜索和启发式搜索 702

30.4.7 查询执行 703

30.5 并发与恢复 703

30.5.1 事务 703

30.5.2 封锁 704

30.5.3 恢复和可用性 705

30.6 系统体系结构 706

30.6.1 服务器上的线程池 706

30.6.2 内存管理 706

30.6.3 安全性 707

30.7 数据访问 707

30.8 分布式异构查询处理 708

30.9 复制 709

30.9.1 复制模型 709

30.9.2 复制选项 709

30.10 .NET中的服务器编程 710

30.10.1 .NET基本概念 710

30.10.2 SQL CLR宿主 711

30.10.3 可扩展性协定 711

30.11 XML支持 712

30.11.1 本地存储和组织XML 713

30.11.2 查询和更新XML数据类型 713

30.11.3 XQuery表达式的执行 714

30.12 SQL Server服务代理 714

30.13 商务智能 716

30.13.1 SQL Server集成服务 716

30.13.2 SQL Server分析服务 717

30.13.3 SQL Server报表服务 718

文献注解 718

第十部分 附录 722

附录A 详细的大学模式 722

参考文献 729

索引 754

精品推荐