黨的二十大報告指出: 教育、科技、人才是全面建設(shè)社會主義現(xiàn)代化國家的基礎(chǔ)性、戰(zhàn)略性支撐。必須堅持科技是第一生產(chǎn)力、人才是第一資源、創(chuàng)新是第一動力,深入實施科教興國戰(zhàn)略、人才強國戰(zhàn)略、創(chuàng)新驅(qū)動發(fā)展戰(zhàn)略,這三大戰(zhàn)略共同服務(wù)于創(chuàng)新型國家的建設(shè)。高等教育與經(jīng)濟社會發(fā)展緊密相連,對促進就業(yè)創(chuàng)業(yè)、助力經(jīng)濟社會發(fā)展、增進人民福祉具有重要意義。
數(shù)據(jù)庫技術(shù)是計算機科學技術(shù)中發(fā)展最快的技術(shù)之一,它已成為計算機信息系統(tǒng)與應(yīng)用系統(tǒng)的核心技術(shù)和重要基礎(chǔ)。數(shù)據(jù)庫技術(shù)已在當代的社會生活中得到廣泛的應(yīng)用,并形成一個巨大的軟件產(chǎn)業(yè)。
數(shù)據(jù)庫技術(shù)始于20世紀60年代末,經(jīng)過50多年的發(fā)展,經(jīng)歷3次演變,形成以數(shù)據(jù)建模和DBMS核心技術(shù)為主,具有相當規(guī)模的理論體系和實用技術(shù)的一門學科,目前已成為計算機軟件領(lǐng)域的一個重要分支。通常,人們把早期的層次數(shù)據(jù)庫系統(tǒng)與網(wǎng)狀數(shù)據(jù)庫系統(tǒng)稱為第一代數(shù)據(jù)庫系統(tǒng),把當今流行的關(guān)系數(shù)據(jù)庫系統(tǒng)稱為第二代數(shù)據(jù)庫系統(tǒng),當前正在發(fā)展的熱點是新型的第三代乃至第四代數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫技術(shù)的發(fā)展方興未艾,新原理、新技術(shù)不斷出現(xiàn),然而,這些新型數(shù)據(jù)庫系統(tǒng)大多建立在基本的數(shù)據(jù)庫技術(shù)基礎(chǔ)之上。
本書是上海市精品課程數(shù)據(jù)庫原理及應(yīng)用配套教材的第3版。本書共11章,結(jié)合電力企業(yè)數(shù)據(jù)庫應(yīng)用案例,較為詳細地介紹了數(shù)據(jù)庫系統(tǒng)的基本概念、原理、方法和應(yīng)用技術(shù)。
第1章介紹數(shù)據(jù)庫系統(tǒng)的幾個重要概念,回顧數(shù)據(jù)管理技術(shù)的發(fā)展過程,并在此基礎(chǔ)上介紹數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)和數(shù)據(jù)庫管理系統(tǒng)的體系結(jié)構(gòu)。
第2章介紹關(guān)系數(shù)據(jù)庫的基本概念、關(guān)系模型的運算理論關(guān)系代數(shù)和關(guān)系演算。
第3章介紹結(jié)構(gòu)化查詢語言的應(yīng)用,提供了很多有實際應(yīng)用價值的實例。
第4章介紹數(shù)據(jù)庫編程和存儲程序,詳細介紹了數(shù)據(jù)庫的流程控制語句和存儲過程。
第5章基于MySQL和SQL Server兩個不同的DBMS介紹觸發(fā)器的應(yīng)用,并進一步介紹數(shù)據(jù)完整性的概念。
第6章介紹索引的概念及基于索引的查詢優(yōu)化。
第7章介紹關(guān)系數(shù)據(jù)庫設(shè)計理論,包括函數(shù)依賴、規(guī)范化、公理系統(tǒng)和模式分解等內(nèi)容。
第8章介紹一些常用的數(shù)據(jù)庫設(shè)計方法,主要介紹數(shù)據(jù)庫的概念設(shè)計、邏輯設(shè)計以及物理設(shè)計,并給出一個電力系統(tǒng)數(shù)據(jù)庫應(yīng)用的實例。
第9章介紹數(shù)據(jù)庫安全的概念,以及MySQL和SQL Server系統(tǒng)的安全機制。
第10章介紹數(shù)據(jù)庫保護,包括事務(wù)、并發(fā)控制和數(shù)據(jù)庫的恢復,并介紹
MySQL和SQL Server中的數(shù)據(jù)庫備份與恢復。
第11章介紹非關(guān)系數(shù)據(jù)庫的概念及大數(shù)據(jù)應(yīng)用。
附錄A和附錄B分別介紹MySQL 8.0和SQL Server 2012的安裝與使用。
附錄C和附錄D基于MySQL和SQL Server的實驗,緊密結(jié)合本書內(nèi)容分別提供8個上機實驗,力求使實驗內(nèi)容詳細、實用。
每章結(jié)尾均配有適量的習題,以加強讀者對數(shù)據(jù)庫系統(tǒng)概念、方法的理解和掌握。
本書的最大特點是理論和應(yīng)用并重,在系統(tǒng)介紹關(guān)系數(shù)據(jù)庫基本原理的基礎(chǔ)上,給出了非常多的應(yīng)用實例,并且給出了MySQL和SQL Server兩種DBMS的實現(xiàn)。
為便于教學,本書提供豐富的配套資源,包括教學大綱、教學課件、電子教案、程序源碼、教學進度表、在線作業(yè)、習題答案和600分鐘的微課視頻。
資源下載提示
課件等資源: 掃描封底的課件下載二維碼,在公眾號書圈下載。
素材(源碼)等資源: 掃描目錄上方的二維碼下載。
在線作業(yè): 掃描封底的作業(yè)系統(tǒng)二維碼,再掃描自測題二維碼在線做題及查看答案。
微課視頻: 掃描封底的文泉云盤防盜碼,再掃描書中相應(yīng)章節(jié)的視頻講解二維碼,可以在線學習。
本書可作為高等院校計算機、軟件工程、信息安全、信息管理與信息系統(tǒng)、信息與計算科學、電氣工程等相關(guān)專業(yè)學生數(shù)據(jù)庫
相關(guān)課程的教材。
在具體講授時應(yīng)根據(jù)需要對內(nèi)容進行適當取舍。
本書由上海電力大學葉文珺老師負責內(nèi)容的取材、組織和統(tǒng)稿,參與本書編寫的老師有葉文珺、馮莉、杜海舟、徐菲菲、殷脂。還有很多老師為本書提供了資料或提出了寶貴意見,在此一并表示感謝。
在本書的編寫過程中,編者盡可能引入新的技術(shù)和方法,力求反映當前的技術(shù)水平和未來的發(fā)展方向。由于編者水平有限,書中難免存在不足之處,敬請廣大讀者批評指正。
編者
2024年3月
源碼下載
第1章緒論
1.1數(shù)據(jù)庫系統(tǒng)概述
1.1.1數(shù)據(jù)庫的發(fā)展歷史
1.1.2數(shù)據(jù)庫技術(shù)的基本術(shù)語
1.1.3數(shù)據(jù)管理技術(shù)的發(fā)展
1.2數(shù)據(jù)模型
1.2.1數(shù)據(jù)的3個范疇
1.2.2數(shù)據(jù)模型的組成要素及分類
1.2.3常用的數(shù)據(jù)模型
1.3數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)
1.3.1三級模式結(jié)構(gòu)
1.3.2數(shù)據(jù)庫系統(tǒng)的二級獨立性
1.3.3數(shù)據(jù)庫系統(tǒng)的二級映像
1.4數(shù)據(jù)庫管理系統(tǒng)
1.4.1DBMS的主要功能
1.4.2DBMS的組成概述
1.4.3DBMS的工作過程
小結(jié)
習題1
第2章關(guān)系數(shù)據(jù)庫
2.1關(guān)系數(shù)據(jù)模型
2.1.1關(guān)系數(shù)據(jù)模型概述
2.1.2基本術(shù)語
2.1.3關(guān)系的性質(zhì)
2.2關(guān)系的完整性
2.3關(guān)系代數(shù)
2.3.1傳統(tǒng)的集合運算
2.3.2專門的關(guān)系運算
2.3.3關(guān)系代數(shù)運算的應(yīng)用實例
2.3.4關(guān)系代數(shù)的擴充操作
2.4關(guān)系演算
2.4.1元組關(guān)系演算
2.4.2域關(guān)系演算
2.4.3關(guān)系演算的安全約束和等價性
小結(jié)
習題2
第3章結(jié)構(gòu)化查詢語言
3.1SQL概述
3.1.1SQL的發(fā)展
3.1.2SQL的特點
3.1.3SQL的基本概念
3.2數(shù)據(jù)定義語句
3.2.1基本表的定義
3.2.2基本表的修改
3.2.3基本表的刪除
3.2.4約束的添加和刪除
3.3查詢
3.3.1單表查詢
3.3.2連接查詢
3.3.3嵌套查詢
3.3.4集合查詢
3.3.5通過中間表查詢
3.4數(shù)據(jù)更新
3.4.1插入數(shù)據(jù)
3.4.2修改數(shù)據(jù)
3.4.3刪除數(shù)據(jù)
3.5視圖
3.5.1視圖的建立與刪除
3.5.2查詢視圖
3.5.3更新視圖
3.5.4視圖的作用
小結(jié)
習題3
第4章數(shù)據(jù)庫編程和存儲程序
4.1基本編程語法
4.1.1變量
4.1.2流程控制語句
4.1.3注釋語句
4.2存儲過程
4.2.1存儲過程的基本概念
4.2.2創(chuàng)建和管理MySQL存儲過程
4.2.3創(chuàng)建和管理SQL Server存儲過程
4.3MySQL存儲函數(shù)
4.3.1創(chuàng)建存儲函數(shù)
4.3.2刪除存儲函數(shù)
小結(jié)
習題4
第5章觸發(fā)器和數(shù)據(jù)完整性
5.1觸發(fā)器
5.1.1觸發(fā)器的基本概念
5.1.2創(chuàng)建MySQL觸發(fā)器
5.1.3創(chuàng)建SQL Server觸發(fā)器
5.1.4刪除觸發(fā)器
5.2數(shù)據(jù)庫完整性
小結(jié)
習題5
第6章索引及查詢優(yōu)化
6.1索引
6.1.1索引的概念
6.1.2聚集索引
6.1.3非聚集索引
6.1.4索引的結(jié)構(gòu)
6.1.5何時創(chuàng)建索引
6.1.6系統(tǒng)如何訪問表中的數(shù)據(jù)
6.2查詢優(yōu)化技巧
小結(jié)
習題6
第7章關(guān)系數(shù)據(jù)庫設(shè)計理論
7.1問題的提出
7.2基本概念
7.2.1函數(shù)依賴
7.2.2碼
7.3規(guī)范化
7.3.1第一范式
7.3.2第二范式
7.3.3第三范式
7.3.4BC范式
7.3.5多值依賴與第四范式
7.3.6關(guān)系模式的規(guī)范化
7.4函數(shù)依賴的公理系統(tǒng)
7.4.1Armstrong公理系統(tǒng)
7.4.2閉包
7.4.3函數(shù)依賴集的等價和最小化
7.5模式分解
7.5.1模式分解的準則
7.5.2分解的函數(shù)依賴保持性和無損連接性
7.5.3模式分解的算法
小結(jié)
習題7
第8章數(shù)據(jù)庫設(shè)計
8.1數(shù)據(jù)庫設(shè)計概述
8.1.1數(shù)據(jù)庫的生命周期
8.1.2數(shù)據(jù)庫設(shè)計方法
8.1.3數(shù)據(jù)庫的設(shè)計過程
8.2需求分析階段
8.3概念設(shè)計階段
8.3.1概念模型的特點
8.3.2實體聯(lián)系模型
8.3.3概念模型的設(shè)計方法與步驟
8.4邏輯設(shè)計階段
8.5物理設(shè)計階段
8.6數(shù)據(jù)庫實現(xiàn)階段
8.7數(shù)據(jù)庫的運行與維護階段設(shè)計
8.8數(shù)據(jù)庫設(shè)計實例: 電網(wǎng)設(shè)備搶修物資管理數(shù)據(jù)庫設(shè)計
8.8.1需求分析
8.8.2概念模型
8.8.3邏輯模型
小結(jié)
習題8
第9章數(shù)據(jù)庫安全
9.1數(shù)據(jù)庫安全概述
9.1.1數(shù)據(jù)庫安全要求
9.1.2數(shù)據(jù)庫安全威脅
9.2數(shù)據(jù)庫安全控制
9.2.1用戶標識與鑒別
9.2.2存取控制
9.2.3視圖機制
9.2.4審計
9.2.5數(shù)據(jù)加密
9.3MySQL的安全性
9.3.1MySQL權(quán)限系統(tǒng)的工作原理
9.3.2MySQL的用戶管理
9.3.3MySQL的權(quán)限管理
9.3.4MySQL的角色管理
9.4SQL Server的安全性
9.4.1SQL Server的身份驗證模式
9.4.2SQL Server的安全機制
9.4.3SQL Server的用戶管理
9.4.4SQL Server的角色管理
9.4.5SQL Server的權(quán)限管理
小結(jié)
習題9
第10章數(shù)據(jù)庫保護
10.1事務(wù)
10.1.1事務(wù)的定義
10.1.2事務(wù)的ACID性質(zhì)
10.1.3事務(wù)的狀態(tài)
10.2并發(fā)控制
10.2.1并發(fā)操作與數(shù)據(jù)的不一致性
10.2.2封鎖
10.2.3并發(fā)操作的調(diào)度
10.3數(shù)據(jù)庫的恢復
10.3.1存儲器的結(jié)構(gòu)
10.3.2故障的種類
10.3.3數(shù)據(jù)轉(zhuǎn)儲技術(shù)
10.3.4使用日志的數(shù)據(jù)庫恢復技術(shù)
10.3.5緩沖技術(shù)
10.3.6檢查點技術(shù)
10.3.7恢復策略
10.4MySQL數(shù)據(jù)庫備份與恢復
10.4.1MySQL數(shù)據(jù)庫備份的類型
10.4.2MySQL數(shù)據(jù)庫備份
10.4.3MySQL數(shù)據(jù)庫恢復
10.4.4導出和恢復表數(shù)據(jù)
10.4.5通過二進制日志還原數(shù)據(jù)庫
10.5SQL Server數(shù)據(jù)庫備份與恢復
10.5.1SQL Server數(shù)據(jù)庫備份
10.5.2SQL Server數(shù)據(jù)庫恢復
小結(jié)
習題10
第11章非關(guān)系數(shù)據(jù)庫系統(tǒng)概述
11.1NoSQL概述
11.1.1NoSQL簡介
11.1.2NoSQL興起的原因
11.1.3NoSQL與傳統(tǒng)關(guān)系數(shù)據(jù)庫的比較
11.1.4NoSQL的四大類型
11.1.5CAP理論
11.1.6BASE
11.1.7最終一致性
11.2典型NoSQL數(shù)據(jù)庫介紹
11.2.1Redis數(shù)據(jù)庫(鍵值數(shù)據(jù)庫)
11.2.2HBase數(shù)據(jù)庫(列式數(shù)據(jù)庫)
11.2.3Neo4j 數(shù)據(jù)庫(圖數(shù)據(jù)庫)
11.2.4MongoDB(文檔數(shù)據(jù)庫)
11.3大數(shù)據(jù)應(yīng)用
11.3.1大數(shù)據(jù)在電力行業(yè)的應(yīng)用
11.3.2大數(shù)據(jù)在政府中的應(yīng)用
11.3.3大數(shù)據(jù)在金融行業(yè)的應(yīng)用
11.3.4大數(shù)據(jù)在交通行業(yè)的應(yīng)用
11.3.5大數(shù)據(jù)應(yīng)用的發(fā)展趨勢
小結(jié)
習題11
附錄AMySQL的安裝與使用
附錄BSQL Server 2012的安裝與使用
附錄C實驗(MySQL版)
附錄D實驗(SQL Server版)
參考文獻