1 概论 1
1.1 数据、信息、实体及其联系 1
1.1.1 实体及其联系 1
1.1.2 数据库发展简史 5
1.2 数据库 7
1.3 数据库系统和数据库管理系统 10
1.3.1 数据库系统的特点、组成和工作方式 10
1.3.2 数据库管理系统的目标、功能和组成 13
1.4 数据模型 15
1.4.1 数据模型和数据库 15
1.4.2 实体-联系模型 15
1.4.3 层次模型 19
1.4.4 网状模型(Network Model) 21
1.4.5 关系模型 22
1.5 关系数据库管理系统实例 24
1.5.1 Oracle 24
1.5.2 SQL Server 25
1.5.3 DB2 27
1.5.4 Sybase 28
1.6 国产关系数据库管理系统DM5 29
1.6.1 DM5的特点 30
1.6.2 DM5的优良特性 30
1.6.3 DM5体系结构和组成 31
1.7.1 硬件环境需求 33
1.7.2 软件环境需求 33
1.7 DM5的安装和启动 33
1.7.3 安装和启动 34
习题1 45
2 关系数据库系统 46
2.1 关系模型的基本概念 46
2.1.1 关系模型的特点 46
2.1.2 基本定义 47
2.2 关系完整性约束 51
2.2.1 实体完整性 51
2.2.2 参照完整性 51
2.2.3 用户自定义的完整性 52
2.3.1 关系代数的九种运算 53
2.3 关系代数 53
2.3.2 应用实例 63
2.3.3 扩充的关系代数操作 65
2.4 关系演算 67
2.4.1 元组关系演算(Tuple Relational Calculus) 67
2.4.2 域关系演算 72
2.4.3 元组演算表达式到域演算表达式的转换 73
2.4.4 关系演算的安全性和等价性 74
2.5 查询优化 76
习题2 77
3 关系数据库标准语言SQL 80
3.1 SQL概述 80
3.1.1 SQL的产生和发展 80
3.1.2 SQL的组成和特点 81
3.2.1 基本数据类型 82
3.2 数据定义 82
3.2.2 基本表的管理 83
3.2.3 索引的管理 86
3.2.4 视图的管理 87
3.3 查询及优化 88
3.3.1 简单查询 91
3.3.2 组合查询 100
3.3.3 计算查询 105
3.3.4 查询优化 107
3.4 数据更新 109
3.4.1 插入数据 109
3.4.2 修改数据 109
3.4.2 删除数据 110
3.5 数据控制 112
3.5.1 权限的类型 112
3.5.2 授权和收权 112
3.6 嵌入式SQL 114
3.6.1 SQL语言的执行方式 114
3.6.2 嵌入式SQL的使用 115
3.6.3 动态的SQL语句 126
习题3 126
4 关系数据库设计理论 128
4.1 问题的提出 128
4.2 函数依赖 131
4.2.1 函数依赖和多值函数依赖 131
4.2.3 关键字 134
4.2.2 函数依赖的逻辑蕴涵 134
4.3 函数依赖的公理系统 135
4.3.1 Armstrong公理系统 136
4.3.2 公理系统的正确性 136
4.3.3 公理系统的推论 137
4.3.4 公理系统的完备性 139
4.4 关系模式的分解 147
4.4.1 分解原则 147
4.4.2 无损连接性和依赖保持性 147
4.4.3 无损连接性的分解 149
4.4.4 无损连接性分解的检验算法 150
4.4.5 简便算法 152
4.4.6 算法中注意的问题 153
4.4.7 检验的充要条件 154
4.4.8 依赖保持性的分解 156
4.5 关系模式的规范化 156
4.5.1 什么是关系模式的规范化 156
4.5.2 范式 157
4.6 求解候选关键字 165
4.6.1 求解候选关键字的充分条件 166
4.6.2 求解候选关键字的方法 167
习题4 175
5 数据库设计 177
5.1 数据库设计概述 177
5.1.1 数据库设计的内容和特点 177
5.1.2 数据库设计方法 179
5.1.3 数据库设计步骤 180
5.1.4 数据库设计工具 182
5.2.1 需求分析的内容 184
5.2 需求分析 184
5.2.2 方法和步骤 185
5.3 概念结构设计 192
5.3.1 概念设计方法 193
5.3.2 视图综合设计方法 194
5.4 逻辑结构设计 197
5.4.1 E-R模型到关系模式的转换 198
5.4.2 逻辑模式的调整 201
5.5 物理结构设计 203
5.5.1 簇集设计 204
5.5.2 索引的选择 206
5.6 数据库应用系统设计 207
5.5.3 分区设计 207
5.6.1 总体设计 208
5.6.2 详细设计 209
5.7 数据库的实施与维护 209
5.7.1 数据库的定义 210
5.7.2 数据的装入 210
5.7.3 数据库的试运行 211
5.7.4 数据库的运行和维护 212
习题5 213
6 数据库安全与保护 215
6.1 事务处理 215
6.1.1 事务 215
6.1.2 事务的执行 216
6.1.3 事务的可串行化 218
6.1.4 事务恢复 221
6.1.5 SQL中事务定义 223
6.2 并发控制 224
6.2.1 并发控制概述 224
6.2.2 封锁 228
6.2.3 活锁和死锁 231
6.2.4 两段封锁协议 234
6.2.5 基于时间标志的并发控制 236
6.3 数据库的安全性 238
6.3.1 数据库安全性概述 238
6.3.2 用户标识与鉴别 240
6.3.3 存取控制 241
6.3.4 数据加密 245
6.4 数据库的完整性 246
6.4.1 完整性的概念 246
6.4.2 完整性约束条件 247
6.4.3 完整性控制 250
6.5 数据库恢复和备份 253
6.5.1 数据库故障分类 253
6.5.2 数据库恢复原理 255
6.5.3 数据库恢复策略 258
6.5.4 数据库镜像 260
习题6 261
7.1 DM5应用开发基础 263
7.1.1 数据类型 263
7 基于DM5平台的数据库应用开发 263
7.1.2 表达式 267
7.1.3 函数 271
7.2 DM5数据库应用开发环境 276
7.2.1 数据库系统体系结构概述 277
7.2.2 数据访问接口 280
7.2.3 DM5体系结构 284
7.3 DM5工具及应用开发工具支持 290
7.3.1 管理工具JManager 290
7.3.2 交互式工具JISQL 293
7.3.3 逻辑备份与恢复工具JImpExp 294
7.3.4 数据迁移工具JDTS 295
7.3.5 控制台工具JConsole 297
7.3.6 性能监控工具JMonitor 298
7.3.7 命令行工具 298
7.4 数据库应用系统设计案例 299
7.4.1 案例说明 299
7.4.2 数据库创建 300
7.4.3 DM ODBC编程简述 302
7.4.4 参考源代码 304
习题7 311
8 数据库发展趋势与新技术 313
8.1 新型数据库系统 313
8.1.1 面向对象数据库系统 313
8.1.2 分布式数据库系统 317
8.1.3 并行数据库系统 320
8.1.4 Web数据库系统 324
8.2 数据挖掘和数据仓库技术 328
8.2.1 数据挖掘技术 328
8.2.2 数据仓库技术 332
8.3 联机分析处理技术 336
8.3.1 OLAP概述 336
8.3.2 OLAP的结构与数据组织 338
8.3.3 OLAP与OLTP的比较 340
习题8 341
9 关系数据库设计试验 342
9.1 引言 342
9.2 课题 342
9.3 设计关系数据库的步骤 342
9.4 开发概念数据库 343
9.5 修正数据需求 345
9.6 使设计适应于数据库管理系统的使用 347
9.7 数据库窗口 348
9.8 实验内容 351
实验一 设计并实现一个关系数据库 351
实验二 建立、测试、维护数据库 351
实验三 开发数据库应用系统 351
实验四 设计并实现具有游标查询和错误检测等功能的应用程序 352
A 附录 353
A.1 SQL语法描述说明 353
A.2 SQL命令列表 353
A.3 DM4保留字 355
A.4 DM5技术支持 356
参考文献 358