數(shù)據(jù)庫(kù)系統(tǒng)概念(原書第7版)
定 價(jià):149 元
- 作者:[Abraham,Silberschatz]亞伯拉罕·西爾伯沙茨 著,楊冬青 李紅燕 張金波等譯 譯
- 出版時(shí)間:2021/6/1
- ISBN:9787111681816
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP311.13
- 頁(yè)碼:820
- 紙張:膠版紙
- 版次:1
- 開本:16開
《數(shù)據(jù)庫(kù)系統(tǒng)概念》是數(shù)據(jù)庫(kù)系統(tǒng)方面的經(jīng)典教材之一,其內(nèi)容由淺入深,既包含數(shù)據(jù)庫(kù)系統(tǒng)基本概念,又反映數(shù)據(jù)庫(kù)技術(shù)新進(jìn)展。它被國(guó)際上許多大學(xué)所采用,包括斯坦福大學(xué)、耶魯大學(xué)、得克薩斯大學(xué)、康奈爾大學(xué)、伊利諾伊大學(xué)等。
數(shù)據(jù)庫(kù)管理已經(jīng)從一種專門的計(jì)算機(jī)應(yīng)用發(fā)展為幾乎所有企業(yè)中的一個(gè)核心成分,因此,有關(guān)數(shù)據(jù)庫(kù)系統(tǒng)的知識(shí)已成為計(jì)算機(jī)科學(xué)教育中必不可少的部分。在本書中,我們講述數(shù)據(jù)庫(kù)管理的基本概念,這些概念包括數(shù)據(jù)庫(kù)設(shè)計(jì)、數(shù)據(jù)庫(kù)語(yǔ)言、數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)等多個(gè)方面。
本書可作為三年級(jí)或四年級(jí)本科生數(shù)據(jù)庫(kù)入門課程的教科書,也可作為一年級(jí)研究生的教科書。除了涵蓋入門課程的基本內(nèi)容外,本書還包括可作為課程補(bǔ)充材料或作為高級(jí)課程介紹性材料的高級(jí)內(nèi)容。
我們僅要求讀者熟悉基本的數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)組成和一種高級(jí)程序設(shè)計(jì)語(yǔ)言,例如Java、C、C++或Python。概念都以直觀的方式加以描述,其中的許多概念基于我們大學(xué)運(yùn)行的例子加以闡釋。本書中包括重要的理論結(jié)果,但省略了形式化證明,取而代之的是用圖表和例子來說明為什么結(jié)論是正確的。對(duì)于形式化描述和研究結(jié)果的證明,讀者可以參見參考文獻(xiàn)中列出的研究論文和高級(jí)教材。
本書中包括的基本概念和算法通常基于當(dāng)今商用或試驗(yàn)性的數(shù)據(jù)庫(kù)系統(tǒng)中采用的概念和算法。我們的目標(biāo)是在通用環(huán)境下描述這些概念和算法,沒有與某個(gè)特定的數(shù)據(jù)庫(kù)系統(tǒng)綁定,雖然在恰當(dāng)?shù)臅r(shí)候我們確實(shí)提供了對(duì)某些特定系統(tǒng)的引用。
在第7版中,我們保持了前面版本的總體風(fēng)格,同時(shí)對(duì)內(nèi)容和結(jié)構(gòu)進(jìn)行了更新來反映數(shù)據(jù)庫(kù)設(shè)計(jì)、管理和使用的方式所發(fā)生的變化。其中一個(gè)重要的變化是“大數(shù)據(jù)”系統(tǒng)的廣泛應(yīng)用。我們還考慮了數(shù)據(jù)庫(kù)概念在教學(xué)方面的發(fā)展趨勢(shì),并在適當(dāng)?shù)牡胤阶龀隽送苿?dòng)這些趨勢(shì)的修改。
本版本中最值得注意的變化如下:
廣泛涵蓋了大數(shù)據(jù)系統(tǒng)的內(nèi)容,既從用戶的角度介紹(第10章),也從系統(tǒng)內(nèi)部的角度介紹(第20~23章),與第6版相比有大量的內(nèi)容擴(kuò)充和改進(jìn)。
增加了新的一章“區(qū)塊鏈數(shù)據(jù)庫(kù)”(第26章),介紹區(qū)塊鏈技術(shù)及其在企業(yè)應(yīng)用中日益增長(zhǎng)的作用。這一章的一個(gè)重要焦點(diǎn)是區(qū)塊鏈系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)之間的交互。
對(duì)涉及數(shù)據(jù)庫(kù)內(nèi)部的所有各章(第12~19章)進(jìn)行了修改,以融入固態(tài)硬盤、主存數(shù)據(jù)庫(kù)、多核系統(tǒng)和列存儲(chǔ)等當(dāng)代技術(shù)。
對(duì)于使用JSON、RDF和SPARQL進(jìn)行半結(jié)構(gòu)化數(shù)據(jù)管理做了更多的描述(8.1節(jié))。
更新了對(duì)于時(shí)態(tài)數(shù)據(jù)(7.10節(jié))、數(shù)據(jù)分析(第11章)和諸如寫優(yōu)化的索引等高級(jí)索引技術(shù)(14.8節(jié)和24.2節(jié))的描述。
為更好地支持含有實(shí)操部分的課程(對(duì)于任何數(shù)據(jù)庫(kù)課程,這都是我們強(qiáng)烈推薦的方式),對(duì)一些章節(jié)進(jìn)行了重新組織和更新,包括使用當(dāng)代的應(yīng)用開發(fā)工具和大數(shù)據(jù)系統(tǒng),如Apache Hadoop和Spark。
所有更新源于我們收到的許多意見和建議,這些意見和建議來自第6版的讀者以及我們?cè)谝敶髮W(xué)、理海大學(xué)、印度理工學(xué)院孟買校區(qū)的學(xué)生,也源于我們自己對(duì)數(shù)據(jù)庫(kù)技術(shù)發(fā)展的觀察和分析。
本書的內(nèi)容
除第1章外,本書共十一部分,具體如下:
引言(第1章)。第1章對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的性質(zhì)和目標(biāo)進(jìn)行一般性綜述。我們解釋了數(shù)據(jù)庫(kù)系統(tǒng)的概念是如何發(fā)展的,各數(shù)據(jù)庫(kù)系統(tǒng)的共同特性是什么,數(shù)據(jù)庫(kù)系統(tǒng)能為用戶做什么,以及數(shù)據(jù)庫(kù)系統(tǒng)如何與操作系統(tǒng)交互。我們還引入了一個(gè)數(shù)據(jù)庫(kù)應(yīng)用的例子:一個(gè)包括多個(gè)系、教師、學(xué)生和課程的大學(xué)。這個(gè)應(yīng)用作為貫穿全書的運(yùn)行實(shí)例。這一章本質(zhì)上是激勵(lì)性、歷史性和解釋性的。
第一部分:關(guān)系語(yǔ)言(第2~5章)。第2章介紹數(shù)據(jù)的關(guān)系模型,包括關(guān)系數(shù)據(jù)庫(kù)的結(jié)構(gòu)、數(shù)據(jù)庫(kù)模式、碼、模式圖、關(guān)系查詢語(yǔ)言、關(guān)系運(yùn)算和關(guān)系代數(shù)等基本概念。第3~5章主要介紹最具影響力的面向用戶的關(guān)系語(yǔ)言:SQL。對(duì)于一個(gè)設(shè)計(jì)完成的模式,這部分描述了查詢、修改、插入和刪除等數(shù)據(jù)操作。雖然這里詳細(xì)講述了數(shù)據(jù)定義的語(yǔ)法,但關(guān)于模式設(shè)計(jì)的問題將推遲到第二部分講述。
第二部分:數(shù)據(jù)庫(kù)設(shè)計(jì)(第6~7章)。第6章概要介紹數(shù)據(jù)庫(kù)設(shè)計(jì)過程并詳細(xì)描述實(shí)體-聯(lián)系數(shù)據(jù)模型。實(shí)體-聯(lián)系模型為數(shù)據(jù)庫(kù)設(shè)計(jì)問題以及在數(shù)據(jù)模型的約束下捕獲現(xiàn)實(shí)應(yīng)用的語(yǔ)義時(shí)所遇到的問題提供了一個(gè)高層視圖。UML類圖表示也在這一章中講述。第7章介紹關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)。這一章講述了函數(shù)依賴和規(guī)范化的理論,重點(diǎn)強(qiáng)調(diào)了提出各種范式的動(dòng)機(jī),以及它們的直觀含義。這一章以關(guān)系設(shè)計(jì)的概覽開始,依賴于對(duì)函數(shù)依賴的邏輯蘊(yùn)涵的直觀理解。這使得規(guī)范化的概念可以在全面討論函數(shù)依賴?yán)碚撝跋茸鼋榻B,而函數(shù)依賴?yán)碚搶⒃诒菊律院蟛糠钟懻摗J谡n教師可以只選用這些直觀描述的內(nèi)容,而不會(huì)丟失連貫性。不過,完整地講授這一章將有利于學(xué)生對(duì)規(guī)范化概念形成較好的理解,從而引導(dǎo)他們?nèi)W(xué)習(xí)函數(shù)依賴?yán)碚撝幸恍┹^艱深的概念。這一章的最后一節(jié)講述時(shí)態(tài)數(shù)據(jù)建模。
第三部分:應(yīng)用程序設(shè)計(jì)和開發(fā)(第8~9章)。第8章討論幾種對(duì)于應(yīng)用程序設(shè)計(jì)和開發(fā)非常重要的復(fù)雜數(shù)據(jù)類型,包括半結(jié)構(gòu)化數(shù)據(jù)、基于對(duì)象的數(shù)據(jù)、文本數(shù)據(jù)和空間數(shù)據(jù)。雖然XML在數(shù)據(jù)庫(kù)環(huán)境中的流行度正在消減,但我們還是保留了對(duì)XML的介紹,同時(shí)增加了對(duì)JSON、RDF和SPARQL的介紹。第9章討論用于構(gòu)建交互式的基于Web的數(shù)據(jù)庫(kù)應(yīng)用和移動(dòng)數(shù)據(jù)庫(kù)應(yīng)用的工具與技術(shù)。這一章對(duì)服務(wù)器端和客戶端都進(jìn)行了詳細(xì)介紹,所包括的主題有: Java服務(wù)器端程序(servlet)、JSP、Djang
出版者的話
譯者序
前言
關(guān)于作者
第1章 引言1
1.1 數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用1
1.2 數(shù)據(jù)庫(kù)系統(tǒng)的目標(biāo)3
1.3 數(shù)據(jù)視圖6
1.3.1 數(shù)據(jù)模型6
1.3.2 關(guān)系數(shù)據(jù)模型6
1.3.3 數(shù)據(jù)抽象7
1.3.4 實(shí)例和模式8
1.4 數(shù)據(jù)庫(kù)語(yǔ)言9
1.4.1 數(shù)據(jù)定義語(yǔ)言9
1.4.2 SQL數(shù)據(jù)定義語(yǔ)言10
1.4.3 數(shù)據(jù)操縱語(yǔ)言10
1.4.4 SQL數(shù)據(jù)操縱語(yǔ)言11
1.4.5 從應(yīng)用程序訪問數(shù)據(jù)庫(kù)11
1.5 數(shù)據(jù)庫(kù)設(shè)計(jì)12
1.6 數(shù)據(jù)庫(kù)引擎12
1.6.1 存儲(chǔ)管理器13
1.6.2 查詢處理器14
1.6.3 事務(wù)管理14
1.7 數(shù)據(jù)庫(kù)和應(yīng)用體系結(jié)構(gòu)15
1.8 數(shù)據(jù)庫(kù)用戶和管理員16
1.8.1 數(shù)據(jù)庫(kù)用戶和用戶界面16
1.8.2 數(shù)據(jù)庫(kù)管理員17
1.9 數(shù)據(jù)庫(kù)系統(tǒng)的歷史17
1.10 總結(jié)20
術(shù)語(yǔ)回顧21
實(shí)踐習(xí)題22
習(xí)題22
工具22
延伸閱讀23
參考文獻(xiàn)23
第一部分 關(guān)系語(yǔ)言
第2章 關(guān)系模型介紹26
2.1 關(guān)系數(shù)據(jù)庫(kù)的結(jié)構(gòu)26
2.2 數(shù)據(jù)庫(kù)模式28
2.3 碼29
2.4 模式圖32
2.5 關(guān)系查詢語(yǔ)言32
2.6 關(guān)系代數(shù)33
2.6.1 選擇運(yùn)算33
2.6.2 投影運(yùn)算34
2.6.3 關(guān)系運(yùn)算的復(fù)合34
2.6.4 笛卡兒積運(yùn)算35
2.6.5 連接運(yùn)算36
2.6.6 集合運(yùn)算37
2.6.7 賦值運(yùn)算38
2.6.8 更名運(yùn)算39
2.6.9 等價(jià)查詢40
2.7 總結(jié)40
術(shù)語(yǔ)回顧41
實(shí)踐習(xí)題41
習(xí)題42
延伸閱讀43
參考文獻(xiàn)44
第3章 SQL介紹45
3.1 SQL查詢語(yǔ)言概覽45
3.2 SQL數(shù)據(jù)定義46
3.2.1 基本類型46
3.2.2 基本模式定義47
3.3 SQL查詢的基本結(jié)構(gòu)49
3.3.1 單關(guān)系查詢49
3.3.2 多關(guān)系查詢51
3.4 附加的基本運(yùn)算55
3.4.1 更名運(yùn)算55
3.4.2 字符串運(yùn)算56
3.4.3 select子句中的屬性說明57
3.4.4 排列元組的顯示次序 57
3.4.5 where子句謂詞58
3.5 集合運(yùn)算58
3.5.1 并運(yùn)算59
3.5.2 交運(yùn)算60
3.5.3 差運(yùn)算60
3.6 空值61
3.7 聚集函數(shù)62
3.7.1 基本聚集62
3.7.2 分組聚集63
3.7.3 having子句65
3.7.4 對(duì)空值和布爾值的聚集66
3.8 嵌套子查詢67
3.8.1 集合成員資格67
3.8.2 集合比較68
3.8.3 空關(guān)系測(cè)試69
3.8.4 重復(fù)元組存在性測(cè)試70
3.8.5 from子句中的子查詢71
3.8.6 with子句72
3.8.7 標(biāo)量子查詢73
3.8.8 不帶from子句的標(biāo)量73
3.9 數(shù)據(jù)庫(kù)的修改74
3.9.1 刪除75
3.9.2 插入76
3.9.3 更新77
3.10 總結(jié)78
術(shù)語(yǔ)回顧79
實(shí)踐習(xí)題79
習(xí)題81
工具83
延伸閱讀84
參考文獻(xiàn)84
第4章 中級(jí)SQL85
4.1 連接表達(dá)式85
4.1.1 自然連接85
4.1.2 連接條件88
4.1.3 外連接89
4.1.4 連接類型和條件92
4.2 視圖92
4.2.1 視圖定義93
4.2.2 在SQL查詢中使用視圖94
4.2.3 物化視圖95
4.2.4 視圖更新95
4.3 事務(wù)97
4.4 完整性約束98
4.4.1 單個(gè)關(guān)系上的約束99
4.4.2 非空約束99
4.4.3 唯一性約束100
4.4.4 check子句100
4.4.5 引用完整性100
4.4.6 給約束賦名102
4.4.7 事務(wù)中對(duì)完整性約束的違反103
4.4.8 復(fù)雜check條件與斷言103
4.5 SQL的數(shù)據(jù)類型與模式105
4.5.1 SQL中的日期和時(shí)間類型105
4.5.2 類型轉(zhuǎn)換和格式化函數(shù)105
4.5.3 缺省值106
4.5.4 大對(duì)象類型107
4.5.5 用戶自定義類型108
4.5.6 生成唯一碼值110
4.5.7 create table的擴(kuò)展111
4.5.8 模式、目錄與環(huán)境111
4.6 SQL中的索引定義112
4.7 授權(quán)113
4.7.1 權(quán)限的授予與收回114
4.7.2 角色115
4.7.3 視圖的授權(quán)116
4.7.4 模式的授權(quán)117
4.7.5 權(quán)限的轉(zhuǎn)移117
4.7.6 權(quán)限的收回118
4.7.7 行級(jí)授權(quán)119
4.8 總結(jié)119
術(shù)語(yǔ)回顧120
實(shí)踐習(xí)題121
習(xí)題122
延伸閱讀123
參考文獻(xiàn)123
第5章 高級(jí)SQL125
5.1 使用程序設(shè)計(jì)語(yǔ)言訪問SQL125
5.1.1 JDBC126
5.1.2 從Python訪問數(shù)據(jù)庫(kù)132
5.1.3 ODBC132
5.1.4 嵌入式SQL134
5.2 函數(shù)和過程136
5.2.1 聲明及調(diào)用SQL函數(shù)和過程136
5.2.2 用于過程和函數(shù)的語(yǔ)言結(jié)構(gòu)137
5.2.3 外部語(yǔ)言例程140
5.3 觸發(fā)器141
5.3.1 對(duì)觸發(fā)器的需求141
5.3.2 SQL中的觸發(fā)器141
5.3.3 何時(shí)不用觸發(fā)器144
5.4 遞歸查詢146
5.4.1 使用迭代的傳遞閉包146
5.4.2 SQL中的遞歸148
5.5 高級(jí)聚集特性149
5.5.1 排名150
5.5.2 分窗153
5.5.3 旋轉(zhuǎn)154
5.5.4 上卷和立方體155
5.6 總結(jié)158
術(shù)語(yǔ)回顧158
實(shí)踐習(xí)題158
習(xí)題160
工具161
延伸閱讀162
第二部分 數(shù)據(jù)庫(kù)設(shè)計(jì)
第6章 使用E-R模型的數(shù)據(jù)庫(kù)設(shè)計(jì)164
6.1 設(shè)計(jì)過程概覽164
6.1.1 設(shè)計(jì)階段164
6.1.2 設(shè)計(jì)