本書系統(tǒng)地介紹了數(shù)據(jù)庫原理、SQL Server 2008數(shù)據(jù)庫管理系統(tǒng)及應用實例,概述了數(shù)據(jù)庫前沿技術。全書共分9章,主要內(nèi)容包括:緒論;關系數(shù)據(jù)庫;SQL語言;關系數(shù)據(jù)理論;數(shù)據(jù)庫設計;數(shù)據(jù)庫保護;數(shù)據(jù)庫系統(tǒng)的訪問;數(shù)據(jù)庫技術的發(fā)展;SQL Server 2008及應用實例,包括SQL Server 2008概述、SQL Server 2008管理工具簡介、Transact-SQL語言基礎、數(shù)據(jù)庫管理、表的管理、視圖的管理、存儲過程、用戶和安全性管理、數(shù)據(jù)轉換服務、數(shù)據(jù)庫應用開發(fā)實例等。本書內(nèi)容豐富、全面、系統(tǒng),深度和廣度兼顧,可作為高等院校和科研院所計算機專業(yè)和相關專業(yè)數(shù)據(jù)庫課程的教材,也可作為有關人員學習和研究數(shù)據(jù)庫原理與應用或開發(fā)數(shù)據(jù)庫應用系統(tǒng)的技術參考書。
數(shù)據(jù)庫技術產(chǎn)生于20世紀60年代,經(jīng)歷了格式化數(shù)據(jù)庫(以層次和網(wǎng)狀數(shù)據(jù)庫為代表)、經(jīng)典數(shù)據(jù)庫(以關系數(shù)據(jù)庫和后關系數(shù)據(jù)庫為代表)和新型數(shù)據(jù)庫(以對象數(shù)據(jù)庫和XML數(shù)據(jù)庫等為代表)的三代發(fā)展演變。40多年來,數(shù)據(jù)庫技術的重要性和意義已經(jīng)被人們所認識與理解。首先,數(shù)據(jù)庫技術已經(jīng)形成相對完整和成熟的科學理論體系,成為現(xiàn)代計算機信息處理系統(tǒng)的重要基礎與技術核心,造就了C. W. Bachman、E. F. Codd和J.Gray三位圖靈大獎得主;其次,數(shù)據(jù)庫帶動和形成了一個巨大的軟件產(chǎn)業(yè)數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品和相關技術工具與解決方案,對經(jīng)濟發(fā)展起著極大的推動作用,表現(xiàn)出非凡的生產(chǎn)力效應;最后,數(shù)據(jù)庫研究和開發(fā)領域的各項成就推動了其他眾多計算機理論與應用領域的進步,對這些領域的發(fā)展起到了巨大的支撐作用,成為各種計算機信息系統(tǒng)的核心內(nèi)容與技術基礎。
本書對數(shù)據(jù)庫技術進行了全面的闡述和研究。在結合大量的實例和作者教學體會的基礎上,對數(shù)據(jù)庫技術的各個領域進行了深入淺出的剖析,對數(shù)據(jù)庫技術的重點和難點進行了詳細的描述,力求做到思路清晰、概念準確、結構合理、內(nèi)容生動活潑。本書重點介紹了數(shù)據(jù)庫的基本概念及ER圖、關系模型等數(shù)據(jù)庫建模技術,數(shù)據(jù)庫應用部分主要介紹了SQL Server 2008的基本管理與操作。
每一章的開始都對該章將要涉及的內(nèi)容及其作用進行了分析,然后指出了學完本章讀者應該掌握的重要內(nèi)容。另外,章末所附的練習題,旨在加深讀者對本章涉及概念的理解,培養(yǎng)學生應用本章學到的知識來解決實際問題的能力。
本書內(nèi)容全面、實例豐富,并配備了課后習題參考答案,方便教學。本書可作為高等院校計算機專業(yè)及信息管理等相關專業(yè)本科生數(shù)據(jù)庫課程的教材,也可作為相關人員學習數(shù)據(jù)庫知識的參考書。
東北農(nóng)業(yè)大學于嘯、陸麗娜、張宇任本書主編;沈陽工業(yè)大學白晨生,吉林農(nóng)業(yè)大學畢春光、林楠,東北農(nóng)業(yè)大學張喜海任本書副主編;東北農(nóng)業(yè)大學丁寶峰、孫建,哈爾濱金融學院姜微參編;全書由東北農(nóng)業(yè)大學蘇中濱教授主審。
本書的配套教學資源可在華信教育資源網(wǎng)(www.hxedu.com.cn)注冊后免費下載。
由于作者水平有限,加之創(chuàng)作時間倉促,書中不足之處在所難免,歡迎廣大讀者批評指正。
于嘯,博士,副教授,東北農(nóng)業(yè)大學電氣與信息學院系主任,中國計算機學會會員。編寫過多部教材,包括:《數(shù)據(jù)庫原理與應用》(2011年獲校級優(yōu)秀教材一等獎)、《數(shù)字農(nóng)業(yè)基礎》、(2008年獲校級優(yōu)秀教材一等獎)、《智能化農(nóng)業(yè)技術概論》、 《數(shù)據(jù)庫系統(tǒng)概論與實例及習題指導》、《微機原理與接口技術實驗指導》、《PowerBuilder程序設計實驗指導》(2011年獲校級優(yōu)秀教材三等獎)。參與課題包括:面向精確農(nóng)業(yè)的無線傳感器網(wǎng)絡節(jié)點定位機制與算法研究,黑龍江省科技廳青年科學基金項目(QC2009C18);農(nóng)業(yè)信息資源搜索技術研究與應用,國家星火計劃子課題項目(2010GA670006-2);畜牧業(yè)公共數(shù)字化服務平臺構建技術研究,黑龍江省科技攻關項目子題;基于無線傳感器網(wǎng)絡的溫室控制系統(tǒng),黑龍江省重點實驗室基金項目(GS2009010)等。
第1章 緒論1
1.1 數(shù)據(jù)庫系統(tǒng)概述1
1.1.1 數(shù)據(jù)庫的幾個基本概念1
1.1.2 數(shù)據(jù)管理技術的發(fā)展歷史2
1.2 數(shù)據(jù)模型3
1.2.1 信息的三個領域3
1.2.2 概念模型4
1.2.3 概念模型的表示方法5
1.3 數(shù)據(jù)模型6
1.3.1 數(shù)據(jù)模型的組成要素6
1.3.2 最常用的數(shù)據(jù)模型7
1.4 數(shù)據(jù)庫的體系結構12
1.4.1 數(shù)據(jù)庫的分級結構12
1.4.2 模式及映像13
1.5 數(shù)據(jù)庫管理系統(tǒng)14
1.5.1 DBMS的功能14
1.5.2 DBMS的程序組成15
1.5.3 數(shù)據(jù)語言16
1.5.4 數(shù)據(jù)字典17
第2章 關系數(shù)據(jù)庫18
2.1 從格式化模型到關系模型18
2.2 關系的數(shù)學定義18
2.2.1 域18
2.2.2 笛卡兒積18
2.2.3 關系的數(shù)學定義19
2.3 關系的性質20
2.4 碼的概念20
2.4.1 碼的定義20
2.4.2 候選碼和主碼21
2.4.3 外部關系碼21
2.4.4 關系模型的完整性21
2.5 關系數(shù)據(jù)庫模式23
2.5.1 關系模式23
2.5.2 關系數(shù)據(jù)庫23
2.6 關系運算23
2.6.1 關系代數(shù)23
2.6.2 關系演算28
第3章 SQL語言29
3.1 SQL語言概述29
3.1.1 SQL語言的發(fā)展29
3.1.2 SQL的基本概念29
3.1.3 SQL語言的主要特點30
3.2 數(shù)據(jù)定義30
3.2.1 基本表的定義、刪除與修改31
3.2.2 索引的建立與刪除32
3.3 數(shù)據(jù)查詢33
3.3.1 單表查詢34
3.3.2 連接查詢40
3.3.3 嵌套查詢41
3.3.4 集合查詢45
3.4 數(shù)據(jù)操作46
3.4.1 數(shù)據(jù)插入46
3.4.2 數(shù)據(jù)修改47
3.4.3 數(shù)據(jù)刪除48
3.5 視圖49
3.5.1 定義視圖49
3.5.2 查詢視圖50
3.5.3 更新視圖51
3.6 數(shù)據(jù)控制52
3.6.1 授權52
3.6.2 收回權限53
第4章 關系數(shù)據(jù)理論55
4.1 關系規(guī)范化的作用55
4.1.1 規(guī)范化理論概述55
4.1.2 不合理的關系模式存在的問題55
4.2 函數(shù)依賴57
4.2.1 關系模式的簡化表示57
4.2.2 函數(shù)依賴的基本概念58
4.2.3 碼的函數(shù)依賴表示59
4.2.4 函數(shù)依賴和碼的唯一性60
4.3 規(guī)范化60
4.3.1 規(guī)范化的含義61
4.3.2 第一范式61
4.3.3 第二范式62
4.3.4 第三范式63
4.3.5 BCNF范式64
4.4 多值依賴與4NF65
4.4.1 問題的引入65
4.4.2 多值依賴基本概念66
4.4.3 第四范式67
4.5 函數(shù)依賴的公理系統(tǒng)68
4.5.1 函數(shù)依賴集的完備性68
4.5.2 函數(shù)依賴的推理規(guī)則69
4.5.3 屬性的閉包與F邏輯蘊涵的充要條件70
4.5.4 最小函數(shù)依賴集Fmin71
4.6 關系模式分解73
4.6.1 無損分解73
4.6.2 保持函數(shù)依賴76
4.7 連接依賴與5NF77
4.7.1 連接依賴77
4.7.2 第五范式79
4.8 關系模式規(guī)范化步驟79
4.9 小結80
第5章 數(shù)據(jù)庫設計82
5.1 數(shù)據(jù)庫設計概述82
5.1.1 數(shù)據(jù)庫設計的任務82
5.1.2 數(shù)據(jù)庫設計的特點83
5.1.3 數(shù)據(jù)庫設計的方法83
5.1.4 數(shù)據(jù)庫設計的工具84
5.1.5 數(shù)據(jù)庫設計的步驟85
5.2 需求分析86
5.2.1 需求分析的任務86
5.2.2 需求收集87
5.2.3 需求分析過程88
5.2.4 需求分析的結果90
5.3 概念結構設計90
5.3.1 概念結構設計概述90
5.3.2 概念結構設計的方法91
5.3.3 局部ER圖設計91
5.3.4 全局ER圖設計93
5.4 邏輯結構設計95
5.4.1 概念模型轉換為關系數(shù)據(jù)模型95
5.4.2 關系模型的優(yōu)化96
5.4.3 設計用戶子模式97
5.5 物理結構設計97
5.5.1 物理結構設計概述97
5.5.2 存取方法選擇98
5.5.3 存儲結構的確定99
5.6 數(shù)據(jù)庫的實施和維護99
5.6.1 數(shù)據(jù)庫的實施99
5.6.2 數(shù)據(jù)庫的運行和維護100
5.7 小結101
第6章 數(shù)據(jù)庫保護102
6.1 數(shù)據(jù)庫事務處理102
6.1.1 事務的定義102
6.1.2 事務的ACID性質103
6.1.3 事務處理模型103
6.1.4 事務的狀態(tài)104
6.2 數(shù)據(jù)庫故障及恢復105
6.2.1 數(shù)據(jù)庫故障分類105
6.2.2 數(shù)據(jù)庫恢復技術106
6.2.3 數(shù)據(jù)庫恢復策略109
6.3 并發(fā)控制110
6.3.1 并發(fā)操作帶來的數(shù)據(jù)不一致性111
6.3.2 封鎖技術112
6.3.3 封鎖帶來的問題114
6.3.4 并發(fā)操作的調度116
6.4 數(shù)據(jù)庫的完整性117
6.4.1 數(shù)據(jù)的完整性118
6.4.2 SQL中的完整性約束118
6.4.3 SQL中的觸發(fā)器121
6.5 數(shù)據(jù)庫的安全性123
6.5.1 數(shù)據(jù)庫安全性概述123
6.5.2 SQL中的安全性機制124
6.5.3 常用的安全性措施126
6.6 小結127
第7章 數(shù)據(jù)庫系統(tǒng)的訪問129
7.1 數(shù)據(jù)庫的訪問接口129
7.1.1 固有調用129
7.1.2 ODBC129
7.1.3 JDBC133
7.2 客戶機/服務器模式的數(shù)據(jù)庫系統(tǒng)137
7.3 瀏覽器/服務器模式的數(shù)據(jù)庫系統(tǒng)139
7.3.1 Web數(shù)據(jù)庫的體系結構139
7.3.2 技術實現(xiàn)140
7.4 Java訪問數(shù)據(jù)庫的技術142
7.4.1 JDBC技術142
7.4.2 JSP的數(shù)據(jù)庫訪問技術142
7.5 數(shù)據(jù)庫系統(tǒng)的多層體系結構143
7.6 小結144
第8章 數(shù)據(jù)庫技術的發(fā)展145
8.1 數(shù)據(jù)庫新技術的分類145
8.2 面向對象數(shù)據(jù)庫系統(tǒng)146
8.2.1 面向對象程序設計方法146
8.2.2 面向對象數(shù)據(jù)模型147
8.2.3 面向對象數(shù)據(jù)庫語言150
8.2.4 面向對象數(shù)據(jù)庫的模式演進151
8.2.5 對象-關系數(shù)據(jù)庫151
8.3 分布式數(shù)據(jù)庫系統(tǒng)152
8.3.1 分布式數(shù)據(jù)庫系統(tǒng)的特點與目標153
8.3.2 分布式數(shù)據(jù)庫系統(tǒng)的體系結構155
8.4 網(wǎng)絡環(huán)境下的數(shù)據(jù)庫體系156
8.4.1 客戶機/服務器系統(tǒng)156
8.4.2 開放式數(shù)據(jù)庫的互連技術(ODBC)159
8.5 數(shù)據(jù)倉庫與數(shù)據(jù)挖掘162
8.5.1 數(shù)據(jù)倉庫162
8.5.2 數(shù)據(jù)倉庫設計實例168
8.5.3 數(shù)據(jù)挖掘技術概述170
8.6 其他新型的數(shù)據(jù)庫系統(tǒng)172
8.6.1 多媒體數(shù)據(jù)庫系統(tǒng)172
8.6.2 主動數(shù)據(jù)庫系統(tǒng)173
8.6.3 演繹數(shù)據(jù)庫系統(tǒng)173
8.6.4 實時數(shù)據(jù)庫系統(tǒng)175
8.7 小結175
第9章 SQL Server 2008及應用實例176
9.1 SQL Server 2008概述176
9.1.1 概述176
9.1.2 SQL Server 2008的基本特點176
9.1.3 SQL Server 2008的安裝176
9.2 SQL Server 2008管理工具簡介182
9.2.1 創(chuàng)建服務器組182
9.2.2 注冊服務器182
9.2.3 新建查詢183
9.3 Transact-SQL語言基礎184
9.3.1 Transact-SQL簡介184
9.3.2 數(shù)據(jù)類型185
9.3.3 常量187
9.3.4 變量187
9.3.5 注釋符和運算符188
9.3.6 流程控制語句188
9.3.7 常用函數(shù)190
9.4 數(shù)據(jù)庫管理195
9.4.1 創(chuàng)建數(shù)據(jù)庫196
9.4.2 修改數(shù)據(jù)庫設置196
9.4.3 刪除數(shù)據(jù)庫197
9.4.4 分離/附加數(shù)據(jù)庫198
9.4.5 備份/還原數(shù)據(jù)庫199
9.5 表的管理201
9.5.1 創(chuàng)建數(shù)據(jù)表201
9.5.2 修改表202
9.6 視圖的管理205
9.6.1 創(chuàng)建視圖205
9.6.2 管理視圖206
9.7 存儲過程207
9.7.1 創(chuàng)建存儲過程208
9.7.2 執(zhí)行存儲過程209
9.7.3 查看、修改和刪除存儲過程210
9.8 用戶和安全性管理212
9.8.1 SQL Server登錄認證212
9.8.2 數(shù)據(jù)庫用戶215
9.8.3 角色管理216
9.8.4 權限管理220
9.9 數(shù)據(jù)轉換服務223
9.9.1 DTS導出向導224
9.9.2 DTS導入向導225
9.10 數(shù)據(jù)庫應用開發(fā)實例229
9.10.1 建立數(shù)據(jù)源229
9.10.2 創(chuàng)建新的工程231
第10章 部分章節(jié)習題234
參考文獻270