編輯推薦
《數據庫係統實現(第2版)》內容深入且全麵,技術實用且先進,敘述深入淺齣,是一本難得的高層次的教材,適閤作為高等院校計算機專業研究生的教材或本科生的教學參考書,也適閤作為從事相關研究或開發工作的專業技術人員的高級參考資料。
內容簡介
《數據庫係統實現(第2版)》是斯坦福大學計算機科學專業數據庫係列課程第二門課的教科書。書中對數據庫係統實現原理進行瞭深入闡述,並具體討論瞭數據庫管理係統的三個主要成分——存儲管理器、查詢處理器和事務管理器的實現技術。此外,第2版充分反映瞭數據管理技術的新進展,對內容進行瞭擴充,除瞭在第1版中原有的“信息集成”一章(第10章)中加入瞭新的內容外,還增加瞭兩個全新的章:“數據挖掘”(第11章)和“數據庫係統與互聯網”(第12章)。
《數據庫係統實現(第2版)》適閤作為高等院校計算機專業研究生的教材或本科生的教學參考書,也適閤作為從事相關研究或開發工作的專業技術人員的高級參考資料。
作者簡介
楊鼕青,1969年畢業於北京大學數學力學係數學專業,現任北京大學信息科學技術學院教授,博士生導師,計算機科學技術係主任,中國計算機學會數據庫專委會委員。多年來承擔並完成973、863、國傢科技攻關、國傢自然科學基金等多項國傢重點科研項目,曾獲國傢科技進步二等奬、三等奬和多項省部級奬勵,在國內外雜誌及會議上發錶論文百餘篇,著譯作十餘部。目前主要研究方嚮為數據庫係統實現技術、Web環境下的信息集成與共享、數據倉庫和數據挖掘等。
吳愈青分,彆於1995年和1998年在北京大學計算機係獲得學士學位和碩士學位;2004年於EECS Department,University 0f Michigan獲得博士學位。現就職於美國Indiana University,任.Assistant Professor。主要研究方嚮為數據庫係統及實現,包括數據庫查詢語言、查詢優化、索引技術等,及其在半結構化數據上的應用與實現。在國際會議及期刊上發錶論文三十餘篇。
包小源,博士,副教授。蘭州大學計算數學專業碩士、北京大學計算機應用專業博士。主要研究方嚮為數據庫實現技術、XML數據管理、對等計算、服務計算等。
Hector Garcia-Molina,斯坦福大學計算機科學與電子工程係的Leona rd BoSack和SandraLerner教授。他在數據庫係統、分布式係統和數字圖書館領域中發錶瞭大量論文,研究興趣包括分布式計算係統、數據庫係統和數字圖書館。他是ACM會士、美國藝術與科學院會士和美國國傢工程院成員。他在1999年獲得瞭ACM SIGMOD創新奬。
Jeffrey D.Ullman,斯坦福大學計算機科學與電子工程係StanfordW.Asche rman教授,數據庫技術專傢。他獨立或與人閤作齣版瞭15.v.k著作,發錶瞭170多篇技術論文,研究興趣包括數據庫理論、數據庫集成、數據挖掘和利用信息基礎設施進行教育。他是美國國傢工程院成員,曾獲得Knuth奬、SIGMOD貢獻奬、Karlstrom傑齣教育傢奬DEdgar F.Codd發明奬。
Jennifer Widom,美國康奈爾大學計算機科學博士,現為斯坦福大學計算機科學與電子工程係教授,研究興趣包括半結構化數據的數據庫係統問委員會的成員。她在2007年獲得瞭ACM SIGMOD Edgar F.Codd發明奬。
內頁插圖
目錄
齣版者的話
譯者序
譯者簡介
齣版前言
第1章 DBMS係統概述
1.1 數據庫係統的發展
1.1.1 早期的數據庫管理係統
1.1.2 關係數據庫係統
1.1.3 越來越小的係統
1.1.4 越來越大的係統
1.1.5 信息集成
1.2 數據庫管理係統概述
1.2.1 數據定義語言命令
1.2.2 查詢處理概述
1.2.3 主存和緩衝區管理器
1.2.4 事務處理
1.2.5 查詢處理器
1.3 本書概述
1.4 數據庫模型和語言迴顧
1.4.1 關係模型迴顧
1.4.2 SQL迴顧
1.5 參考文獻
第一部分數據庫係統實現
第2章 輔助存儲管理
2.1 存儲器層次
2.1.1 存儲器層次
2.1.2 在存儲器層次間傳送數據
2.1.3 易失和非易失存儲器
2.1.4 虛擬存儲器
2.1.5 習題
2.2 磁盤
2.2.1 磁盤結構
2.2.2 磁盤控製器
2.2.3 磁盤存取特性
2.2.4 習題
2.3 加速對輔助存儲器的訪問
2.3.1 計算的I/O模型
2.3.2 按柱麵組織數據
2.3.3 使用多個磁盤
2.3.4 磁盤鏡像
2.3.5 磁盤調度和電梯算法
2.3.6 預取和大規模緩衝
2.3.7 習題
2.4 磁盤故障
2.4.1 間斷性故障
2.4.2 校驗和
2.4.3 穩定存儲
2.4.4 穩定存儲的錯誤處理能力
2.4.5 從磁盤崩潰中恢復
2.4.6 作為冗餘技術的鏡像
2.4.7 奇偶塊
2.4.8 一種改進:RAID5
2.4.9 多個盤崩潰時的處理
2.4.10 習題
2.5 組織磁盤上的數據
2.5.1 定長記錄
2.5.2 定長記錄在塊中的放置
2.5.3 習題
2.6 塊和記錄地址的錶示
2.6.1 客戶機-服務器係統中的地址
2.6.2 邏輯地址和結構地址
2.6.3 指針混寫
2.6.4 塊返迴磁盤
2.6.5 被釘住的記錄和塊
2.6.6 習題
2.7 變長數據和記錄
2.7.1 具有變長字段的記錄
2.7.2 具有重復字段的記錄
2.7.3 可變格式的記錄
2.7.4 不能裝入一個塊中的記錄
2.7.5 BLOB
2.7.6 列存儲
2.7.7 習題
2.8 記錄的修改
2.8.1 插入
2.8.2 刪除
2.8.3 修改
2.8.4 習題
2.9 小結
2.10 參考文獻
第3章 索引結構
3.1 索引結構基礎
3.1.1 順序文件
3.1.2 稠密索引
3.1.3 稀疏索引
3.1.4 多級索引
3.1.5 輔助索引
3.1.6 輔助索引的運用
3.1.7 輔助索引中的間接
3.1.8 文檔檢索和倒排索引
3.1.9 習題
3.2 B-樹
3.2.1 B-樹的結構
3.2.2 B-樹的應用
3.2.3 B-樹的查找
3.2.4 範圍查詢
3.2.5 B-樹的插入
3.2.6 B-樹的刪除
3.2.7 B-樹的效率
3.2.8 習題
3.3 散列錶
3.3.1 輔存散列錶
3.3.2 散列錶的插入
3.3.3 散列錶的刪除
3.3.4 散列錶索引的效率
3.3.5 可擴展散列錶
3.3.6 可擴展散列錶的插入
3.3.7 綫性散列錶
3.3.8 綫性散列錶的插入
3.3.9 習題
3.4 多維索引
3.4.1 多維索引的應用
3.4.2 利用傳統索引執行範圍查詢
3.4.3 利用傳統索引執行最近鄰查詢
3.4.4 多維索引結構綜述
3.5 多維數據的散列結構
3.5.1 網格文件
3.5.2 網格文件的查找
3.5.3 網格文件的插入
3.5.4 網格文件的性能
3.5.5 分段散列函數
3.5.6 網格文件和分段散列的比較
3.5.7 習題
3.6 多維數據的樹結構
3.6.1 多鍵索引
3.6.2 多鍵索引的性能
3.6.3 kd-樹
3.6.4 kd-樹的操作
3.6.5 使kd-樹適閤輔助存儲器
3.6.6 四叉樹
3.6.7 R-樹
3.6.8 R-樹的操作
3.6.9 習題
3.7 位圖索引
3.7.1 位圖索引的動機
3.7.2 壓縮位圖
3.7.3 分段長度編碼位嚮量的操作
3.7.4 位圖索引的管理
3.7.5 習題
3.8 小結
3.9 參考文獻
第4章 查詢執行
4.1 物理查詢計劃操作符介紹
4.1.1 掃描錶
4.1.2 掃描錶時的排序
4.1.3 物理操作符計算模型
4.1.4 衡量代價的參數
4.1.5 掃描操作符的I/O代價
4.1.6 實現物理操作符的迭代器
4.2 一趟算法
4.2.1 一次單個元組操作的一趟算法
4.2.2 整個關係的一元操作的一趟算法
4.2.3 二元操作的一趟算法
4.2.4 習題
4.3 嵌套循環連接
4.3.1 基於元組的嵌套循環連接
4.3.2 基於元組的嵌套循環連接的迭代器
4.3.3 基於塊的嵌套循環連接算法
4.3.4 嵌套循環連接的分析
4.3.5 迄今為止的算法的總結
4.3.6 習題
4.4 基於排序的兩趟算法
4.4.1 兩階段多路歸並排序
4.4.2 利用排序去除重復
4.4.3 利用排序進行分組和聚集
4.4.4 基於排序的並算法
4.4.5 基於排序的交和差算法
4.4.6 基於排序的一個簡單的連接算法
4.4.7 簡單的排序連接的分析
4.4.8 一種更有效的基於排序的連接
4.4.9 基於排序的算法的總結
4.4.1 0習題
4.5 基於散列的兩趟算法
4.5.1 通過散列劃分關係
4.5.2 基於散列的消除重復算法
4.5.3 基於散列的分組和聚集算法
4.5.4 基於散列的並、交、差算法
4.5.5 散列連接算法
4.5.6 節省一些磁盤I/O
4.5.7 基於散列的算法的總結
4.5.8 習題
4.6 基於索引的算法
4.6.1 聚簇和非聚簇索引
4.6.2 基於索引的選擇
4.6.3 使用索引的連接
4.6.4 使用有序索引的連接
4.6.5 習題
4.7 緩衝區管理
4.7.1 緩衝區管理結構
4.7.2 緩衝區管理策略
4.7.3 物理操作符選擇和緩衝區管理的關係
4.7.4 習題
4.8 使用超過兩趟的算法
4.8.1 基於排序的多趟算法
4.8.2 基於排序的多趟算法的性能
4.8.3 基於散列的多趟算法
4.8.4 基於散列的多趟算法的性能
4.8.5 習題
4.9 小結
4.10 參考文獻
第5章 查詢編譯器
5.1 語法分析和預處理
5.1.1 語法分析與語法分析樹
5.1.2 SQL的一個簡單子集的語法
5.1.3 預處理器
5.1.4 預處理涉及視圖的查詢
5.1.5 習題
5.2 用於改進查詢計劃的代數定律
5.2.1 交換律與結閤律
5.2.2 涉及選擇的定律
5.2.3 下推選擇
5.2.4 涉及投影的定律
5.2.5 有關連接與積的定律
5.2.6 有關消除重復的定律
5.2.7 涉及分組與聚集的定律
5.2.8 習題
5.3 從語法分析樹到邏輯查詢計劃
5.3.1 轉換成關係代數
5.3.2 從條件中去除子查詢
5.3.3 邏輯查詢計劃的改進
5.3.4 可結閤/可分配的運算符的分組
5.3.5 習題
5.4 運算代價的估計
5.4.1 中間關係大小的估計
5.4.2 投影運算大小的估計
5.4.3 選擇運算大小的估計
5.4.4 連接運算大小的估計
5.4.5 多連接屬性的自然連接
5.4.6 多個關係的連接
5.4.7 其他運算大小的估計
5.4.8 習題
5.5 基於代價的計劃選擇介紹
5.5.1 大小參數估計值的獲取
5.5.2 統計量的計算
5.5.3 減少邏輯查詢計劃代價的啓發式估計
5.5.4 枚舉物理計劃的方法
5.5.5 習題
5.6 連接順序的選擇
5.6.1 連接的左右參數的意義
5.6.2 連接樹
5.6.3 左深連接樹
5.6.4 通過動態規劃來選擇連接順序和分組
5.6.5 帶有更具體的代價函數的動態規劃
5.6.6 選擇連接順序的貪婪算法
5.6.7 習題
5.7 物理查詢計劃選擇的完成
5.7.1 選取一個選擇方法
5.7.2 選取連接方法
5.7.3 流水操作與物化
5.7.4 一元流水運算
5.7.5 二元運算的流水操作
5.7.6 物理查詢計劃的符號
5.7.7 物理運算的排序
5.7.8 習題
5.8 小結
5.9 參考文獻
第6章 係統故障對策
6.1 可恢復操作的問題和模型
6.1.1 故障模式
6.1.2 關於事務的進一步討論
6.1.3 事務的正確執行
6.1.4 事務的原語操作
6.1.5 習題
6.2 undo日誌
6.2.1 日誌記錄
6.2.2 undo日誌規則
6.2.3 使用undo日誌的恢復
6.2.4 檢查點
6.2.5 非靜止檢查點
6.2.6 習題
6.3 redo日誌
6.3.1 redo日誌規則
6.3.2 使用redo日誌的恢復
6.3.3 redo日誌的檢查點
6.3.4 使用帶檢查點redo日誌的恢復
6.3.5 習題
6.4 undo/redo日誌
6.4.1 undo/redo規則
6.4.2 使用undo/redo日誌的恢復
6.4.3 undo/redo日誌的檢查點
6.4.4 習題
6.5 針對介質故障的防護
6.5.1 備份
6.5.2 非靜止轉儲
6.5.3 使用備份和日誌的恢復
6.5.4 習題
6.6 小結
6.7 參考文獻
第7章 並發控製
7.1 串行調度和可串行化調度
7.1.1 調度
7.1.2 串行調度
7.1.3 可串行化調度
7.1.4 事務語義的影響
7.1.5 事務和調度的一種記法
7.1.6 習題
7.2 衝突可串行化
7.2.1 衝突
7.2.2 優先圖及衝突可串行化判斷
7.2.3 優先圖測試發揮作用的原因
7.2.4 習題
7.3 使用鎖的可串行化實現
7.3.1 鎖
7.3.2 封鎖調度器
7.3.3 兩階段封鎖
7.3.4 兩階段封鎖發揮作用的原因
7.3.5 習題
7.4 有多種鎖模式的封鎖係統
7.4.1 共享鎖與排他鎖
7.4.2 相容性矩陣
7.4.3 鎖的升級
7.4.4 更新鎖
7.4.5 增量鎖
7.4.6 習題
7.5 封鎖調度器的一種體係結構
7.5.1 插入鎖動作的調度器
7.5.2 鎖錶
7.5.3 習題
7.6 數據庫元素的層次
7.6.1 多粒度的鎖
7.6.2 警示鎖
7.6.3 幻象與插入的正確處理
7.6.4 習題
7.7 樹協議
……
第8章 再論事務管理
第9章 並行與分布式數據庫
第二部分 現代數據庫係統專題
第10章 信息集成
第11章 數據挖掘
第12章 數據庫係統與互聯網
精彩書摘
1.2.3 主存和緩衝區管理器
數據庫中的數據通常駐留在輔助存儲器中,在當今的計算機係統中,“輔助存儲器”通常就是磁盤。然而,數據必須在主存儲器中,纔能對其進行有用的操作。存儲管理器的任務是控製數據在磁盤上的放置和在磁盤與主存之間的移動。
在一個簡單的數據庫係統中,存儲管理器和底層操作係統的文件係統沒有什麼不同。但是。為瞭提高效率,DBMS通常直接控製在磁盤上的存儲,至少在一些情況下是這樣的。存儲管理器跟蹤文件在磁盤上所處的位置,獲得緩衝區管理器所要求的文件的磁盤塊號。
緩衝區管理器負責將可利用的主存空間分割成緩衝區,緩衝區是與頁麵同等大小的區域,磁盤塊的內容可以傳送到緩衝區中。這樣,所有需要從磁盤得到信息的DBMS成分都或直接或通過執行引擎與緩衝區和緩衝區管理器交互。
不同的DBMS成分所需要的信息的類型包括:
1.數據:數據庫自身的內容。
2.元數據:描述數據庫的結構及其約束的數據庫模式。
3.日誌記錄:關於最近對數據庫所做改變的信息,這些信息支持數據庫的持久性。
4.統計信息:DBMS收集和存儲的關於數據庫中的各個關係或其他成分的大小、取值等信息。
5.索引:支持對數據進行高效存取的數據結構。
1.2.4 事務處理
正如前麵所講,通常將一個或多個數據庫操作組成一組,稱作事務,事務是必須被作為一個原子,外觀上獨立於其他事務執行的單位。而且,DBMS保證持久性,即已完成事務所做的工作決不會丟失。事務管理器從應用係統接收事務命令,從而得知什麼時候事務開始,什麼時候事務結束,以及應用係統的期望(例如,某些應用可能不希望具有原子性)。
事務處理器執行下列任務:
1.日誌記錄:為瞭保證持久性,對於數據庫的每一個變化都在磁盤上記錄日誌。日誌管理器遵循幾種策略中的某一種進行工作,這些策略保證不管在什麼時候係統發生故障或“崩潰”,恢復管理器都能查看關於數據庫變化的日誌,並將數據庫恢復到某個一緻的狀態。開始時,日誌管理器將日誌寫到緩衝區中,然後它與緩衝區管理器協調,保證在適當的時候將緩衝區寫到磁盤中(磁盤中的數據不受係統崩潰的影響)。2.並發控製:事務的執行從錶麵上看必須是孤立的。但是在大多數係統中,實際上有許多事務在同時執行。因此,調度器(並發控製管理器)必須保證多個事務的一個個動作以一種適當的順序執行,從而使得最終的結果與這些事務事實上一個執行完瞭再執行下一個的結果相同。典型的調度器通過在數據庫的某些部分上維護若乾個鎖來進行它的工作。這些鎖防止兩個事務以造成不良後果的方式存取數據的相同部分。如圖1.1 所示,鎖通常存儲在主存儲器中的封鎖錶中。調度器禁止執行引擎訪問數據庫中被封鎖的部分,從而對查詢和其他數據庫操作的執行發生影響。
前言/序言
隨著計算機硬件、軟件技術的飛速發展和計算機係統在各行各業的廣泛應用,數據已經成為各種機構的寶貴資源,數據庫係統對於當今科研部門、政府機關、企事業單位等來說都是至關重要的。而數據庫係統中的核心軟件是數據庫管理係統(DBMS)。DBMS用於高效地創建和存儲大量的數據,並對數據進行有效的管理、處理和維護,是數據庫專傢和技術人員數十年研究開發的結果,是當前最復雜的係統軟件之一。要深入掌握數據庫係統的原理和技術,進而從事數據庫管理軟件和工具的開發,必須學習和研究數據庫管理係統實現技術。要深入瞭解數據庫係統的內部結構,以開發齣高效的數據庫應用係統,也需要學習和研究數據庫管理係統實現技術。
Hector Garcia�睲olina、Jeffrey D�盪llman和Jennifer Widom是斯坦福大學著名的計算機科學傢,多年來他們在數據庫係統領域中做瞭大量的開創性工作,由
數據庫係統實現(第2版) [Database System Implementation,Second Edition] 下載 mobi epub pdf txt 電子書 格式
數據庫係統實現(第2版) [Database System Implementation,Second Edition] 下載 mobi pdf epub txt 電子書 格式 2024
數據庫係統實現(第2版) [Database System Implementation,Second Edition] mobi epub pdf txt 電子書 格式下載 2024