關于我們
書單推薦
新書推薦
|
數(shù)據(jù)庫原理與應用(第2版)
本教材第2版是在充分聽取教材使用學校師生的修改建議后,結合數(shù)據(jù)庫原理與應用技術的**發(fā)展,重新修訂了相當篇幅的內(nèi)容而重新編寫的。全書共分12章,涉及關系型數(shù)據(jù)庫理論及編程基礎、數(shù)據(jù)庫設計與應用、實例、實驗等幾部分。全書理論性強、體系完整、內(nèi)容新穎、條理清晰、組織合理、強調(diào)實踐。作者團隊以認真嚴謹?shù)目茖W態(tài)度實現(xiàn)了書中的方法,詳盡描述了各種方法的適用環(huán)境及取得的效果。
以工程案例驅動教學的講練結合的編寫原則,于SQLServer2012介紹了關系型數(shù)據(jù)庫應用技術,針對Redis、ElasticSearch、MongoDB等簡介了針對大數(shù)據(jù)的數(shù)據(jù)管理技術。本書還配有MOOC課程。
第2版前言
本教材第1版從出版發(fā)行到現(xiàn)在,雖然過去了短短的5年,但在這期間,IT業(yè)已經(jīng)又有了很大的發(fā)展。伴隨著數(shù)據(jù)庫技術在國民經(jīng)濟以及互聯(lián)網(wǎng)+、大數(shù)據(jù)、物聯(lián)網(wǎng)、移動計算等各個領域的廣泛應用,數(shù)據(jù)庫原理與應用技術正日益受到各行各業(yè)人員的普遍關注,數(shù)據(jù)庫原理與應用這門課程已成為高等院校計算機科學與技術、軟件工程、網(wǎng)絡工程、信息工程、管理工程、信息管理與信息系統(tǒng)等相關專業(yè)的核心專業(yè)課程,越來越多的專業(yè)及相關技術人員提出了對學習和掌握數(shù)據(jù)庫知識的需求。 眾所周知,數(shù)據(jù)庫及其相關技術是計算機科學與技術領域中迅速發(fā)展壯大的一個分支。在數(shù)據(jù)庫的發(fā)展歷程中,不但造就了包括C. W. Bachman、E. F. Code、James Gray、Michael Stonebraker等在內(nèi)的多位圖靈獎得主,也使其發(fā)展成為了一門具有很大工程實踐價值的學科。在數(shù)據(jù)建模方面,它提出了層次模型、網(wǎng)狀模型、關系模型、語義數(shù)據(jù)模型、面向對象模型等多種數(shù)據(jù)建模方法;在應用領域方面,它在互聯(lián)網(wǎng)+、OLTP、OLAP、決策支持分析、網(wǎng)絡信息檢索、人工智能、移動計算等領域都能發(fā)揮重要的作用。其中,傳統(tǒng)的關系型數(shù)據(jù)庫系統(tǒng)在管理結構化信息方面一直具有很大優(yōu)勢,因此本書重點對關系數(shù)據(jù)庫理論、應用等進行詳細介紹,并針對SQL Server 2012給出常用使用方法。但同時也必須看到,在互聯(lián)網(wǎng)+和大數(shù)據(jù)時代,半結構化信息和非結構化信息所占的比重正在逐步增大,并且已經(jīng)逐漸成為重要的信息組織方式。雖然傳統(tǒng)的關系型數(shù)據(jù)庫在一定程度上滿足了人們對管理結構化數(shù)據(jù)的要求,但隨著信息管理對象從相對封閉、穩(wěn)定一致、由獨立關系型數(shù)據(jù)庫集中管理的內(nèi)容擴展到開放、海量、冗余、更新快、分布廣泛的Web大數(shù)據(jù)內(nèi)容,人們對傳統(tǒng)的數(shù)據(jù)庫管理技術也就提出了新的、更高的要求。其實,結構化數(shù)據(jù)不過是冰山一角,規(guī)模更大的是非結構化和半結構化數(shù)據(jù),其規(guī)模一般是結構化數(shù)據(jù)的十倍乃至百倍,F(xiàn)今,互聯(lián)網(wǎng)已成為人們獲取信息的首選途徑,也成為大數(shù)據(jù)的重要來源。隨著以Twitter、Facebook、微博、微信等為代表的新型社交媒體的出現(xiàn),以及以淘寶、京東等為代表的電子商務的飛速發(fā)展,文本等類型的異構大數(shù)據(jù)在飛速增長。 在這種應用背景下,我們修訂了本教材。本教材第2版是在充分聽取教材使用學校師生的修改建議后,結合數(shù)據(jù)庫原理與應用技術的發(fā)展,重新修訂了相當篇幅的內(nèi)容而重新編寫的。本教材第2版重寫了第1版中幾乎所有章節(jié)的內(nèi)容,力爭能反映數(shù)據(jù)庫應用領域中的最新成果和發(fā)展趨勢,去掉了第1版中的第6章“關系查詢處理和查詢優(yōu)化”以及部分無關內(nèi)容,同時理論聯(lián)系實際,更貼近實用,選用SQL Server 2012作為關系型數(shù)據(jù)庫的應用示例。全書共分12章。其中,第1章對數(shù)據(jù)管理相關技術的發(fā)展歷史、原理、應用等進行了概述,并針對傳統(tǒng)的關系型數(shù)據(jù)庫在大數(shù)據(jù)時代面臨的挑戰(zhàn)進行了綜述。第2章到第6章是關系型數(shù)據(jù)庫理論及編程基礎,內(nèi)容涉及關系代數(shù)及其理論、SQL的數(shù)據(jù)定義和完整性約束、SQL的數(shù)據(jù)查詢、關系型數(shù)據(jù)庫編程、關系型數(shù)據(jù)庫理論等核心內(nèi)容。第7章至第11章是數(shù)據(jù)庫設計與應用部分,內(nèi)容涵蓋數(shù)據(jù)庫設計的方法、數(shù)據(jù)安全性、數(shù)據(jù)恢復與并發(fā)控制、基于關系型數(shù)據(jù)庫的Web應用、大數(shù)據(jù)應用背景下的數(shù)據(jù)管理技術簡介等。第12章是關系型數(shù)據(jù)庫應用系統(tǒng)案例分析,通過對一個實際的教材征訂管理系統(tǒng)的設計與實現(xiàn)過程的剖析,從實踐的層面上對關系型數(shù)據(jù)庫管理系統(tǒng)進行了分析。最后的附錄部分,給出了幾個相關的實驗設計,方便在教學時使用。全書體系結構參見下圖。 在本教材第2版的編纂過程中,我們一直秉承著以“理論+應用”為中心、以工程實踐為手段、以工程案例驅動教學的講練結合的編寫原則,以期能幫助讀者更好地學習和領會數(shù)據(jù)庫原理和應用技術,特別是關系型數(shù)據(jù)庫管理系統(tǒng)在實踐中的應用;并基于SQL Server 2012介紹了關系型數(shù)據(jù)庫應用技術,針對Redis、ElasticSearch、MongoDB等簡介了針對大數(shù)據(jù)的數(shù)據(jù)管理技術。本教材第2版繼承了第1版中數(shù)據(jù)庫系統(tǒng)的基本概念、基本原理和基本設計方法,對傳統(tǒng)數(shù)據(jù)庫理論和應用的介紹進行了精簡和提煉,使其更為通俗易懂,更為簡明與實用。 本教材理論聯(lián)系實際、涉及面廣、體系完整、內(nèi)容新穎、條理清晰、組織合理、圖例豐富、說明詳細,理論章節(jié)有適量的習題,技術章節(jié)給出了較多的實例,便于讀者練習與鞏固所學知識。本教材適合用作計算機科學與技術、軟件工程、網(wǎng)絡工程、通信工程、電子科學與技術等相關學科本、專科教學的教材,同時也可供參加自學考試人員、數(shù)據(jù)庫應用系統(tǒng)開發(fā)設計人員、工程技術人員及其他相關人員參閱。 為更好地服務于課程建設,本書配有電子課件等教學資源,需要者可從華信教育資源網(wǎng)http://www.hxedu.com.cn免費注冊下載。本書配有MOOC課程,選用本書作為教材的老師和學生可登錄華信MOOC平臺查看,平臺網(wǎng)址為:http://mooc.hxedu.com.cn。 本教材由高凱、張雪梅、倪素虹、張永強合作編寫。高凱組稿并提出寫作大綱,同時撰寫第1章、第10章、第11章;倪素虹撰寫第2章、第3章、第4章、第6章;張雪梅撰寫第5章、第7章、第8章、第9章;張永強撰寫第12章;張雪梅和倪素虹共同整理了實驗部分;最后由高凱完成書稿的最后審定和統(tǒng)稿工作。另外,在書稿的編纂過程中,國內(nèi)外眾多的數(shù)據(jù)庫應用技術的研究和相關網(wǎng)站也為本教材提供了參考,本教材的順利完成也得益于參閱了大量的相關工作及研究成果,在此謹向這些文獻的作者和科研工作人員,特別是那些由于篇幅所限未能在參考文獻中提及的作者,以及為本教材提供幫助的老師、同人和課題組成員致以誠摯的謝意和崇高的敬意。在本教材寫作過程中,也得到了電子工業(yè)出版社策劃編輯袁璽等的大力支持和幫助,在此一并表示衷心感謝。 由于我們的學識、水平有限,書中不妥之處在所難免,懇請廣大讀者批評指正。 編 者 2016年1月
第1章 緒論 1
1.1 數(shù)據(jù)管理技術的產(chǎn)生和發(fā)展 1 1.1.1 人工管理數(shù)據(jù)階段 1 1.1.2 文件管理數(shù)據(jù)階段 2 1.1.3 數(shù)據(jù)庫管理階段 3 1.1.4 大數(shù)據(jù)階段 5 1.2 數(shù)據(jù)庫的基本概念 6 1.2.1 數(shù)據(jù)(信息) 6 1.2.2 數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng) 6 1.2.3 數(shù)據(jù)庫系統(tǒng) 7 1.3 數(shù)據(jù)模型 7 1.3.1 數(shù)據(jù)模型的組成要素 8 1.3.2 數(shù)據(jù)建模 8 1.4 數(shù)據(jù)庫系統(tǒng)結構 13 1.4.1 三級模式 13 1.4.2 二級映像 14 1.4.3 采用三級模型二級映像結構 的優(yōu)點 14 1.5 數(shù)據(jù)庫管理系統(tǒng)的功能、組成、 工作方式 15 1.5.1 功能 15 1.5.2 組成 15 1.5.3 工作方式 16 1.6 數(shù)據(jù)庫產(chǎn)品及傳統(tǒng)的關系型數(shù)據(jù)庫 系統(tǒng)面臨的挑戰(zhàn) 17 1.6.1 數(shù)據(jù)庫產(chǎn)品 17 1.6.2 傳統(tǒng)的關系型數(shù)據(jù)庫系統(tǒng)面臨 的挑戰(zhàn) 19 1.7 小結 20 習題1 20 第2章 關系型數(shù)據(jù)庫基礎 21 2.1 關系模型的基本概念 21 2.1.1 域、笛卡兒積、關系、關系 模式 21 2.1.2 碼 24 2.2 關系模型的完整性約束 25 2.2.1 實體完整性規(guī)則 26 2.2.2 參照完整性規(guī)則 26 2.2.3 用戶自定義完整性規(guī)則 27 2.3 關系操作 27 2.3.1 關系數(shù)據(jù)語言 27 2.3.2 關系代數(shù) 27 2.4 小結 36 習題2 36 第3章 SQL的數(shù)據(jù)定義和完整性約束 38 3.1 SQL概述 38 3.1.1 SQL的發(fā)展歷史 38 3.1.2 SQL的特點 39 3.1.3 SQL數(shù)據(jù)庫的體系結構 40 3.2 SQL Server介紹 40 3.2.1 SQL Server的發(fā)展歷史 41 3.2.2 Transact-SQL 42 3.3 SQL的數(shù)據(jù)定義 46 3.3.1 數(shù)據(jù)庫的定義與刪除 46 3.3.2 基本表的定義、修改和刪除 47 3.3.3 索引的建立和刪除 51 3.4 SQL的數(shù)據(jù)操縱和完整性約束 的作用 52 3.4.1 插入數(shù)據(jù)和完整性約束的作用 52 3.4.2 刪除數(shù)據(jù)和完整性約束的作用 53 3.4.3 修改數(shù)據(jù)和完整性約束的作用 54 3.5 小結 55 習題3 55 第4章 SQL的數(shù)據(jù)查詢 56 4.1 SQL的數(shù)據(jù)查詢命令 56 4.2 簡單查詢 57 4.2.1 簡單無條件查詢 57 4.2.2 簡單條件查詢 57 4.2.3 使用BETWEEN… AND… 的查詢 58 4.2.4 字符串匹配查詢 59 4.2.5 空值查詢 60 4.2.6 使用IN的查詢 60 4.2.7 DISTINCT短語的作用 61 4.2.8 存儲查詢結果 61 4.2.9 查詢結果的排序 61 4.2.10 TOP短語的作用 62 4.2.11 集合運算 62 4.3 連接查詢 64 4.3.1 一般連接 64 4.3.2 別名和自連接查詢 66 4.3.3 外連接查詢 66 4.4 分組及匯總查詢 67 4.4.1 一般匯總查詢 67 4.4.2 使用GROUP BY的分組匯總 查詢 67 4.4.3 帶明細的分組匯總查詢 68 4.5 嵌套查詢 69 4.5.1 內(nèi)外層不相關的嵌套查詢 69 4.5.2 內(nèi)外層互相關的嵌套查詢 71 4.5.3 使用EXISTS的嵌套查詢 72 4.6 需要查詢支持的數(shù)據(jù)操作 74 4.6.1 插入操作 74 4.6.2 修改操作 75 4.6.3 刪除操作 75 4.7 視圖及其操作 75 4.7.1 視圖的建立和刪除 76 4.7.2 視圖的使用 77 4.7.3 視圖的作用 79 4.8 小結 79 習題4 80 第5章 關系型數(shù)據(jù)庫編程基礎 81 5.1 應用程序訪問數(shù)據(jù)庫 81 5.1.1 嵌入式SQL 81 5.1.2 DAO和OLE DB 85 5.1.3 ODBC 86 5.1.4 JDBC 87 5.1.5 ADO和ADO.NET 89 5.2 存儲過程 91 5.2.1 基本概念 91 5.2.2 Transact-SQL基本語法 92 5.2.3 創(chuàng)建和執(zhí)行存儲過程 94 5.2.4 存儲過程的修改和刪除 97 5.2.5 獲得有關存儲過程的信息 98 5.3 觸發(fā)器 98 5.3.1 基本概念 98 5.3.2 創(chuàng)建觸發(fā)器 99 5.3.3 禁止和啟用觸發(fā)器 101 5.3.4 修改和刪除觸發(fā)器 101 5.4 小結 102 習題5 102 第6章 關系數(shù)據(jù)及其規(guī)范化理論 103 6.1 問題的提出 103 6.1.1 關系模式中可能存在的問題 103 6.1.2 解決的方法 104 6.2 函數(shù)依賴 104 6.2.1 函數(shù)依賴的基本概念 105 6.2.2 函數(shù)依賴的推理規(guī)則 106 6.2.3 碼的函數(shù)依賴表示 109 6.2.4 最小函數(shù)依賴集 109 6.3 規(guī)范化 111 6.3.1 范式 111 6.3.2 模式分解 115 6.3.3 關系模式規(guī)范化步驟 120 6.4 小結 121 習題6 121 第7章 數(shù)據(jù)庫設計 122 7.1 數(shù)據(jù)庫設計概述 122 7.1.1 數(shù)據(jù)庫設計的任務和特點 122 7.1.2 數(shù)據(jù)庫設計方法 123 7.1.3 數(shù)據(jù)庫設計步驟 123 7.1.4 數(shù)據(jù)庫設計過程中的各級 模式 125 7.2 需求分析 125 7.2.1 需求分析的任務 125 7.2.2 需求分析的方法和工具 126 7.2.3 需求分析的結果 127 7.3 概念結構設計 127 7.3.1 概念模型及表示方法 127 7.3.2 概念結構設計的方法 130 7.3.3 概念設計的步驟 131 7.4 邏輯結構設計 136 7.4.1 從E-R模型到關系模式 的轉換 136 7.4.2 邏輯結構的優(yōu)化 138 7.4.3 設計用戶子模式 139 7.5 數(shù)據(jù)庫的物理設計 140 7.5.1 數(shù)據(jù)庫物理設計的內(nèi)容 和方法 140 7.5.2 確定數(shù)據(jù)庫的物理結構 140 7.5.3 評價物理結構 141 7.6 數(shù)據(jù)庫的實施和維護 142 7.6.1 建立數(shù)據(jù)庫和應用程序 的調(diào)試 142 7.6.2 數(shù)據(jù)庫的試運行和測試 142 7.6.3 數(shù)據(jù)庫的運行和維護 143 7.7 數(shù)據(jù)庫設計實例 144 7.7.1 需求分析 144 7.7.2 概念結構設計 147 7.7.3 邏輯結構設計 150 7.7.4 數(shù)據(jù)庫的物理設計和實施 152 7.8 小結 154 習題7 154 第8章 數(shù)據(jù)庫的安全性 155 8.1 數(shù)據(jù)庫安全性概述 155 8.2 用戶標識與鑒別 156 8.3 存取控制 157 8.3.1 自主存取控制(DAC)方法 157 8.3.2 強制存取控制(MAC)方法 161 8.3.3 基于角色的存取控制 (RBAC)模型 162 8.4 其他安全控制方法 164 8.4.1 視圖機制 164 8.4.2 審計 165 8.4.3 數(shù)據(jù)加密 166 8.4.4 統(tǒng)計數(shù)據(jù)庫安全性 166 8.5 常見數(shù)據(jù)庫管理系統(tǒng)的安全控制 167 8.5.1 SQL Server的安全控制 167 8.5.2 Oracle的安全控制 170 8.5 小結 173 習題8 173 第9章 數(shù)據(jù)庫恢復和并發(fā)控制 175 9.1 事務 175 9.1.1 事務的基本概念 175 9.1.2 事務的性質 175 9.2 數(shù)據(jù)庫恢復技術 176 9.2.1 故障的種類 176 9.2.2 恢復的實現(xiàn)技術 177 9.2.3 故障恢復策略 179 9.3 常見數(shù)據(jù)庫的恢復技術 182 9.3.1 SQL Server數(shù)據(jù)庫的恢復 技術 182 9.3.2 Oracle數(shù)據(jù)庫的恢復技術 183 9.4 并發(fā)控制 185 9.4.1 并發(fā)操作帶來的問題 185 9.4.2 封鎖 186 9.4.3 并發(fā)調(diào)度的可串行性 189 9.4.4 兩段鎖協(xié)議 190 9.4.5 封鎖的粒度 191 9.5 常見數(shù)據(jù)庫的并發(fā)控制技術 193 9.5.1 SQL Server的封鎖方式 193 9.5.2 Oracle的封鎖方式 193 9.6 小結 194 習題9 194 第10章 基于關系型數(shù)據(jù)庫的Web應用 196 10.1 數(shù)據(jù)庫應用體系結構概述 196 10.1.1 基于C/S模式的體系結構 196 10.1.2 基于B/S模式的體系結構 197 10.2 常見的Web服務器簡介 198 10.2.1 IIS 198 10.2.2 Tomcat 199 10.2.3 WebLogic 200 10.3 服務器端的動態(tài)網(wǎng)頁技術 200 10.3.1 JSP 200 10.3.2 基于ASP .NET構建Web應用 程序 204 10.4 客戶端網(wǎng)頁設計相關技術簡介 204 10.4.1 基于CSS+DIV構建網(wǎng)頁 205 10.4.2 客戶端腳本語言JavaScript 簡介 206 10.5 基于XML的數(shù)據(jù)庫信息管理 209 10.5.1 XML及其與數(shù)據(jù)庫的互 操作 210 10.5.2 XML的基本規(guī)范和簡單 結構 211 10.5.3 XML數(shù)據(jù)的顯示 211 10.5.4 將數(shù)據(jù)庫信息轉換為XML 212 10.6 小結 214 習題10 215 第11章 大數(shù)據(jù)應用背景下的數(shù)據(jù)管理 技術 216 11.1 大數(shù)據(jù)及其主要特點 216 11.2 傳統(tǒng)數(shù)據(jù)處理方式面臨的挑戰(zhàn) 217 11.3 大數(shù)據(jù)應用背景下的數(shù)據(jù)管理特點 及部分數(shù)據(jù)管理產(chǎn)品 218 11.3.1 大數(shù)據(jù)應用背景下的數(shù)據(jù) 管理特點 218 11.3.2 基于文檔數(shù)據(jù)模型的數(shù)據(jù) 管理產(chǎn)品 218 11.3.3 基于鍵-值對數(shù)據(jù)模型的數(shù)據(jù) 管理產(chǎn)品 220 11.3.4 分布式緩存數(shù)據(jù)管理 產(chǎn)品MemCached 221 11.3.5 基于倒排索引的數(shù)據(jù)管理產(chǎn)品 及ELK架構 224 11.4 小結 224 習題11 224 第12章 關系型數(shù)據(jù)庫應用系統(tǒng)案例 分析 225 12.1 系統(tǒng)設計 225 12.1.1 需求分析 225 12.1.2 概念結構設計 226 12.1.3 數(shù)據(jù)庫設計 227 12.2 功能模塊設計 230 12.2.1 系統(tǒng)功能模塊 230 12.2.2 界面設計 230 12.3 功能實現(xiàn)步驟 231 12.3.1 數(shù)據(jù)庫創(chuàng)建 231 12.3.2 公用模塊設計 231 12.3.3 添加app.config文件 236 12.4 管理員端程序設計步驟 236 12.4.1 用戶管理界面 236 12.4.2 用戶管理信息編輯界面設計 239 12.4.3 登錄窗體的設計 242 12.5 系統(tǒng)運行與調(diào)試 244 12.5.1 調(diào)試方法 244 12.5.2 調(diào)試過程 245 12.5.3 排錯 246 12.6 小結 247 習題12 247 附錄A 實驗 248 實驗1 初識SQL Server 2012 248 實驗2 數(shù)據(jù)定義和數(shù)據(jù)操縱 250 實驗3 數(shù)據(jù)查詢 252 實驗4 視圖的創(chuàng)建與使用 253 實驗5 存儲過程和觸發(fā)器 255 實驗6 數(shù)據(jù)庫的安全性 255 參考文獻 257 后記 259
你還可能感興趣
我要評論
|