本書以目前廣泛使用的SQL Server 2014數據庫管理系統作為數據庫系統基本操作和應用平臺,系統、全面地介紹了數據庫技術基礎、數據庫系統設計、現代數據庫系統開發應用等基本理論和實踐方法,包括TransactSQL編程、網絡數據庫系統安全、面向對象數據庫技術、并行數據庫系統和分布式數據庫系統、數據倉庫、數據挖掘等內容,并提供了可以調用的數據庫系統案例。 本書重點突出、可讀性強,是系統學習和掌握現代數據庫技術理論與實踐的教材和參考書,可供高等學校相關專業選用,也可供相關技術人員參考。
作者根據多年講授這門課程的教學經驗,合理組織教材內容,通過完整的實例講解SQL Server 數據庫的基本原理與應用技術,可使讀者掌握數據庫應用系統的實現方法與操作步驟。
前言 Foreword網絡信息大數據時代,數據管理、數據分析、數據挖掘和數據支持決策等,使數據庫技術成為現代信息技術的重要基礎和組成部分。近年來隨著計算機技術的廣泛應用與發展,無論是數據庫技術的基礎理論、工程應用、系統開發,還是數據庫的商品軟件,都有著長足的、迅速的進步與發展。隨著計算機網絡技術的日益發展與廣泛應用,支持網絡技術的數據庫系統不斷推出新的成果,推動著數據庫技術的發展和應用。新的數據庫系統在繼承傳統數據庫技術的同時,不僅在數據庫系統性能和功能的完善方面,在數據庫系統管理的操作性、安全性、維護性方面,在系統的開發技術方面,都較以前的數據庫系統有了很大的發展與進步,而且在現代信息技術系統開發和新技術應用等方面,也更加符合當今社會對信息技術發展的需要。盡管數據庫系統軟件不斷推陳出新,但數據庫技術的核心萬變不離其宗,仍然保持著傳統的數據庫基礎理論和設計方法。SQL Server 是Microsoft公司在與Sybase公司合作的基礎上推出的關系型數據庫系統,一經推出便迅速成為Windows網絡方案的首選數據庫系統。不斷更新的SQL Server系統,不僅保留和增強了現代數據庫管理系統所具備的各種功能,而且在支持各種網絡技術平臺應用方面,也提供了功能完善的網絡數據管理與數據分析解決方案,為用戶開發應用數據倉庫和實現電子商務提供了便利的環境。本書選用了網絡環境中廣泛使用的SQL Server 2014作為數據庫系統基本操作應用平臺,系統地介紹網絡數據庫技術的基礎理論、實現方法、設計過程與開發應用等,在內容編排上由理論到實踐、從技術基礎到綜合開發與新技術應用,使學習過程循序漸進、由淺入深、由點到面、由具體實踐到系統提高。本書主要內容包括傳統數據模型的建立、數據庫系統結構組成、關系模型的數據結構、數據運算、數據庫設計理論與設計方法、數據庫系統分析與設計、結構化查詢語言SQL等。在數據庫系統開發和應用方面,介紹SQL Server關系數據庫系統、管理工具、語言與編程接口,以及SQL Server數據管理、數據庫操作等內容。TransactSQL是標準SQL語言的增強版本,通過TransactSQL可以直接和數據庫引擎進行交互,本書系統地介紹TransactSQL程序設計應用與開發的過程與方法。數據庫系統安全是數據庫技術的重要組成部分;面向對象技術已廣泛應用于現代數據庫技術;并行數據庫系統和分布式數據庫系統是現代數據庫的重要內容;SQL Server作為網絡編程的后臺數據庫,可以通過ODBC和ADO等數據庫訪問技術,實現網頁與數據庫訪問之間的連接。這些內容書中均有完整的介紹。本書符合現代信息技術的教育理念,旨在引導讀者提高綜合實踐與創新能力。通過本書,讀者不僅可以系統地掌握數據庫技術的基礎理論、設計方法,還可以系統地掌握現代數據庫系統的開發技術。本書作為教材可以使讀者學會用系統的理論指導實踐,為應用和開發服務;而理論基礎指導下的應用與開發,不僅能有效地為企業的發展和進步鋪路筑橋,也能提高數據庫系統應用與技術開發的水平。本書由張莉教授主持編寫,參加本書編寫的教學團隊,長期堅持在數據庫技術原理與應用方面從事科研開發與教學實踐,積累了豐富的經驗,尤其是數位具有扎實理論基礎與豐富研發經驗的碩士、博士研究生參與書中各案例的設計與調試,為本書增加了基礎性、新穎性、實用性和可讀性。本書在編寫過程中參考了大量的文獻資料,各項工作的完成是集體協作的結果。本書已經過多年教學實踐的檢驗,其內容編排符合現代教育理念,受到廣大讀者長久以來的支持和鼓勵。參加本書編寫的人員有陳雷、肖寧、楊麗麗、陳英義、李振波、馬欽等教師,在編寫本書的過程中得到了許多高校專家學者的具體指導和幫助,在此深表感謝! 數據庫技術隨網絡大數據技術發展迅速、應用廣泛,本書在修訂和編寫過程中仍難免有遺漏之處,懇請學界同仁和廣大讀者批評指正,提出寶貴的意見和建議。
目錄Contents第1章數據庫系統概述11.1概述11.1.1數據庫技術與信息技術11.1.2數據庫技術的應用及特點21.1.3SQL Server數據庫系統與網絡分布式操作21.1.4網絡數據庫系統編程31.2數據庫技術的發展41.2.1人工管理階段41.2.2文件系統階段51.2.3數據庫系統階段61.2.4高級數據庫系統階段的應用與發展81.2.5數據庫系統發展階段的劃分101.3信息描述與數據模型111.3.1數據模型及其三要素121.3.2概念模型及其表示方法131.3.3實體聯系模型161.4三種常見的數據模型171.4.1層次模型171.4.2網狀模型181.4.3關系模型191.5數據庫系統201.5.1數據庫系統的三級模式結構201.5.2數據庫系統的組成221.5.3數據庫管理系統的功能221.5.4數據庫系統的視圖231.5.5數據庫系統的訪問25思考練習題26第2章關系數據庫系統模型272.1關系模型的基本概念272.1.1關系模型272.1.2數據結構302.1.3關系操作302.1.4關系的完整性312.2關系運算332.2.1傳統的集合運算332.2.2專門的關系運算352.2.3關系數據檢索實例402.3關系演算422.3.1元組關系演算語言422.3.2域關系演算語言QBE48思考練習題51◆SQL Server數據庫原理與應用教程(第4版)目錄第3章關系數據庫的設計理論533.1實體類型的屬性關系533.2數據的函數依賴543.2.1函數依賴543.2.2函數依賴的邏輯蘊涵553.2.3關鍵字563.3關系數據庫模式的規范化理論583.3.1關系模式規范化設計583.3.2第一范式(1NF)593.3.3第二范式(2NF)603.3.4第三范式(3NF)613.3.5BCNF范式623.3.6多值函數依賴關系的第四范式(4NF)633.3.7第五范式(5NF)653.4關系模式的分解算法663.4.1關系模式的分解663.4.2無損連接673.4.3無損連接的檢驗683.4.4保持函數依賴的分解69思考練習題70第4章數據庫設計方法724.1數據庫系統的設計過程724.2需求分析744.2.1收集用戶需求744.2.2分析用戶需求754.2.3撰寫需求說明書794.3概念設計794.3.1概念模型的特點及設計方法794.3.2局部概念模型的設計814.3.3合成全局概念模型824.4邏輯結構的設計854.4.1概念模型向關系模型的轉換864.4.2應用規范化理論優化邏輯模型894.4.3設計用戶子模式894.5物理設計904.5.1影響物理設計的因素904.5.2確定關系模式的存取方法914.5.3確定數據庫的存儲結構924.6數據庫的實施、運行和維護934.6.1數據庫的實施934.6.2數據庫的試運行944.6.3數據庫的運行和維護94思考練習題95第5章結構化查詢語言SQL975.1SQL結構化查詢語言975.1.1SQL語言的特點975.1.2SQL數據庫的三級模式結構985.2SQL的數據描述與操作995.2.1定義基表995.2.2定義索引1015.3SQL語言的數據檢索功能1025.4SQL語言的數據更新功能1085.4.1修改語句1085.4.2插入語句1085.4.3刪除語句1095.4.4SQL語言對視圖的操縱1095.5SQL的數據控制功能1135.5.1SQL的數據控制方法1145.5.2SQL Server數據操作115思考練習題116第6章SQL Server數據庫系統1186.1SQL Server系統概述1186.2SQL Server數據庫結構1206.2.1數據庫邏輯體系結構1216.2.2數據庫物理體系結構1216.2.3客戶機和服務器的交互方式1276.2.4SQL Server分布式查詢 1276.3SQL Server客戶機/服務器體系結構1286.3.1SQL Server客戶端組件1296.3.2SQL Server服務器端組件1306.3.3SQL Server對XML的支持1326.3.4SQL Server傳輸組件1336.4SQL Server系統管理與開發1346.4.1分布式管理1346.4.2管理工具135 6.4.3語言與編程接口137思考練習題138第7章SQL Server系統應用與管理1397.1SQL Server 2014的數據庫類型1397.2SQL Server數據管理1407.2.1SQL Server的數據定義語言1417.2.2SQL Server的數據操作語言1447.3SQL Server 2014數據庫操作1467.3.1創建用戶數據庫1467.3.2修改用戶數據庫1517.3.3刪除用戶數據庫1527.3.4數據庫表應用操作1537.3.5數據庫表的創建1547.3.6數據庫表的修改1577.3.7數據庫表的刪除1597.4其他數據庫應用操作1607.4.1創建數據庫視圖1607.4.2用工具和向導創建數據庫圖表1617.4.3創建存儲過程和觸發器1617.4.4數據庫的安全管理163思考練習題164第8章TransactSQL語言結構1668.1TSQL語言概述1668.1.1TSQL語言特點1668.1.2TSQL附加語言1678.1.3SQL Server查詢分析器1738.2TransactSQL語言基礎1738.3TransactSQL語言運算符1798.3.1算術運算符1798.3.2賦值運算符1818.3.3位運算符1828.3.4比較運算符1838.3.5邏輯運算符1838.3.6一元運算符1848.3.7運算符的優先順序1848.4數據表的創建與維護1848.4.1創建數據表1848.4.2刪除數據表1888.4.3向數據表中插入記錄1888.4.4從數據表中刪除記錄1908.4.5修改和更新記錄1918.5對數據庫中數據表的操作1928.5.1按條件查詢數據1928.5.2使用通配符和子查詢1948.5.3數據連接1968.5.4數據排序1978.5.5數據統計1988.6數據庫索引1998.6.1索引的概念2008.6.2索引類型2008.6.3索引的創建與刪除2018.6.4索引的設計2028.7數據庫視圖2048.7.1視圖的創建與刪除2048.7.2視圖與數據修改 2068.7.3查詢和視圖的比較2068.8函數2078.8.1聚合函數2078.8.2數學函數2128.8.3字符串函數2138.8.4系統函數2188.8.5日期和時間函數2228.8.6文本和圖像函數 2258.9SQL Server數據庫復制2268.9.1數據庫復制的技術體系2278.9.2數據庫復制原理2298.9.3復制的拓撲結構2308.9.4事務復制的實現2328.9.5SQL Server數據備份與恢復235思考練習題238第9章TransactSQL程序設計2409.1TransactSQL的變量定義和流程控制語句2409.1.1變量的定義和使用2409.1.2流程控制語句2439.2存儲過程2529.2.1存儲過程概述2529.2.2創建存儲過程2549.2.3調用存儲過程2569.2.4修改存儲過程2589.2.5刪除存儲過程2609.2.6存儲過程的優化2609.3用戶自定義的數據類型2619.4觸發器的應用2639.4.1SQL Server觸發器的用途2639.4.2創建觸發器2649.4.3使用觸發器2669.4.4查看觸發器的信息2709.4.5修改和刪除觸發器2729.5事務和鎖2749.5.1事務的概念2749.5.2事務編程2769.5.3鎖2799.5.4使事務更有效地工作281思考練習題281第10章數據庫安全與維護28310.1SQL Server數據庫的安全性管理概述28310.2SQL Server數據庫安全性管理與控制28510.3SQL Server的安全體系結構和安全認證28910.4SQL Server的權限管理290思考練習題294第11章現代數據庫技術29511.1面向對象的數據庫系統29511.1.1面向對象的數據模型29611.1.2面向對象數據庫語言29711.1.3面向對象數據庫的模式演進29811.1.4面向對象程序設計29911.2并行數據庫系統和分布式數據庫系統30011.2.1并行數據庫系統30011.2.2分布式數據庫系統30111.3數據倉庫30211.3.1從數據庫到數據倉庫30311.3.2數據倉庫的定義30411.3.3數據倉庫系統的結構30511.3.4數據倉庫的數據組織30611.3.5數據倉庫的數據模型30711.3.6SQL Server數據倉庫組件30911.3.7SQL Server數據倉庫的建設流程31111.4數據挖掘31311.4.1數據挖掘概述31311.4.2數據挖掘模型31411.4.3使用決策樹模型從關系數據庫中挖掘數據31611.4.4應用聚類分析模型挖掘數據317思考練習題318第12章網絡數據庫編程31912.1網絡數據庫的連接31912.1.1ODBC的管理31912.1.2通過ODBC連接數據庫32312.1.3ADO簡介32812.2ASP編程33712.2.1ASP概述33712.2.2ASP的內置對象34012.2.3ASP的內置組件35512.2.4ASP實現對數據庫的訪問36012.3JSP編程36312.3.1JSP概述36312.3.2JSP編程概要36412.3.3JSP數據庫訪問技術370思考練習題376附錄A樣本數據庫377附錄BSQL Server常用系統存儲過程380附錄C函數一覽表383附錄D配置ODBC所需的函數390附錄E各章思考練習題參考答案391E.1第1章思考練習題參考答案391E.2第2章思考練習題參考答案392E.3第3章思考練習題參考答案394E.4第4章思考練習題參考答案395E.5第5章思考練習題參考答案396E.6第6章思考練習題參考答案397E.7第7章思考練習題參考答案399E.8第8章思考練習題參考答案400E.9第9章思考練習題參考答案401E.10第10章思考練習題參考答案402E.11第11章思考練習題參考答案403E.12第12章思考練習題參考答案404參考文獻407