數(shù)據(jù)庫系統(tǒng)——原理、設計與編程(MOOC版)
定 價:59.8 元
- 作者:陸鑫 張鳳荔 陳安龍
- 出版時間:2019/3/1
- ISBN:9787115502742
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.13
- 頁碼:332
- 紙張:
- 版次:01
- 開本:16開
本書從理論與實際應用相結(jié)合的角度出發(fā),介紹數(shù)據(jù)庫系統(tǒng)的原理知識與技術應用方法,包括數(shù)據(jù)庫系統(tǒng)概述、關系數(shù)據(jù)模型、SQL數(shù)據(jù)庫操作語言、數(shù)據(jù)庫設計、數(shù)據(jù)庫管理、數(shù)據(jù)庫應用編程,以及分布式NoSQL數(shù)據(jù)庫技術等內(nèi)容。
1.本書提供Mooc等輔助教學資源,方便教學。
2.每章最后小節(jié)給出一個完整項目實踐案例,幫助讀者系統(tǒng)理解數(shù)據(jù)庫技術應用方法。解決傳統(tǒng)教材理論知識與產(chǎn)業(yè)工程實踐脫節(jié)、工程案例偏少的問題。
3.本書第7章介紹了目前大量應用的NoSQL數(shù)據(jù)庫技術及其應用方法,如鍵值對數(shù)據(jù)庫、列存儲數(shù)據(jù)庫、文檔數(shù)據(jù)庫、圖形數(shù)據(jù)庫等技術知識。
陸鑫,電子科技大學信息與軟件工程學院副教授,長期從事計算機領域的教學和科研工作。在商業(yè)智能和企業(yè)信息化方面有較多的項目經(jīng)驗,負責多個大型信息系統(tǒng)項目的規(guī)劃、設計、開發(fā)與管理。完成多項大型系統(tǒng)開發(fā),如電子科技大學清水河校區(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基礎設施中的網(wǎng)絡系統(tǒng)、主機系統(tǒng)、存儲系統(tǒng)、備份系統(tǒng)、安全系統(tǒng)、Unix/Linux操作系統(tǒng)、中間件平臺系統(tǒng)等有全面了解與實踐經(jīng)驗。特別對軟件系統(tǒng)分析與設計有較高造詣,對系統(tǒng)需求分析、體系結(jié)構(gòu)設計、系統(tǒng)模型開發(fā)以及數(shù)據(jù)庫開發(fā)與應用等都有豐富實踐經(jīng)驗。在數(shù)據(jù)挖掘、嵌入式計算方向有相應研究,參與完成研究項目“數(shù)據(jù)挖掘技術預測電價預測模型”“網(wǎng)格環(huán)境數(shù)據(jù)挖掘平臺”“基于SOA企業(yè)應用集成平臺技術”“高可靠現(xiàn)場級實時以態(tài)網(wǎng)研究”“信息家電系統(tǒng)仿真組件平臺研制”等。
第1章 數(shù)據(jù)庫系統(tǒng)基礎 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ù)庫技術的發(fā)展 7
1.2.1 數(shù)據(jù)管理技術的演化 7
1.2.2 數(shù)據(jù)庫技術的發(fā)展階段 8
1.2.3 數(shù)據(jù)庫領域的新技術 9
1.3 數(shù)據(jù)庫應用系統(tǒng) 12
1.3.1 數(shù)據(jù)庫應用系統(tǒng)的類型 12
1.3.2 數(shù)據(jù)庫應用系統(tǒng)的結(jié)構(gòu) 13
1.3.3 數(shù)據(jù)庫應用系統(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對象-關系數(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ù)庫關系模型 25
2.1 關系及其相關概念 25
2.1.1 關系的通俗定義 25
2.1.2 關系的數(shù)學定義 26
2.1.3 關系模式表示 28
2.1.4 關系鍵的定義 28
2.2 關系模型的原理 29
2.2.1 關系模型的組成 29
2.2.2 關系模型的操作 30
2.2.3 數(shù)據(jù)完整性約束 37
2.3 PostgreSQL數(shù)據(jù)庫關系操作實踐 40
2.3.1 項目案例——選課管理系統(tǒng) 40
2.3.2 關系數(shù)據(jù)庫的創(chuàng)建 42
2.3.3 關系表的創(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 多表的關聯(lián)查詢 98
3.7.6 視圖的應用 100
習題 102
第4章 數(shù)據(jù)庫設計與實現(xiàn) 105
4.1 數(shù)據(jù)庫設計概述 105
4.1.1 數(shù)據(jù)庫設計方案 105
4.1.2 數(shù)據(jù)庫設計過程與策略 107
4.1.3 數(shù)據(jù)庫建模設計工具 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ù)庫建模設計 116
4.3.1 概念數(shù)據(jù)模型設計 116
4.3.2 邏輯數(shù)據(jù)模型設計 119
4.3.3 物理數(shù)據(jù)模型設計 121
4.4 數(shù)據(jù)庫規(guī)范化設計 128
4.4.1 非規(guī)范化關系表的問題 129
4.4.2 函數(shù)依賴理論 130
4.4.3 規(guī)范化設計范式 132
4.4.4 逆規(guī)范化處理 134
4.5 數(shù)據(jù)庫設計模型的SQL實現(xiàn) 136
4.5.1 確定數(shù)據(jù)庫設計的實現(xiàn)方式 136
4.5.2 設計模型轉(zhuǎn)換為SQL腳本程序 137
4.6 基于PowerDesigner的數(shù)據(jù)庫設計建模實踐 138
4.6.1 項目案例——圖書借閱管理系統(tǒng) 138
4.6.2 系統(tǒng)概念數(shù)據(jù)模型設計 138
4.6.3 系統(tǒng)邏輯數(shù)據(jù)模型設計 142
4.6.4 系統(tǒng)物理數(shù)據(jù)模型設計 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 事務管理 159
5.2.1 事務的概念 159
5.2.2 事務的特性 161
5.2.3 事務的并發(fā)執(zhí)行 161
5.2.4 事務SQL語句 162
5.3 并發(fā)控制 165
5.3.1 并發(fā)控制問題 165
5.3.2 并發(fā)事務調(diào)度 168
5.3.3 數(shù)據(jù)庫鎖機制 170
5.3.4 基于鎖的并發(fā)控制協(xié)議 171
5.3.5 兩階段鎖定協(xié)議 174
5.3.6 并發(fā)事務死鎖解決 175
5.3.7 事務隔離級別 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 權限管理 182
5.4.5 角色管理 184
5.5 備份與恢復 187
5.5.1 數(shù)據(jù)庫備份 187
5.5.2 PostgreSQL數(shù)據(jù)庫的備份方法 189
5.5.3 數(shù)據(jù)庫恢復 194
5.5.4 PostgreSQL數(shù)據(jù)庫的恢復方法 195
5.6 PostgreSQL數(shù)據(jù)庫管理項目實踐 198
5.6.1 項目案例——成績管理系統(tǒng) 198
5.6.2 數(shù)據(jù)庫角色管理 199
5.6.3 數(shù)據(jù)庫權限管理 200
5.6.4 數(shù)據(jù)庫用戶管理 201
5.6.5 數(shù)據(jù)庫備份與恢復管理 202
習題 204
第6章 數(shù)據(jù)庫應用編程 206
6.1 數(shù)據(jù)庫連接技術 206
6.1.1 ODBC技術 206
6.1.2 JDBC技術 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技術 216
6.2.4 JSP技術 217
6.2.5 JavaBean技術 227
6.2.6 MyBatis訪問數(shù)據(jù)庫技術 227
6.2.7 MyBatis數(shù)據(jù)庫編程 229
6.3 存儲過程編程 235
6.3.1 存儲過程的基礎知識 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ā)器的編程技術 248
6.4.3 事件觸發(fā)器 250
6.4.4 觸發(fā)器的應用 252
6.4.5 使用觸發(fā)器的優(yōu)點 253
6.5 游標編程 253
6.5.1 游標的基礎知識 253
6.5.2 游標的應用編程 255
6.6 嵌入式SQL編程 257
6.6.1 嵌入式SQL的處理過程 257
6.6.2 嵌入式SQL的基本語法 257
6.6.3 嵌入式SQL的通信方式 258
6.7 數(shù)據(jù)庫應用編程項目實踐 260
6.7.1 項目案例——課程管理系統(tǒng) 260
6.7.2 功能模塊設計 262
6.7.3 模塊的編碼實現(xiàn) 263
習題 272
第7章 NoSQL數(shù)據(jù)庫技術 274
7.1 NoSQL數(shù)據(jù)庫概述 274
7.1.1 關系數(shù)據(jù)庫的局限 275
7.1.2 NoSQL理論基礎 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ù)庫的應用場景 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ù)庫的相關操作 294
7.3.5 Redis數(shù)據(jù)庫的體系結(jié)構(gòu) 295
7.3.6 Redis數(shù)據(jù)庫的應用場景 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ù)庫的應用場景 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 設計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ù)庫設計 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ù)庫應用JSP訪問編程 330
參考文獻 332