PostgreSQL 數(shù)據(jù)庫(kù)內(nèi)核分析

出版時(shí)間:2012-1  出版社:機(jī)械工業(yè)出版社華章公司  作者:彭智勇,彭煜瑋  
Tag標(biāo)簽:無(wú)  

內(nèi)容概要

  postgresql是目前廣泛應(yīng)用的開(kāi)源數(shù)據(jù)庫(kù)管理系統(tǒng)?!禤ostgreSQL
數(shù)據(jù)庫(kù)內(nèi)核分析》從postgresql數(shù)據(jù)庫(kù)的源代碼入手,深入分析了該數(shù)據(jù)庫(kù)管理系統(tǒng)的底層實(shí)現(xiàn)細(xì)節(jié),揭示了數(shù)據(jù)庫(kù)運(yùn)行的基本原理?!禤ostgreSQL
數(shù)據(jù)庫(kù)內(nèi)核分析》的主要內(nèi)容包括:postgresql數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)、
存儲(chǔ)管理、索引機(jī)制、查詢(xún)編譯、查詢(xún)執(zhí)行、并發(fā)控制機(jī)制以及安全等。每個(gè)主題都引用了大量的數(shù)據(jù)結(jié)構(gòu)、圖表等進(jìn)行說(shuō)明,使讀者對(duì)實(shí)現(xiàn)過(guò)程和機(jī)理一目了然。
  《postgresql數(shù)據(jù)庫(kù)內(nèi)核分析》適合從事數(shù)據(jù)庫(kù)領(lǐng)域相關(guān)研究的技術(shù)人員、高等院校相關(guān)專(zhuān)業(yè)高年級(jí)本科生或研究生閱讀,有助于讀者進(jìn)行數(shù)據(jù)庫(kù)的高級(jí)開(kāi)發(fā)、基于postgresql定制滿(mǎn)足需求的數(shù)據(jù)庫(kù)系統(tǒng),或者在數(shù)據(jù)庫(kù)內(nèi)核中實(shí)現(xiàn)并驗(yàn)證數(shù)據(jù)庫(kù)新技術(shù)。

作者簡(jiǎn)介

   彭智勇,武漢大學(xué)計(jì)算機(jī)學(xué)院教授,博士生導(dǎo)師,日本京都大學(xué)博士,中國(guó)計(jì)算機(jī)學(xué)會(huì)數(shù)據(jù)庫(kù)專(zhuān)業(yè)委員會(huì)委員,長(zhǎng)期從事數(shù)據(jù)庫(kù)理論與技術(shù)的研究和教學(xué)工作。在武漢大學(xué)開(kāi)設(shè)了“數(shù)據(jù)庫(kù)基礎(chǔ)”、“數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)”、“數(shù)據(jù)庫(kù)內(nèi)核分析”等數(shù)據(jù)庫(kù)系列課程?!? 彭煜瑋,武漢大學(xué)計(jì)算機(jī)學(xué)院講師、博士,長(zhǎng)期從事數(shù)據(jù)庫(kù)理論與技術(shù)研究以及教學(xué)工作,主要負(fù)責(zé)“數(shù)據(jù)庫(kù)內(nèi)核分析”等課程的實(shí)踐教學(xué)工作。

書(shū)籍目錄

前言
第1章 postgresql系統(tǒng)概述
1.1 postgresql簡(jiǎn)介及發(fā)展歷程
1.2 postgresql的特性
1.3 postgresql的應(yīng)用
1.4 postgresql代碼結(jié)構(gòu)
1.5 安裝postgresql
1.6 postgresql數(shù)據(jù)庫(kù)命令
第2章 postgresql的體系結(jié)構(gòu)
2.1 系統(tǒng)表
2.2 數(shù)據(jù)集簇
2.3 postgresql進(jìn)程結(jié)構(gòu)
2.4 守護(hù)進(jìn)程postmaster
2.5 輔助進(jìn)程
2.6 服務(wù)進(jìn)程postgres
2.7 小結(jié)
第3章 存儲(chǔ)管理
3.1 存儲(chǔ)管理器的體系結(jié)構(gòu)
3.2 外存管理
3.3 內(nèi)存管理
3.4 表操作與元組操作
3.5 vacuum機(jī)制
3.6 resourceowner資源跟蹤
3.7 小結(jié)
第4章 索引
4.1 概述
4.2 b-tree索引
4.3 hash索引
4.4 gist索引
4.5 gin索引
4.6 tsearch2全文搜索
4.7 小結(jié)
第5章 查詢(xún)編譯
5.1 概述
5.2 查詢(xún)分析
5.3 查詢(xún)重寫(xiě)
5.4 查詢(xún)規(guī)劃
5.5 代價(jià)估計(jì)
5.6 postgresql中的遺傳算法
5.7 小結(jié)
第6章 查詢(xún)執(zhí)行
6.1 查詢(xún)執(zhí)行策略
6.2 數(shù)據(jù)定義語(yǔ)句執(zhí)行
6.3 可優(yōu)化語(yǔ)句執(zhí)行
6.4 計(jì)劃節(jié)點(diǎn)
6.5 其他子功能介紹
6.6 小結(jié)
第7章 事務(wù)處理與并發(fā)控制
第8章 數(shù)據(jù)庫(kù)安全
附錄a 用eclipse開(kāi)發(fā)和調(diào)試postgresql

章節(jié)摘錄

   6.6小結(jié)   本章介紹了PostgreSQL中對(duì)于各種SQL語(yǔ)句的一般執(zhí)行流程。對(duì)于用戶(hù)輸入的SQL語(yǔ)句,優(yōu)化器將為可優(yōu)化語(yǔ)句生成計(jì)劃樹(shù),最終Portal會(huì)通過(guò)判斷選擇Executor來(lái)處理,而數(shù)據(jù)描述語(yǔ)句則在執(zhí)行過(guò)程中由Portal使其統(tǒng)一進(jìn)入Process Utility過(guò)程進(jìn)行執(zhí)行。   作為查詢(xún)執(zhí)行部分的入口,Portal提供了對(duì)外的調(diào)用接口:PortaIStart、PortalRun、Port,alEnd,對(duì)內(nèi)提供了執(zhí)行流程和部件的選擇。外層通過(guò)調(diào)用Portal接口,將計(jì)劃器輸出的執(zhí)行計(jì)劃傳遞給Portal,Portal通過(guò)對(duì)于鏈表中操作的類(lèi)型和鏈表長(zhǎng)度等信息來(lái)決定選擇怎樣的執(zhí)行過(guò)程,對(duì)于簡(jiǎn)單的查詢(xún)語(yǔ)句直接調(diào)用Executor,對(duì)于需要緩存輸出直到執(zhí)行完成的語(yǔ)句則需要為其增加緩存結(jié)構(gòu)和輸出過(guò)程,對(duì)于更為復(fù)雜的過(guò)程提供了更為通用的復(fù)雜處理流程。不論哪種執(zhí)行過(guò)程,優(yōu)化器生成的查詢(xún)計(jì)劃樹(shù)由Executor來(lái)處理,而其他數(shù)據(jù)描述語(yǔ)句的功能由ProcessUtility來(lái)完成。   對(duì)于種類(lèi)繁多的數(shù)據(jù)描述語(yǔ)句,每種都有一個(gè)Stmt類(lèi)型的數(shù)據(jù)結(jié)構(gòu)保存其語(yǔ)法分析的信息,通過(guò)對(duì)于Stmt類(lèi)型的判斷,ProcessUtility會(huì)為其調(diào)用相應(yīng)的語(yǔ)法解析和執(zhí)行處理過(guò)程?!? 可優(yōu)化語(yǔ)句則會(huì)提供Plan類(lèi)的子類(lèi)對(duì)象構(gòu)成的計(jì)劃樹(shù),每個(gè)計(jì)劃節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)共同繼承于Plan節(jié)點(diǎn),計(jì)劃樹(shù)的每種節(jié)點(diǎn)對(duì)應(yīng)了一種物理操作,被分為四大類(lèi),除了對(duì)應(yīng)于關(guān)系代數(shù)的各種操作外,還增加了掃描、物化、唯一等操作。每種節(jié)點(diǎn)根據(jù)所對(duì)應(yīng)的操作的不同,執(zhí)行器都為其實(shí)現(xiàn)了初始化、執(zhí)行和清理流程。   Plan只是一個(gè)查詢(xún)計(jì)劃,初始化過(guò)程中為這個(gè)計(jì)劃里的每個(gè)節(jié)點(diǎn)生成狀態(tài)節(jié)點(diǎn)并構(gòu)造狀態(tài)樹(shù),保存執(zhí)行中的相關(guān)信息。最終通過(guò)Executor執(zhí)行每種節(jié)點(diǎn)的執(zhí)行函數(shù)來(lái)實(shí)現(xiàn)各種節(jié)點(diǎn)的物理操作,在執(zhí)行中利用狀態(tài)樹(shù)中信息處理相關(guān)數(shù)據(jù)。各節(jié)點(diǎn)的執(zhí)行過(guò)程普遍包含了投影和選擇操作,以及對(duì)于下層節(jié)點(diǎn)的處理過(guò)程調(diào)用?!? Executor通過(guò)迭代的調(diào)用每個(gè)節(jié)點(diǎn)處理過(guò)程,從下層計(jì)劃節(jié)點(diǎn)對(duì)應(yīng)的執(zhí)行流程中獲取數(shù)據(jù),并經(jīng)過(guò)各種節(jié)點(diǎn)的處理流程,得到最終的輸出結(jié)果。對(duì)于修改元組的相關(guān)操作則是在獲取到元組后通過(guò)調(diào)用相關(guān)存儲(chǔ)操作接口實(shí)現(xiàn)的?!? 執(zhí)行過(guò)程需要使用存儲(chǔ)和索引提供的接口存取數(shù)據(jù),并涉及事務(wù)和權(quán)限控制等內(nèi)容,這些會(huì)在相關(guān)章節(jié)給出更加詳細(xì)的介紹?!? ……

編輯推薦

   《PostgreSQL 數(shù)據(jù)庫(kù)內(nèi)核分析》系統(tǒng)、深入地剖析開(kāi)源數(shù)據(jù)庫(kù)PostgreSQL的實(shí)現(xiàn)機(jī)制和工作原理,作者跟蹤、研究PostgreSQL源代碼十年的嘔心之作?!? 《PostgreSQL 數(shù)據(jù)庫(kù)內(nèi)核分析》按照PostgreSQL的體系結(jié)構(gòu),從存儲(chǔ)、索引、查詢(xún)編譯、查詢(xún)執(zhí)行、并發(fā)控制以及安全幾個(gè)方面切入,全面介紹PostgreSQL各種機(jī)制的運(yùn)行原理。為了清晰闡述復(fù)雜的運(yùn)行機(jī)理,書(shū)中穿插了大量的原理圖、程序流程圖進(jìn)行輔助講解,使數(shù)據(jù)庫(kù)的運(yùn)行過(guò)程一目了然?!禤ostgreSQL 數(shù)據(jù)庫(kù)內(nèi)核分析》沒(méi)有單純地介紹數(shù)據(jù)庫(kù)原理或逐行分析源代碼,而是從數(shù)據(jù)庫(kù)設(shè)計(jì)者的角度,闡釋數(shù)據(jù)庫(kù)內(nèi)部各個(gè)模塊之間如何配合實(shí)現(xiàn)各種功能?!? 《PostgreSQL 數(shù)據(jù)庫(kù)內(nèi)核分析》基于開(kāi)源數(shù)據(jù)庫(kù)管理系統(tǒng)PostgreSQL 8.4.1,對(duì)其底層運(yùn)行、實(shí)現(xiàn)機(jī)制進(jìn)行了詳盡介紹,使讀者從全局的角度理解數(shù)據(jù)庫(kù)管理系統(tǒng)?!? 《PostgreSQL 數(shù)據(jù)庫(kù)內(nèi)核分析》作者一直從事數(shù)據(jù)庫(kù)相關(guān)的科研、教學(xué)工作,深知要進(jìn)行數(shù)據(jù)庫(kù)的設(shè)計(jì)、開(kāi)發(fā)、高層次的研究或其他創(chuàng)新性的工作,分析數(shù)據(jù)庫(kù)源代碼是一個(gè)行之有效的方法。基于這一理念,作者于十年前在武漢大學(xué)率先開(kāi)設(shè)了“數(shù)據(jù)庫(kù)內(nèi)核分析”課程,《PostgreSQL 數(shù)據(jù)庫(kù)內(nèi)核分析》的編寫(xiě)理念、內(nèi)容架構(gòu)也在這十年間不斷成熟和完善。   《PostgreSQL 數(shù)據(jù)庫(kù)內(nèi)核分析》從數(shù)據(jù)庫(kù)學(xué)習(xí)、研究者的認(rèn)知規(guī)律出發(fā),以典型的開(kāi)源數(shù)據(jù)庫(kù)管理系統(tǒng)為例,揭示了一個(gè)真實(shí)數(shù)據(jù)庫(kù)管理系統(tǒng)運(yùn)行背后的奧秘。作者從源代碼入手,將PostgreSQL的存儲(chǔ)管理、索引、查詢(xún)編譯、查詢(xún)執(zhí)行、并發(fā)控制、安全保障機(jī)制的實(shí)現(xiàn)原理、機(jī)制間的交互配合全景展現(xiàn),讀者不僅能夠了解PostgreSQL的設(shè)計(jì)原理,提升對(duì)數(shù)據(jù)庫(kù)的認(rèn)識(shí),更能在此基礎(chǔ)上進(jìn)行數(shù)據(jù)庫(kù)系統(tǒng)的定制、數(shù)據(jù)庫(kù)內(nèi)核開(kāi)發(fā)等設(shè)計(jì)層面的工作。

圖書(shū)封面

圖書(shū)標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    PostgreSQL 數(shù)據(jù)庫(kù)內(nèi)核分析 PDF格式下載


用戶(hù)評(píng)論 (總計(jì)20條)

 
 

  •   一直在尋找postgresQL方面的書(shū)籍,很高興看到這本書(shū),很有幫助。
  •   少有的postgresql的中文書(shū)籍
  •   適于初入者學(xué)習(xí),數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)需要專(zhuān)門(mén)的書(shū)
  •   了解內(nèi)核,不錯(cuò)的一本書(shū),寫(xiě)的很詳盡
  •   紙張質(zhì)量很好,內(nèi)容適合以后從事數(shù)據(jù)研究的人
  •   內(nèi)容豐富,作者寫(xiě)的很認(rèn)真負(fù)責(zé),當(dāng)當(dāng)配送給力,次日就到了,全新書(shū)籍,沒(méi)有瑕疵,喜歡
  •   實(shí)驗(yàn)室導(dǎo)師要求買(mǎi)的書(shū)!
  •   講的比較細(xì),更像是代碼的解讀
  •   介紹數(shù)據(jù)庫(kù)使用和開(kāi)發(fā)的內(nèi)容較少
  •   紙張不錯(cuò),觀感很好,這種主題的書(shū)在國(guó)內(nèi)比較少,看書(shū)的簡(jiǎn)介是說(shuō)本書(shū)來(lái)自大學(xué)教學(xué)研究的心得,不過(guò)國(guó)內(nèi)做研究的風(fēng)氣不敢恭維,所以要等讀了以后才能下結(jié)論
  •   這次國(guó)內(nèi)出這個(gè)書(shū),感覺(jué)還不錯(cuò),內(nèi)容也夠多
  •   書(shū)寫(xiě)得不好,太抽象,概念居多,實(shí)操?zèng)]有,但就算是講概念,邏輯連貫性差,經(jīng)常是跳躍式地講,無(wú)一定功底讀起來(lái)很費(fèi)解。
  •   太枯燥太枯燥太枯燥太枯燥太枯燥太枯燥
  •   偏向數(shù)據(jù)庫(kù)實(shí)現(xiàn)
  •   還沒(méi)有看!先收藏著!
  •   內(nèi)核分析
  •   為數(shù)不多的postgres的書(shū)籍
  •   次購(gòu)物的總體滿(mǎn)意度如何?
  •   用來(lái)提綱契領(lǐng)的書(shū),
  •   數(shù)據(jù)庫(kù)從業(yè)者的好書(shū)
 

250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7