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