黨的二十大報(bào)告指出: 教育、科技、人才是全面建設(shè)社會(huì)主義現(xiàn)代化國家的基礎(chǔ)性、戰(zhàn)略性支撐。必須堅(jiān)持科技是第一生產(chǎn)力、人才是第一資源、創(chuàng)新是第一動(dòng)力,深入實(shí)施科教興國戰(zhàn)略、人才強(qiáng)國戰(zhàn)略、創(chuàng)新驅(qū)動(dòng)發(fā)展戰(zhàn)略,這三大戰(zhàn)略共同服務(wù)于創(chuàng)新型國家的建設(shè)。高等教育與經(jīng)濟(jì)社會(huì)發(fā)展緊密相連,對(duì)促進(jìn)就業(yè)創(chuàng)業(yè)、助力經(jīng)濟(jì)社會(huì)發(fā)展、增進(jìn)人民福祉具有重要意義。
數(shù)據(jù)庫技術(shù)是計(jì)算機(jī)科學(xué)技術(shù)中發(fā)展最快的技術(shù)之一,它已成為計(jì)算機(jī)信息系統(tǒng)與應(yīng)用系統(tǒng)的核心技術(shù)和重要基礎(chǔ)。數(shù)據(jù)庫技術(shù)已在當(dāng)代的社會(huì)生活中得到廣泛的應(yīng)用,并形成一個(gè)巨大的軟件產(chǎn)業(yè)。
數(shù)據(jù)庫技術(shù)始于20世紀(jì)60年代末,經(jīng)過50多年的發(fā)展,經(jīng)歷3次演變,形成以數(shù)據(jù)建模和DBMS核心技術(shù)為主,具有相當(dāng)規(guī)模的理論體系和實(shí)用技術(shù)的一門學(xué)科,目前已成為計(jì)算機(jī)軟件領(lǐng)域的一個(gè)重要分支。通常,人們把早期的層次數(shù)據(jù)庫系統(tǒng)與網(wǎng)狀數(shù)據(jù)庫系統(tǒng)稱為第一代數(shù)據(jù)庫系統(tǒng),把當(dāng)今流行的關(guān)系數(shù)據(jù)庫系統(tǒng)稱為第二代數(shù)據(jù)庫系統(tǒng),當(dāng)前正在發(fā)展的熱點(diǎn)是新型的第三代乃至第四代數(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)用案例,較為詳細(xì)地介紹了數(shù)據(jù)庫系統(tǒng)的基本概念、原理、方法和應(yīng)用技術(shù)。
第1章介紹數(shù)據(jù)庫系統(tǒng)的幾個(gè)重要概念,回顧數(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)系模型的運(yùn)算理論關(guān)系代數(shù)和關(guān)系演算。
第3章介紹結(jié)構(gòu)化查詢語言的應(yīng)用,提供了很多有實(shí)際應(yīng)用價(jià)值的實(shí)例。
第4章介紹數(shù)據(jù)庫編程和存儲(chǔ)程序,詳細(xì)介紹了數(shù)據(jù)庫的流程控制語句和存儲(chǔ)過程。
第5章基于MySQL和SQL Server兩個(gè)不同的DBMS介紹觸發(fā)器的應(yīng)用,并進(jìn)一步介紹數(shù)據(jù)完整性的概念。
第6章介紹索引的概念及基于索引的查詢優(yōu)化。
第7章介紹關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論,包括函數(shù)依賴、規(guī)范化、公理系統(tǒng)和模式分解等內(nèi)容。
第8章介紹一些常用的數(shù)據(jù)庫設(shè)計(jì)方法,主要介紹數(shù)據(jù)庫的概念設(shè)計(jì)、邏輯設(shè)計(jì)以及物理設(shè)計(jì),并給出一個(gè)電力系統(tǒng)數(shù)據(jù)庫應(yīng)用的實(shí)例。
第9章介紹數(shù)據(jù)庫安全的概念,以及MySQL和SQL Server系統(tǒng)的安全機(jī)制。
第10章介紹數(shù)據(jù)庫保護(hù),包括事務(wù)、并發(fā)控制和數(shù)據(jù)庫的恢復(fù),并介紹
MySQL和SQL Server中的數(shù)據(jù)庫備份與恢復(fù)。
第11章介紹非關(guān)系數(shù)據(jù)庫的概念及大數(shù)據(jù)應(yīng)用。
附錄A和附錄B分別介紹MySQL 8.0和SQL Server 2012的安裝與使用。
附錄C和附錄D基于MySQL和SQL Server的實(shí)驗(yàn),緊密結(jié)合本書內(nèi)容分別提供8個(gè)上機(jī)實(shí)驗(yàn),力求使實(shí)驗(yàn)內(nèi)容詳細(xì)、實(shí)用。
每章結(jié)尾均配有適量的習(xí)題,以加強(qiáng)讀者對(duì)數(shù)據(jù)庫系統(tǒng)概念、方法的理解和掌握。
本書的最大特點(diǎn)是理論和應(yīng)用并重,在系統(tǒng)介紹關(guān)系數(shù)據(jù)庫基本原理的基礎(chǔ)上,給出了非常多的應(yīng)用實(shí)例,并且給出了MySQL和SQL Server兩種DBMS的實(shí)現(xiàn)。
為便于教學(xué),本書提供豐富的配套資源,包括教學(xué)大綱、教學(xué)課件、電子教案、程序源碼、教學(xué)進(jìn)度表、在線作業(yè)、習(xí)題答案和600分鐘的微課視頻。
資源下載提示
課件等資源: 掃描封底的課件下載二維碼,在公眾號(hào)書圈下載。
素材(源碼)等資源: 掃描目錄上方的二維碼下載。
在線作業(yè): 掃描封底的作業(yè)系統(tǒng)二維碼,再掃描自測(cè)題二維碼在線做題及查看答案。
微課視頻: 掃描封底的文泉云盤防盜碼,再掃描書中相應(yīng)章節(jié)的視頻講解二維碼,可以在線學(xué)習(xí)。
本書可作為高等院校計(jì)算機(jī)、軟件工程、信息安全、信息管理與信息系統(tǒng)、信息與計(jì)算科學(xué)、電氣工程等相關(guān)專業(yè)學(xué)生數(shù)據(jù)庫
相關(guān)課程的教材。
在具體講授時(shí)應(yīng)根據(jù)需要對(duì)內(nèi)容進(jìn)行適當(dāng)取舍。
本書由上海電力大學(xué)葉文珺老師負(fù)責(zé)內(nèi)容的取材、組織和統(tǒng)稿,參與本書編寫的老師有葉文珺、馮莉、杜海舟、徐菲菲、殷脂。還有很多老師為本書提供了資料或提出了寶貴意見,在此一并表示感謝。
在本書的編寫過程中,編者盡可能引入新的技術(shù)和方法,力求反映當(dāng)前的技術(shù)水平和未來的發(fā)展方向。由于編者水平有限,書中難免存在不足之處,敬請(qǐng)廣大讀者批評(píng)指正。
編者
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個(gè)范疇
1.2.2數(shù)據(jù)模型的組成要素及分類
1.2.3常用的數(shù)據(jù)模型
1.3數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)
1.3.1三級(jí)模式結(jié)構(gòu)
1.3.2數(shù)據(jù)庫系統(tǒng)的二級(jí)獨(dú)立性
1.3.3數(shù)據(jù)庫系統(tǒng)的二級(jí)映像
1.4數(shù)據(jù)庫管理系統(tǒng)
1.4.1DBMS的主要功能
1.4.2DBMS的組成概述
1.4.3DBMS的工作過程
小結(jié)
習(xí)題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)的集合運(yùn)算
2.3.2專門的關(guān)系運(yùn)算
2.3.3關(guān)系代數(shù)運(yùn)算的應(yīng)用實(shí)例
2.3.4關(guān)系代數(shù)的擴(kuò)充操作
2.4關(guān)系演算
2.4.1元組關(guān)系演算
2.4.2域關(guān)系演算
2.4.3關(guān)系演算的安全約束和等價(jià)性
小結(jié)
習(xí)題2
第3章結(jié)構(gòu)化查詢語言
3.1SQL概述
3.1.1SQL的發(fā)展
3.1.2SQL的特點(diǎn)
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é)
習(xí)題3
第4章數(shù)據(jù)庫編程和存儲(chǔ)程序
4.1基本編程語法
4.1.1變量
4.1.2流程控制語句
4.1.3注釋語句
4.2存儲(chǔ)過程
4.2.1存儲(chǔ)過程的基本概念
4.2.2創(chuàng)建和管理MySQL存儲(chǔ)過程
4.2.3創(chuàng)建和管理SQL Server存儲(chǔ)過程
4.3MySQL存儲(chǔ)函數(shù)
4.3.1創(chuàng)建存儲(chǔ)函數(shù)
4.3.2刪除存儲(chǔ)函數(shù)
小結(jié)
習(xí)題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é)
習(xí)題5
第6章索引及查詢優(yōu)化
6.1索引
6.1.1索引的概念
6.1.2聚集索引
6.1.3非聚集索引
6.1.4索引的結(jié)構(gòu)
6.1.5何時(shí)創(chuàng)建索引
6.1.6系統(tǒng)如何訪問表中的數(shù)據(jù)
6.2查詢優(yōu)化技巧
小結(jié)
習(xí)題6
第7章關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論
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ù)依賴集的等價(jià)和最小化
7.5模式分解
7.5.1模式分解的準(zhǔn)則
7.5.2分解的函數(shù)依賴保持性和無損連接性
7.5.3模式分解的算法
小結(jié)
習(xí)題7
第8章數(shù)據(jù)庫設(shè)計(jì)
8.1數(shù)據(jù)庫設(shè)計(jì)概述
8.1.1數(shù)據(jù)庫的生命周期
8.1.2數(shù)據(jù)庫設(shè)計(jì)方法
8.1.3數(shù)據(jù)庫的設(shè)計(jì)過程
8.2需求分析階段
8.3概念設(shè)計(jì)階段
8.3.1概念模型的特點(diǎn)
8.3.2實(shí)體聯(lián)系模型
8.3.3概念模型的設(shè)計(jì)方法與步驟
8.4邏輯設(shè)計(jì)階段
8.5物理設(shè)計(jì)階段
8.6數(shù)據(jù)庫實(shí)現(xiàn)階段
8.7數(shù)據(jù)庫的運(yùn)行與維護(hù)階段設(shè)計(jì)
8.8數(shù)據(jù)庫設(shè)計(jì)實(shí)例: 電網(wǎng)設(shè)備搶修物資管理數(shù)據(jù)庫設(shè)計(jì)
8.8.1需求分析
8.8.2概念模型
8.8.3邏輯模型
小結(jié)
習(xí)題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用戶標(biāo)識(shí)與鑒別
9.2.2存取控制
9.2.3視圖機(jī)制
9.2.4審計(jì)
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的身份驗(yàn)證模式
9.4.2SQL Server的安全機(jī)制
9.4.3SQL Server的用戶管理
9.4.4SQL Server的角色管理
9.4.5SQL Server的權(quán)限管理
小結(jié)
習(xí)題9
第10章數(shù)據(jù)庫保護(hù)
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ù)庫的恢復(fù)
10.3.1存儲(chǔ)器的結(jié)構(gòu)
10.3.2故障的種類
10.3.3數(shù)據(jù)轉(zhuǎn)儲(chǔ)技術(shù)
10.3.4使用日志的數(shù)據(jù)庫恢復(fù)技術(shù)
10.3.5緩沖技術(shù)
10.3.6檢查點(diǎn)技術(shù)
10.3.7恢復(fù)策略
10.4MySQL數(shù)據(jù)庫備份與恢復(fù)
10.4.1MySQL數(shù)據(jù)庫備份的類型
10.4.2MySQL數(shù)據(jù)庫備份
10.4.3MySQL數(shù)據(jù)庫恢復(fù)
10.4.4導(dǎo)出和恢復(fù)表數(shù)據(jù)
10.4.5通過二進(jìn)制日志還原數(shù)據(jù)庫
10.5SQL Server數(shù)據(jù)庫備份與恢復(fù)
10.5.1SQL Server數(shù)據(jù)庫備份
10.5.2SQL Server數(shù)據(jù)庫恢復(fù)
小結(jié)
習(xí)題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ā)展趨勢(shì)
小結(jié)
習(xí)題11
附錄AMySQL的安裝與使用
附錄BSQL Server 2012的安裝與使用
附錄C實(shí)驗(yàn)(MySQL版)
附錄D實(shí)驗(yàn)(SQL Server版)
參考文獻(xiàn)