本書圍繞數據庫的原理、應用和實施,系統、全面地介紹數據庫的基本概念、方法和核心技術。全書分三部分進行闡述,第一部分側重數據庫理論基礎,內容包括數據庫的基本概念、數據模型、關系數據庫、關系代數和SQL語句、數據庫規范化理論、數據庫設計和數據庫保護技術; 第二部分側重SQL Server的數據庫應用,內容包括TransactSQL語言、SQL Server數據對象(表、視圖、索引、存儲過程和函數、觸發器)、安全性管理和并發機制; 第三部分側重數據庫應用系統的實施,內容包括.NET開發環境、一個學分制財務管理系統的總體設計、數據庫設計和核心模塊的實現。
本書可作為高等學校計算機專業數據庫課程的教材,也可作為其他相關專業本科生數據庫課程的教材,還可作為從事數據庫研制、開發和應用的有關人員的參考書。
數據庫是普通高校計算機專業、信息管理、軟件工程等專業的專業基礎課,其主要任務是研究如何存儲、使用和管理數據,目前,已成功地應用于經濟、教育、情報、科研、人工智能等各個領域。因此,數據庫是國內外計算機專業的一門重要的課程。
開設數據庫課程的目的是使學生在掌握數據庫的基本原理、方法和技術的基礎上,能根據應用需求靈活設計適合的數據庫,并能聯合現有的數據庫管理系統和軟件開發工具進行數據庫的建立和數據庫應用系統的開發。本書以關系數據庫為核心,按照“原理—應用—實施”循序漸進的模式,全面、系統地闡述了數據庫系統的理論和實踐知識。其中,原理部分的目標是幫助讀者掌握數據庫的重要概念,最終能進行關系數據庫的設計; 應用部分的目標是幫助讀者熟練使用某種商品型數據庫,通過比較,我們選用了SQL Server 2008,其是Microsoft公司具有里程碑性質的企業級數據庫產品,和以往的數據解決方案相比,它給用戶帶來了更為強大的數據管理和業務處理功能; 實施部分的目標幫助讀者按照軟件工程和數據庫設計的步驟來進行數據庫信息管理系統的開發。
本書分為三大部分: 數據庫原理部分、應用部分及實施部分,共18章。
第一部分: 數據庫原理(第1~第7章)。第1和第2章介紹了數據庫的基本概念和數據模型; 第3和第4章著重介紹了關系模型、關系數據庫以及關系數據庫的操作語言(關系代數和SQL語句); 第5章介紹數據庫規范化理論; 第6和第7章分別介紹數據庫設計和數據庫保護的理論和方法。
第二部分: 數據庫應用(第8~第14章)。第8章介紹了SQL Server的基本概念; 第9章介紹了TransactSQL 語言,包括標識符、變量、函數、流程控制語句及游標等。第10和第11章分別介紹了數據庫、表、視圖、索引的概念及基本操作; 第12和第13章分別介紹了存儲過程和函數、觸發器的管理和使用; 第14章介紹SQL Server數據庫的保護,含安全性管理、備份和恢復、并發機制等。
第三部分: 數據庫實施(第15~第18章)。第15章介紹了.NET開發環境; 第16和第17章分別介紹了學分制財務管理系統的總體設計和對應的數據庫設計。第18章針對數據查詢、存儲過程、觸發器和事務等核心技術,設計了專門的系統模塊來描述它們的應用場景和實現過程。
本書強化以下特色:
(1) 內容全面: 本書不僅包括數據庫理論部分,還有具體的SQL Server 2008的介紹和使用,另外還以學分制財務管理系統為例詳細介紹數據庫的設計和實施。
(2) 適用于多種層次的學生: 本書可適用于計算機及相關專業的數據庫課程,無論從理論和實踐都符合教學大綱的要求; 對于高職高專類院校,可把難度較大的部分作為選講內容。
(3) 本書內容主要來源于課程教學的講義和教案,將編者多年教學實踐取得的豐富經驗和操作技巧融合入教材,更有利于教師的授課和學生的學習。
(4) 強化實例教學: 對于每個知識點,本書設計了針對性強的教學案例。讀者可以在清華大學出版社網頁下載配套的教學資源。
(5) 在內容方面,既強調實用性,又注重理論的完整性,主要體現在:
① 數據庫理論方面,突出關系數據庫技術的主要內容,減少并弱化層次、網絡模型的內容。
② 在關系模型操作語言方面,強化關系代數和SQL語句,并增加兩者之間語句的對應關系,弱化常規數據庫理論書中的關系演算部分內容。
③ 在SQL語句方面,除了常規的交互式SQL語句,增加嵌入式SQL部分。
④ 數據庫規范化部分,弱化實際中應用較少的多值依賴和4NF。
⑤ 強化了數據庫設計的內容,常規的數據庫設計部分通常以概念居多,本書采用在數據庫設計中應用最廣的設計工具PowerDesigner來介紹具體的數據庫設計過程。
⑥ 加入了商品型數據庫SQL Server 2008的介紹和使用。
⑦ 比一般的數據庫理論書增加了實踐中應用較多的存儲過程、觸發器、游標等部分的內容,實踐性更強。
⑧ 圍繞數據庫應用中的核心技術,增加采用.NET進行數據庫應用系統開發的介紹。
本書在編寫過程中,參考了大量的相關技術資料和程序開發文檔,在此向資料的作者深表謝意; 還得到很多同事的關心和幫助,在此表示深深的感謝。
由于數據庫技術發展迅速,加上編者水平有限,難免顧此失彼。對于書中存在的錯誤和不妥之處,敬請讀者批評指正。
編者
2015年5月
第一部分數據庫原理
第1章數據庫系統概述
1.1數據庫概述
1.1.1初識數據庫
1.1.2數據庫概念
1.2數據庫系統組成
1.2.1數據庫管理系統
1.2.2數據庫應用程序
1.2.3用戶
1.3數據庫系統的三級模式結構
1.3.1三級模式
1.3.2模式映像與數據獨立性
1.4數據庫系統的軟件體系結構
1.5數據庫系統發展歷程
1.5.1數據庫系統的特點
1.5.2數據庫系統的發展
1.5.3數據庫系統的發展趨勢
習題1
第2章數據模型
2.1數據模型簡介
2.1.1數據模型的組成要素
2.1.2數據模型的發展
2.2概念模型
2.2.1ER數據模型的基本概念
2.2.2ER圖
2.2.3EER圖
2.3傳統數據模型
2.3.1層次模型
2.3.2網狀模型
2.3.3關系模型
2.4面向對象數據模型
2.4.1面向對象基本概念
2.4.2數據結構
2.4.3數據操作和約束
2.4.4對象數據模型的實施
習題2
第3章關系數據庫系統
3.1關系數據庫系統的特點
3.2關系模型的數據結構
3.2.1基本術語
3.2.2規范化的關系
3.2.3關系的鍵(碼)
3.3關系代數
3.3.1基本的關系操作
3.3.2關系數據語言
3.3.3關系代數
3.3.4關系代數運算實例
3.4關系的完整性
3.4.1實體完整性
3.4.2參照完整性
3.4.3用戶定義的完整性
習題3
第4章關系數據庫標準語言SQL
4.1SQL概述
4.1.1SQL的產生與發展
4.1.2SQL語言功能概述
4.1.3SQL的特點
4.2數據準備——曲庫
4.3數據定義
4.4數據查詢
4.4.1查詢語句的基本結構
4.4.2單表查詢
4.4.3連接查詢
4.4.4集合查詢
4.4.5子查詢
4.5數據更新
4.5.1插入操作
4.5.2刪除操作
4.5.3修改操作
習題4
第5章數據庫規范化理論
5.1函數依賴
5.1.1研究函數依賴的意義
5.1.2函數依賴的定義
5.1.3關系的鍵(碼)
5.1.4函數依賴的公理系統
5.1.5屬性集的閉包
5.1.6屬性集閉包的應用
5.2關系模式的規范化
5.2.1問題的提出
5.2.2問題的根源
5.2.3范式
5.2.4規范化小結
習題5
第6章數據庫設計
6.1數據庫設計概述
6.1.1數據庫設計的特點
6.1.2數據庫設計的步驟
6.2需求分析階段
6.2.1需求分析概述
6.2.2結構化分析建模
6.3概念結構設計
6.3.1概念結構設計概述
6.3.2采用ER方法的概念結構設計
6.4邏輯結構設計
6.4.1關系數據庫的邏輯設計
6.4.2關系模型的優化
6.4.3設計外模式
6.5物理結構設計
6.6數據庫的實施和維護
6.6.1數據庫的實施
6.6.2數據庫的運行和維護
6.7使用PowerDesigner進行數據庫設計
6.7.1PowerDesigner介紹
6.7.2概念數據模型
6.7.3CDM生成PDM
6.7.4生成數據庫
6.7.5生成REPORT
習題6
第7章數據庫保護
7.1數據庫安全性
7.1.1安全控制模型
7.1.2用戶身份認證
7.1.3存取控制
7.1.4其他安全控制技術
7.1.5權限控制語句
7.2數據庫完整性
7.2.1完整性控制的功能
7.2.2完整性約束條件作用的對象
7.2.3完整性控制語句
7.3并發控制
7.3.1并發控制的單位——事務
7.3.2并發帶來的問題
7.3.3封鎖技術
7.4數據庫恢復
7.4.1故障種類
7.4.2數據庫恢復技術
7.4.3恢復策略
習題7
第二部分數據庫應用
第8章SQL Server概述
8.1SQL Server簡介
8.2SQL Server的平臺構成
8.3數據庫引擎的體系結構
8.4SQL Server的管理工具
8.4.1SQL Server Configuration Manager
8.4.2SQL Server Management Studio
8.4.3Database Engine Tuning Advisor
8.4.4SQL Server Profiler
8.5注冊服務器
習題8
第9章TransactSQL語言
9.1TransactSQL語言
9.2標識符、數據類型
9.2.1語法約定
9.2.2注釋語句
9.2.3標識符
9.2.4數據類型
9.3常量和變量
9.3.1常量
9.3.2變量
9.3.3運算符
9.3.4表達式
9.4系統內置函數
9.4.1字符串函數
9.4.2日期函數
9.4.3數學函數
9.4.4其他常用函數
9.4.5轉換函數
9.5批處理和流程控制語句
9.5.1批處理
9.5.2流程控制語句
9.6游標
9.6.1游標概述
9.6.2使用游標
習題9
第10章管理數據庫
10.1數據庫的組成
10.1.1物理數據庫與文件
10.1.2邏輯數據庫與數據庫對象
10.1.3系統數據庫與用戶數據庫
10.2數據庫的操作
10.2.1創建數據庫
10.2.2修改數據庫
10.2.3刪除數據庫
10.2.4數據庫的重命名
10.2.5查看數據庫信息
10.2.6分離和附加數據庫
10.2.7設置當前數據庫
10.3擴展知識
10.3.1關于數據庫空間使用
10.3.2數據庫的排序規則
10.3.3數據庫的統計信息
10.3.4查看系統數據庫啟動順序
習題10
第11章表、視圖和索引
11.1概述
11.2表
11.2.1表的概述
11.2.2表的分類
11.2.3創建表
11.2.4數據完整性的實現
11.2.5修改表和刪除表
11.2.6表的數據操作
11.3視圖
11.3.1視圖概述
11.3.2創建視圖
11.3.3管理視圖
11.3.4視圖的使用
11.4索引
11.4.1索引的概念
11.4.2索引的類型
11.4.3索引的創建
11.4.4刪除索引
11.4.5查看索引信息
11.4.6索引填充因子
11.5使用數據庫引擎優化顧問
習題11
第12章存儲過程和函數
12.1存儲過程
12.1.1存儲過程概述
12.1.2創建存儲過程
12.1.3執行存儲過程
12.1.4帶參數的存儲過程
12.1.5管理存儲過程
12.2用戶自定義函數
12.2.1概述
12.2.2標量函數
12.2.3表值函數
12.2.4使用SSMS創建用戶定義函數
12.2.5修改用戶定義函數
12.2.6刪除用戶定義函數
習題12
第13章觸發器
13.1觸發器概述
13.2DML觸發器
13.2.1DML觸發器的概述和作用
13.2.2DML觸發器分類
13.2.3與DML觸發器相關的邏輯表
13.2.4創建DML觸發器
13.3DDL觸發器
13.3.1DDL觸發器概述
13.3.2創建DDL觸發器
13.4管理觸發器
習題13
第14章SQL Server數據庫的保護
14.1SQL Server的安全性
14.1.1SQL Server的安全機制
14.1.2管理SQL Server服務器安全性
14.1.3管理數據庫的安全性
14.1.4管理數據庫對象的安全性
14.2SQL Server的備份和恢復
14.2.1SQL Server的恢復模式
14.2.2SQL Server的備份
14.2.3備份數據庫
14.2.4恢復數據庫
14.3SQL Server的并發機制
14.3.1SQL Server的隔離級別
14.3.2SQL Server的鎖模式
14.3.3SQL Server中死鎖的處理
14.3.4SQL Server Profiler查看死鎖
14.4*擴展知識
習題14
第三部分數據庫實施
第15章數據庫應用程序開發技術
15.1開發環境簡介
15.2基于.NET的Windows程序開發
15.2.1可視化編程
15.2.2.NET下的可視化編程
15.3.NET中的數據庫技術
15.3.1ADO.NET與.NET框架
15.3.2ADO.NET的組成
15.3.3ADO.NET的常用類
習題15
第16章學分制財務管理系統總體設計
16.1需求分析
16.2功能模塊設計
16.3開發與運行環境
習題16
第17章學分制財務管理系統數據庫設計
17.1總體設計
17.2完整性設計
17.3函數和存儲過程設計
17.3.1函數設計——個人財務
17.3.2存儲過程設計
習題17
第18章學分制財務管理系統實現
18.1建立數據庫通用訪問類
18.2基礎DML的演練——用戶管理
18.3動態查詢條件的演練——查詢學生信息
18.4調用函數和存儲過程——查詢統計
18.5觸發器演練——資費標準管理
18.6事務演練——批量導入選課學分模塊
18.7安全性演練1——用戶登錄
18.8安全性演練2——系統集成
習題18
附錄
參考文獻