第1章 数据库设计过程 1
1.1概述 1
1.2需求分析 3
1.2.1数据流图基本概念 3
1.2.2数据流图绘制 4
1.2.3数据流图与程序框图 6
1.2.4需求分析示例 6
1.2.5数据字典 7
1.2.6使用PowerDesigner绘制数据流图 8
1.3概念结构设计 12
1.3.1概念结构设计方法 12
1.3.2自底向上的概念结构设计方法 13
1.3.3使用PowerDesigner绘制概念数据模型 18
1.4逻辑结构设计 22
1.4.1 E-R图向关系模型的转换 22
1.4.2逻辑模型到数据库特定模型的转换 24
1.4.3子模式设计 25
1.4.4使用PowerDesigner建立逻辑模型 25
1.5物理结构设计 26
1.5.1物理结构设计的工作内容 27
1.5.2使用PowerDesigner建立物理模型 27
1.6数据库实施及数据库的运行与维护 29
1.7本章小结 29
习题1 29
第2章 Oracle数据库体系结构 31
2.1概述 31
2.2实例的组成 32
2.2.1内存结构 32
2.2.2后台进程 33
2.3实例的启动 34
2.4连接数据库实例 35
2.4.1专用服务器模式 36
2.4.2共享服务器模式 37
2.4.3两种工作模式的讨论 38
2.5数据库使用的文件 39
2.6 Oracle存储的逻辑结构 39
2.6.1表空间 40
2.6.2段 41
2.6.3区(盘区) 41
2.6.4数据块 42
2.7数据逻辑结构与数据文件的关系 43
2.8表空间的创建 43
2.9本章小结 45
习题2 45
第3章 SQL 47
3.1 SQL简述 47
3.2数据定义语言 48
3.2.1建立数据表 48
3.2.2更改数据表 50
3.2.3删除数据表 52
3.3数据操纵语言 52
3.3.1插入数据命令 52
3.3.2更新数据命令 54
3.3.3删除数据命令 55
3.4数据检索命令 56
3.4.1基本语法 57
3.4.2选择查询结果属性列 58
3.4.3选择查询结果数据行 60
3.4.4查询结果排序 66
3.4.5聚集计算 68
3.4.6分组查询 69
3.4.7多表查询 71
3.4.8子查询 76
3.4.9集合查询 82
3.5 Oracle中的特殊对象与高级SQL命令 83
3.5.1 DUAL表 83
3.5.2 INSERT ALL语句和INSERT FIRST语句 85
3.5.3 MERGE语句 89
3.6 SQL函数 92
3.6.1 NULL和单行函数 92
3.6.2字符函数 93
3.6.3数值函数 95
3.6.4日期函数 96
3.6.5类型转换函数 97
3.6.6分支函数 98
3.6.7 MS SQL Server与Oracle常用SQL函数对应关系 99
3.7 SQL高级查询技术 101
3.7.1 TOP-N查询 101
3.7.2层次查询 101
3.7.3分析函数 104
3.8本章小结 109
习题3 109
第4章 Oracle数据类型 111
4.1概述 111
4.2字符类型 112
4.2.1 CHAR 112
4.2.2 VARCHAR2 114
4.2.3 NCHAR和NVARCHAR2 116
4.3数值类型 116
4.3.1 NUMBER类型 116
4.3.2 BINARY_ FLOAT和BINARY_ DOUBLE类型 120
4.4二进制类型 120
4.5日期和时间类型 122
4.6 ROWID类型和UROWID类型 126
4.7 LONG数据类型 126
4.8大对象技术 127
4.8.1 LOB类型的特点 128
4.8.2 LOB的存储 128
4.8.3使用大对象数据类型 129
4.8.4 DBMS_ LOB包 137
4.9本章小结 139
习题4 139
第5章 Oracle中的数据库对象管理 140
5.1 Oracle中的基础数据库对象 140
5.1.1数据表与堆表 141
5.1.2索引与B*树索引 142
5.1.3视图与关系视图 144
5.2 Oracle中的数据表 147
5.2.1索引组织表 147
5.2.2外部表 150
5.2.3临时表 153
5.2.4对象表 156
5.2.5嵌套表 157
5.2.6聚簇表 160
5.3 Oracle中的视图 162
5.3.1物化视图 162
5.3.2对象视图 164
5.4 Oracle中的索引 164
5.4.1反转键索引 164
5.4.2位图索引 165
5.4.3基于函数的索引 166
5.5联合索引与跳跃查询 167
5.6索引的压缩 169
5.7 Oracle序列 170
5.7.1序列的创建与删除 170
5.7.2序列的使用 172
5.7.3序列的CACHE使用方式 174
5.8 Oracle同义词 175
5.9 Oracle数据字典 177
5.9.1数据字典分类 180
5.9.2数据字典的组成 181
5.9.3常用的静态数据字典 181
5.9.4常用的动态数据字典 182
5.10其他常用数据库对象 183
5.11本章小结 183
习题5 183
第6章 PL/SQL基础 185
6.1 PL/SQL概览 185
6.1.1客户端/服务器架构中的PL/SQL 185
6.1.2 PL/SQL程序的代码组织方式 186
6.1.3 PL/SQL代码块分类 187
6.1.4第一个PL/SQL示例程序 188
6.2 PL/SQL中的变量 189
6.2.1 PL/SQL数据类型 189
6.2.2 PL/SQL的语言规则与约定 190
6.2.3变量声明 191
6.2.4锚定变量类型 192
6.2.5变量初始化 192
6.2.6变量生存范围 195
6.3 PL/SQL与SQL 197
6.3.1在PL/SQL程序中使用查询语句 197
6.3.2在PL/SQL程序中使用DML 198
6.4流程控制结构 200
6.4.1 IF语句 201
6.4.2 CASE语句 204
6.4.3 LOOP循环(无条件循环) 206
6.4.4 WHILE循环 207
6.4.5 FOR循环 208
6.4.6嵌套循环 210
6.4.7 CONTINUE循环跳转控制 211
6.4.8 GOTO程序跳转 213
6.5错误处理 214
6.5.1错误与异常 215
6.5.2异常的分类 215
6.5.3异常的处理 217
6.5.4 SQLCODE和SQLERRM 220
6.5.5复合异常处理 221
6.5.6异常的引发 222
6.5.7异常的传播 223
6.5.8 RAISE APPLICATION ERROR 224
6.6本章小结 226
习题6 226
第7章 事务管理与并发控制 227
7.1事务基本概念 227
7.2事务控制语句 228
7.3 Oracle中事务的原子性 230
7.4事务的隔离级别 232
7.5悲观锁定与乐观锁定 234
7.6本章小结 235
习题7 235
第8章 数据备份与传输技术 236
8.1备份与恢复 236
8.1.1备份分类 236
8.1.2恢复分类 237
8.1.3备份与恢复方法 237
8.2 RMAN 238
8.2.1 RMAN基本概念 238
8.2.2 RMAN基本应用 239
8.3闪回操作 246
8.3.1闪回数据库 247
8.3.2闪回命令 248
8.3.3回收站 249
8.4数据泵 252
8.4.1 EXPDP 253
8.4.2 IMPDP 254
8.5 SQL*Loader 255
8.6本章小结 257
习题8 257
第9章 Oracle数据库安全管理 258
9.1安全管理流程 258
9.2安全策略 259
9.2.1系统安全策略 259
9.2.2数据安全策略 261
9.2.3用户安全策略 261
9.2.4口令管理策略 261
9.2.5审计策略 262
9.3管理用户、权限和资源 263
9.3.1权限和角色 263
9.3.2概要文件管理系统资源 264
9.4审计准则 264
9.4.1保持审计过的信息可管理 265
9.4.2审计可疑的数据库活动的准则 266
9.4.3审计正常的数据库活动的准则 266
9.5 Oracle数据库的审计功能 267
9.5.1审计跟踪信息内容 268
9.5.2设置审计选项 269
9.5.3关闭审计选项 271
9.5.4启用和禁用数据库审计 271
9.5.5从审计跟踪中清除审计记录 272
9.5.6保护审计跟踪 272
9.6细粒度审计 272
9.7本章小结 273
习题9 273
第10章 数据库程序开发案例 274
10.1系统需求描述 274
10.1.1系统整体业务流程 274
10.1.2生产计划管理 274
10.1.3分解鉴定管理 275
10.1.4工艺文件管理 275
10.1.5机车档案管理 276
10.2需求分析 276
10.2.1功能界定 276
10.2.2运行环境 276
10.2.3系统功能分析 277
10.3数据库设计 278
10.3.1数据库设计命名约定 278
10.3.2概念结构设计 278
10.3.3逻辑结构设计 279
10.3.4数据视图设计 281
10.3.5存储过程设计 282
10.4本章小结 286
习题10 286
附录A订单处理系统设计方案 287
参考文献 290