![](http://img3m4.ddimg.cn/72/27/29323674-1_u_2.jpg)
開本:16開 紙張:膠版紙 包裝:平裝-膠訂 是否套裝:否 國際標準書號ISBN:9787111692225 叢書名:計算機科學叢書 作者:[美]亞伯拉罕·西爾伯沙茨,[美]亨利·F. 出版社:機械工業出版社 出版時間:2021年10月 
" 編輯推薦 數據庫領域的殿堂級作品。夯實數據庫理論基礎,修煉數據庫技術內功的之選。對深入理解數據庫,深人研究數據庫,深入操作數據庫都具有極強的指導作用! 內容簡介 《數據庫繫統概念》是數據庫繫統方面的經典教材之一,其內容由淺入深,既包含數據庫繫統基本概念,又反映數據庫技術新進展。本書基於該書第7版進行改編,保留其中的基本內容,壓縮或刪除了一些高級內容,更加適合作為國內高校計算機及相關專業本科生數據庫課程教材。 作者簡介 亞伯拉罕·西爾伯沙茨 (Abraham Silberschatz) 於紐約州立大學石溪分校獲得博士學位,現為耶魯大學計算機科學繫Sidney J. Weinberg教授,曾任貝爾實驗室信息科學研究中心副主任。他是ACM會士、IEEE 會士以及康涅狄格科學與工程學會的成員,獲得了48項專利和24項授權。他還是教科書《操作繫統概念》的作者。 亨利·F. 科思 (Henry F. Korth) 於普林斯頓大學獲得博士學位,現為理海大學計算機科學與工程繫教授和計算機科學與商業項目聯合主任,曾任貝爾實驗室數據庫原理研究中心主任、松下科技副總裁、得克薩斯大學奧斯汀分校副教授以及IBM研究中心研究人員。他是ACM會士、IEEE會士以及VLDB會議10年貢獻獎的獲得者。他的研究涉及數據庫繫統的方方面面,近,他的研究致力於解決區塊鏈在企業數據庫中的應用問題。亞伯拉罕·西爾伯沙茨 (Abraham Silberschatz) 於紐約州立大學石溪分校獲得博士學位,現為耶魯大學計算機科學繫Sidney J. Weinberg教授,曾任貝爾實驗室信息科學研究中心副主任。他是ACM會士、IEEE 會士以及康涅狄格科學與工程學會的成員,獲得了48項專利和24項授權。他還是教科書《操作繫統概念》的作者。 亨利·F. 科思 (Henry F. Korth) 於普林斯頓大學獲得博士學位,現為理海大學計算機科學與工程繫教授和計算機科學與商業項目聯合主任,曾任貝爾實驗室數據庫原理研究中心主任、松下科技副總裁、得克薩斯大學奧斯汀分校副教授以及IBM研究中心研究人員。他是ACM會士、IEEE會士以及VLDB會議10年貢獻獎的獲得者。他的研究涉及數據庫繫統的方方面面,近,他的研究致力於解決區塊鏈在企業數據庫中的應用問題。 S. 蘇達爾尚 (S. Sudarshan) 於威斯康星大學獲得博士學位,現為印度理工學院孟買校區Subrao M. Nilekani講席教授,曾為貝爾實驗室技術人員。他是ACM會士,發表了100餘篇論文並獲得15項專利。他目前的研究領域包括SQL查詢的測試和分級、通過重寫命令式代碼來優化數據庫應用程序,以及並行數據庫的查詢優化。 目錄 改編者序 譯者簡介 前言 作者簡介 第1章引言1 1.1數據庫繫統應用1 1.2數據庫繫統的目標3 1.3數據視圖6 1.3.1數據模型6 1.3.2關繫數據模型6 1.3.3數據抽像7 1.3.4實例和模式8 1.4數據庫語言9 1.4.1數據定義語言9改編者序 譯者簡介 前言 作者簡介 第1章引言1 1.1數據庫繫統應用1 1.2數據庫繫統的目標3 1.3數據視圖6 1.3.1數據模型6 1.3.2關繫數據模型6 1.3.3數據抽像7 1.3.4實例和模式8 1.4數據庫語言9 1.4.1數據定義語言9 1.4.2SQL數據定義語言10 1.4.3數據操縱語言10 1.4.4SQL數據操縱語言11 1.4.5從應用程序訪問數據庫11 1.5數據庫設計12 1.6數據庫引擎12 1.6.1存儲管理器13 1.6.2查詢處理器14 1.6.3事務管理14 1.7數據庫和應用體繫結構15 1.8數據庫用戶和管理員16 1.8.1數據庫用戶和用戶界面16 1.8.2數據庫管理員17 1.9數據庫繫統的歷史17 1.10總結20 術語回顧21 實踐習題22 習題22 工具22 延伸閱讀23 參考文獻23 部分關繫語言 第2章關繫模型介紹26 2.1關繫數據庫的結構26 2.2數據庫模式28 2.3碼29 2.4模式圖32 2.5關繫查詢語言32 2.6總結33 術語回顧33 實踐習題34 習題34 延伸閱讀35 參考文獻35 第3章SQL介紹36 3.1SQL查詢語言概覽36 3.2SQL數據定義37 3.2.1基本類型37 3.2.2基本模式定義38 3.3SQL查詢的基本結構40 3.3.1單關繫查詢40 3.3.2多關繫查詢42 3.4附加的基本運算46 3.4.1更名運算46 3.4.2字符串運算47 3.4.3select子句中的屬性說明48 3.4.4組的顯示次序48 3.4.5where子句謂詞49 3.5集合運算49 3.5.1並運算50 3.5.2交運算51 3.5.3差運算51 3.6空值52 3.7聚集函數53 3.7.1基本聚集53 3.7.2分組聚集54 3.7.3having子句56 3.7.4對空值和布爾值的聚集57 3.8嵌套子查詢58 3.8.1集合成員資格58 3.8.2集合比較59 3.8.3空關繫測試60 3.8.4組存在性測試61 3.8.5from子句中的子查詢62 3.8.6with子句63 3.8.7標量子查詢64 3.8.8不帶from子句的標量64 3.9數據庫的修改65 3.9.1刪除66 3.9.2插入67 3.9.3更新68 3.10總結69 術語回顧70 實踐習題70 習題72 工具74 延伸閱讀75 參考文獻75 第4章中級SQL76 4.1連接表達式76 4.1.1自然連接76 4.1.2連接條件79 4.1.3外連接80 4.1.4連接類型和條件83 4.2視圖83 4.2.1視圖定義84 4.2.2在SQL查詢中使用視圖85 4.2.3物化視圖86 4.2.4視圖更新86 4.3事務88 4.4完整性約束89 4.4.1單個關繫上的約束90 4.4.2非空約束90 4.4.3性約束91 4.4.4check子句91 4.4.5引用完整性91 4.4.6給約束賦名93 4.4.7事務中對完整性約束的違反94 4.4.8復雜check條件與斷言94 4.5SQL的數據類型與模式96 4.5.1SQL中的日期和時間類型96 4.5.2類型轉換和格式化函數96 4.5.3缺省值97 4.5.4大對像類型98 4.5.5用戶自定義類型99 4.5.6生成碼值101 4.5.7create table的擴展102 4.5.8模式、目錄與環境102 4.6SQL中的索引定義103 4.7授權104 4.7.1權限的授予與收回105 4.7.2角色106 4.7.3視圖的授權107 4.7.4模式的授權108 4.7.5權限的轉移108 4.7.6權限的收回109 4.7.7行級授權110 4.8總結110 術語回顧111 實踐習題112 習題113 延伸閱讀114 參考文獻114 第5章高級SQL116 5.1使用程序設計語言訪問SQL116 5.1.1JDBC117 5.1.2從Python訪問數據庫123 5.1.3ODBC123 5.1.4嵌入式SQL125 5.2函數和過程127 5.2.1聲明及調用SQL函數和過程127 5.2.2用於過程和函數的語言結構128 5.2.3外部語言例程131 5.3觸發器132 5.3.1對觸發器的需求132 5.3.2SQL中的觸發器132 5.3.3何時不用觸發器135 5.4遞歸查詢137 5.4.1使用迭代的傳遞閉包137 5.4.2SQL中的遞歸139 5.5高級聚集特性140 5.5.1排名141 5.5.2分窗144 5.5.3旋轉145 5.5.4上卷和立方體146 5.6總結149 術語回顧149 實踐習題149 習題151 工具153 延伸閱讀153 第6章形式化關繫查詢語言154 6.1關繫代數154 6.1.1選擇運算154 6.1.2投影運算155 6.1.3關繫運算的復合155 6.1.4笛卡兒積運算156 6.1.5連接運算157 6.1.6集合運算158 6.1.7賦值運算159 6.1.8更名運算160 6.1.9等價查詢161 6組關繫演算161 6.2.1查詢示例161 6.2.2形式化定義164 6.2.3表達式的安全 前言 數據庫管理已經從一種專門的計算機應用發展為幾乎所有企業中的一個核心成分,因此, 有關數據庫繫統的知識已成為計算機科學教育中必不可少的部分。 本書改編自《數據庫繫統概念》第7版,適合作為本科生三年級或四年級數據庫入門課程的教科書。在本書中,講述數據庫管理的基本概念,包括數據庫設計、數據庫語言、數據庫繫統實現等多個方面。除了這些作為入門課程的基本內容外,本書還包括了可作為課程補充材料或作為高級課程介紹性材料的高級內容。 我們僅要求讀者熟悉基本的數據結構、計算機組成和一種高級程序設計語言,例如Java、C、C 或Python。概念都以直觀的方式加以描述,其中的許多概念基於我們大學運行的例子加以闡釋。本書中包括重要的理論結果,但省略了形式化證明,取而代之的是用圖表和例子來說明為什麼結論是正確的。對於形式化描述和研究結果的證明,讀者可以參見參考文獻中列出的研究論文和高級教材。 本書中包括的基本概念和算法通常基於當今商用或試驗性的數據庫繫統中采用的概念和算法。我們的目標是在通用環境下描述這些概念和算法,沒有與某個特定的數據庫繫統綁定。數據庫管理已經從一種專門的計算機應用發展為幾乎所有企業中的一個核心成分,因此, 有關數據庫繫統的知識已成為計算機科學教育中必不可少的部分。 本書改編自《數據庫繫統概念》第7版,適合作為本科生三年級或四年級數據庫入門課程的教科書。在本書中,講述數據庫管理的基本概念,包括數據庫設計、數據庫語言、數據庫繫統實現等多個方面。除了這些作為入門課程的基本內容外,本書還包括了可作為課程補充材料或作為高級課程介紹性材料的高級內容。 我們僅要求讀者熟悉基本的數據結構、計算機組成和一種高級程序設計語言,例如Java、C、C 或Python。概念都以直觀的方式加以描述,其中的許多概念基於我們大學運行的例子加以闡釋。本書中包括重要的理論結果,但省略了形式化證明,取而代之的是用圖表和例子來說明為什麼結論是正確的。對於形式化描述和研究結果的證明,讀者可以參見參考文獻中列出的研究論文和高級教材。 本書中包括的基本概念和算法通常基於當今商用或試驗性的數據庫繫統中采用的概念和算法。我們的目標是在通用環境下描述這些概念和算法,沒有與某個特定的數據庫繫統綁定。 在這個《數據庫繫統概念》第7版的改編版本中,我們保留了原書的基本內容,壓縮或刪除了一些高級內容,目的是使得本改編版本更適合本科生的數據庫入門課程使用。下面我們簡單描述本書的內容。 本書的組織 除第1章外,本書組織成四個部分: 引言(第1章)。第1章對數據庫繫統的性質和目標進行一般性綜述。我們解釋了數據庫繫統的概念是如何發展的,各數據庫繫統的共同特性是什麼,數據庫繫統能為用戶做什麼,以及數據庫繫統如何與操作繫統交互。我們還引入了一個數據庫應用的例子:一個包括多個繫、教師、學生和課程的大學。這個應用作為貫穿全書的運行實例。這一章本質上是激勵性、歷史性和解釋性的。 部分:關繫語言(第2~6章)。第 2 章介紹數據的關繫模型,包括關繫數據庫的結構、數據庫模式、碼、模式圖、關繫查詢語言、關繫運算等基本概念。第 3~5章主要介紹影響力的面向用戶的關繫語言:SQL。第6章介紹形式化關繫查詢語言,包括關繫組關繫演算、域關繫演算和關繫查詢語言的表達能力。 對於一個設計完成的模式,這部分描述了查詢、修改、插入和刪除等數據操作。雖然這裡詳細講述了數據定義的語法,但關於模式設計的問題將推遲到第二部分講述。 第二部分:數據庫設計與應用程序開發(第7~9章)。第7章概要介紹數據庫設計過程並詳細描述實體-聯繫數據模型。實體-聯繫模型為數據庫設計問題以及在數據模型的約束下捕獲現實應用的語義時所遇到的問題提供了一個高層視圖。UML類圖表示也在這一章中講述。第8章介紹關繫數據庫設計。這一章講述了函數依賴和規範化的理論,重點強調了提出各種範式的動機,以及它們的直觀含義。這一章以關繫設計的概覽開始,依賴於對函數依賴的邏輯蘊涵的直觀理解。這使得規範化的概念可以在全面討論函數依賴理論之前先做介紹,而函數依賴理論將在本章稍後部分討論。授課教師可以隻選用這些直觀描述的內容,而不會丟失連貫性。不過,完整地講授這一章將有利於學生對規範化概念形成較好的理解,從而引導他們去學習函數依賴理論中一些較艱深的概念。這一章的後一節講述時態數據建模。 第9章討論用於構建交互式的基於Web的數據庫應用和移動數據庫應用的工具與技術。這一章對服務器端和客戶端都進行了詳細介紹,所包括的主題有:Java服務器端程序(servlet)、JSP、Django、Java描述語言(JavaScript)和Web服務。同時,還對以下主題進行了討論:應用體繫結構、對像-關繫映射繫統(包括 Hibernate和Django)、性能(包括使用 memcached和Redis的緩存)和確保Web應用安全的獨特挑戰。 第三部分:數據管理實現技術(第10~14章)。第10章首先介紹存儲設備以及這些設備的特性如何影響數據庫的物理組織和性能,然後討論數據存儲結構,包括文件組織、數據字典存儲和數據庫緩衝區管理。第11章講解數據庫繫統使用的幾種類型的索引。第12章描述如何處理查詢,給出用於實現單獨操作的算法,並描述查詢優化過程。第13章著重介紹事務處理繫統的基本概念,包括事務的原子性、一致性、隔離性和持久性,還概述了用於保證這些特性的方法,包括基於日志的恢復和使用鎖的並發控制、基於時間戳的技術以及快照隔離。第14章首先重點講述並發控制,並介紹幾種保證可串行化的技術,包括封鎖、時間戳和有效性檢查技術,還討論了多版本並發控制技術,接下來討論在繫統崩潰和存儲器故障的情況下保證事務正確執行的主要技術,包括日志、檢查點和數據庫轉儲。 第四部分:高級話題(第15~17章)。第15章首先概述大規模數據分析應用,重點講述與傳統的數據庫應用相比,這些應用如何對數據管理提出不尋常的要求,然後討論了這些要求是如何得到滿足的,接下來介紹半結構化數據,後介紹數據倉庫和數據挖掘的概念與主要方法。第16章從數據庫的角度審視區塊鏈技術,描述了區塊鏈數據結構,以及使用加密散列函數和公鑰加密來保證匿名性、無可辯駁性 ![](http://img3m4.ddimg.cn/72/27/29323674-2_u_1.jpg) ![](http://img3m4.ddimg.cn/72/27/29323674-3_u_1.jpg) ![](http://img3m4.ddimg.cn/72/27/29323674-4_u_1.jpg) |