數(shù)據(jù)庫技術是現(xiàn)代信息科學與技術領域的重要組成部分,是計算機數(shù)據(jù)處理與信息管理系統(tǒng)的基礎!稊(shù)據(jù)庫原理與應用:MySQL8版本》結合MySQL數(shù)據(jù)庫,詳細講解數(shù)據(jù)庫的原理和設計!稊(shù)據(jù)庫原理與應用:MySQL8版本》配套PPT課件、習題與答案、教學大綱、數(shù)據(jù)庫操作實驗手冊。
《數(shù)據(jù)庫原理與應用:MySQL8版本》分為4篇,共22章,內(nèi)容包括數(shù)據(jù)庫基礎知識、關系數(shù)據(jù)庫、關系數(shù)據(jù)庫標準語言SQL、數(shù)據(jù)庫安全、關系查詢處理和查詢優(yōu)化、數(shù)據(jù)庫恢復技術、并發(fā)控制、MySQL安裝和配置、MySQL數(shù)據(jù)庫基本操作、MySQL數(shù)據(jù)庫中的存儲引擎和數(shù)據(jù)類型、MySQL數(shù)據(jù)庫表操作、MySQL索引與視圖操作、MySQL觸發(fā)器操作、MySQL數(shù)據(jù)操作、MySQL單表與多表數(shù)據(jù)查詢操作、MySQL運算符與常用函數(shù)、MySQL存儲過程與函數(shù)操作、MySQL事務與安全機制、MySQL日志管理與數(shù)據(jù)庫維護、數(shù)據(jù)庫設計、數(shù)據(jù)庫編程、MySQL圖書管理系統(tǒng)設計。
《數(shù)據(jù)庫原理與應用:MySQL8版本》內(nèi)容翔實、知識結構合理、語言簡潔流暢、案例豐富,適合希望從事數(shù)據(jù)庫系統(tǒng)研究、開發(fā)和應用的研究人員和工程技術人員閱讀,也可作為高等院校或高職高專院校計算機科學與技術、軟件工程、信息技術等專業(yè)的數(shù)據(jù)庫課程的教材。
一本書學會MySQL 8的用法、數(shù)據(jù)庫原理及其應用。
數(shù)據(jù)庫是Web應用開發(fā)、軟件開發(fā)、數(shù)據(jù)庫管理、數(shù)據(jù)分析、數(shù)據(jù)處理系統(tǒng)等領域的核心技術。
《數(shù)據(jù)庫原理與應用:MySQL8版本》理論與實踐相結合,詳細講解數(shù)據(jù)庫原理、MySQL操作、數(shù)據(jù)庫設計方法、數(shù)據(jù)庫編程接口,幫助讀者掌握數(shù)據(jù)庫原理及其應用的基礎知識。
《數(shù)據(jù)庫原理與應用:MySQL8版本》系統(tǒng)講解數(shù)據(jù)庫設計步驟,解析圖書管理系統(tǒng)數(shù)據(jù)庫設計實例,指導讀者領悟數(shù)據(jù)庫設計方法。
配套PPT課件、配套習題與答案、數(shù)據(jù)庫操作實驗手冊。
數(shù)據(jù)庫技術是現(xiàn)代信息科學與技術的重要組成部分,是計算機數(shù)據(jù)處理與信息管理系統(tǒng)的基礎。數(shù)據(jù)庫技術研究和解決了計算機信息處理過程中大量數(shù)據(jù)有效地組織和存儲的問題,在系統(tǒng)數(shù)據(jù)庫中能夠減少數(shù)據(jù)存儲冗余、實現(xiàn)數(shù)據(jù)共享、保障數(shù)據(jù)安全以及高效地檢索和處理數(shù)據(jù)。數(shù)據(jù)庫技術是計算機科學技術發(fā)展的基礎之一,也是應用廣泛的技術之一。數(shù)據(jù)庫管理系統(tǒng)作為國家信息基礎設施的重要組成部分,不僅是社會進步的助推器,也是提高生產(chǎn)力和生產(chǎn)效率、改變民生、推動國家經(jīng)濟發(fā)展的重要技術工具。
MySQL是一種流行的開源數(shù)據(jù)庫軟件,廣泛用于管理關系數(shù)據(jù)庫。它以其強大的功能、速度、可擴展性以及易用性而聞名。在企業(yè)中,業(yè)務數(shù)據(jù)通常存儲在關系數(shù)據(jù)庫中,而MySQL是其中的主流選擇。此外,學習Hive、Spark SQL和Flink SQL等技術時,SQL語法是它們共同的基礎。因此,我們應通過學習MySQL來掌握SQL語法的使用,熟練地執(zhí)行基本的增刪改查操作以及多表查詢操作,為學習Hive、Spark SQL和Flink SQL等技術打下堅實的基礎。
本書特點
?數(shù)據(jù)庫原理與應用充分融合。
?理論和實踐結構安排合理,先理論后實踐。
?示例經(jīng)典且豐富。
?系統(tǒng)開發(fā)軟件升級到最新版本。
?給出了較系統(tǒng)的數(shù)據(jù)庫設計典型案例。
?結合每章的內(nèi)容安排給出習題與答案,并提供MySQL操作實驗方案。
本書內(nèi)容
本書分為4篇,共22章。
第1篇(第1~4章)是基礎理論篇,介紹數(shù)據(jù)庫基礎知識、關系數(shù)據(jù)庫、關系數(shù)據(jù)庫標準語言SQL和數(shù)據(jù)庫安全。
第2篇(第5~7章)是數(shù)據(jù)庫系統(tǒng)篇,介紹查詢處理和查詢優(yōu)化、數(shù)據(jù)庫恢復技術和并發(fā)控制。
第3篇(第8~19章)是MySQL數(shù)據(jù)庫操作、管理與應用篇,介紹MySQL的安裝和配置、數(shù)據(jù)庫基本操作、存儲引擎和數(shù)據(jù)類型、數(shù)據(jù)表操作、索引與視圖操作、觸發(fā)器操作、數(shù)據(jù)操作、單表與多表數(shù)據(jù)查詢操作、運算符與常用函數(shù)、存儲過程與函數(shù)操作、事務與安全機制、日志管理與數(shù)據(jù)庫維護等內(nèi)容。
第4篇(第20~22章)是設計與應用開發(fā)篇,介紹數(shù)據(jù)庫設計、數(shù)據(jù)庫編程和MySQL圖書管理系統(tǒng)設計。
配套資源
本書配套PPT課件、習題與答案、教學大綱、數(shù)據(jù)庫操作實驗手冊,請讀者用微信掃描下面的二維碼獲取。如果在閱讀過程中發(fā)現(xiàn)問題或疑問,請聯(lián)系配套資源中給出的相關聯(lián)系人。
本書作者
本書作者為鄧立國、鄧淇文、蘇暢、林慶發(fā)。雖然作者在創(chuàng)作本書的過程中傾盡全力,但由于水平有限、時間倉促,書中難免有疏漏之處,歡迎各位讀者批評指正。
作者
2024年8月
鄧立國,東北大學計算機應用博士,廣東工業(yè)大學教師。主要研究方向為數(shù)據(jù)挖掘、知識工程、大數(shù)據(jù)處理、云計算、分布式計算等。著有圖書:《Python深度學習原理、算法與案例》《scikit-learn機器學習實戰(zhàn)》《Python數(shù)據(jù)分析與挖掘實戰(zhàn)》《Python大數(shù)據(jù)分析算法與實例》《Python機器學習算法與應用》《數(shù)據(jù)庫原理與應用(SQL Server 2016版本)》。
第1篇 基礎理論篇
第 1 章 數(shù)據(jù)庫基礎知識 3
1.1 數(shù)據(jù)庫系統(tǒng)概論 3
1.1.1 數(shù)據(jù)庫系統(tǒng)的基本概念 3
1.1.2 數(shù)據(jù)庫技術的產(chǎn)生與特點 4
1.2 數(shù)據(jù)模型 5
1.2.1 數(shù)據(jù)模型的組成要素 6
1.2.2 數(shù)據(jù)的概念模型 6
1.2.3 數(shù)據(jù)的邏輯模型 11
1.2.4 數(shù)據(jù)的物理模型 12
1.3 數(shù)據(jù)庫系統(tǒng)模式與結構 12
1.3.1 數(shù)據(jù)庫系統(tǒng)的三級模式結構 12
1.3.2 數(shù)據(jù)庫系統(tǒng)的二級映像功能 13
1.4 數(shù)據(jù)庫系統(tǒng)的組成 14
1.4.1 計算機硬件 14
1.4.2 計算機軟件 14
1.4.3 數(shù)據(jù)庫系統(tǒng)中的人員 14
第 2 章 關系數(shù)據(jù)庫 16
2.1 數(shù)學中關系的概念 16
2.2 關系數(shù)據(jù)模型 18
2.2.1 關系數(shù)據(jù)結構 18
2.2.2 關系操作 19
2.3 數(shù)據(jù)庫完整性 20
2.3.1 實體完整性 21
2.3.2 參照完整性 22
2.3.3 用戶定義完整性 25
2.3.4 完整性約束命名子句 27
2.3.5 域中的完整性限制 28
2.3.6 斷言 28
2.3.7 觸發(fā)器 29
2.4 關系代數(shù) 33
2.4.1 傳統(tǒng)的集合運算 34
2.4.2 專門的關系運算 35
2.5 關系模式和范式理論 40
2.5.1 關系模式與屬性依賴 40
2.5.2 范式理論 42
2.5.3 數(shù)據(jù)依賴的公理系統(tǒng) 47
2.5.4 模式分解 51
第 3 章 關系數(shù)據(jù)庫標準語言SQL 59
3.1 SQL語言概述 59
3.1.1 SQL的特點 59
3.1.2 SQL的基本概念 60
3.2 數(shù)據(jù)定義 61
3.2.1 模式的定義與刪除 62
3.2.2 基本表的定義、刪除與修改 63
3.2.3 索引的建立與刪除 66
3.3 數(shù)據(jù)查詢 68
3.3.1 單表查詢 68
3.3.2 多表查詢 80
3.4 數(shù)據(jù)更新 90
3.4.1 插入數(shù)據(jù) 90
3.4.2 修改數(shù)據(jù) 92
3.4.3 刪除數(shù)據(jù) 93
3.5 視圖 94
3.5.1 定義視圖 94
3.5.2 查詢視圖 97
3.5.3 更新視圖 98
3.5.4 視圖的作用 100
第 4 章 數(shù)據(jù)庫安全 102
4.1 數(shù)據(jù)庫安全性概述 102
4.1.1 數(shù)據(jù)庫的不安全因素 102
4.1.2 安全標準簡介 103
4.2 數(shù)據(jù)庫安全性控制 106
4.2.1 用戶身份鑒別 107
4.2.2 存取控制 108
4.2.3 自主存取控制方法 109
4.2.4 授權:授予與收回 109
4.2.5 數(shù)據(jù)庫角色 114
4.2.6 強制存取控制方法 115
4.3 視圖機制 117
4.4 審計 117
4.4.1 數(shù)據(jù)庫審計的目的 117
4.4.2 數(shù)據(jù)庫審計的主要組成部分 118
4.4.3 數(shù)據(jù)庫審計的主要類型 118
4.4.4 審計事件 119
第2篇 數(shù)據(jù)庫系統(tǒng)篇
第 5 章 查詢處理和查詢優(yōu)化 123
5.1 關系數(shù)據(jù)庫系統(tǒng)的查詢處理 123
5.1.1 查詢處理步驟 123
5.1.2 實現(xiàn)查詢操作的算法示例 125
5.2 關系數(shù)據(jù)庫系統(tǒng)的查詢優(yōu)化 128
5.2.1 查詢優(yōu)化概述 128
5.2.2 查詢優(yōu)化示例 129
5.3 代數(shù)優(yōu)化 131
5.3.1 關系代數(shù)表達式等價變換規(guī)則 131
5.3.2 查詢樹的啟發(fā)式優(yōu)化 133
5.4 物理優(yōu)化 134
5.4.1 基于啟發(fā)式規(guī)則的存取路徑選擇優(yōu)化 135
5.4.2 基于代價估算的優(yōu)化 135
5.5 查詢計劃的執(zhí)行 137
第 6 章 數(shù)據(jù)庫恢復技術 138
6.1 事務的基本概念 138
6.2 數(shù)據(jù)庫恢復概述 139
6.3 故障的種類 140
6.4 恢復的實現(xiàn)技術 141
6.4.1 數(shù)據(jù)轉儲 142
6.4.2 登記日志文件 143
6.5 恢復策略 144
6.5.1 系統(tǒng)故障的恢復 144
6.5.2 介質(zhì)故障的恢復 145
6.5.3 事務故障的恢復 145
6.6 具有檢查點的恢復技術 146
6.7 數(shù)據(jù)庫鏡像 148
第 7 章 并發(fā)控制 149
7.1 并發(fā)控制概述 150
7.2 封鎖 152
7.3 封鎖協(xié)議 152
7.4 活鎖和死鎖 154
7.4.1 活鎖 155
7.4.2 死鎖 155
7.5 并發(fā)調(diào)度的可串行性 157
7.5.1 可串行化調(diào)度 157
7.5.2 沖突可串行化調(diào)度 158
7.6 兩段鎖協(xié)議 159
7.7 封鎖的粒度 160
7.7.1 多粒度封鎖 161
7.7.2 意向鎖 162
7.8 其他并發(fā)控制機制 163
7.8.1 多版本并發(fā)控制 163
7.8.2 改進的多版本并發(fā)控制 164
第3篇 MySQL數(shù)據(jù)庫操作、管理與應用篇
第 8 章 MySQL的安裝和配置 169
8.1 MySQL概述 169
8.1.1 MySQL簡介 169
8.1.2 MySQL的特點 170
8.1.3 MySQL 8.0新增的特點 171
8.2 下載和安裝MySQL 172
8.2.1 下載MySQL 172
8.2.2 安裝MySQL 173
8.3 MySQL服務管理 175
8.4 通過DOS窗口啟動和關閉MySQL服務 177
8.5 使用MySQL Workbench客戶端軟件 178
8.6 MySQL常用圖形化管理軟件SQLyog軟件 179
8.7 MySQL命令行工具 181
第 9 章 MySQL的數(shù)據(jù)庫基本操作 184
9.1 數(shù)據(jù)庫及數(shù)據(jù)庫對象 184
9.2 創(chuàng)建數(shù)據(jù)庫 185
9.3 數(shù)據(jù)庫相關操作 187
9.3.1 查看數(shù)據(jù)庫 187
9.3.2 選擇數(shù)據(jù)庫 188
9.3.3 刪除數(shù)據(jù)庫 189
第 10 章 MySQL的存儲引擎和數(shù)據(jù)類型 191
10.1 認識存儲引擎 191
10.1.1 MySQL存儲引擎 191
10.1.2 操作默認存儲引擎 193
10.1.3 選擇存儲引擎 194
10.2 數(shù)據(jù)類型 195
10.2.1 整數(shù)類型 195
10.2.2 浮點數(shù)類型、定點數(shù)類型和位類型 197
10.2.3 日期和時間類型 199
10.2.4 字符串類型 200
第 11 章 MySQL的表操作 203
11.1 創(chuàng)建表 203
11.2 查看表結構 206
11.3 刪除表 208
11.4 修改表 209
11.5 操作表的約束 216
第 12 章 MySQL的索引與視圖操作 225
12.1 創(chuàng)建和查看索引 225
12.1.1 創(chuàng)建和查看普通索引 225
12.1.2 創(chuàng)建和查看唯一索引 228
12.1.3 創(chuàng)建和查看全文索引 231
12.1.4 創(chuàng)建和查看多列索引 234
12.2 刪除索引 236
12.3 創(chuàng)建視圖 237
12.4 查看視圖 240
12.5 刪除與修改視圖 243
12.6 利用視圖操作基本表 246
第 13 章 MySQL的觸發(fā)器操作 248
13.1 創(chuàng)建觸發(fā)器 248
13.2 查看觸發(fā)器 252
13.3 刪除觸發(fā)器 253
第 14 章 MySQL的數(shù)據(jù)操作 255
14.1 插入數(shù)據(jù)記錄 255
14.2 更新數(shù)據(jù)記錄 261
14.3 刪除數(shù)據(jù)記錄 263
第 15 章 MySQL的單表與多表數(shù)據(jù)查詢操作 265
15.1 簡單數(shù)據(jù)記錄查詢 265
15.1.1 簡單數(shù)據(jù)查詢 266
15.1.2 避免重復的數(shù)據(jù)查詢 267
15.1.3 實現(xiàn)數(shù)學四則運算的數(shù)據(jù)查詢 268
15.1.4 設置顯示格式的數(shù)據(jù)查詢 269
15.2 條件數(shù)據(jù)記錄查詢 269
15.2.1 帶關系運算符和邏輯運算符的條件數(shù)據(jù)查詢 270
15.2.2 帶BETWEEN AND關鍵字的范圍查詢 271
15.2.3 帶IS NULL關鍵字的空值查詢 272
15.2.4 帶IN關鍵字的集合查詢 274
15.2.5 帶LIKE關鍵字的模糊查詢 275
15.3 排序數(shù)據(jù)記錄查詢 278
15.4 限制數(shù)據(jù)記錄查詢數(shù)量 280
15.5 統(tǒng)計函數(shù)和分組數(shù)據(jù)記錄查詢 282
15.6 連接操作 290
15.6.1 自連接 290
15.6.2 等值連接 291
15.6.3 不等連接 292
15.6.4 外連接 293
15.7 合并查詢數(shù)據(jù)記錄 296
15.8 子查詢 297
第 16 章 MySQL的運算符與常用函數(shù) 303
16.1 使用算術運算符 303
16.2 使用比較運算符 304
16.3 使用邏輯運算符 308
16.4 使用位運算符 310
16.5 使用字符串函數(shù) 312
16.6 使用數(shù)值函數(shù) 322
16.7 使用日期和時間函數(shù) 324
16.8 使用系統(tǒng)信息函數(shù) 329
第 17 章 MySQL的存儲過程與函數(shù)操作 331
17.1 創(chuàng)建存儲過程和函數(shù) 331
17.2 存儲過程和函數(shù)的表達式 334
17.3 查看與修改存儲過程和函數(shù) 341
17.4 刪除存儲過程和函數(shù) 345
第 18 章 MySQL的事務與安全機制 347
18.1 事務概述 347
18.2 MySQL事務控制語句 348
18.3 MySQL事務隔離級別 350
18.4 InnoDB鎖機制 351
18.5 MySQL提供的權限 352
18.6 MySQL提供的用戶機制 355
18.7 權限管理 363
18.7.1 對用戶進行授權 363
18.7.2 查看用戶擁有的權限 364
18.7.3 收回用戶擁有的權限 364
第 19 章 MySQL的日志管理與數(shù)據(jù)庫維護 366
19.1 MySQL支持的日志 366
19.2 操作二進制日志 367
19.3 操作錯誤日志 369
19.4 通用查詢?nèi)罩?370
19.5 慢查詢?nèi)罩?372
19.6 MySQL數(shù)據(jù)庫維護 374
第4篇 設計與應用開發(fā)篇
第 20 章 數(shù)據(jù)庫設計 385
20.1 數(shù)據(jù)庫設計概述 385
20.1.1 數(shù)據(jù)庫設計的特點 386
20.1.2 數(shù)據(jù)庫設計的方法 387
20.1.3 數(shù)據(jù)庫設計的階段 388
20.1.4 數(shù)據(jù)庫設計過程中的各級模式 390
20.2 需求分析 391
20.2.1 需求分析的任務 391
20.2.2 需求分析的方法 391
20.2.3 數(shù)據(jù)字典 392
20.3 概念結構設計 394
20.3.1 概念模型 394
20.3.2 擴展的E-R模型 395
20.3.3 UML 399
20.3.4 概念結構設計 400
20.4 邏輯結構設計 407
20.4.1 E-R圖向關系模型轉換 407
20.4.2 數(shù)據(jù)模型的優(yōu)化 408
20.4.3 設計用戶外模式 409
20.5 物理結構設計 410
20.5.1 數(shù)據(jù)庫物理設計的內(nèi)容和方法 410
20.5.2 關系模式存取方法的選擇 411
20.5.3 確定數(shù)據(jù)庫的物理結構 413
20.5.4 評價物理結構 413
20.6 數(shù)據(jù)庫的實施和維護 414
20.6.1 數(shù)據(jù)的載入和應用程序的調(diào)試 414
20.6.2 數(shù)據(jù)庫的試運行 414
20.6.3 數(shù)據(jù)庫的運行和維護 415
第 21 章 數(shù)據(jù)庫編程 417
21.1 嵌入式SQL 417
21.1.1 嵌入式SQL的處理過程 417
21.1.2 嵌入式SQL語句與主語言之間的通信 418
21.1.3 不用游標的SQL語句 421
21.1.4 使用游標的SQL語句 422
21.1.5 動態(tài)SQL 423
21.2 過程化SQL 424
21.2.1 過程化SQL的塊結構 424
21.2.2 變量和常量的定義 425
21.2.3 流程控制 425
21.3 ODBC編程 427
21.3.1 ODBC概述 427
21.3.2 ODBC工作原理概述 427
21.3.3 ODBC API基礎 429
21.3.4 ODBC的工作流程 430
21.4 OLE DB 434
21.5 JDBC編程 436
第 22 章 MySQL圖書管理系統(tǒng)設計 437
22.1 系統(tǒng)概述 437
22.1.1 需求分析 437
22.1.2 功能分析 438
22.2 數(shù)據(jù)庫設計 438
22.2.1 開發(fā)工具及技術選型 438
22.2.2 概念設計 439
22.2.3 邏輯設計 440
22.3 數(shù)據(jù)庫實施 441