前言 1
第一篇 数据库基础知识 1
第一章 数据库系统概论 3
1.1 引言 3
1.1.1 基本概念 3
1.1.2 数据管理技术的产生和发展 6
1.2 数据模型 10
1.2.1 信息的三个世界 10
1.2.2 概念模型及其扩展 13
1.2.3 数据模型的组成及新特征 18
1.2.4 层次模型 22
1.2.5 网状模型 27
1.2.6 关系模型 31
1.2.7 面向对象的数据模型 33
1.2.8 对象-关系数据模型 36
1.3 数据库系统结构 37
1.3.1 数据库系统的三级模式结构 37
1.3.2 数据抽象——三级数据库 41
1.3.3 数据库系统的体系结构 41
1.4 数据库系统 45
1.4.1 数据库系统的组成 45
1.4.2 数据库系统的特点 47
1.5 现代数据库系统及研究领域 49
1.5.1 数据库系统的新特征 50
1.5.2 数据库系统的研究领域 51
1.5.3 数据库系统的发展 52
1.5.4 现代数据库系统简介 54
1.6 小结 56
习题 57
第二章 关系数据库 59
2.1 关系数据库的基本概念 59
2.1.1 关系及其性质 59
2.1.2 关系模式与关系数据库 63
2.2 关系模型及其描述 64
2.2.1 关系模型的特点及组成 64
2.2.2 关系模型的数据操作 65
2.2.3 关系的完整性 65
2.3 关系代数 68
2.3.1 集合运算 70
2.3.2 专门的关系运算 71
2.3.3 扩充的关系运算 78
2.4 关系演算 81
2.4.1 元组关系演算 81
2.4.2 域关系演算 82
2.4.3 关系运算的安全限制及等价 83
2.4.4 域关系演算语言QBE 84
2.5 小结 89
习题 89
第三章 关系数据库语言SQL(SQL3) 94
3.1 SQL的特征 94
3.1.1 SQL的主要标准 94
3.1.2 SQL的功能特点 95
3.1.3 SQL的基本组成 96
3.1.4 SQL的数据类型 98
3.1.5 SQL环境 99
3.2.1 SQL模式的定义与撤销 101
3.2 SQL的数据定义 101
3.2.2 表的建立和删除 102
3.2.3 表的扩充和修改 103
3.2.4 域定义 104
3.2.5 索引的建立与删除 106
3.3 SQL的数据查询 107
3.3.1 单表查询 107
3.3.2 表达式与函数的使用 110
3.3.3 多表查询 113
3.3.4 自然连接与外连接 119
3.3.5 SQL中的空值处理 121
3.3.6 递归合并查询 123
3.4 SQL的数据更新 125
3.4.1 插入数据 125
3.4.2 修改数据 126
3.4.3 删除数据 127
3.4.4 构造数据类型 128
3.5 视图(View) 129
3.5.1 视图的概念及作用 129
3.5.2 创建与使用视图 130
3.5.3 更新视图 133
3.6.1 嵌入式SQL概述 134
3.6 嵌入式SQL 134
3.6.2 嵌入式SQL的工作原理 135
3.6.3 嵌入式SQL的程序组成 138
3.6.4 嵌入式SQL的使用技术 140
3.7 动态SQL 143
3.7.1 问题的提出 143
3.7.2 动态SQL的语句类型 144
3.7.3 动态SQL技术 144
3.8 数据库访问中间件 146
3.8.1 中间件 146
3.8.2 数据库访问中间件 147
3.8.3 ODBC 148
3.8.4 JDBC 150
3.9 小结 152
习题 153
第二篇 关系数据库设计与实现 155
第四章 关系数据理论 157
4.1 关系模式的设计问题 157
4.2 关系模式的规范化 159
4.2.1 函数依赖 160
4.2.2 码的形式定义 161
4.2.3 函数依赖与基础范式 162
4.2.4 多值依赖与第4范式 166
4.2.5 连接依赖与第5范式 170
4.3 数据依赖的公理系统 172
4.3.1 Armstrong公理 172
4.3.2 属性闭包的计算 176
4.3.3 函数依赖集的等价和覆盖 178
4.3.4 最小函数依赖集 179
4.4 关系模式的分解 181
4.4.1 等价模式分解的定义 181
4.4.2 无损连接性与依赖保持性 182
4.4.3 模式分解的算法 187
4.5.1 规范化的优缺点 192
4.5 规范化的问题 192
4.5.2 反规范化的设计 193
4.6 小结 194
习题 194
第五章 数据库设计 197
5.1 数据库设计概述 197
5.1.1 数据库设计的特点、目标和方法 198
5.1.2 数据库设计的内容和步骤 200
5.2 需求分析 202
5.2.1 需求分析的任务 203
5.2.2 需求分析的方法 204
5.2.3 数据流图 205
5.2.4 数据字典 207
5.3 概念结构设计 213
5.3.1 概念结构设计的方法和步骤 214
5.3.2 E-R图的扩展描述 216
5.3.3 局部视图设计 220
5.3.4 视图的集成 221
5.4 逻辑结构设计 224
5.4.1 逻辑结构设计的步骤 225
5.4.2 E-R模型向关系模型的转换 225
5.4.4 子模式设计 231
5.4.3 模型的优化 231
5.5 数据库物理设计 232
5.5.1 物理设计的内容和要求 232
5.5.2 存取方法与存储结构 233
5.5.3 性能评价 236
5.6 数据库实施与维护 236
5.7 数据库设计与应用实例 237
5.7.1 需求描述 237
5.7.2 分析事务需求 239
5.7.3 初步设计逻辑数据库 240
5.7.4 消除不相容的属性 244
5.7.5 检查模型及创建逻辑表 245
5.7.6 定义完整性约束 247
5.7.7 设计物理数据库 249
5.7.8 系统的开发 252
5.8 小结 257
习题 257
第三篇 数据库管理与保护 259
第六章 数据库管理系统 261
6.1 DBMS简介 261
6.1.1 DBMS的特点与功能 261
6.1.3 DBMS运行环境 263
6.1.2 DBMS的基本组成 263
6.1.4 用户访问数据库的工作过程 264
6.2 关系DBMS 265
6.2.1 关系DBMS的发展阶段 265
6.2.2 应用对关系DBMS的要求 267
6.2.3 关系DBMS的发展趋势 268
6.3 关系数据库的查询优化 269
6.3.1 查询处理与查询优化 269
6.3.2 查询优化的一般策略 272
6.3.3 关系代数表达式的等价规则 273
6.3.4 关系代数表达式的优化算法 276
6.3.5 查询优化的一般步骤 277
6.4 关系DBMS产品及其选择 279
6.4.1 SQLServer 279
6.4.2 Oracle8i介绍 283
6.4.3 其他DBMS产品 286
6.4.4 关系DBMS产品的选择 287
6.5 小结 290
习题 290
第七章 事务管理 291
7.1 事务的基本概念 291
7.1.1 事务(Transaction) 291
7.1.3 事务的特性 292
7.1.2 事务的状态 292
7.1.4 更新事务的执行与恢复 294
7.2 数据库恢复概述 294
7.3 恢复的实现技术 296
7.3.1 数据转储 296
7.3.2 登记日志文件 298
7.4 故障恢复 300
7.4.1 故障的种类及恢复策略 300
7.4.2 具有检查点的恢复技术 302
7.4.3 数据库镜像 304
7.4.4 远程备份系统 305
7.5 SQL对事务管理的支持 307
7.6 事务的并发控制 309
7.6.1 并发控制的概念 309
7.6.2 封锁与封锁协议 311
7.6.3 活锁和死锁 313
7.6.4 并发调度的可串行性 315
7.6.5 基于时间戳的协议 318
7.6.6 基于有效性检查的协议 321
7.6.7 封锁的粒度 322
7.7 SQL Server的事务管理 324
7.7.1 事务管理方式 324
7.7.2 SQL Server并发控制技术 326
7.7.3 数据复制技术 327
7.8 小结 330
习题 331
第八章 数据库的安全性与完整性 332
8.1 概述 332
8.1.1 安全性与完整性的基本概念 333
8.1.2 数据库安全性标准 335
8.2 数据库安全性控制 340
8.2.1 用户标识和鉴别 340
8.2.2 存取控制 340
8.2.3 视图机制 346
8.2.4 数据密码 347
8.2.5 跟踪审计 347
8.2.6 统计数据库的安全性 347
8.3 数据库的完整性控制 349
8.3.1 数据库的完整性 349
8.3.2 完整性约束条件 351
8.3.3 SQL中的完整性约束 352
8.4 触发器 356
8.4.1 触发器机制 356
8.4.2 SQL触发器规则 357
8.4.3 SQL触发器设计 361
8.4.4 触发器的激活与撤销 363
8.4.5 SQL Sever触发器简介 364
8.4.6 主动数据库 368
8.5 小结 370
习题 370
第四篇 数据库中的高级论题 373
第九章 分布式与网络数据库系统 375
9.1 概述 375
9.1.1 什么是分布式数据库系统 375
9.2 分布式数据库系统的模式结构 377
9.2.1 模式结构 377
9.1.2 分布式数据库的划分 377
9.2.2 分布式数据库管理系统 378
9.2.3 分布式数据的存储 379
9.3 分布式的查询优化 384
9.3.1 查询的简化 384
9.3.2 半连接策略 387
9.3.3 利用并行性的连接策略 388
9.4 分布式的事务处理 388
9.4.1 事务处理的结构 388
9.4.2 系统故障模式 390
9.4.3 提交协议 390
9.5.1 加锁协议 395
9.5 分布式的并发控制 395
9.5.2 时间戳机制 397
9.5.3 死锁处理 398
9.6 网络数据库系统 401
9.6.1 基于C/S模式的数据库系统 401
9.6.2 基于B/S模式的数据库系统 404
9.6.3 数据库访问标准 407
9.6.4 ASP技术 408
9.7 小结 414
习题 415
10.1 概述 416
第十章 基于对象的数据库与XML 416
10.2 面向对象的数据模型 417
10.2.1 对象的结构 417
10.2.2 类 418
10.2.3 继承 418
10.2.4 多重继承 419
10.2.5 对象包含 420
10.2.6 对象的标识 420
10.2.7 对象的引用的完整性约束 421
10.3 面向对象的数据库语言 421
10.4.1 对象的持久性 422
10.4 持久化程序设计语言 422
10.4.2 对象标识符的持久性 423
10.4.3 持久对象的存储和访问 424
10.5 持久性C++系统 424
10.5.1 ODMG C++对象定义语言 425
10.5.2 对象查询语言OQL 425
10.6 对象-关系数据库系统 426
10.6.1 嵌套关系模型 426
10.6.2 复杂类型 426
10.6.3 继承 428
10.6.4 引用类型 429
10.6.5 查询数据 431
10.6.6 大对象 433
10.6.7 用户定义的函数和过程 433
10.7 面向对象数据库与对象-关系数据库的比较 435
10.8 XML 435
10.8.1 简介 435
10.8.2 XML的结构 437
10.8.3 XML文档的模式 440
10.8.4 XML模式 440
10.8.5 查询和转换XML的工具 441
10.9 小结 442
习题 443
第十一章 并行数据库系统 444
11.1 并行数据库系统概述 444
11.1.1 加速比和扩展比 445
11.1.2 互联网络 445
11.2 并行数据库系统的体系结构 447
11.2.1 共享主存 448
11.2.2 共享磁盘 448
11.2.3 无共享 449
11.3.1 数据的分布技术 450
11.3 并行数据库的数据分布 450
11.3.2 数据偏斜的处理 452
11.4 并行数据库的查询处理 453
11.4.1 查询间并行 453
11.4.2 查询内并行 454
11.4.3 操作间并行 454
11.4.4 操作内并行 456
11.4.5 查询优化 458
11.4.6 并行运算的代价 458
11.5 小结 458
习题 459
12.1 概述 460
第十二章 数据仓库与数据挖掘 460
12.2 数据仓库 462
12.2.1 数据仓库的定义 462
12.2.2 联机事务处理系统与数据仓库之间的比较 464
12.2.3 数据仓库的结构 465
12.2.4 数据仓库的模式 467
12.2.5 数据集市 467
12.3 联机分析处理 469
12.3.1 概念 469
12.3.2 多维数据的表示和操作 470
12.3.3 OLAP的分类 473
12.4 数据挖掘 474
12.4.1 什么是数据挖掘 474
12.4.2 数据挖掘应用 475
12.4.3 数据挖掘技术 475
12.4.4 预测 476
12.4.5 关联分析 478
12.4.6 聚类 479
12.5 小结 480
习题 480
第一章 例题 481
附录A 典型例题解析 481
第二章 例题 484
第三章 例题 487
第四章 例题 494
第五章 例题 498
第六章 例题 501
第七章 例题 503
第八章 例题 508
附录B 数据库上机实习任务及指导 511
B.1 实习任务与要求 511
B.2 SQL Server 2000环境与界面 512
B.3 建立与操作数据库 516
B.4 SQL Server的数据字典 518
B.5 数据库接口的使用 520
B.6 数据库安全及触发器机制的使用 524
附录C SQL Server的使用 526
C.1 SQL Server注册 526
C.2 SQL Server的数据类型 530
C.3 创建数据库和表 537
C.4 存储过程 545
C.5 备份和恢复数据库 548
C.6 SQL Server的安全性机制 552
参考文献 558