1 数据库设计基础 1
1.1 信息、数据与数据处理 1
1.2 数据、数据库、数据库管理系统和数据库系统 1
1.3 数据管理的发展 2
1.3.1 人工管理阶段 2
1.3.2 文件系统阶段 2
1.3.3 数据库系统阶段 3
1.4 数据库系统的组成 4
1.4.1 数据库系统重要组成部分 4
1.4.2 数据库系统体系结构 5
1.5 数据库管理系统(DBMS) 7
1.5.1 DBMS的功能 7
1.5.2 DBMS的组成 7
1.6 数据模型(DataModel) 8
1.6.1 数据模型的三要素 8
1.6.2 概念模型 9
1.6.4 层次模型 10
1.6.3 数据模型的分类 10
1.6.5 网状模型 11
1.6.6 关系模型 11
1.7 关系数据库的数学基础 12
1.7.1 关系数据库结构 12
1.7.2 集合运算 14
1.7.3 关系数据库理论 17
1.8 数据库设计 22
1.8.1 需求分析阶段 23
1.8.2 概念结构设计 27
1.8.3 逻辑结构设计 32
1.8.4 数据库物理设计 35
1.8.5 数据库实施 36
1.8.6 数据库运行与维护 37
本章小节 38
思考与练习 38
2.1.2 Oracle的优越性 40
2.1.1 Oracle的历史 40
2.1 Oracle简介 40
2 Oracle的体系结构 40
2.1.3 Oracle9i的新特性 41
2.2 Oracle数据库体系结构概述 41
2.3 数据库实例 43
2.3.1 初始化参数文件 43
2.3.2 启动数据库 45
2.3.3 关闭数据库 47
2.4 内存结构 48
2.4.1 系统全局区 48
2.4.2 程序全局区 49
2.5 Oracle进程 49
2.5.1 服务器进程 50
2.5.2 后台进程 50
2.6 Oracle数据库物理存储结构 52
2.6.1 数据文件 52
2.6.2 重做日志文件 53
2.6.3 控制文件 54
2.7 Oracle数据库逻辑存储结构 55
2.7.1 表空间(Tablespace) 55
2.7.2 段(Segment) 55
2.7.3 区间(Extent) 56
2.7.4 数据块(DataBlock) 56
2.8 具体实例 57
本章小结 60
思考与练习 60
3数据库对象 61
3.1 表 61
3.1.1 表的种类 61
3.1.2 创建表 62
3.1.3 查询表信息 67
3.1.4 表的维护 68
3.2 视图 69
3.2.1 视图的概念及其优点 69
3.2.2 创建视图 70
3.2.3 查询视图信息 71
3.2.4 维护视图 71
3.2.5 Oracle中的视图 71
3.3 索引 73
3.3.1 索引的概念 73
3.3.2 索引的分类 74
3.3.3 创建索引 75
3.3.4 查询索引信息 76
3.3.5 维护索引 77
3.4 聚簇 78
3.4.1 索引聚簇 78
3.4.2 散列聚簇 80
3.4.3 维护聚簇 81
3.5 序列 81
3.5.1 序列的概念 81
3.5.2 创建序列 82
3.5.4 维护序列 83
3.5.3 查询序列信息 83
3.6 数据库链接 84
3.6.1 数据库链接的概念 84
3.6.2 建立数据库链接 84
3.6.3 删除数据库链接 85
3.7 过程、函数、包和触发器 85
3.8 同义词 85
3.8.3 维护同义词 86
本章小结 86
3.8.2 同义词的分类及其优点 86
3.8.1 同义词的概念 86
思考与练习 87
4使用SQL进行数据操纵 88
4.1 SQL常用内置函数 88
4.1.1 数字函数 88
4.1.2 字符函数 89
4.1.3 日期函数 89
4.1.5 集合函数 90
4.1.4 数据类型转换函数 90
4.1.6 其他函数 91
4.2 基本查询 91
4.2.1 简单查询 92
4.2.2 结果排序 98
4.3 连接查询 100
4.3.1 简单连接 100
4.3.2 外连接 101
4.4 嵌套查询 103
4.4.1 单值嵌套查询 103
4.4.2 多值嵌套查询 104
4.5 复合与分组查询 106
4.5.1 复合查询 106
4.5.2 分组查询 107
4.6 数据更新 109
4.6.1 插入数据 109
4.6.2 修改数据 110
4.6.3 删除数据 111
4.7.1 简化SQL语法 112
4.7 Oracle9iSQL新特点 112
4.7.2 新增SQL命令——MERGE 115
思考与练习 117
6.3.6 滚动游标 117
本章小结 117
5过程语言PL/SQL 119
5.1 过程语言PL/SQL简介 119
5.2 过程语言PL/SQL运行环境 119
5.3.1 简单变量定义 120
5.3 PL/SQL程序块的组成 120
5.3.2 Oracle中常用的数据类型 121
5.3.3 Oracle中的操作符 127
5.3.4 执行部分 127
5.4 事务控制命令 128
5.4.1 事务提交 128
5.4.2 事务回退 128
5.4.3 设置保存点 129
5.4.4 事务处理示例 129
5.5 PL/SQL流程控制 130
5.5.1 条件控制 130
5.5.2 循环控制 132
5.6 游标的使用 136
5.6.1 游标的概念 136
5.6.2 游标提取循环 139
5.6.3 带参数游标的使用 140
5.6.4 隐式游标 141
5.6.5 游标变量 142
5.7.1 预定义异常处理 143
5.7 PL/SQL的异常处理 143
5.7.2 用户自定义的异常处理 144
5.7.3 PL/SQL不例 145
5.8 存储过程 146
5.8.1 创建过程语法格式 146
5.8.2 存储过程示例 148
5.9 函数 148
5.10触发器 150
5.10.1 创建触发器 150
5.10.2 触发器组件 151
5.10.3 删除和禁止触发器 152
5.10.4 触发器的启动顺序 152
本章小结 154
思考与练习 154
本章实例 155
6Pro*C/C+++程序设计 156
6.1 基本概念 156
6.1.1 Pro*C程序的作用 156
6.1.2 ProC预编译器 157
6.2 基本的Pro*C程序 158
6.2.1 宿主变量 158
6.2.2 嵌入SQL语句 163
6.2.3 一般错误处理 165
6.2.4 例子程序 170
6.3 在Pro*C程序中使用游标 173
6.3.1 游标的声 173
6.3.3 游标的使用 174
6.3.2 游标的打开 174
6.3.4 游标的关闭与释放 175
6.3.5 使用游标的例子 176
6.4 使用PL/SQL语句块 180
6.4.1 PL/SQL专用的表和记录数据类型 180
6.4.2 PL/SQL块中的指示变量 183
6.4.4 PL/SQL块、过程、函数和包 184
6.4.3 PL/SQL块中的宿主变量数组 184
6.5 动态SQL 189
6.5.1 动态SQL的处理过程 190
6.5.2 Oracle处理动态SQL的方法 190
6.5.3 ANSI动态SQL的描述符方法 201
本章小结 215
思考与练习 215
7.1.1 SQLJ简介 216
7SQLJ程序设计 216
7.1 SQLJ程序概述 216
7.1.2 一个简单的SQLJ实例 217
7.1.3 SQLJ组成部分 219
7.1.4 SQLJ开发过程及开发环境 219
7.1.5 JDBCDriver 221
7.1.6 SQLJ选项配置 222
7.1.7 SQLJ应用程序和SQLJ小应用程序 226
7.2 SQLJ程序设计 227
7.2.1 Java表达式 227
7.2.2 SQLJ语句 230
7.2.3 SQLJ应用程序和数据库的连接 232
7.2.4 查询语句的处理 235
7.2.5 异常错误的处理 237
7.2.6 使用SQLJ调用PL/SQL 239
7.3.1 SQLJ流 244
7.3 SQLJ高级主题 244
7.3.2 动态SQL 248
7.3.3 SQLJ中开发多线程应用 251
本章小结 254
思考与练习 254
8数据库的安全 255
8.1 Oracle9i安全性概述 255
8.2 管理用户和资源 256
8.2.1 会话和用户的许可 256
8.2.2 用户的验证 258
8.2.3 用户的管理 260
8.2.4 资源的管理 262
8.3 管理权限与角色 266
8.3.1 管理系统权限 266
8.3.2 管理对象权限 269
8.3.3 管理角色 271
8.4 审计 274
8.4.1 登录审计 275
8.4.2 对象审计 275
8.4.3 操作审计 276
本章小结 276
思考与练习 277
9数据库的恢复与备份 279
9.1 恢复与备份基本概念 279
9.2 Oracle备份技术 280
9.3 备份策略 280
9.4 逻辑备份方式 281
9.4.1 导出 281
9.4.2 导入 283
9.4.3 导出/导入命令格式 283
9.5 物理备份 287
9.5.1 冷(脱机)备份 287
9.5.2 热(联机)备份 287
9.6.1 如何进行热备份 288
9.6 备份实例和技巧 288
9.6.2 热备份失败后的处理 289
9.6.3 自动备份Oracle数据库 289
9.7 数据库恢复技术 293
9.7.1 数据库恢复原理 293
9.7.2 故障种类 293
9.7.3 恢复数据库所使用的结构 294
9.7.4 恢复的实现技术 296
9.7.5 恢复实例分析 298
本章小结 303
思考与练习 303
10 Oracle9i对象 305
10.1 数据库技术的发展 305
10.1.1 新的数据库应用 305
10.1.2 数据库的新发展 306
10.2 Oracle9i数据库对象模型 307
10.2.1 OO模型的核心概念 307
10.2.2 Oracle面向对象的基本特点 308
10.2.3 Oracle对象模型举例 309
10.2.4 对象关系型Oracle的优、缺点 310
10.3 Oracle9i中的面向对象的数据定义语言 311
10.3.1 VARRAY类型 311
10.3.2 嵌套表 312
10.3.3 对象类型 312
10.3.4 Oracle对象表 319
10.3.5 对象定义举例 322
10.4.1 创建对象视图 324
10.4 Oracle对象视图 324
10.4.2 修改对象视图 326
10.5 Oracle9i中面向对象的操作语言(DML) 327
10.5.1 向对象表中插入行 328
10.5.2 从对象表中选择数据 329
10.5.3 修改和删除对象表行数据 331
本章小结 333
思考与练习 333