第1章 数据库系统概述 1
1.1 数据、数据库与数据库管理系统的基本概念 1
1.1.1 数据与信息 1
1.1.2 数据处理与数据管理 2
1.1.3 数据库 2
1.1.4 数据库管理系统 2
1.1.5 数据库系统 4
1.2 数据管理技术的发展历程 5
1.2.1 人工管理阶段 5
1.2.2 文件管理阶段 5
1.2.3 数据库管理阶段 6
1.3 数据模型 9
1.3.1 数据模型的概念和种类 9
1.3.2 概念模型 14
1.3.3 逻辑数据模型和物理数据模型 15
1.4 数据库系统的内部体系结构 24
1.4.1 数据库系统的三级模式结构 24
1.4.2 数据库的两层映像 25
1.4.3 两级数据独立性 26
1.4.4 数据库系统的三级模式与两层映像的优点 26
1.4.5 数据库操作过程 27
1.5 数据库系统的外部体系结构 28
1.5.1 单用户结构的数据库系统 28
1.5.2 主从式结构的数据库系统 28
1.5.3 分布式结构的数据库系统 28
1.5.4 客户-服务器结构的数据库系统 29
1.5.5 浏览器-服务器结构的数据库系统 29
1.6 数据库系统的组成 30
1.6.1 硬件 30
1.6.2 软件 30
1.6.3 数据库 31
1.6.4 人员 31
总结 32
习题 33
第2章 关系数据库 37
2.1 关系模型的数据结构及其形式化定义 37
2.1.1 关系的形式化定义及其有关概念 37
2.1.2 关系模式 41
2.1.3 关系数据库与关系数据库模式 42
2.2 关系操作 42
2.2.1 基本的关系操作 42
2.2.2 关系数据语言 43
2.3 关系的完整性 43
2.3.1 实体完整性 43
2.3.2 参照完整性 44
2.3.3 用户定义完整性 45
2.4 关系代数 46
2.4.1 传统的集合运算 46
2.4.2 专门的关系运算 48
2.4.3 扩充的关系代数运算 52
2.4.4 关系代数表达式示例 53
总结 57
习题 58
第3章 关系数据库标准语言——SQL 61
3.1 SQL概述 61
3.1.1 SQL发展历程 61
3.1.2 SQL的特点 62
3.1.3 SQL的基本概念 62
3.1.4 SQL语言的分类 63
3.2 了解Oracle 11G 64
3.2.1 Oracle 11G的主要组件 64
3.2.2 企业管理器OEM 65
3.3 创建与使用Oracle数据库 70
3.3.1 Oracle数据库的物理存储结构 70
3.3.2 创建用户数据库 71
3.3.3 Oracle数据库的模式对象 75
3.4 创建与管理基本表 77
3.4.1 示例数据库表结构 77
3.4.2 创建基本表 78
3.4.3 修改基本表结构 87
3.4.4 删除、重命名和截断基本表 92
3.4.5 查看基本表 94
3.5 创建与管理视图 96
3.5.1 视图的建立 96
3.5.2 视图的删除 100
3.6 创建与管理索引 100
3.6.1 索引的分类 101
3.6.2 建立索引的原则 101
3.6.3 建立索引 102
3.6.4 索引的删除 104
3.6.5 查看索引 105
3.7 数据查询 106
3.7.1 SELECT语句的语法格式 106
3.7.2 单表查询 107
3.7.3 联结查询 118
3.7.4 嵌套查询——子查询 124
3.7.5 集合查询 138
3.7.6 视图的查询 140
3.7.7 用OEM实现查询 142
3.8 数据操纵 144
3.8.1 基本表的数据操纵 144
3.8.2 视图的数据操纵 152
3.9 数据控制 155
3.9.1 权限和角色 155
3.9.2 系统权限与角色的授予和回收 156
3.9.3 对象权限与角色的授予和回收 157
3.10 Oracle SQL函数 160
3.10.1 单行函数 160
3.10.2 聚组函数 168
3.10.3 函数的嵌套 169
3.11 嵌入式SQL 170
3.11.1 SQL语言的运行环境 170
3.11.2 嵌入式SQL的使用规定 171
总结 175
习题 176
第4章 关系数据库规范化理论 181
4.1 规范化问题的提出 181
4.1.1 规范化理论的主要内容 181
4.1.2 不合理的关系模式存在的异常问题 181
4.2 函数依赖 184
4.2.1 函数依赖的定义 184
4.2.2 函数依赖的逻辑蕴涵定义 186
4.2.3 函数依赖的推理规则 186
4.2.4 完全函数依赖与部分函数依赖 188
4.2.5 传递函数依赖 188
4.2.6 属性集的闭包及其算法 189
4.2.7 候选键的求解理论和算法 190
4.2.8 函数依赖推理规则的完备性 191
4.2.9 函数依赖集的等价、覆盖和最小函数依赖集 192
4.3 关系模式的分解 193
4.3.1 模式分解的基本概念 194
4.3.2 无损联结分解 194
4.3.3 无损联结分解的测试算法 195
4.3.4 保持函数依赖的分解 198
4.4 关系模式的范式 198
4.4.1 第1范式 199
4.4.2 第2范式 200
4.4.3 第3范式 203
4.4.4 BC范式 204
4.4.5 关系模式规范化过程 207
总结 208
习题 209
第5章 数据库设计 213
5.1 数据库设计概述 213
5.1.1 数据库设计的任务 213
5.1.2 数据库设计的内容 213
5.1.3 数据库设计的特点 213
5.1.4 数据库设计的方法 214
5.1.5 数据库设计阶段 216
5.1.6 数据库设计过程的输入和输出 218
5.2 需求分析 219
5.2.1 需求分析的任务 219
5.2.2 需求分析的方法 220
5.2.3 评审 222
5.3 概念结构设计 223
5.3.1 概念模型的特点 223
5.3.2 概念结构设计方法 224
5.3.3 数据抽象与E-R模型设计 226
5.3.4 采用E-R方法的概念设计步骤 229
5.4 逻辑结构设计 238
5.4.1 关系模式的设计问题 238
5.4.2 逻辑结构设计的内容与步骤 239
5.4.3 E-R图转换为关系模型 241
5.4.4 关系模式的规范化 242
5.4.5 关系模式的评价与优化 243
5.4.6 设计用户子模式 244
5.5 物理结构设计 245
5.5.1 设计物理结构 245
5.5.2 评价物理结构 247
5.6 数据库的实施和维护 247
5.6.1 数据库的实施 247
5.6.2 其他设计 249
5.6.3 数据库的运行与维护 250
总结 251
习题 251
第6章 数据库的保护 255
6.1 数据库的安全性管理 255
6.1.1 安全性管理的方法和原理 255
6.1.2 Oracle系统的安全措施 259
6.2 数据库的完整性控制 281
6.2.1 完整性约束的概念 281
6.2.2 Oracle中的完整性约束 289
6.2.3 OEM工具管理约束条件 298
6.3 数据库的并发性控制 301
6.3.1 并发控制的原理和方法 301
6.3.2 Oracle系统中并发控制技术 314
6.4 数据库的恢复 319
6.4.1 数据库恢复的原理、方法和策略 319
6.4.2 Oracle系统的备份与恢复技术 325
总结 344
习题 344
第7章 Oracle PL/SQL高级应用 348
7.1 PL/SQL程序设计 348
7.1.1 PL/SQL的特点 349
7.1.2 PL/SQL程序结构 349
7.1.3 PL/SQL的流程控制结构 358
7.1.4 出错处理 366
7.1.5 游标 370
7.2 存储过程和函数 382
7.2.1 存储过程和函数与应用程序的区别 382
7.2.2 开发存储过程和函数 383
7.2.3 存储过程和函数的管理 389
7.2.4 存储过程和函数的调用和测试 391
7.2.5 存储过程和函数的安全性 394
7.2.6 存储过程和函数的优点 395
7.3 包 395
7.3.1 包的组成 396
7.3.2 开发包 396
7.3.3 包的管理 400
7.3.4 包的调用 401
7.3.5 系统包 402
7.3.6 包的优点 402
7.4 触发器 403
7.4.1 触发器的基本概念和类型 403
7.4.2 DML触发器 405
7.4.3 数据库事件触发器和DDL触发器 420
7.4.4 INSTEAD OF触发器(替代触发器) 424
总结 426
习题 426
第8章 数据库的发展方向 429
8.1 分布式数据库系统 429
8.1.1 分布式数据库系统的定义 429
8.1.2 分布式数据库系统的特点 429
8.1.3 分布式数据库的系统结构 431
8.1.4 分布式数据库管理系统 432
8.2 并行数据库系统 434
8.2.1 并行数据库系统的概述 434
8.2.2 并行数据库系统的功能 435
8.2.3 并行数据库的体系结构 435
8.2.4 并行数据库的并行处理技术 436
总结 438
习题 438
附录A Oracle 11G综合练习题 439
附录B 部分习题参考答案 444
参考文献 446