黨的二十大報告指出: 教育、科技、人才是全面建設社會主義現(xiàn)代化國家的基礎性、戰(zhàn)略性支撐。必須堅持科技是第一生產力、人才是第一資源、創(chuàng)新是第一動力,深入實施科教興國戰(zhàn)略、人才強國戰(zhàn)略、創(chuàng)新驅動發(fā)展戰(zhàn)略,這三大戰(zhàn)略共同服務于創(chuàng)新型國家的建設。高等教育與經濟社會發(fā)展緊密相連,對促進就業(yè)創(chuàng)業(yè)、助力經濟社會發(fā)展、增進人民福祉具有重要意義。
數(shù)據(jù)庫技術是計算機科學技術中發(fā)展最快的技術之一,它已成為計算機信息系統(tǒng)與應用系統(tǒng)的核心技術和重要基礎。數(shù)據(jù)庫技術已在當代的社會生活中得到廣泛的應用,并形成一個巨大的軟件產業(yè)。
數(shù)據(jù)庫技術始于20世紀60年代末,經過50多年的發(fā)展,經歷3次演變,形成以數(shù)據(jù)建模和DBMS核心技術為主,具有相當規(guī)模的理論體系和實用技術的一門學科,目前已成為計算機軟件領域的一個重要分支。通常,人們把早期的層次數(shù)據(jù)庫系統(tǒng)與網狀數(shù)據(jù)庫系統(tǒng)稱為第一代數(shù)據(jù)庫系統(tǒng),把當今流行的關系數(shù)據(jù)庫系統(tǒng)稱為第二代數(shù)據(jù)庫系統(tǒng),當前正在發(fā)展的熱點是新型的第三代乃至第四代數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫技術的發(fā)展方興未艾,新原理、新技術不斷出現(xiàn),然而,這些新型數(shù)據(jù)庫系統(tǒng)大多建立在基本的數(shù)據(jù)庫技術基礎之上。
本書是上海市精品課程數(shù)據(jù)庫原理及應用配套教材的第3版。本書共11章,結合電力企業(yè)數(shù)據(jù)庫應用案例,較為詳細地介紹了數(shù)據(jù)庫系統(tǒng)的基本概念、原理、方法和應用技術。
第1章介紹數(shù)據(jù)庫系統(tǒng)的幾個重要概念,回顧數(shù)據(jù)管理技術的發(fā)展過程,并在此基礎上介紹數(shù)據(jù)庫系統(tǒng)結構和數(shù)據(jù)庫管理系統(tǒng)的體系結構。
第2章介紹關系數(shù)據(jù)庫的基本概念、關系模型的運算理論關系代數(shù)和關系演算。
第3章介紹結構化查詢語言的應用,提供了很多有實際應用價值的實例。
第4章介紹數(shù)據(jù)庫編程和存儲程序,詳細介紹了數(shù)據(jù)庫的流程控制語句和存儲過程。
第5章基于MySQL和SQL Server兩個不同的DBMS介紹觸發(fā)器的應用,并進一步介紹數(shù)據(jù)完整性的概念。
第6章介紹索引的概念及基于索引的查詢優(yōu)化。
第7章介紹關系數(shù)據(jù)庫設計理論,包括函數(shù)依賴、規(guī)范化、公理系統(tǒng)和模式分解等內容。
第8章介紹一些常用的數(shù)據(jù)庫設計方法,主要介紹數(shù)據(jù)庫的概念設計、邏輯設計以及物理設計,并給出一個電力系統(tǒng)數(shù)據(jù)庫應用的實例。
第9章介紹數(shù)據(jù)庫安全的概念,以及MySQL和SQL Server系統(tǒng)的安全機制。
第10章介紹數(shù)據(jù)庫保護,包括事務、并發(fā)控制和數(shù)據(jù)庫的恢復,并介紹
MySQL和SQL Server中的數(shù)據(jù)庫備份與恢復。
第11章介紹非關系數(shù)據(jù)庫的概念及大數(shù)據(jù)應用。
附錄A和附錄B分別介紹MySQL 8.0和SQL Server 2012的安裝與使用。
附錄C和附錄D基于MySQL和SQL Server的實驗,緊密結合本書內容分別提供8個上機實驗,力求使實驗內容詳細、實用。
每章結尾均配有適量的習題,以加強讀者對數(shù)據(jù)庫系統(tǒng)概念、方法的理解和掌握。
本書的最大特點是理論和應用并重,在系統(tǒng)介紹關系數(shù)據(jù)庫基本原理的基礎上,給出了非常多的應用實例,并且給出了MySQL和SQL Server兩種DBMS的實現(xiàn)。
為便于教學,本書提供豐富的配套資源,包括教學大綱、教學課件、電子教案、程序源碼、教學進度表、在線作業(yè)、習題答案和600分鐘的微課視頻。
資源下載提示
課件等資源: 掃描封底的課件下載二維碼,在公眾號書圈下載。
素材(源碼)等資源: 掃描目錄上方的二維碼下載。
在線作業(yè): 掃描封底的作業(yè)系統(tǒng)二維碼,再掃描自測題二維碼在線做題及查看答案。
微課視頻: 掃描封底的文泉云盤防盜碼,再掃描書中相應章節(jié)的視頻講解二維碼,可以在線學習。
本書可作為高等院校計算機、軟件工程、信息安全、信息管理與信息系統(tǒng)、信息與計算科學、電氣工程等相關專業(yè)學生數(shù)據(jù)庫
相關課程的教材。
在具體講授時應根據(jù)需要對內容進行適當取舍。
本書由上海電力大學葉文珺老師負責內容的取材、組織和統(tǒng)稿,參與本書編寫的老師有葉文珺、馮莉、杜海舟、徐菲菲、殷脂。還有很多老師為本書提供了資料或提出了寶貴意見,在此一并表示感謝。
在本書的編寫過程中,編者盡可能引入新的技術和方法,力求反映當前的技術水平和未來的發(fā)展方向。由于編者水平有限,書中難免存在不足之處,敬請廣大讀者批評指正。
編者
2024年3月
源碼下載
第1章緒論
1.1數(shù)據(jù)庫系統(tǒng)概述
1.1.1數(shù)據(jù)庫的發(fā)展歷史
1.1.2數(shù)據(jù)庫技術的基本術語
1.1.3數(shù)據(jù)管理技術的發(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)結構
1.3.1三級模式結構
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的工作過程
小結
習題1
第2章關系數(shù)據(jù)庫
2.1關系數(shù)據(jù)模型
2.1.1關系數(shù)據(jù)模型概述
2.1.2基本術語
2.1.3關系的性質
2.2關系的完整性
2.3關系代數(shù)
2.3.1傳統(tǒng)的集合運算
2.3.2專門的關系運算
2.3.3關系代數(shù)運算的應用實例
2.3.4關系代數(shù)的擴充操作
2.4關系演算
2.4.1元組關系演算
2.4.2域關系演算
2.4.3關系演算的安全約束和等價性
小結
習題2
第3章結構化查詢語言
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視圖的作用
小結
習題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ù)
小結
習題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ù)庫完整性
小結
習題5
第6章索引及查詢優(yōu)化
6.1索引
6.1.1索引的概念
6.1.2聚集索引
6.1.3非聚集索引
6.1.4索引的結構
6.1.5何時創(chuàng)建索引
6.1.6系統(tǒng)如何訪問表中的數(shù)據(jù)
6.2查詢優(yōu)化技巧
小結
習題6
第7章關系數(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ī)范化
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模式分解的算法
小結
習題7
第8章數(shù)據(jù)庫設計
8.1數(shù)據(jù)庫設計概述
8.1.1數(shù)據(jù)庫的生命周期
8.1.2數(shù)據(jù)庫設計方法
8.1.3數(shù)據(jù)庫的設計過程
8.2需求分析階段
8.3概念設計階段
8.3.1概念模型的特點
8.3.2實體聯(lián)系模型
8.3.3概念模型的設計方法與步驟
8.4邏輯設計階段
8.5物理設計階段
8.6數(shù)據(jù)庫實現(xiàn)階段
8.7數(shù)據(jù)庫的運行與維護階段設計
8.8數(shù)據(jù)庫設計實例: 電網設備搶修物資管理數(shù)據(jù)庫設計
8.8.1需求分析
8.8.2概念模型
8.8.3邏輯模型
小結
習題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權限系統(tǒng)的工作原理
9.3.2MySQL的用戶管理
9.3.3MySQL的權限管理
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的權限管理
小結
習題9
第10章數(shù)據(jù)庫保護
10.1事務
10.1.1事務的定義
10.1.2事務的ACID性質
10.1.3事務的狀態(tài)
10.2并發(fā)控制
10.2.1并發(fā)操作與數(shù)據(jù)的不一致性
10.2.2封鎖
10.2.3并發(fā)操作的調度
10.3數(shù)據(jù)庫的恢復
10.3.1存儲器的結構
10.3.2故障的種類
10.3.3數(shù)據(jù)轉儲技術
10.3.4使用日志的數(shù)據(jù)庫恢復技術
10.3.5緩沖技術
10.3.6檢查點技術
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ù)庫恢復
小結
習題10
第11章非關系數(shù)據(jù)庫系統(tǒng)概述
11.1NoSQL概述
11.1.1NoSQL簡介
11.1.2NoSQL興起的原因
11.1.3NoSQL與傳統(tǒng)關系數(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ù)應用
11.3.1大數(shù)據(jù)在電力行業(yè)的應用
11.3.2大數(shù)據(jù)在政府中的應用
11.3.3大數(shù)據(jù)在金融行業(yè)的應用
11.3.4大數(shù)據(jù)在交通行業(yè)的應用
11.3.5大數(shù)據(jù)應用的發(fā)展趨勢
小結
習題11
附錄AMySQL的安裝與使用
附錄BSQL Server 2012的安裝與使用
附錄C實驗(MySQL版)
附錄D實驗(SQL Server版)
參考文獻