數據庫原理及設計(第4版)
陶宏才
商品描述
本書在第3版的基礎上進行了修訂和整合,保持了前三版的整體框架,挖掘背景知識,賦予問題闡釋的新視角,內容深入淺出,理論與產品相結合,對數據庫的原理、應用與設計3方面內容進行了深入淺出的詮釋。主要內容包括數據庫系統概述、高級(概念)數據模型、關系數據模型、SQL語言及其操作、數據庫的保護、關系數據庫設計理論、數據庫應用設計、數據庫應用系統設計實例、數據庫應用進展及新技術、數據庫上機實驗及指導。 數據庫系統的核心是DBMS。本書以其出現背景為線索,引出了數據庫的相關概念及數據庫的整個框架體系,理順了數據庫原理、應用與設計之間的有機聯系,突出理論產生的背景和根源,強化理論與SQL Server和Sybase等商用RDBMS產品、以及理論與應用開發的結合,重視知識的實用,跟蹤數據庫應用進展,反映**的數據庫技術前沿。 本書邏輯性、系統性、實踐性和實用性強,可作為計算機科學與技術、軟件工程、數據科學與大數據技術、人工智能以及相關專業本科生及研究生教材,也可作為從事信息系統開發的專業人員的參考書。
作者簡介
陶宏才(1964.10-),男,漢族,湖北武漢人,工學博士,現為西南交通大學信息科學與技術學院教授,碩士生導師。主持或主研完成科研課題25項,其中8項為省部級以上科研項目,獲四川省科技進步二等獎2次,四川省優秀軟件一等獎1次,廣東省交通廳科技進步二等獎1次。發表學術研究論文100余篇,主編著作/教材5部,參編著作3部。其中,主編的《數據庫原理及設計(第2版)》為“十一五”國家級規劃教材,並獲西南交通大學2008年第六屆優秀教材一等獎;主編的《數據庫原理及設計(第3版)》為四川省“十二五”普通高等教育本科規劃教材;主編的《數據庫原理與應用設計》獲西南交通大學2004年第五屆優秀教材一等獎。國家科學技術獎勵評審專家,國家自然科學基金項目評議專家,教育部科技獎勵和科技成果鑒定評審專家,教育部學位與研究生教育發展中心優秀學位論文通訊評議專家,四川省科技計劃項目評審專家,四川省科學技術獎勵評審專家,成都市科技計劃項目評審專家。四川省普通本科高校計算機科學與技術專業教學指導委員會委員,四川省通信學會IP應用與增值電信技術專委會副主任委員,刊物《計算機與現代化》編委。研究方向:數據庫技術與數據挖掘;互聯網與網絡技術;智能信
目錄大綱
目錄
第1章數據庫系統概述1
1.1數據庫系統及其總體結構1
1.1.1數據庫管理系統出現的背景1
1.1.2數據庫系統的抽象層次9
1.1.3數據庫語言與SQL11
1.1.4SQL與ODBC/JDBC/OLE DB/ADO/Hibernate13
1.1.5數據庫系統總體結構17
1.2數據庫系統中的關鍵術語與概念19
1.2.1數據庫及其相關概念19
1.2.2視圖及其相關概念21
1.2.3數據抽象、數據模型、數據模式及其相互關系23
1.2.4傳統數據模型回顧25
1.3數據庫系統的用戶28
1.4數據庫應用系統開發概述29
1.4.1C/S模式29
1.4.2B/S模式30
1.4.3組件與分布式對象開發技術30
1.4.4CGI/ISAPI/NSAPI34
1.4.5ASP/JSP/PHP35
1.4.6.NET與Java EE開發平臺37
1.4.7Web應用的MVC架構及其各種實現38
本章小結40
習題140第2章高級(概念)數據模型42
2.1關於數據模型的幾個重要問題42
2.2數據庫設計綜述44
2.3實體聯系模型45
2.3.1實體、實體型及屬性45
2.3.2聯系及聯系型47
2.3.3實體聯系模型中的完整性約束49
2.3.4弱實體54
2.3.5實體聯系模型中的元素圖示56
2.3.6應用示例57
2.4擴展實體聯系模型59
2.4.1類層次59
2.4.2演繹與歸納60
2.4.3演繹的原則61
2.4.4聚集61
2.5利用實體聯系模型進行數據庫概念設計62
2.5.1實體與屬性的取舍62
2.5.2屬性在實體與聯系間的取舍63
2.5.3二元聯系與三元聯系的取舍64
2.5.4三元聯系與聚集的取舍65
2.5.5大型系統的數據庫概念設計方法65
2.6實體聯系模型設計工具——ERwin66
2.6.1ERwin建模方法66
2.6.2ERwin應用實例69
2.7UML對象模型72
2.7.1對象模型的核心概念72
2.7.2對象模型的組成76
2.7.3UML概述76
2.7.4對象模型的UML表示76
2.7.5用類圖表達泛化78
2.7.6用類圖表達聚合與組合79
2.7.7用類圖表達依賴79
2.7.8用類圖表達實現80
本章小結80
習題281第3章關系數據模型82
3.1SQL語言簡介82
3.2關系數據模型的數據結構83
3.3關系模型上的完整性約束85
3.3.1完整性約束簡介85
3.3.2域約束86
3.3.3主鍵約束86
3.3.4唯一約束87
3.3.5外鍵約束87
3.3.6一般性約束90
3.3.7完整性約束的實施91
3.4SQL Server和Sybase支持的完整性約束及其設定91
3.4.1SQL Server和Sybase支持的完整性約束92
3.4.2DEFAULT的設定92
3.4.3RULE的設定94
3.4.4檢查約束的設定95
3.4.5主鍵約束的設定96
3.4.6唯一約束的設定96
3.4.7外鍵約束的設定97
3.4.8觸發器的定義99
3.5視圖及其操作103
3.5.1基本概念103
3.5.2視圖的創建104
3.5.3視圖的修改與刪除104
3.5.4視圖的數據插入105
3.6實體聯系模型向關系模型的轉換106
3.6.1轉換的一般方法107
3.6.2聯系型轉換為表107
3.6.3帶鍵約束的聯系型可不轉換為表109
3.6.4實體聯系模型向關系模型轉換方法小結110
3.6.5實體聯系模型向關系模型轉換示例112
3.7對象模型向關系模型的轉換113
3.7.1關系模型的UML表示 113
3.7.2轉換的一般方法113
3.7.3類的轉換113
3.7.4關聯關系的轉換115
3.7.5關聯類的轉換116
3.7.6聚合、組合及泛化關系的轉換118
3.7.7轉換實例120
3.8關系代數122
3.8.1簡介122
3.8.2關系代數概述123
3.8.3選擇與投影124
3.8.4集合操作125
3.8.5改名操作128
3.8.6聯結操作129
3.8.7除(商)操作133
3.8.8關系代數查詢表達式示例134
3.9關系運算140
3.9.1元組關系運算140
3.9.2域關系運算142
本章小結144
習題3144第4章SQL及其操作146
4.1SQL概況146
4.1.1SQL及其標準146
4.1.2SQL的特點147
4.1.3SQL92標準的分級148
4.1.4標準SQL與實際數據庫產品中的SQL148
4.2數據定義子語言及其操作148
4.2.1定義子語言的3個命令關鍵字149
4.2.2定義數據庫149
4.2.3定義表152
4.2.4定義視圖155
4.2.5定義索引156
4.3數據操縱子語言及其操作158
4.3.1數據操縱子語言的4個命令關鍵字158
4.3.2數據插入159
4.3.3數據修改159
4.3.4數據刪除161
4.3.5數據查詢162
4.4Sybase和SQL Server中的TSQL169
4.4.1TSQL語言簡介169
4.4.2TSQL的數據類型170
4.4.3TSQL編程172
4.4.4TSQL提供的函數178
4.4.5TSQL遊標183
4.4.6TSQL存儲過程185
4.5在C/C++中使用SQL189
4.5.1嵌入式SQL語句的基本形式189
4.5.2嵌入式SQL與宿主語言的通信191
4.5.3SQL通信區192
4.5.4主變量的定義與使用192
4.5.5嵌入SQL中的遊標定義與使用196
4.5.6C語言中的嵌入式SQL實例197
4.6在PowerBuilder中使用SQL201
4.6.1靜態SQL語句201
4.6.2動態SQL語句202
4.6.3存儲過程調用204
本章小結205
習題4206第5章數據庫的保護207
5.1數據庫保護概況207
5.1.1數據庫破壞的類型207
5.1.2DBMS對數據庫的保護措施208
5.2數據庫安全性208
5.2.1數據庫安全性概況208
5.2.2自主式訪問控制的授權與撤權211
5.2.3Sybase及SQL Server的安全體系及其設置212
5.2.4數據庫安全性的其他相關內容216
5.3數據庫完整性217
5.3.1數據庫完整性概況217
5.3.2完整性約束的類型218
5.3.3完整性約束的定義219
5.3.4完整性約束的驗證221
5.3.5SQL92和數據庫產品對完整性的推薦和支持221
5.4故障恢復技術222
5.4.1事務管理概況222
5.4.2故障恢復導論226
5.4.3日誌結構230
5.4.4DBMS圍繞更新事務的工作231
5.4.5事務內消息的處理235
5.4.6故障類型及恢復對策236
5.4.7SQL Server中的事務及故障恢復238
5.5並發控制240
5.5.1並發控制導論241
5.5.2並發執行可能引起的問題242
5.5.3並發控制的正確性準則245
5.5.4基於鎖的並發控制協議247
5.5.5多粒度加鎖協議252
5.5.6死鎖及其預防、檢測與處理257
5.5.7SQL Server中的並發控制技術260
本章小結262
習題5263第6章關系數據庫設計理論265
6.1關系模式中可能存在的異常265
6.1.1存在異常的關系模式示例265
6.1.2可能存在的異常267
6.2關系模式中存在異常的原因268
6.3函數依賴268
6.3.1函數依賴定義268
6.3.2函數依賴分類及其定義270
6.3.3其他相關定義270
6.3.4函數依賴示例271
6.3.5Armstrong公理系統272
6.4關系模式的規範形式273
6.4.1範式273
6.4.2規範化273
6.4.3以函數依賴為基礎的範式274
6.4.4多值依賴與第四範式280
6.4.5聯結依賴與第五範式282
6.5關系模式的規範化286
6.5.1規範化步驟286
6.5.2關系模式的分解及其指標287
本章小結288
習題6288第7章數據庫應用設計290
7.1數據庫應用設計的步驟290
7.2用戶需求描述與分析292
7.2.1需求分析的內容292
7.2.2用戶需求調研的方法293
7.2.3用戶需求描述與分析方法294
7.2.4用戶需求描述與分析實例294
7.3概念設計297
7.3.1概念設計的方法298
7.3.2視圖設計298
7.3.3視圖集成298
7.4邏輯設計299
7.4.1ER圖向關系模型的轉換299
7.4.2數據模式的優化302
7.4.3設計外模式304
7.5物理設計304
7.5.1索引的有關概念305
7.5.2聚簇索引與非聚簇索引305
7.5.3建立索引306
7.6數據庫實施307
7.6.1數據載入307
7.6.2編寫、調試應用程序307
7.6.3數據庫試運行308
7.7數據庫使用與維護308
本章小結309
習題7310第8章數據庫應用系統設計實例311
8.1系統總體需求簡介311
8.1.1用戶總體業務結構311
8.1.2總體安全要求311
8.2系統總體設計312
8.2.1系統設計考慮的主要內容312
8.2.2系統的體系結構312
8.2.3系統軟件開發平臺312
8.2.4系統的總體功能模塊314
8.3系統需求描述315
8.3.1系統全局數據流圖315
8.3.2系統局部數據流圖315
8.3.3系統數據字典317
8.4系統概念模型描述319
8.4.1構成系統的實體型319
8.4.2系統局部ER圖319
8.4.3合成全局ER圖321
8.4.4優化全局ER圖322
8.5系統的邏輯設計323
8.5.1轉化為關系數據模型324
8.5.2關系數據模型的優化與調整324
8.5.3數據庫表的結構325
8.6數據庫的物理設計328
8.6.1存儲介質類型的選擇329
8.6.2定義數據庫329
8.6.3創建表及視圖330
8.6.4創建索引332
8.6.5數據庫服務器性能優化333
本章小結334
習題8334第9章數據庫應用進展及新技術335
9.1基於文件系統的數據管理335
9.2第一代數據庫系統336
9.3第二代數據庫系統337
9.4OLTP及OLAP338
9.5數據倉庫339
9.5.1數據倉庫概述339
9.5.2數據倉庫的多維數據模型340
9.5.3數據倉庫的相關概念341
9.5.4數據倉庫的系統結構343
9.5.5數據倉庫系統開發與工作過程344
9.6數據挖掘345
9.6.1數據挖掘概述345
9.6.2數據挖掘的主要技術347
9.6.3數據挖掘在各行業的應用348
9.7並行與分布式數據庫系統350
9.8Web數據庫351
9.9面向對象的數據庫系統352
9.10內存數據庫352
9.11雲數據庫353
9.12NewSQL數據庫354
9.13NoSQL數據庫355
9.14其他數據庫系統356
本章小結359
習題9359第10章數據庫上機實驗及指導360
10.1SQL數據庫語言操作實驗360
10.1.1SQL定義子語言實驗360
10.1.2SQL操縱子語言實驗363
10.1.3TSQL編程實驗369
10.2數據庫完整性實驗371
10.2.1表本身的完整性371
10.2.2表間參照完整性373
10.3SQL Server安全設置實驗375
10.3.1創建登錄賬號375
10.3.2數據庫用戶設置375
10.3.3SQL Server角色管理376
10.3.4SQL Server語句及對象授權實驗377
10.4數據庫系統管理實驗377
10.4.1故障恢復實驗377
10.4.2數據庫服務器及性能設置實驗379
本章小結381
習題10381附錄SQL Server的Pubs樣例庫表結構382參考文獻385



