第1部分 数据库基础 1
第1章 数据库基础知识 2
1.1 数据库技术概述 2
1.1.1 基本概念 2
1.1.2 数据库技术的产生与发展 6
1.1.3 数据库系统的特点 8
1.2 关系数据库 9
1.2.1 逻辑模型 10
1.2.2 关系模型 12
1.2.3 功能 14
1.2.4 组成 15
1.2.5 常见的几种关系数据库 16
1.3 网络数据库 17
1.3.1 基本概念 17
1.3.2 主要特点 18
1.3.3 工作模式 18
1.4 Oracle公司 20
1.5 Oracle数据库简史 20
1.6 Oracle数据库的用户类型 22
1.6.1 数据库管理员 22
1.6.2 安全顾问 23
1.6.3 网络管理员 23
1.6.4 应用程序开发人员 23
1.6.5 应用程序管理员 23
1.6.6 数据库用户 23
1.7 Oracle数据库管理员的任务 23
1.8 面向网格计算的Oracle 10g数据库 25
1.8.1 Oracle Database 10g 25
1.8.2 Oracle Application Server 10g 27
1.8.3 Oracle Enterprise Manager 10g 28
1.9 小结 30
第2章 安装Oracle 10g 31
2.1 安装前的准备工作 31
2.1.1 注意事项 31
2.1.2 检查硬件、软件环境 32
2.1.3 设置IP地址并进行本地连接 33
2.1.4 设置计算机全名 33
2.2 安装Oracle 10g数据库(高级安装) 34
2.3 查看、验证安装结果 43
2.3.1 程序组 43
2.3.2 文件体系结构 44
2.3.3 服务 45
2.3.4 注册项 46
2.3.5 环境变量 46
2.3.6 运行管理工具程序 47
2.4 小结 50
第3章 OEM数据库控制工具 51
3.1 OEM数据库控制工具简介 51
3.1.1 什么是OEM 51
3.1.2 Oracle 10g的OEM的界面风格 52
3.1.3 联机帮助 53
3.1.4 导航功能 55
3.2 启动OEM控制台的dbconsole服务 56
3.3 使用OEM数据库控制工具 58
3.3.1 启动和登录OEM 58
3.3.2 注销OEM 60
3.3.3 重新登录OEM 60
3.4 OEM页面功能简介 60
3.4.1 “主目录”属性页 61
3.4.2 “性能”属性页 63
3.4.3 “管理”属性页 65
3.4.4 “维护”属性页 68
3.5 在OEM中启动iSQL*Plus 71
3.6 在OEM中设置主机首选身份证明 72
3.6.1 用户权限指派 73
3.6.2 设置主机首选身份证明 74
3.7 小结 76
第4章 SQL*Plus工具 77
4.1 启动、退出SQL*Plus 77
4.1.1 启动SQL*Plus 78
4.1.2 获取SQL*Plus命令的帮助 79
4.1.3 退出SQL*Plus 79
4.2 编辑、运行语句和命令 80
4.2.1 编辑语句和命令 80
4.2.2 运行语句和命令 81
4.3 DESCRIBE命令 82
4.4 脚本文件及其文件操作命令 83
4.4.1 文件操作命令举例 84
4.4.2 两种运行脚本文件的命令举例 86
4.5 连接、断开与数据库的连接 89
4.5.1 CONN[ECT]命令 89
4.5.2 DISC[ONNECT]命令 90
4.6 交互式命令 90
4.6.1 替换变量 90
4.6.2 与用户通信 93
4.6.3 绑定变量 94
4.7 自定义SQL*Plus环境 94
4.7.1 使用SHOW命令 95
4.7.2 使用SET命令 96
4.7.3 保存与定制SQL*Plus环境 101
4.8 格式化查询结果 102
4.8.1 格式化列 102
4.8.2 限制重复行 105
4.8.3 使用汇总行 106
4.8.4 设置页与报告的标题和脚注 108
4.9 用脚本文件生成报表 110
4.10 自动生成SQL语句 111
4.11 小结 113
第5章 SQL语言 114
5.1 SQL语言简介 114
5.1.1 概述 114
5.1.2 特点 116
5.1.3 分类 117
5.2 Oracle提供的示例数据库 118
5.3 查询数据 119
5.3.1 基本查询 120
5.3.2 分组查询 127
5.3.3 连接查询 133
5.3.4 集合查询 136
5.3.5 子查询 138
5.3.6 在DDL、DML语句中使用子查询 143
5.4 维护数据 145
5.4.1 插入数据 146
5.4.2 更新数据 147
5.4.3 删除数据 148
5.5 事务与事务控制 149
5.5.1 事务的概念 149
5.5.2 事务控制的基本语句及其功能 150
5.5.3 事务的状态与性质 155
5.6 SQL语言中的各种函数 157
5.6.1 单行数字函数 157
5.6.2 单行字符函数 162
5.6.3 单行日期时间函数 166
5.6.4 单行转换函数 175
5.6.5 几个函数的使用举例 179
5.7 小结 182
第6章 PL/SQL语言 183
6.1 PL/SQL语言简介 183
6.1.1 概述 183
6.1.2 开发调试环境 185
6.1.3 块的类型 186
6.2 程序结构 186
6.2.1 组成部分 186
6.2.2 语言字符集、常用符号 187
6.2.3 常量与变量 190
6.2.4 数据类型 192
6.3 流程控制 199
6.3.1 条件控制 199
6.3.2 循环控制 202
6.3.3 顺序控制 206
6.4 游标 208
6.4.1 显式游标 208
6.4.2 隐式游标 213
6.4.3 游标FOR循环 214
6.4.4 使用游标更新或删除数据 215
6.5 异常处理 216
6.5.1 异常错误简介 216
6.5.2 预定义异常错误 217
6.5.3 非预定义异常错误 220
6.5.4 自定义异常 222
6.5.5 使用SQLCODE和SQLERRM 223
6.5.6 使用RAISE_APPLICATION_ERROR 224
6.6 过程与函数 225
6.6.1 过程 225
6.6.2 函数 229
6.6.3 过程与函数的比较 232
6.7 程序包 233
6.7.1 程序包说明 234
6.7.2 程序包体 235
6.7.3 使用程序包 238
6.8 触发器 240
6.8.1 触发器简介 240
6.8.2 DML触发器 241
6.8.3 INSTEAD OF触发器 246
6.8.4 触发器的管理 248
6.9 小结 250
第2部分 体系结构与存储管理 251
第7章 体系结构 252
7.1 体系结构概述 252
7.1.1 网络结构 252
7.1.2 工作原理 254
7.2 存储结构 256
7.2.1 逻辑存储结构 257
7.2.2 物理存储结构 262
7.3 软件结构 266
7.3.1 软件结构 266
7.3.2 内存结构 267
7.3.3 进程结构 272
7.3.4 后台进程 273
7.4 数据字典 279
7.4.1 数据字典的概念 279
7.4.2 数据字典的组成 279
7.4.3 数据字典的使用 283
7.4.4 动态性能表和动态性能视图 287
7.4.5 查询数据字典视图的信息 288
7.5 在OEM中查询参数与数据字典视图 289
7.5.1 在OEM中查询参数文件 289
7.5.2 在OEM中查询内存参数 290
7.5.3 在OEM中查询数据字典视图 291
7.6 小结 293
第8章 管理控制文件 294
8.1 控制文件概述 294
8.2 管理控制文件的准则 295
8.2.1 提供控制文件的文件名 295
8.2.2 多路复用控制文件 295
8.2.3 适当放置控制文件 298
8.3 管理控制文件的大小 298
8.4 备份控制文件 299
8.4.1 将控制文件备份为二进制文件 299
8.4.2 将控制文件备份为文本文件 300
8.5 创建控制文件 304
8.6 删除控制文件 307
8.7 移动控制文件 307
8.8 查询控制文件信息 309
8.9 在OEM中管理控制文件 310
8.9.1 在OEM中查看控制文件 310
8.9.2 在OEM中备份控制文件 312
8.10 小结 313
第9章 管理表空间 314
9.1 表空间概述 314
9.1.1 表空间的特性与作用 314
9.1.2 表空间的类型 317
9.1.3 表空间的区、段管理方式 319
9.1.4 表空间的状态 322
9.2 管理表空间的准则 324
9.2.1 创建多个(非SYSTEM)表空间 324
9.2.2 设置表空间的默认存储参数 325
9.2.3 为用户设置表空间配额 325
9.3 创建表空间 325
9.3.1 创建(永久)表空间 328
9.3.2 创建大文件表空间 329
9.3.3 创建临时表空间 329
9.3.4 创建撤销表空间 330
9.4 修改表空间 331
9.4.1 扩展表空间 331
9.4.2 修改属性、状态 332
9.5 删除表空间 335
9.6 查询表空间信息 336
9.6.1 查询表空间的基本信息 336
9.6.2 查询表空间及其默认存储参数 337
9.6.3 查询表空间中的数据文件的信息 338
9.6.4 查询表空间的空闲空间大小 338
9.7 在OEM中管理表空间 339
9.7.1 创建(永久)表空间 339
9.7.2 创建临时表空间组 342
9.7.3 扩展表空间 346
9.7.4 修改表空间的属性、状态 348
9.7.5 删除表空间 353
9.8 小结 354
第10章 管理数据文件 356
10.1 数据文件概述 356
10.2 管理数据文件的准则 358
10.2.1 确定数据文件的数量和大小 358
10.2.2 合理地放置数据文件 358
10.3 创建数据文件 359
10.3.1 在创建表空间时创建数据文件 359
10.3.2 向表空间添加数据文件 360
10.4 改变数据文件的大小 360
10.4.1 数据文件的空间大小及其局限性 360
10.4.2 设置数据文件为自动扩展 361
10.4.3 手动改变数据文件的大小 363
10.5 移动数据文件 363
10.5.1 移动同一个表空间的数据文件 364
10.5.2 移动多个表空间的数据文件 365
10.6 删除数据文件 367
10.6.1 删除表空间中的所有数据文件 367
10.6.2 只删除一个数据文件 367
10.7 查询数据文件信息 369
10.7.1 查询数据文件的信息 370
10.7.2 查询临时文件的信息 372
10.7.3 查询数据文件的使用信息 373
10.7.4 查询数据文件的读写信息 373
10.8 在OEM中管理数据文件 374
10.8.1 创建数据文件 374
10.8.2 向表空间添加数据文件 377
10.8.3 修改表空间中所有数据文件的可用性 379
10.9 小结 382
第11章 管理重做日志文件 383
11.1 重做日志文件概述 383
11.1.1 重做日志文件的作用与目的 383
11.1.2 重做记录 384
11.1.3 系统更改编号SCN 385
11.1.4 如何写入重做日志文件 385
11.1.5 重做日志文件的归档 388
11.2 管理重做日志文件的准则 390
11.2.1 多路复用重做日志文件 390
11.2.2 合理放置重做日志文件 391
11.2.3 合理设置重做日志文件组、文件的数量大小 391
11.3 添加重做日志文件组及其成员 393
11.3.1 添加重做日志文件组 393
11.3.2 添加重做日志文件组的成员 394
11.4 删除重做日志文件组及其成员 395
11.4.1 删除重做日志文件组 396
11.4.2 删除重做日志文件组的成员 396
11.5 清除重做日志文件组 398
11.6 移动重做日志文件 400
11.6.1 在OPEN状态下移动重做日志文件 400
11.6.2 在MOUNT状态下移动重做日志文件 401
11.7 查询重做日志文件信息 402
11.8 在OEM中管理重做日志文件 404
11.8.1 添加重做日志文件组 404
11.8.2 添加重做日志文件组的成员 406
11.8.3 删除重做日志文件组的成员 409
11.8.4 删除重做日志文件组 411
11.9 小结 412
第3部分 数据库管理 413
第12章 创建和删除数据库 414
12.1 创建数据库的准则 414
12.1.1 规划数据库 415
12.1.2 检查必要条件 415
12.1.3 决定创建方式 416
12.2 使用DBCA创建数据库 416
12.3 查看、验证用DBCA创建的新数据库的结果 433
12.4 使用DBCA删除数据库 436
12.5 小结 437
第13章 启动和关闭数据库 439
13.1 管理初始化参数文件 439
13.1.1 服务器参数文件概述 440
13.1.2 导出服务器参数文件 441
13.1.3 创建服务器参数文件 443
13.1.4 更改初始化参数 444
13.2 启动和关闭数据库的概念和步骤 446
13.2.1 启动数据库的概念和步骤 446
13.2.2 关闭数据库的概念和步骤 449
13.3 在SQL*Plus中启动和关闭数据库 449
13.3.1 准备启动和关闭数据库 449
13.3.2 启动模式与启动选项 450
13.3.3 在SQL*Plus中关闭数据库 454
13.3.4 转换启动模式或修改数据库的状态 457
13.4 使用Windows服务启动和关闭数据库 458
13.4.1 Oracle服务 458
13.4.2 启动服务 459
13.4.3 关闭服务 460
13.4.4 设置服务启动类型 461
13.5 小结 462
第14章 管理网络 463
14.1 Oracle网络服务概述 463
14.1.1 网络体系结构 463
14.1.2 网络的驱动 465
14.1.3 网络的特点 467
14.1.4 网络的几个基本概念 467
14.1.5 网络配置与工具简介 473
14.2 服务器端监听程序的配置管理 475
14.2.1 配置文件listenner.ora 475
14.2.2 用ONM管理监听程序 476
14.3 在OEM中启动和使用非默认监听程序 478
14.4 客户机端网络服务名的配置管理 484
14.4.1 配置文件tnsnames.ora 484
14.4.2 用ONM管理本地网络服务名 485
14.5 使用ONCA工具进行网络配置 489
14.5.1 服务器端监听程序的配置 490
14.5.2 客户机端本地网络服务名配置 493
14.6 小结 497
第4部分 方案对象管理 499
第15章 管理表 500
15.1 表概述 500
15.1.1 表简介 501
15.1.2 表和列的命名 501
15.1.3 内建数据类型 502
15.2 数据完整性与约束条件 506
15.2.1 实体完整性 507
15.2.2 参照完整性 507
15.2.3 用户定义的完整性 508
15.2.4 Oracle提供的约束条件 508
15.3 管理表的策略 509
15.4 创建表 512
15.4.1 创建标准表 513
15.4.2 创建临时表 514
15.4.3 创建索引表 515
15.4.4 通过查询从一个表创建另一个表 519
15.5 更改表 520
15.5.1 添加列 520
15.5.2 更改列 521
15.5.3 删除列 522
15.5.4 给表或列添加注释 524
15.5.5 重新命名表和重新组织表 525
15.6 删减表和删除表 526
15.6.1 删减表 526
15.6.2 删除表 528
15.7 维护约束条件 528
15.7.1 约束的分类 529
15.7.2 约束的状态 532
15.7.3 定义约束 535
15.7.4 添加和删除约束 537
15.7.5 设置约束的状态 540
15.7.6 设置约束的延迟检查 542
15.8 查看表和列信息 544
15.9 查看约束信息 546
15.10 在OEM中管理表 548
15.10.1 在OEM中创建标准表 548
15.10.2 在OEM中创建索引表 553
15.10.3 在OEM中查看、编辑、删除表 556
15.11 小结 559
第16章 管理索引 560
16.1 索引概述 560
16.1.1 索引的作用 561
16.1.2 何时、如何使用索引 562
16.1.3 索引的原理 563
16.1.4 索引的分类 564
16.1.5 索引的存储管理 569
16.2 管理索引的策略 570
16.2.1 选择合适的索引类型 570
16.2.2 在适当的表、适当的列上创建适当数量的索引 571
16.2.3 合理设置复合索引中的列顺序 572
16.2.4 设置合适的PCTFREE参数 572
16.2.5 设置合适的表空间 572
16.2.6 设置合适的选项 573
16.2.7 装载数据后再创建索引 574
16.2.8 创建大索引时的策略 574
16.3 创建索引 574
16.3.1 创建标准(B树)索引 575
16.3.2 创建位图索引 576
16.3.3 创建函数索引 576
16.4 更改索引 577
16.5 删除索引 581
16.6 查看索引信息 581
16.7 在OEM中管理索引 584
16.7.1 在OEM中创建索引 584
16.7.2 在OEM中查看、编辑和删除索引 588
16.8 小结 591
第17章 管理视图 592
17.1 视图概述 592
17.1.1 视图简介 592
17.1.2 使用视图的目的 593
17.2 创建视图 595
17.2.1 创建简单视图 596
17.2.2 创建连接视图 598
17.2.3 创建复杂视图 598
17.2.4 强制创建视图 599
17.3 更改视图 601
17.3.1 更改视图的定义 601
17.3.2 视图的相关性与重新编译 602
17.4 删除视图 603
17.5 在连接视图上执行DML操作 603
17.5.1 在视图上执行DML操作的步骤 603
17.5.2 可更新连接视图与键值保存表 604
17.5.3 连接视图的更新准则与DML操作的执行 606
17.6 查询视图的可更新列 609
17.7 查看视图信息 611
17.8 在OEM中管理视图 612
17.8.1 在OEM中创建视图 612
17.8.2 在OEM中查看、编辑、删除视图 615
17.9 小结 617
第18章 管理序列 618
18.1 序列概述 618
18.2 创建序列 619
18.3 使用序列 620
18.3.1 引用序列的语法 621
18.3.2 序列的初始化 621
18.3.3 在SQL语句中使用序列 621
18.3.4 最大值和最小值 622
18.4 更改序列 623
18.4.1 更改选项和参数 623
18.4.2 更改NEXTVAL 623
18.5 删除序列 625
18.6 查看序列信息 625
18.7 在OEM中管理序列 626
18.7.1 在OEM中创建序列 626
18.7.2 在OEM中查看、编辑、删除序列 628
18.8 小结 632
第5部分 安全管理 633
第19章 数据库安全综述 634
19.1 数据库安全综述 634
19.2 安全策略 635
19.2.1 数据安全的策略 635
19.2.2 用户安全的策略 636
19.2.3 口令管理的策略 638
19.3 有关安全的几个注意事项 640
19.4 小结 644
第20章 管理权限 645
20.1 权限概述 645
20.1.1 权限的分类与管理 645
20.1.2 系统权限的控制作用举例 647
20.1.3 对象权限的控制作用举例 648
20.2 系统权限的分类 648
20.3 对象权限的分类 652
20.4 管理权限 654
20.4.1 授予系统权限 654
20.4.2 查询系统权限信息 656
20.4.3 回收系统权限 657
20.4.4 在OEM中管理系统权限 659
20.4.5 授予对象权限 661
20.4.6 查询对象权限信息 662
20.4.7 回收对象权限 664
20.4.8 在OEM中管理对象权限 666
20.5 小结 668
第21章 管理角色 670
21.1 角色概述 670
21.2 预定义角色 672
21.3 管理自定义角色 676
21.3.1 创建角色 676
21.3.2 角色的权限管理 676
21.3.3 更改角色 678
21.4 用户的角色管理 678
21.4.1 给用户授予角色 679
21.4.2 回收用户的角色 679
21.4.3 更改用户的默认角色 680
21.5 删除角色 682
21.6 查询角色信息 682
21.7 在OEM中管理角色 685
21.8 小结 689
第22章 管理概要文件 691
22.1 概要文件概述 691
22.1.1 概要文件及其意义 691
22.1.2 默认概要文件 692
22.1.3 资源限制参数 692
22.2 管理概要文件 695
22.2.1 创建概要文件 695
22.2.2 更改概要文件 696
22.2.3 分配概要文件 697
22.2.4 删除概要文件 697
22.3 使用概要文件管理口令 698
22.3.1 登录失败与账户锁定 698
22.3.2 口令的有效期 700
22.3.3 口令复杂性校验函数 701
22.4 查询概要文件信息 703
22.5 在OEM中管理概要文件 704
22.5.1 查看、编辑概要文件 704
22.5.2 生成概要文件的DDL语句 707
22.6 小结 709
第23章 管理用户 710
23.1 用户与安全概述 710
23.1.1 数据库的安全 710
23.1.2 用户的方案 711
23.1.3 预定义的用户 712
23.2 数据库的管理账户与权限 713
23.3 创建用户 714
23.4 更改用户 717
23.5 删除用户 717
23.6 管理用户的属性 718
23.6.1 身份验证方式 718
23.6.2 权限与角色 719
23.6.3 默认表空间 719
23.6.4 临时表空间 721
23.6.5 表空间配额 722
23.6.6 资源限制与概要文件 723
23.6.7 账户状态 723
23.7 查询用户信息 725
23.8 在OEM中管理用户 728
23.8.1 创建用户 728
23.8.2 更改用户的表空间配额 730
23.8.3 账户解锁和口令重设 732
23.8.4 生成DDL 735
23.8.5 删除用户 736
23.9 小结 738
第24章 备份与恢复 739
24.1 备份与恢复概述 739
24.1.1 备份与恢复 739
24.1.2 备份与恢复的方法 740
24.2 提高数据库可用性的策略 741
24.2.1 防止故障 741
24.2.2 备份策略 743
24.2.3 测试备份与恢复策略 744
24.3 使用数据泵进行逻辑备份与恢复 744
24.3.1 创建目录对象并授权 745
24.3.2 准备功能示例数据 746
24.3.3 使用expdp导出数据 748
24.3.4 使用impdp导入数据 756
24.4 在OEM中导出、导入数据 765
24.4.1 导出到文件 765
24.4.2 从文件中导入 769
24.5 小结 774
第6部分 应用开发 775
第25章 利用PowerBuilder开发Oracle数据库应用系统 776
25.1 PB概述 776
25.2 PB的集成开发环境 777
25.2.1 开发环境屏幕界面 777
25.2.2 主要画笔的功能与作用 778
25.2.3 理解面向对象的程序设计及其PB对象 779
25.3 构建应用程序开发环境 779
25.3.1 客户/服务器模式数据库应用系统的结构 780
25.3.2 准备工作 780
25.4 应用程序开发 785
25.4.1 创建访问Oracle数据库的概要文件 785
25.4.2 连接和访问Oracle数据库 787
25.4.3 创建保存应用程序的文件夹 788
25.4.4 创建工作区 788
25.4.5 创建目标及应用对象 789
25.4.6 创建数据窗口 790
25.4.7 创建窗口与设计用户界面 792
25.4.8 编写脚本程序 795
25.4.9 试运行应用程序 798
25.5 打包和发布应用程序 799
25.5.1 创建工程 799
25.5.2 生成可执行文件 801
25.5.3 运行可执行文件 801
25.5.4 打包和发布应用程序 802
25.6 小结 805