內容簡介
本書全面、深入地講解Linux下的資料庫開發技術,既涵蓋理論基礎,又囊括案例開發,既包括Linux作業系統和資料庫技術的基礎知識,又詳細介紹MySQL資料庫的安裝/配置、查詢最佳化、安全管理及MySQL可視化管理工具的使用,並對幾種典型的資料庫連線技術,如C、PHP、Java以及Python等代碼都有較為全面的展示。後面的開發案例部分細緻講解分散式數據包抓取系統、實時網頁信息抓取系統、Qt線上聊天系統、嵌入式資料庫等,覆蓋了比較廣泛的技術層面。本書立足於豐富的實踐,是作者多年開發經驗的結晶。其中關於套用軟體、Web系統、記憶體資料庫等大量豐富的套用型例子,具有很高的實用價值。
本書適合在Linux系統下進行資料庫編程的開發人員學習和參考,也可供高校計算機相關專業的本科生和研究生參考和使用。
目錄
第1章Linux基礎 1
1.1Linux概述 2
1.1.1什麼是Linux 2
1.1.2Linux的常見版本 3
1.2Linux的特性 6
1.3Linux的安裝 8
1.3.1安裝準備 8
1.3.2VMware的安裝 10
1.3.3Linux載入與啟動 14
1.3.4SSHClient的安裝 15
1.3.5遠程連線的配置 15
1.4Linux使用 17
1.4.1Linux的基本組成 17
1.4.2Linux檔案系統結構 19
1.4.3Linux的常用命令 21
1.5流行Linux站點 24
1.6本章小結 25
1.7習題 25
第2章Linux下的資料庫 27
2.1資料庫概述 28
2.1.1什麼是資料庫 28
2.1.2資料庫的特點 29
2.1.3資料庫的歷史 29
2.1.4資料庫基本原理 31
2.2常見的資料庫 34
2.2.1Linux下的資料庫 34
2.2.2Oracle資料庫 34
2.2.3PostgreSQL資料庫 35
2.2.4DB2資料庫 36
2.2.5MySQL資料庫 37
2.3MySQL資料庫 37
2.3.1MySQL分發包 38
2.3.2MySQL的安裝 39
2.3.3MySQL的基本配置 41
2.4MySQL的基本使用 44
2.4.1MySQL的基本命令 44
2.4.2一個員工信息資料庫示例 47
2.5本章小結 49
2.6習題 50
第3章SQL語言基礎 51
3.1SQL概述 52
3.2資料庫操作 53
3.2.1創建資料庫 53
3.2.2刪除資料庫 54
3.3表的操作 54
3.3.1創建表 54
3.3.2修改表 58
3.3.3刪除表 58
3.4記錄的操作 58
3.4.1插入記錄 58
3.4.2更新記錄 59
3.4.3刪除記錄 59
3.5查詢 59
3.6學生選課系統資料庫設計示例 61
3.6.1系統分析 61
3.6.2邏輯設計 63
3.6.3實施 64
3.7本章小結 68
3.8習題 68
第4章MySQL高級語法 69
4.1視圖操作 70
4.1.1什麼是視圖 70
4.1.2視圖的語法 71
4.1.3視圖的使用 72
4.2觸發器操作 74
4.2.1什麼是觸發器 74
4.2.2觸發器的語法 75
4.2.3觸發器的使用 76
4.3存儲過程操作 78
4.3.1什麼是存儲過程 78
4.3.2存儲過程的語法 79
4.3.3存儲過程的使用 80
4.4索引 82
4.4.1什麼是索引 82
4.4.2索引的語法 84
4.4.3索引的使用 85
4.5事務與鎖 87
4.5.1什麼是事務 87
4.5.2事務的語法 89
4.5.3事務的使用 92
4.6數據類型 94
4.6.1數值數據類型 94
4.6.2字元串數據類型 95
4.6.3日期和時間類型 98
4.7本章小結 99
4.8習題 99
第5章MySQL查詢技術 101
5.1MySQL運算符 102
5.1.1比較運算符 102
5.1.2邏輯運算符 105
5.1.3算術運算符 107
5.2MySQL函式 108
5.2.1字元串操作函式 108
5.2.2控制函式 114
5.2.3數學函式 116
5.2.4時間與日期函式 117
5.2.5加密函式 119
5.3查詢技術 120
5.3.1查詢案例 121
5.3.2統計查詢 123
5.3.3排序與分類 129
5.3.4日期查詢 130
5.4複雜查詢 132
5.4.1案例擴展 132
5.4.2多表查詢 133
5.4.3嵌套查詢 136
5.5本章小結 139
5.6習題 139
第6章MySQL的管理 141
6.1MySQL許可權管理 142
6.1.1許可權原理 142
6.1.2用戶管理 148
6.1.3grant語句 150
6.1.4showgrants語句 157
6.1.5revoke語句 158
6.2數據導入與導出 160
6.2.1數據導入 160
6.2.2數據導出 164
6.3複製技術 166
6.3.1表與數據複製 166
6.3.2表結構複製 167
6.3.3記錄複製 168
6.4備份與恢復 170
6.4.1利用mysqldump 170
6.4.2利用SQL語句 171
6.4.3利用backup語句 172
6.5本章小結 173
6.6習題 173
第7章MySQL常見問題解答 175
7.1MySQL安裝常見問題 176
7.1.1作業系統的注意事項 176
7.1.2MySQL版本的選擇 177
7.1.3MySQL安裝過程中的
常見問題 178
7.2MySQL運行維護常見問題 182
7.3MySQL配置常見問題 189
7.3.1MySQL的配置方式 189
7.3.2MySQL的具體配置 192
7.4MySQL安全常見問題 192
7.4.1設定密碼的問題 192
7.4.2忘記MySQL密碼的問題 193
7.4.3用戶許可權設定 194
7.4.4創建MySQL用戶 194
7.5最佳化常見問題 195
7.5.1MyISAM存儲引擎的最佳化 196
7.5.2InnoDB存儲引擎的最佳化 198
7.6本章小結 199
7.7習題 200
第8章MySQL高級特性 201
8.1MySQL的存儲引擎 202
8.1.1存儲引擎簡介 202
8.1.2MyISAM引擎原理 205
8.1.3InnoDB引擎原理 209
8.1.4MyISAM與InnoDB存儲引擎
的關係 216
8.2MySQL的鎖機制 217
8.2.1鎖簡介 217
8.2.2鎖分類 218
8.2.3如何利用鎖進行性能最佳化 223
8.3本章小結 223
8.4習題 224
第9章可視化工具的使用 225
9.1常用的可視化工具 226
9.2phpMyAdmin 227
9.2.1phpMyAdmin介紹 227
9.2.2phpMyAdmin的安裝 228
9.2.3phpMyAdmin的配置 228
9.2.4phpMyAdmin運行測試 229
9.3phpMyAdmin的基本使用 231
9.3.1phpMyAdmin功能簡介 231
9.3.2phpMyAdmin資料庫
與數據表操作 233
9.3.3資料庫用戶許可權的設定 235
9.4一個微部落格的資料庫設計示例 237
9.4.1微部落格的概念 237
9.4.2微部落格資料庫設計 238
9.4.3實現並測試 241
9.5本章小結 243
9.6習題 244
第10章MySQL連線技術 245
10.1MySQL資料庫連線概述 246
10.2C語言API 247
10.2.1CAPI數據類型 247
10.2.2CAPI預處理 249
10.2.3MySQL資料庫連線函式 251
10.2.4數據操作函式 254
10.2.5關閉連線 256
10.2.6套用示例 258
10.3PHP語言API 260
10.3.1PHP資料庫連線概述 260
10.3.2PHP連線MySQL資料庫 264
10.3.3數據操作 265
10.3.4關閉連線 268
10.3.5套用示例 268
10.4Python語言API 270
10.4.1Python資料庫連線概述 270
10.4.2MySQL資料庫的連線 272
10.4.3數據操作 273
10.4.4關閉連線 273
10.4.5套用示例 273
10.5Java語言API 274
10.5.1Java和JDBC概述 274
10.5.2使用JDBC連線MySQL
資料庫 277
10.5.3數據操作 278
10.5.4關閉連線 278
10.5.5套用示例 278
10.6本章小結 280
10.7習題 280
第11章Linux應用程式開發基礎 281
11.1Linux程式開發概述 282
11.2Qt開發基礎 284
11.2.1Qt簡介 284
11.2.2Qt基礎 286
11.2.3常用的Qt類與控制項 287
11.2.4使用QtCreator開發Qt
程式 293
11.3網路套用開發基礎 298
11.3.1網路編程基礎 298
11.3.2TCP/IP協定 299
11.3.3套接字 300
11.4Linux下的Web開發 306
11.4.1Web開發簡介 306
11.4.2PHP開發基礎 307
11.4.3JSP開發基礎 312
11.5本章小結 317
11.6習題 317
第12章分散式數據包抓取系統 319
12.1入侵檢測系統 320
12.1.1什麼是入侵檢測系統 320
12.1.2入侵檢測系統的組成 321
12.1.3入侵檢測系統的產品 323
12.2需求描述 323
12.2.1基本功能 323
12.2.2技術難點 324
12.3Libpcap庫的使用 324
12.3.1Libpcap簡介 324
12.3.2Libpcap的安裝與使用 326
12.3.3工作原理介紹 328
12.4系統的架構 333
12.4.1模組劃分 333
12.4.2信息的格式 334
12.4.3表的設計 335
12.4.4主控制模組的設計 336
12.4.5採集模組的設計 337
12.4.6存儲模組的設計 340
12.5系統的實現 341
12.5.1基本數據結構 341
12.5.2公共數據 344
12.5.3公共函式 345
12.5.4主控制模組的實現 346
12.5.5採集模組的實現 347
12.5.6存儲模組的實現 353
12.5.7資料庫自動切換的實現 355
12.5.8其他模組的實現 357
12.6系統部署與測試 361
12.6.1編譯與執行 361
12.6.2採集與存儲工作的開啟 362
12.6.3採集與存儲工作的關閉 363
12.6.4幫助與其他功能的測試 364
12.7本章小結 366
12.8習題 366
第13章網址信息收集器 367
13.1URL與搜尋引擎 368
13.1.1什麼是URL 368
13.1.2搜尋引擎 370
13.1.3網址信息收集器的工作
原理 371
13.2主要技術介紹 372
13.2.1總述 372
13.2.2DNS實現 373
13.2.3HTTP請求與數據下載 374
13.2.4一個完整的示例 377
13.3系統架構 380
13.3.1模組劃分 380
13.3.2表的設計 381
13.3.3主控制模組的設計 381
13.3.4採集模組的設計 382
13.3.5網頁分析模組的設計 384
13.3.6存儲模組的設計 384
13.4系統實現 385
13.4.1概述 385
13.4.2主控模組 385
13.4.3公共數據區 386
13.4.4網址信息採集模組 388
13.4.5網址分析與存儲模組 392
13.4.6其他模組介紹 394
13.5系統編譯與運行 398
13.5.1編譯 398
13.5.2執行 398
13.6本章小結 400
13.7習題 400
第14章聊天工具的開發 401
14.1需求分析 402
14.1.1聊天工具介紹 402
14.1.2聊天工具的功能 404
14.1.3需求定位 404
14.2總體設計 405
14.2.1架構設計 405
14.2.2伺服器端設計 409
14.2.3客戶端設計 412
14.2.4通信協定設計 413
14.2.5資料庫表的設計 416
14.3伺服器端實現 419
14.3.1公共數據的設計 419
14.3.2主調度模組的實現 419
14.3.3數據接收模組的實現 422
14.3.4業務服務模組的實現 423
14.3.5數據寫入模組的實現 429
14.3.6即時服務啟動 430
14.3.7即時服務停止 431
14.4客戶端實現 431
14.4.1客戶端界面設計 431
14.4.2數據結構的設計 433
14.4.3登錄模組的設計 434
14.4.4註冊模組的設計 434
14.4.5聊天模組的設計 435
14.4.6離線模組的設計 436
14.4.7數據接收模組的設計 437
14.5編譯與運行 441
14.5.1伺服器端編譯與執行 441
14.5.2客戶端編譯與執行 442
14.5.3測試示意圖 442
14.6本章小結 445
14.7習題 445
第15章嵌入式資料庫 447
15.1嵌入式資料庫簡介 448
15.1.1什麼是嵌入式資料庫 448
15.1.2嵌入式資料庫分類 450
15.1.3嵌入式資料庫的套用
領域 451
15.1.4嵌入式資料庫的未來 452
15.2常見的嵌入式資料庫 453
15.2.1SQLite簡介 453
15.2.2BerkeleyDB簡介 455
15.2.3Empress簡介 456
15.3BerkeleyDB的配置 458
15.3.1BerkeleyDB的下載 458
15.3.2BerkeleyDB的安裝 458
15.3.3BerkeleyDB測試 459
15.4BerkeleyDB的原理 461
15.4.1BerkeleyDB的設計思想 461
15.4.2BerkeleyDB的核心數據
結構 462
15.4.3BerkeleyDB基本算法 464
15.5BerkeleyDB的主要函式 465
15.5.1資料庫的打開 465
15.5.2添加數據 467
15.5.3查詢數據 468
15.5.4刪除數據 469
15.5.5資料庫的關閉、刪除
與重命名 470
15.5.6錯誤處理 471
15.6本章小結 472
15.7習題 473
第16章SQLite 475
16.1SQLite的安裝與配置 476
16.1.1SQLite下載 476
16.1.2SQLite安裝 476
16.1.3SQLite的基本使用 478
16.1.4SQLite的一個小示例 479
16.2SQLite的原理 482
16.2.1SQLite的基本架構 482
16.2.2SQLite的數據類型 485
16.2.3SQLite的數據導入
與導出 486
16.2.4SQL高級用法 490
16.2.5SQLite的一些內置函式 492
16.3SQLite的編程接口 494
16.3.1C語言接口庫 495
16.3.2資料庫打開與關閉函式 495
16.3.3SQL執行函式 497
16.3.4數據查詢函式 498
16.3.5錯誤處理函式 500
16.4使用示例 501
16.5本章小結 503
16.6習題 503
參考文獻 504
附錄:各章習題答案 505