譯者序
序言
前言
第一部分 數據庫基本概念
第1章 DB2數據庫結構 1
1.1 關系數據庫 1
1.2 關系數據庫的對象 2
1.2.1 數據庫 2
1.2.2 表空間 2
1.2.3 表 4
1.2.4 數據類型 4
1.2.5 檢查約束 6
1.2.6 索引 7
1.2.7 視圖 8
1.2.8 程序包 9
1.2.9 觸發(fā)器 9
1.2.10 別名 10
1.2.11 事件監(jiān)視器 10
1.2.12 模式 10
1.2.13 系統(tǒng)目錄視圖 11
1.2.14 恢復日志文件和恢復歷史文件 11
1.2.15 配置文件 12
1.3 DB2數據庫的目錄 13
1.3.1 物理數據庫目錄 13
1.3.2 卷目錄 14
1.3.3 系統(tǒng)目錄 14
1.3.4 工作站目錄 15
1.3.5 數據庫連接服務目錄 15
1.4 小結 15
第2章 數據庫一致性機制 17
2.1 數據一致性的定義 17
2.2 事務 17
2.3 并發(fā)性和事務隔離級別 19
2.3.1 可重復讀 20
2.3.2 讀穩(wěn)定性 20
2.3.3 游標穩(wěn)定性 20
2.3.4 未提交的讀 21
2.3.5 指定隔離級別 21
2.4 鎖定 22
2.4.1 鎖定的屬性 22
2.4.2 鎖的狀態(tài) 23
2.4.3 鎖定和應用程序性能 25
2.4.4 事務日志 30
2.4.5 數據庫恢復 32
2.5 小結 33
第二部分 應用程序開發(fā)基礎
第3章 DB2應用程序開發(fā)入門 35
3.1 什么是DB2數據庫應用程序 35
3.2 設計一個DB2數據庫應用程序 36
3.3 DB2數據庫應用程序的元素 37
3.3.1 高級編程語言 38
3.3.2 SQL語句 38
3.3.3 CLI函數調用 40
3.3.4 API函數調用 41
3.4 建立DB2數據庫應用程序開發(fā)環(huán)境 42
3.5 建立DB2數據庫應用程序測試環(huán)境 43
3.5.1 創(chuàng)建測試數據庫 43
3.5.2 創(chuàng)建測試表和視圖 43
3.5.3 產生測試數據 44
3.6 管理事務 44
3.7 創(chuàng)建并準備源代碼文件 45
3.8 小結 45
第4章 編寫API應用函數 47
4.1 API源代碼文件的基本結構 47
4.2 API函數調用的類型 47
4.3 API命名規(guī)范 50
4.4 API數據結構 51
4.5 錯誤處理 53
4.5.1 評估返回代碼 53
4.5.2 評估SQLCA返回代碼 53
4.5.3 評估SQLSTATE 54
4.6 生成可執(zhí)行應用程序 54
4.7 運行. 測試和調試API應用程序 54
4.8 小結 55
第三部分 應用程序編程接口函數
第5章 程序預編譯和通用編程API函數 57
5.1 嵌入SQL應用程序的準備 57
5.1.1 異常情況. 信號和中斷處理 58
5.1.2 指針操作和內存拷貝函數 58
5.1.3 指定連接記賬字符串 58
5.1.4 檢查SQLCA 返回代碼和
SQLSTATE值 59
5.1.5 程序準備和常規(guī)應用程序編程
函數表 60
5.2 PRECOMPILE PROGRAM 60
5.3 BIND 71
5.4 REBIND 75
5.5 GET INSTANCE 79
5.6 INSTALL SIGNAL HANDLER 81
5.7 INTERRUPT 84
5.8 GET ADDRESS 87
5.9 COPY MEMORY 88
5.10 DEREFERENCE ADDRESS 89
5.11 SET ACCOUNTING STRING 90
5.12 GET ERROR MESSAGE 92
5.13 GET SQLSTATE MESSAGE 95
5.14 GET AUTHORIZATIONS 98
第6章 DB2數據庫管理器控制和數據庫
控制API 103
6.1 DB2數據庫管理器的服務器進程 103
6.1.1 創(chuàng)建和刪除DB2數據庫 103
6.1.2 啟動和停止DB2數據庫 104
6.1.3 獲得和設置其他連接設置值 104
6.1.4 控制DB2數據庫管理器的連接實例 104
6.2 DB2數據庫管理器和DB2數據庫控制
函數 104
6.3 START DATABASE MANAGER 105
6.4 STOP DATABASE MANAGER 108
6.5 FORCE APPLICATION 111
6.6 CREATE DATABASE 116
6.7 DROP DATABASE 123
6.8 ACTIVATE DATABASE 124
6.9 DEACTIVATE DATABASE 127
6.10 ATTACH 128
6.11 ATTACH AND CHANGE PASSWORD 132
6.12 DETACH 136
6.13 QUERY CLIENT 136
6.14 SET CLIENT 141
6.15 QUERY CLIENT INFORMATION 142
6.16 SET CLIENT INFORMATION 146
第7章 DB2數據庫管理器和數據庫配置
的API函數 148
7.1 配置DB2 148
7.1.1 DB2數據庫管理器配置參數 148
7.1.2 DB2數據庫配置參數 149
7.1.3 DB2數據庫管理器和數據庫配置
函數 149
7.2 GET DATABASE MANAGER
CONFIGURATION 150
7.3 GET DATABASE MANAGER CONFIGURATION DEFAULTS 159
7.4 UPDATE DATABASE MANAGER CONFIGURATION 162
7.5 RESET DATABASE MANAGER CONFIGURATION 166
7.6 GET DATABASE CONFIGURATION 167
7.7 GET DATABASE CONFIGURATION DEFAULTS 176
7.8 UPDATE DATABASE CONFIGURATION 179
7.9 RESET DATABASE CONFIGURATION 184
第8章 數據庫. 節(jié)點和DCS目錄管理
API 186
8.1 DB2目錄 186
8.1.1 系統(tǒng)數據庫目錄 186
8.1.2 卷目錄 186
8.1.3 工作站目錄 187
8.1.4 數據庫連接服務目錄 187
8.2 在NetWare服務器上注冊/注銷DB2數據
庫服務器 187
8.3 DB2數據庫. 節(jié)點和DCS目錄管理
函數 188
8.4 CATALOG DATABASE 189
8.5 UNCATALOG DATABASE 193
8.6 CHANGE DATABASE COMMENT 195
8.7 OPEN DATABASE DIRECTORY
ENTRY 198
8.8 GET NEXT DATABASE DIRECTORY ENTRY 201
8.9 CLOSE DATABASE DIRECTORY
SCAN 203
8.10 CATALOG NODE 203
8.11 UNCATALOG NODE 208
8.12 OPEN NODE DIRECTORY SCAN 210
8.13 GET NEXT NODE DIRECTORY
ENTRY 213
8.14 CLOSE NODE DIRECTORY SCAN 215
8.15 CATALOG DCS DATABASE 216
8.16 UNCATALOG DCS DATABASE 219
8.17 OPEN DCS DIRECTORY SCAN 222
8.18 GET DCS DIRECTORY ENTRIES 224
8.19 GET DCS DIRECTORY ENTRY FOR DATABASE 226
8.20 CLOSE DCS DIRECTORY SCAN 226
8.21 REGISTER 227
8.22 DEREGISTER 231
第9章 表和表空間管理的API 233
9.1 表空間和表空間容器 233
9.1.1 重組表數據 233
9.1.2 更新表統(tǒng)計信息 234
9.2 DB2的表和表空間的管理函數 234
9.3 OPEN TABLESPACE QUERY 235
9.4 FETCH TABLESPACE QUERY 238
9.5 CLOSE TABLESPACE QUERY 241
9.6 TABLESPACE QUERY 241
9.7 SINGLE TABLESPACE QUERY 245
9.8 GET TABLESPACE STATISTICS 248
9.9 OPEN TABLESPACE CONTAINER
QUERY 251
9.10 FETCH TABLESPACE CONTAINER QUERY 254
9.11 CLOSE TABLESPACE CONTAINER QUERY 255
9.12 TABLESPACE CONTAINER QUERY 256
9.13 FREE MEMORY 259
9.14 REORGANIZE TABLE 260
9.15 RUN STATISTICS 263
第10章 數據庫遷移和災難恢復API 268
10.1 數據庫遷移 268
10.2 從一個“不一致”的狀態(tài)中恢復 268
10.3 創(chuàng)建備份映像 269
10.4 從備份映像中恢復數據庫和表空間 270
10.5 執(zhí)行重定向的恢復操作 270
10.6 使用前滾恢復 270
10.7 恢復歷史文件 271
10.8 DB2數據庫遷移和災難恢復函數 273
10.9 MIGRATE DATABASE 273
10.10 RESTART DATABASE 276
10.11 BACKUP DATABASE 278
10.12 RESTORE DATABASE 286
10.13 RECONCILE 294
10.14 SET TABLESPACE CONTAINERS 298
10.15 ROLLFORWARD DATABASE 305
10.16 ASYNCHRONOUS READ LOG 316
10.17 OPEN RECOVERY HISTORY FILE
SCAN 323
10.18 GET NEXT RECOVERY HISTORY FILE ENTRY 328
10.19 CLOSE RECOVERY HISTORY FILE SCAN 331
10.20 UPDATE RECOVERY HISTORY
FILE 332
10.21 PRUNE RECOVERY HISTORY FILE 336
第11章 數據處理API 341
11.1 調出數據 341
11.2 調入數據 341
11.3 裝入數據 342
11.4 調出. 調入和裝入操作的支持文件
格式 343
11.5 DB2 數據處理函數 344
11.6 EXPORT 344
11.7 IMPORT 352
11.8 LOAD 364
11.9 LOAD QUERY 379
11.10 QUIESCE TABLESPACES FOR
TABLE 381
第12章 DB2數據庫分區(qū)管理函數 384
12.1 節(jié)點組和數據庫分區(qū) 384
12.2 并行操作的類型 385
12.2.1 I/O并行處理 385
12.2.2 查詢并行處理 385
12.2.3 實現查詢并行處理 387
12.3 啟用數據庫分區(qū) 387
12.4 DB2數據庫分區(qū)管理函數 388
12.5 ADD NODE 388
12.6 DROP NODE VERIFY 391
12.7 CREATE DATABASE AT NODE 393
12.8 DROP DATABASE AT NODE 396
12.9 SET RUNTIME DEGREE 398
12.10 GET TABLE PARTITIONING INFORMATION 401
12.11 GET ROW PARTITIONING
NUMBER 404
12.12 REDISTRIBUTE NODEGROUP 410
第13章 數據庫監(jiān)控器和不確定事務處理
API 415
13.1 DB2數據庫系統(tǒng)監(jiān)控器 415
13.1.1 數據庫系統(tǒng)監(jiān)控器的開關 415
13.1.2 開始計數時 416
13.1.3 獲取快照監(jiān)控器的數據 417
13.2 在多個數據庫中工作 417
13.3 兩階段提交的處理過程 417
13.3.1 在使用兩階段提交時遇到錯誤
的恢復 419
13.3.2 手工解決不確定事務 420
13.3.3 使用XA兼容的事務管理器的兩階段
提交的處理 422
13.4 DB2數據庫監(jiān)控器和不確定事務的處理
函數 422
13.5 GET/UPDATA MONITOR SWITCHES 423
13.6 RESET MONITOR 427
13.7 ESTIMATE DATABASE SYSTEM MONITOR BUFFER SIZE 430
13.8 GET SNAPSHOT 433
13.9 LIST DRDA INDOUBT
TRANSACTIONS 441
13.10 LIST INDOUBT TRANSACTIONS 445
13.11 COMMIT AN INDOUBT
TRANSACTION 450
13.12 ROLLBACK AN INDOUBT
TRANSACTION 454
13.13 FORGET TRANSACTION STATUS 458
第14章 線程上下文管理函數 459
14.1 上下文 459
14.2 DB2線程上下文管理函數 459
14.3 SET APPLICATION CONTEXT TYPE 460
14.4 CREATE AND ATTACH TO AN
APPLICATION CONTEXT 463
14.5 DETACH AND DESTROY APPLICATION
CONTEXT 467
14.6 ATTACH TO CONTEXT 471
14.7 DETACH FROM CONTEXT 472
14.8 GET CURRENT CONTEXT 472
14.9 INTERRUPT CONTEXT 476
第四部分 附 錄
附錄A SQL數據結構 481
附錄B DB2日志記錄 484
附錄C 例子程序是怎樣開發(fā)的 512