數(shù)據(jù)庫系統(tǒng)——原理、設(shè)計與編程(MOOC版)
定 價:59.8 元
- 作者:陸鑫 張鳳荔 陳安龍
- 出版時間:2019/3/1
- ISBN:9787115502742
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.13
- 頁碼:332
- 紙張:
- 版次:01
- 開本:16開
本書從理論與實際應(yīng)用相結(jié)合的角度出發(fā),介紹數(shù)據(jù)庫系統(tǒng)的原理知識與技術(shù)應(yīng)用方法,包括數(shù)據(jù)庫系統(tǒng)概述、關(guān)系數(shù)據(jù)模型、SQL數(shù)據(jù)庫操作語言、數(shù)據(jù)庫設(shè)計、數(shù)據(jù)庫管理、數(shù)據(jù)庫應(yīng)用編程,以及分布式NoSQL數(shù)據(jù)庫技術(shù)等內(nèi)容。
1.本書提供Mooc等輔助教學(xué)資源,方便教學(xué)。
2.每章最后小節(jié)給出一個完整項目實踐案例,幫助讀者系統(tǒng)理解數(shù)據(jù)庫技術(shù)應(yīng)用方法。解決傳統(tǒng)教材理論知識與產(chǎn)業(yè)工程實踐脫節(jié)、工程案例偏少的問題。
3.本書第7章介紹了目前大量應(yīng)用的NoSQL數(shù)據(jù)庫技術(shù)及其應(yīng)用方法,如鍵值對數(shù)據(jù)庫、列存儲數(shù)據(jù)庫、文檔數(shù)據(jù)庫、圖形數(shù)據(jù)庫等技術(shù)知識。
陸鑫,電子科技大學(xué)信息與軟件工程學(xué)院副教授,長期從事計算機領(lǐng)域的教學(xué)和科研工作。在商業(yè)智能和企業(yè)信息化方面有較多的項目經(jīng)驗,負責多個大型信息系統(tǒng)項目的規(guī)劃、設(shè)計、開發(fā)與管理。完成多項大型系統(tǒng)開發(fā),如電子科技大學(xué)清水河校區(qū)數(shù)字化校園系統(tǒng)、大型商業(yè)自動化管理系統(tǒng)、煤氣管網(wǎng)GIS系統(tǒng)、環(huán)境保護GIS/GPS系統(tǒng)、化工企業(yè)集團大型MIS系統(tǒng)、包裝容器抗壓與堆碼微機測控系統(tǒng)、嵌入式家電控制器仿真平臺系統(tǒng)、鋼管生產(chǎn)線監(jiān)控跟蹤系統(tǒng)等,其中數(shù)字化校園系統(tǒng)項目經(jīng)費規(guī)模達幾千萬以上。對IT基礎(chǔ)設(shè)施中的網(wǎng)絡(luò)系統(tǒng)、主機系統(tǒng)、存儲系統(tǒng)、備份系統(tǒng)、安全系統(tǒng)、Unix/Linux操作系統(tǒng)、中間件平臺系統(tǒng)等有全面了解與實踐經(jīng)驗。特別對軟件系統(tǒng)分析與設(shè)計有較高造詣,對系統(tǒng)需求分析、體系結(jié)構(gòu)設(shè)計、系統(tǒng)模型開發(fā)以及數(shù)據(jù)庫開發(fā)與應(yīng)用等都有豐富實踐經(jīng)驗。在數(shù)據(jù)挖掘、嵌入式計算方向有相應(yīng)研究,參與完成研究項目“數(shù)據(jù)挖掘技術(shù)預(yù)測電價預(yù)測模型”“網(wǎng)格環(huán)境數(shù)據(jù)挖掘平臺”“基于SOA企業(yè)應(yīng)用集成平臺技術(shù)”“高可靠現(xiàn)場級實時以態(tài)網(wǎng)研究”“信息家電系統(tǒng)仿真組件平臺研制”等。
第1章 數(shù)據(jù)庫系統(tǒng)基礎(chǔ) 1
1.1 數(shù)據(jù)庫及其系統(tǒng)的概念 1
1.1.1 數(shù)據(jù)庫的定義 1
1.1.2 數(shù)據(jù)模型 2
1.1.3 數(shù)據(jù)庫系統(tǒng)的組成 4
1.2 數(shù)據(jù)庫技術(shù)的發(fā)展 7
1.2.1 數(shù)據(jù)管理技術(shù)的演化 7
1.2.2 數(shù)據(jù)庫技術(shù)的發(fā)展階段 8
1.2.3 數(shù)據(jù)庫領(lǐng)域的新技術(shù) 9
1.3 數(shù)據(jù)庫應(yīng)用系統(tǒng) 12
1.3.1 數(shù)據(jù)庫應(yīng)用系統(tǒng)的類型 12
1.3.2 數(shù)據(jù)庫應(yīng)用系統(tǒng)的結(jié)構(gòu) 13
1.3.3 數(shù)據(jù)庫應(yīng)用系統(tǒng)的生命周期 15
1.4 典型的數(shù)據(jù)庫管理系統(tǒng) 17
1.4.1 Microsoft SQL Server 17
1.4.2 Oracle DataBase 18
1.4.3 MySQL 18
1.4.4 PostgreSQL 19
1.5 PostgreSQL對象-關(guān)系數(shù)據(jù)庫系統(tǒng)軟件 19
1.5.1 PostgreSQL軟件的獲得 19
1.5.2 PostgreSQL軟件的功能程序 20
1.5.3 PostgreSQL數(shù)據(jù)庫的管理工具 21
1.5.4 PostgreSQL數(shù)據(jù)庫對象 23
習題 24
第2章 數(shù)據(jù)庫關(guān)系模型 25
2.1 關(guān)系及其相關(guān)概念 25
2.1.1 關(guān)系的通俗定義 25
2.1.2 關(guān)系的數(shù)學(xué)定義 26
2.1.3 關(guān)系模式表示 28
2.1.4 關(guān)系鍵的定義 28
2.2 關(guān)系模型的原理 29
2.2.1 關(guān)系模型的組成 29
2.2.2 關(guān)系模型的操作 30
2.2.3 數(shù)據(jù)完整性約束 37
2.3 PostgreSQL數(shù)據(jù)庫關(guān)系操作實踐 40
2.3.1 項目案例——選課管理系統(tǒng) 40
2.3.2 關(guān)系數(shù)據(jù)庫的創(chuàng)建 42
2.3.3 關(guān)系表的創(chuàng)建 43
2.3.4 實體完整性定義 44
2.3.5 參照完整性定義 46
2.3.6 用戶自定義完整性 48
習題 49
第3章 數(shù)據(jù)庫操作語言SQL 53
3.1 SQL概述 53
3.1.1 SQL的發(fā)展 53
3.1.2 SQL的特點 54
3.1.3 SQL的類型 54
3.1.4 SQL的數(shù)據(jù)類型 55
3.2 數(shù)據(jù)定義SQL語句 58
3.2.1 數(shù)據(jù)庫的定義 58
3.2.2 數(shù)據(jù)庫表對象的定義 60
3.2.3 數(shù)據(jù)表索引對象的定義 65
3.3 數(shù)據(jù)操縱SQL語句 67
3.3.1 數(shù)據(jù)插入SQL語句 67
3.3.2 數(shù)據(jù)更新SQL語句 68
3.3.3 數(shù)據(jù)刪除SQL語句 69
3.4 數(shù)據(jù)查詢SQL語句 70
3.4.1 查詢語句基本結(jié)構(gòu) 70
3.4.2 從單表讀取指定列 71
3.4.3 從單表讀取指定行 72
3.4.4 從單表讀取指定行和列 73
3.4.5 WHERE子句條件 73
3.4.6 查詢結(jié)果排序 75
3.4.7 內(nèi)置函數(shù)的使用 76
3.4.8 查詢結(jié)果分組處理 80
3.4.9 使用子查詢處理多表 81
3.4.10 使用連接查詢多表 82
3.4.11 SQL JOIN…ON連接 83
3.5 數(shù)據(jù)控制SQL語句 86
3.5.1 GRANT語句 86
3.5.2 REVOKE語句 87
3.5.3 DENY語句 87
3.6 視圖SQL語句 87
3.6.1 視圖的概念 87
3.6.2 視圖的創(chuàng)建與刪除 88
3.6.3 視圖的使用 89
3.7 PostgreSQL數(shù)據(jù)庫SQL實踐 92
3.7.1 項目案例——工程項目管理系統(tǒng) 92
3.7.2 數(shù)據(jù)庫的創(chuàng)建 93
3.7.3 數(shù)據(jù)庫表的定義 94
3.7.4 數(shù)據(jù)的維護操作 95
3.7.5 多表的關(guān)聯(lián)查詢 98
3.7.6 視圖的應(yīng)用 100
習題 102
第4章 數(shù)據(jù)庫設(shè)計與實現(xiàn) 105
4.1 數(shù)據(jù)庫設(shè)計概述 105
4.1.1 數(shù)據(jù)庫設(shè)計方案 105
4.1.2 數(shù)據(jù)庫設(shè)計過程與策略 107
4.1.3 數(shù)據(jù)庫建模設(shè)計工具 108
4.2 E-R模型 109
4.2.1 模型基本元素 109
4.2.2 實體聯(lián)系類型 111
4.2.3 強弱實體 114
4.2.4 標識符依賴實體 114
4.2.5 E-R模型圖 115
4.3 數(shù)據(jù)庫建模設(shè)計 116
4.3.1 概念數(shù)據(jù)模型設(shè)計 116
4.3.2 邏輯數(shù)據(jù)模型設(shè)計 119
4.3.3 物理數(shù)據(jù)模型設(shè)計 121
4.4 數(shù)據(jù)庫規(guī)范化設(shè)計 128
4.4.1 非規(guī)范化關(guān)系表的問題 129
4.4.2 函數(shù)依賴理論 130
4.4.3 規(guī)范化設(shè)計范式 132
4.4.4 逆規(guī)范化處理 134
4.5 數(shù)據(jù)庫設(shè)計模型的SQL實現(xiàn) 136
4.5.1 確定數(shù)據(jù)庫設(shè)計的實現(xiàn)方式 136
4.5.2 設(shè)計模型轉(zhuǎn)換為SQL腳本程序 137
4.6 基于PowerDesigner的數(shù)據(jù)庫設(shè)計建模實踐 138
4.6.1 項目案例——圖書借閱管理系統(tǒng) 138
4.6.2 系統(tǒng)概念數(shù)據(jù)模型設(shè)計 138
4.6.3 系統(tǒng)邏輯數(shù)據(jù)模型設(shè)計 142
4.6.4 系統(tǒng)物理數(shù)據(jù)模型設(shè)計 144
4.6.5 PostgreSQL數(shù)據(jù)庫實現(xiàn) 146
習題 154
第5章 數(shù)據(jù)庫管理 156
5.1 數(shù)據(jù)庫管理概述 156
5.1.1 數(shù)據(jù)庫管理的目標與內(nèi)容 156
5.1.2 數(shù)據(jù)庫管理工具 157
5.1.3 DBMS管理功能 157
5.1.4 DBMS結(jié)構(gòu) 158
5.2 事務(wù)管理 159
5.2.1 事務(wù)的概念 159
5.2.2 事務(wù)的特性 161
5.2.3 事務(wù)的并發(fā)執(zhí)行 161
5.2.4 事務(wù)SQL語句 162
5.3 并發(fā)控制 165
5.3.1 并發(fā)控制問題 165
5.3.2 并發(fā)事務(wù)調(diào)度 168
5.3.3 數(shù)據(jù)庫鎖機制 170
5.3.4 基于鎖的并發(fā)控制協(xié)議 171
5.3.5 兩階段鎖定協(xié)議 174
5.3.6 并發(fā)事務(wù)死鎖解決 175
5.3.7 事務(wù)隔離級別 176
5.4 安全管理 176
5.4.1 數(shù)據(jù)庫系統(tǒng)安全概述 177
5.4.2 數(shù)據(jù)庫系統(tǒng)安全模型 177
5.4.3 用戶管理 179
5.4.4 權(quán)限管理 182
5.4.5 角色管理 184
5.5 備份與恢復(fù) 187
5.5.1 數(shù)據(jù)庫備份 187
5.5.2 PostgreSQL數(shù)據(jù)庫的備份方法 189
5.5.3 數(shù)據(jù)庫恢復(fù) 194
5.5.4 PostgreSQL數(shù)據(jù)庫的恢復(fù)方法 195
5.6 PostgreSQL數(shù)據(jù)庫管理項目實踐 198
5.6.1 項目案例——成績管理系統(tǒng) 198
5.6.2 數(shù)據(jù)庫角色管理 199
5.6.3 數(shù)據(jù)庫權(quán)限管理 200
5.6.4 數(shù)據(jù)庫用戶管理 201
5.6.5 數(shù)據(jù)庫備份與恢復(fù)管理 202
習題 204
第6章 數(shù)據(jù)庫應(yīng)用編程 206
6.1 數(shù)據(jù)庫連接技術(shù) 206
6.1.1 ODBC技術(shù) 206
6.1.2 JDBC技術(shù) 209
6.2 Java Web數(shù)據(jù)庫編程 215
6.2.1 Java Web簡介 215
6.2.2 Java Web開發(fā)運行環(huán)境 215
6.2.3 Servlet技術(shù) 216
6.2.4 JSP技術(shù) 217
6.2.5 JavaBean技術(shù) 227
6.2.6 MyBatis訪問數(shù)據(jù)庫技術(shù) 227
6.2.7 MyBatis數(shù)據(jù)庫編程 229
6.3 存儲過程編程 235
6.3.1 存儲過程的基礎(chǔ)知識 236
6.3.2 存儲過程的優(yōu)點 244
6.3.3 存儲過程的缺點 244
6.4 觸發(fā)器編程 245
6.4.1 觸發(fā)器的語法結(jié)構(gòu) 245
6.4.2 觸發(fā)器的編程技術(shù) 248
6.4.3 事件觸發(fā)器 250
6.4.4 觸發(fā)器的應(yīng)用 252
6.4.5 使用觸發(fā)器的優(yōu)點 253
6.5 游標編程 253
6.5.1 游標的基礎(chǔ)知識 253
6.5.2 游標的應(yīng)用編程 255
6.6 嵌入式SQL編程 257
6.6.1 嵌入式SQL的處理過程 257
6.6.2 嵌入式SQL的基本語法 257
6.6.3 嵌入式SQL的通信方式 258
6.7 數(shù)據(jù)庫應(yīng)用編程項目實踐 260
6.7.1 項目案例——課程管理系統(tǒng) 260
6.7.2 功能模塊設(shè)計 262
6.7.3 模塊的編碼實現(xiàn) 263
習題 272
第7章 NoSQL數(shù)據(jù)庫技術(shù) 274
7.1 NoSQL數(shù)據(jù)庫概述 274
7.1.1 關(guān)系數(shù)據(jù)庫的局限 275
7.1.2 NoSQL理論基礎(chǔ) 276
7.1.3 NoSQL基本概念 277
7.2 列存儲數(shù)據(jù)庫 280
7.2.1 列存儲的概念 280
7.2.2 HBase數(shù)據(jù)庫的概念 281
7.2.3 HBase數(shù)據(jù)庫的存儲結(jié)構(gòu) 284
7.2.4 HBase數(shù)據(jù)庫的系統(tǒng)架構(gòu)與組成 286
7.2.5 HBase數(shù)據(jù)庫的應(yīng)用場景 288
7.3 鍵值對數(shù)據(jù)庫 288
7.3.1 鍵值對存儲的概念 289
7.3.2 Redis數(shù)據(jù)庫的基本知識 289
7.3.3 Redis數(shù)據(jù)庫的結(jié)構(gòu) 290
7.3.4 Redis數(shù)據(jù)庫的相關(guān)操作 294
7.3.5 Redis數(shù)據(jù)庫的體系結(jié)構(gòu) 295
7.3.6 Redis數(shù)據(jù)庫的應(yīng)用場景 296
7.4 文檔數(shù)據(jù)庫 297
7.4.1 文檔存儲的概念 297
7.4.2 MongoDB數(shù)據(jù)庫的基本概念 297
7.4.3 MongoDB數(shù)據(jù)庫的管理 299
7.4.4 MongoDB數(shù)據(jù)庫的集群架構(gòu) 300
7.4.5 MongoDB數(shù)據(jù)庫的應(yīng)用場景 304
7.5 圖形數(shù)據(jù)庫 304
7.5.1 圖形數(shù)據(jù)模型 306
7.5.2 Neo4j圖形數(shù)據(jù)庫 309
7.5.3 Neo4j圖形數(shù)據(jù)庫的存儲結(jié)構(gòu) 311
7.5.4 Neo4j數(shù)據(jù)庫的集群結(jié)構(gòu) 313
7.5.5 Neo4j數(shù)據(jù)庫的查詢語言CQL 314
7.6 NoSQL數(shù)據(jù)庫項目實踐 316
7.6.1 項目案例——成績管理系統(tǒng) 316
7.6.2 設(shè)計HBase數(shù)據(jù)庫表 317
7.6.3 安裝HBase數(shù)據(jù)庫 318
7.6.4 使用HBase Shell 318
7.6.5 操作HBase數(shù)據(jù)庫 320
習題 324
附錄 PostgreSQL數(shù)據(jù)庫系統(tǒng)實驗項目 326
實驗1 圖書銷售管理系統(tǒng)數(shù)據(jù)庫設(shè)計 326
實驗2 圖書銷售管理系統(tǒng)數(shù)據(jù)庫的創(chuàng)建與數(shù)據(jù)訪問操作 327
實驗3 圖書銷售管理系統(tǒng)數(shù)據(jù)庫后端編程 328
實驗4 圖書銷售管理系統(tǒng)數(shù)據(jù)庫安全管理 329
實驗5 圖書銷售管理系統(tǒng)數(shù)據(jù)庫應(yīng)用JSP訪問編程 330
參考文獻 332