引 言 1
本书使用对象………………………………(1) 本书内容概要 1
目录 1
第Ⅰ部分数据库管理系统原理 6
第1章数据库、DBMS原理和关系模型 6
理解数据库 6
理解DBMS 7
保密数据 7
维护和实施完整性 7
与数据库通信 8
理解事务 8
理解RDBMS 9
使用关系模型 9
使用Codd的十二规则 11
第2章逻辑数据库设计和规范化 12
实例关系模型 12
ERD映射到关系模型 15
理解规范化 16
使用一个规范化例子 16
继续讨论范式 19
理解应用类型 20
第3章物理数据库设计、硬件和有关问题……… 20
使用定量估计 21
事务分析 21
大小分析 21
反向规范化 22
理解存储层次和RAID 23
理解RAID 24
理解DBMS中的瓶颈 25
选择你的平台 25
操作系统集成和存储器/CPU一般性建议… 26
物理设计原则和硬件布置的一般建议 28
第4章Oracle解决方案 30
C)racle发展历史回顾 30
Oracle是DBMS 30
Oracle是RDBMS吗 31
再论物理设计 32
Oracle的未来 34
第Ⅱ部分Oracle数据库服务器 38
第5章Oracle实例结构 38
引言 38
定义实例 38
理解Oracle实例 39
创建实例 39
系统全局区域(SGA) 40
Oracle后台进程 43
理解事务的构造 47
监控实例 48
使用跟踪文件 48
跟踪通过操作系统 48
使用v$表格监控实例结构 49
SYS和SYSTEM模式 53
定义数据库 53
第6章Oracle数据库结构 53
理解数据库组件 54
系统数据库对象 54
用户数据库对象 60
理解数据库段 61
表格 62
索引 62
回滚段 63
使用Oracle数据字典 64
内部RDBMS(x$)表格 64
表格簇 64
散列簇 64
数据字典表格 65
动态性能(v$)景象 65
数据字典景象 65
其它数据库对象 65
景象 65
序列 66
触发器 66
同义词 66
程序包、过程和函数 67
数据库链接 67
第7章探索Oracle环境 68
创建Oracle环境 68
设计一个优化灵活的体系结构 68
创建顶层目录 69
使用应用程序目录 69
管理数据库文件 70
命名约定 71
合并在一起 72
配置Oracle环境 74
ORACLE_HOME给了温馨的家 75
理解Oracle软件环境 75
ORACLE_HOME目录 77
其它重要配置文件 78
创建你的第一个数据库 78
创建初始化参数文件 78
创建实例 79
创建数据库 80
运行后数据库创建过程 81
创建支持数据库的对象 81
更新系统配置文件 82
加密缺省帐号 82
探讨Oracle数据库 83
考察数据库 83
考察数据库段 85
考察杂项数据库对象 85
探索陌生环境 85
探索UNIX环境 86
探索Windows NT环境 86
管理SQL*Plus 88
使用SQL*Plus环境变量 88
第8章面向管理员的SQL*Plus 88
第Ⅲ部分Oracle界面和实用程序 88
调用/访问SQL*Plus 90
编辑SQL命令 90
键入和编辑SQL*Plus命令 91
在SQL*Plus中使用你的操作系统 93
编辑器 93
运行SQL*Plus命令 94
使用SQL*PlusCOPY命令 97
使用SQL创建SQL 99
在SQL*Plus中限制用户特权 101
禁止一条SQL命令 102
重新使能一条SQL命令 103
禁止SET ROLE 105
禁止角色 105
跟踪SQL语句 105
理解执行计划 108
使用AUTOTRACE特征 108
第9章Oracle企业管理员(OEM) 112
理解企业管理员体系结构 112
启动 114
使用控制台功能 115
理解集成控制台功能 116
借助于Navigator遍历数据库 117
利用地图(map)使数据库世界可视化 118
利用Job使管理任务自动化 118
利用Event Management响应变化 119
使用数据库管理工具 121
管理实例 121
管理模式 123
管理安全性 124
管理存储 124
执行SQL 125
管理软件 126
管理可恢复性 126
管理数据 126
使用Performance Pack 127
监控和跟踪性能 127
跟踪数据库活动 127
管理表空间 128
监控会话 129
使用Oracle Expert 130
使用Enterprise增值产品 131
理解PL/SQL 133
第10章PL/SQL基础知识 133
适应客户/服务器环境 134
理解PL/SQL引擎 134
适应客户机环境 137
服务器一侧对客户机一侧开发 137
给你的工具箱增加PL/SQL 138
加强你的SQL脚本 138
简化数据库管理 138
设计更好的数据库应用程序 139
PL/SQL入门 139
以最小的代价获取最佳的信息 139
理解事情的模式 140
PL/SQL基本开发环境 141
访问数据字典 142
语言指导 142
编码约定 143
特殊字符 143
PL/SQL的块结构 145
说明变量 156
赋值 167
循环 168
使用指示器(cursor) 171
处理异常 177
使用子程序 183
第11章使用存储的子程序和程序包 192
定义存储的子程序和程序包 192
建立和使用存储的程序 192
从SQL中调用存储的程序 196
从PL/SQL中调用存储的程序 199
利用SHOW ERRORS进行调试 201
检查存储程序或程序包的状态 208
使用程序包 209
建立和使用程序包 209
比较公用和私有说明 213
知道何时使用程序包 213
引用程序包元素 214
创建一个实际的例子 215
设计程序包包头 216
设计程序包包体 218
设计过程 220
结束语 221
描述提供的程序包 223
从你的服务器获取更多的信息 223
Oracle提供的程序包入门 223
第12章使用提供的Oracle数据库程序包……… 223
超出服务器范围的相互作用 223
服务器内的相互作用 223
关于提供的Oracle数据库程序包 223
DBMS程序包定位 224
确保程序包安装正确 226
使用Oracle提供的程序包 227
利用DBMS_APPLICATION_INFO 227
监控程序 227
利用DBMS_DLL重新编译程序包 229
利用DBMS_OUTPUT格式化输出 231
利用DBMS_PIPE共享数据 234
利用DBMS_SESSION改变会话 237
利用DBMS-_SHARED_POOL管理 238
共享池 238
利用DBMS_SPACE获取段空间信息 239
利用DBMS_SQL动态使能SQL 242
利用DBMS_SYSTEM运行一个跟踪 247
实用程序 248
使用DBMS_UTILITY中的杂项 248
理解输入/输出的作用和能力 254
第13章输入/输出 254
理解行为 255
控制和配置输入/输出 256
Import和Export会话预演 261
在表格存在时标识行为 262
重新组织分段表空间 262
将数据库对象从一个模式移动到另 265
一个模式 265
在表空间不匹配时标识行为 266
多个对象和多个对象类型 266
将数据库对象从一个表空间移至另 267
一个表空间 267
使用SHOW和INDEXFILE选项 267
第14章SQL*Loader 270
运行SQL*Loader 270
SQL*Loader组件 271
控制文件 272
SQL*Loader输入数据 272
SQL*Loader输出 272
控制文件语法 273
SQL*Loader举例分析 274
例1——装载固定长度数据 277
例2——装载可变长度数据 279
例3——装载嵌入数据 281
例4——带有条件检查的装载 282
例5——装入一个表格划分中 285
常规和直接路径装载 287
使用常规路径装载 288
使用SQL*Loader性能提示 289
使用直接路径装载 289
第15章面向管理员的Designer/2000 291
Designer/2000——通用的Oracle CASE解决 291
方案 291
系统开发生命周期(SDLC) 291
高层CASE和底层CASE 292
Designer/2000综述 292
Designer/2000组件 293
理解仓库 294
使用示意图程序 294
Designer/2000使用的示意图技术 295
生成程序 296
Oracle CASE Exchange 299
模块再生成策略 299
使用Designer/2000的面向瀑布的 300
方法学 300
Designer/2000管理 301
理解仓库 301
仓库的大小 302
保护Designer/2000仓库 302
共享和传送对象 303
版本和变化控制 304
使用仓库的引用完整性 304
移植应用 305
移动主访问控制(PAC)元素 306
在文档中放置Designer/2000示意图 307
使用Designer/2000开展反向工程工作 307
使用Designer/2000进行数据管理配置 308
增强Designer/2000的性能 310
优化客户机 310
优化网络 310
应用编程接口(API) 311
优化数据库服务器 311
优化Designer/2000 311
使用API 312
API景象和程序包 312
API限制 313
Designer/2000疑难解答 313
检查共同错误 313
使用诊断和跟踪 314
从Designer/2000有效生成Developer 315
/2000应用程序的提示 315
Designer/2000 R2.0特征 317
Designer/2000和Oracle8 318
第Ⅳ部分Web上的Oracle 322
第16章Oracle Web应用服务器3.0 322
介绍Oracle Web应用服务器 322
了解网络计算结构(NCA) 322
了解OracleWeb应用服务器 323
Web接收器 324
Web请求代理 324
桥接器 325
Oracle Web应用服务器提供的基本服务…… 325
鉴别服务 326
持久存储服务 326
事务服务 326
cartridge之间的交换服务 326
第17章Web应用服务器组件 327
检查Web接收器 327
详细分析 327
了解Web接收器的结构 328
文件的内存分配 328
目录表 328
分析域名 328
测试Web请求代理 329
Web接收器配置参数 329
WRB通讯联系 330
第三方的工具 330
WRB调度程序 331
IPC支持 331
WRB执行引擎(WRBX) 331
WRB应用程序界面 331
测试Web应用服务器SDK 332
WRB登录器API 332
了解Cartridge和ICX 334
使用PL/SQL代理(agent) 344
第18章安装和配置Oracle Web应用服务器 345
为Sun Solaris安装Oracle Web 345
应用服务器 345
硬件和软件的要求 345
了解Web应用服务器的最新安装特征 346
安装以后重新链接你的可执行程序 346
鉴别产品的相关性 347
执行预安装任务 347
设置创建文件的授权代码 348
预置环境变量 348
用启动文件更新你的环境 349
设计目录结构 349
有关Web代理的安装说明 350
OWA.CFG文件的内部结构 351
使用Web管理服务器 352
安装Oracle Web应用服务器的选项 352
配置Web服务器 353
安装Web应用服务器开发者的工具箱……… 354
提高多Web代理安装的性能 354
设置新的Web代理服务 355
用OracleWeb应用服务器管理服务程序…… 355
定义Web接收器的配置参数 357
疑难解答 357
其它有帮助的安装说明 358
尝试在Windows NT上安装Oracle Web 359
应用服务器 359
第Ⅴ部分Oracle联网技术 362
第19章Oracle网络技术基础 362
理解Oracle网络产品特征 362
网络命名约定 363
理解执行和管理组件 363
理解可选安全性扩展 364
SQL*Net和Net8体系结构 364
联网协议栈 364
Oracle协议适配器 365
透明网络基底(TNS) 365
使用开放系统互连参考模型 366
基础 367
接口 367
协议栈 367
TCP/IP协议栈 368
安装和配置SQL*Net 370
规划网络设计 370
配置文件简介 370
理解SQL*Net操作 370
准备安装SQL*Net 371
安装16位SQL*Net(非OCSM) 373
安装32位SQL*Net 374
使用Oracle客户软件管理器 375
(OCSM)组件 375
SQL*Net 376
使用Oracle客户软件管理器安装 376
第20章Oracle高级联网技术 378
理解企业网络 378
配置SQL*Net和Net8 378
使用Oracle工具配置Oracle网络 379
探索Net8新参数 380
管理Oracle Listener 381
客户机配置错误分析 381
服务器错误分析 383
理解Oracle名字服务器 383
使用名字服务器配置客户机 384
名字服务器配置 384
为动态Discovery配置名字服务器 385
使用高级网络选项 385
使能数据加密和校验和 386
理解多线程服务器 387
多线程服务器结构 387
配置多线程服务器 388
管理多线程服务器 389
配置多协议支持 390
使用Oracle连接管理器 390
配置多路连接 390
第Ⅵ部分管理Oracle数据库 394
第21章管理数据库存储 394
管理数据库对象 394
管理Oracle块 394
理解PCTFREE和PCTUSED 394
管理表存储区 395
理解数据库碎片 397
理解碎片表空间 397
监控临时表空间和段 397
管理索引 397
处理碎片化的表空间 400
理解对象碎片 400
管理回滚段 403
理解回滚段操作 403
确定回滚段长度 405
避免回滚段冲突 406
使用OPTIMAL参数 407
执行装载测试获取回滚估计值 407
确认存储问题 409
探讨表空间 410
检查表格 412
优化簇存储 413
检查索引 414
观察回滚段增长 414
管理临时表空间 415
管理增长的数据库 415
监控数据库存储 416
修正过度的表增长 418
合并簇 418
合并索引 418
管理表空间增长 419
了解空间管理器特性 420
理解空间管理器 420
使用空间管理器输出 421
配置和使用空间管理器 423
第22章确认重资源用户 428
资源的区别 428
资源:CPU 429
CPU综述 429
查找重CPU用户 431
资源:文件I/O(磁盘访问) 444
I/O综述 445
查找过量I/O用户 449
资源:内存 451
进程内存崩溃 453
内存综述 453
查找过量内存用户 455
第23章安全性管理 459
用户认定 459
数据库认定 459
外部认定 461
企业认定 461
数据库特权管理 462
理解安全性角色 465
理解管理 466
监测数据库资产 466
审计(audit)登录 467
审计数据库行为 467
审计数据库对象上的DML 468
管理审计 468
保护数据完整性 469
硬件安全性 469
恢复丢失数据 469
逻辑备份 470
操作系统备份 470
第24章备份和恢复 471
备份策略 471
理解物理和逻辑数据丢失 472
使用逻辑备份 474
完全逻辑备份 477
特定用户模式的逻辑备份 477
特定表的逻辑备份 477
使用冷物理备份 478
命令行驱动的冷物理备份 478
桌面驱动的冷备份 480
使用热物理备份 481
理解原因 482
命令行驱动的热物理备份 482
桌面驱动的热物理备份 484
从逻辑备份中恢复 485
从逻辑备份中完全恢复 487
从逻辑备份中部分恢复 488
使用物理恢复 488
物理重建数据库 489
完全恢复 490
不完全恢复 492
检测策略 496
第25章完整性管理 497
简介 497
实施加锁 497
加锁的需要 497
加锁概念 498
分析v$look 500
情况1:表被加专用锁 501
一行 502
情况2:会话更新加专用锁的表的 502
情况3:会话试图更新其它会话正更新 503
的行 503
监控系统中的锁 504
避免锁:可能的解决方法 507
用锁存器实现锁 510
锁存器的功能 510
分析与锁存器相关的景象 510
检查锁存器冲突 511
优化一些重要的锁存器 513
简介 520
并行装载 520
第Ⅶ部分并行和分布式环境 520
第26章并行查询管理 520
并行恢复 521
并行传播(复制) 521
并行SQL执行 521
可被并行的SQL操作 522
理解并行化程度 523
确定并行化程度 523
没有足够的查询SLAVE可用时 524
理解9,3,1算法 525
理解查询服务器进程 525
分析对象,更新统计数据 525
理解并行DML 526
在OPS环境中的并行执行 526
调整并行查询 527
第27章并行服务器管理 528
理解并行服务器的优点 528
使用单实例对并行服务器数据库 529
使用锁售商接口 530
使用并行缓冲管理加锁进程 531
使用并行高速缓冲存储器管理锁参数 533
并行服务器初始化参数 538
并行服务器的回滚段考虑 541
重做日志和并行服务器实例 542
使用自由列表组避免冲突 543
确定何时并行服务器可解决商业需求 545
为Failover设计并行数据库 546
为可伸缩性设计并行数据库 548
应用和功能划分 548
部门/商业系统(1ine)划分 550
物理表划分 550
索引和可伸缩性考虑 551
事务划分 551
顺序产生器和多实例 552
并行服务器创建的特殊考虑 552
监控和优化并行服务器 554
监控v$LOCK_ACTIVITY 555
监控v$BH 556
监控v$CACHE和v$PING 557
并行服务器优化策略 558
命名数据库 560
对各种数据库系统的描述 560
理解分布式数据库 560
第28章分布式数据库管理 560
获得透明性 561
使用Oracle的安全服务器和全局用户 562
SQL*Net 562
使用分布式数据库 562
建立一个分布式系统 563
确定分布式系统中的潜在问题 566
优化一个分布式系统 566
理解两阶段提交 567
使用分布式事务 567
处理可疑事务 568
理解只读快照 570
建立快照 570
使用快照刷新组 572
通过快照确定潜在的问题 572
对快照的限制 574
优化快照 574
使用快照的初始化参数 575
检查物理设计 578
第29章性能优化基础 578
第Ⅷ部分性能优化 578
理解为什么要优化 579
了解优化原则 580
优化原则1 580
优化原则2 581
优化原则3 581
优化原则4 581
优化原则5 582
优化目标 582
第2步:进行正确的物理设计 583
投资回报策略 583
第1步:进行正确的逻辑设计 583
第3步:必要时重新设计 584
第4步:编写有效的应用代码 584
第5步:必要时重新编写代码 584
第6步:优化数据库内存结构 584
第7步:必要时优化OS内存结构 584
第8步:优化数据库I/O 584
则考虑夏特殊的解决方案 585
第12步:若所有其它优化步骤均失败, 585
第11步:必要时优化客户机 585
第10步:必要时优化网络 585
第9步:必要时优化OS I/O 585
检查应用类型 587
OLTP问题 588
DSS问题 588
OLTP和DSS其它的考虑 589
理解基准 589
使用Oracle诊断工具 590
使用服务器管理程序监控 591
使用V$动态性能景象 591
使用EXPLAIN PLAN 591
使用SQL_TRACE和TKPROF 591
使用企业管理器性能包 592
使用utlbstat/utlestat和report.txt 592
使用第三方产品 592
第30章应用程序优化 593
动机 593
理解优化器 593
访问路径的排序 594
分析查询,提高效率 596
指定优化器方式 597
优化术语 599
SQL跟踪和tkprof 600
理解EXPLAIN PLAN 602
确认典型问题 604
正确使用索引 604
应用优化中常见的问题的处理 605
改写查询 607
使用集合操作符 607
使用布尔转换 607
使用相同分区本地索引 608
索引区分 608
介绍Oracle8的新索引特征 608
使用分区敏感优化器 609
使用逆序索引表 609
使用逆序关键字索引 609
第31章优化内存 610
简介 610
UTLBSTAT/UTLESTAT 610
解释结果 611
浏览报告文件 611
优化共享区 612
提高库高速缓冲存储器性能指南 613
多线程服务器问题 616
优化数据库缓冲区高速缓冲存储器 617
优化排序 620
什么触发排序 620
排序参数 621
排序的其它精细优化参数 623
优化多线程服务器(MTS) 624
优化锁 625
操作系统集成 626
优化表空间和数据文件 628
第32章优化I/O 628
划分表空间 629
成簇 630
监控 632
优化块和范围(extent) 633
使用预分配 633
使用Oracle分离(striping) 634
避免碎片 634
优化回滚段 637
优化重做日志 638
直接装载插入 640
Oracle8的新I/O特征 640
扩展的划分表格名 640
附 录 642
A.UNIX上的Oracle 642
Solaris 642
Oracle DBA的UNIX Primer 642
UNIX上的SA和DBA配置 644
配置共享内存和信号 647
理解OFA 648
比较原始磁盘和UFS 649
使用附加的UNIX性能优化提示 650
为什么选择Windows NT上的Oracle 653
B.Windows NT上的Oracle 653
Windows NT文件系统 654
了解Windows NT管理 655
在Windows NT服务器上安装Oracle服务器… 659
在Windows NT上创建一个实例 660
协调和优化Windows NT上的Oracle 662
学习Oracle on Windows NT 663
支持Windows NT上的Oracle 8 665
从Oracle 7升级到Oracle 8 666
C.Oracle 8的新特征 666
支持大型数据库 668
支持对象关系特征 671
管理Oracle 8 673
开发应用程序 675
D.Oracle认证程序 678
获益于技术认证 678
Oracle认证的专业程序 678
成为一个Oracle认证的数据库管理员 679
数据库管理员认证程序 686