PostgreSQL簡介:
MS Sqlserver、Sybase、Informix等多種數(shù)據(jù)庫的起源均可追溯至數(shù)據(jù)庫大師Michael Stonebreaker的Ingres項(xiàng)目。Stonbreaker大師在離開Informix CEO的位置后,啟動(dòng)了Ingres的后續(xù)項(xiàng)目,這就是Postgresql,這是具有正統(tǒng)高貴血緣的開源數(shù)據(jù)庫系統(tǒng),在今天以性能穩(wěn)定和高度開放著稱。在Oracle收購Mysql后,業(yè)內(nèi)人士擔(dān)心Mysql會(huì)被閉源,逐漸將應(yīng)用遷移到其它的數(shù)據(jù)庫選擇上,PostgreSQL是一項(xiàng)很好的選擇,它具備商業(yè)數(shù)據(jù)庫幾乎所有的特性,高度支持SQL語言,對開發(fā)人員友好,它的過程語言pgsql和Oracle的PLSQL是如此相像,以致于遷移應(yīng)用幾乎不用作過多的修改。今天Postgresql的應(yīng)用越來越廣泛,正在快速躥紅。
目前國內(nèi)對PostgreSQL的使用,主要反映在兩個(gè)范疇
1 用于取代MySQL和Oracle
2 作為數(shù)據(jù)庫產(chǎn)品原型,通過修改源碼構(gòu)筑自己的數(shù)據(jù)庫,例如通過使用pg的sql解析器,省去自己編寫sql解析器的困難。某些拿了政府大量補(bǔ)貼的“國產(chǎn)數(shù)據(jù)庫”軟件就是這么干的(在這里就不揭穿是哪家了^_^),EMC的分布式關(guān)系式數(shù)據(jù)庫Greenplum就是基于pg,加入分布式處理后脫胎換骨所成。
課程概述:
像編寫數(shù)據(jù)庫的人一樣理解Postgresql的實(shí)現(xiàn),讓我們這些具有聰明的頭腦的人更容易、更簡單的運(yùn)用數(shù)據(jù)庫技術(shù),可以從開發(fā)角度掌握擴(kuò)展數(shù)據(jù)庫功能的設(shè)計(jì)實(shí)現(xiàn),讓我們徜徉在Postgresql的世界。
本次課程是構(gòu)建在一個(gè)公司要封裝發(fā)展自有版本的Postgresql數(shù)據(jù)庫的背景上,用真實(shí)項(xiàng)目遷移到Postgresql而對數(shù)據(jù)庫做的改進(jìn)的工作為藍(lán)本,課程為你講述Postgresql實(shí)現(xiàn),講述實(shí)際項(xiàng)目應(yīng)用對Postgresql改進(jìn)需的過程。
課程為了同學(xué)更容易掌握Postgresql數(shù)據(jù)庫,特意安排了六周的Postgresql使用課程,讓從未接觸過Postgresql的同學(xué)可以順利上手使用該數(shù)據(jù)庫,做到了循序漸進(jìn)。
課程目標(biāo):
掌握Postgresql數(shù)據(jù)庫使用,掌握功能擴(kuò)展二次開發(fā)。
授課對象:
熟悉數(shù)據(jù)庫原理,Linux使用,C/C++語言。
對開源數(shù)據(jù)庫Postgresql感興趣。
預(yù)期收獲:
學(xué)會(huì)Postgresql的使用。
在源碼級上了解PostgreSQL。知道Postgresql如何實(shí)現(xiàn),從而獲得相關(guān)數(shù)據(jù)庫內(nèi)核研發(fā)的機(jī)會(huì)。
能力提升對C++的掌握,掌握在socket、IO、memory、Thread方面在Linux環(huán)境下的編程。
對數(shù)據(jù)庫引擎開發(fā)工作有一定的認(rèn)識,能夠融入數(shù)據(jù)庫應(yīng)用的方方面面。是SQL開發(fā)工程師、DBA升級成為架構(gòu)師的機(jī)會(huì)。
【課程內(nèi)容】
第一課 Postgresql使用基礎(chǔ):發(fā)展歷程、安裝、建庫。
第二課 Postgresql使用基礎(chǔ):客戶端使用、基本對象管理。
第三課 Postgresql使用基礎(chǔ):開發(fā)應(yīng)用中的基本特性。
第四課 Postgresql使用高級:全庫備份還原。
第五課 Postgresql使用高級:雙機(jī)環(huán)境搭建。
第六課 Postgresql使用高級:復(fù)制環(huán)境搭建。
第七課 Postgresql引擎開發(fā)基礎(chǔ):開發(fā)環(huán)境準(zhǔn)備。
第八課 Postgresql引擎開發(fā)基礎(chǔ):內(nèi)核邏輯結(jié)構(gòu)和運(yùn)行結(jié)構(gòu)實(shí)現(xiàn)分析,跟蹤調(diào)試數(shù)據(jù)庫,熟悉源代碼結(jié)構(gòu)。
第九課 Postgresql引擎開發(fā)基礎(chǔ):SQL語法分析器、優(yōu)化器實(shí)現(xiàn)分析,擴(kuò)展系統(tǒng)函數(shù)。
第十課 Postgresql引擎開發(fā)深入:數(shù)據(jù)遷移工具實(shí)現(xiàn)分析,修改完善COPY命令。
第十一課 Postgresql引擎開發(fā)深入:執(zhí)行優(yōu)化器實(shí)現(xiàn)分析,增加兼容其它數(shù)據(jù)庫存儲(chǔ)過程功能。
第十二課 Postgresql引擎開發(fā)深入:數(shù)據(jù)庫數(shù)據(jù)字典實(shí)現(xiàn)分析,擴(kuò)展系統(tǒng)性能動(dòng)態(tài)視圖。
第十三課 發(fā)布數(shù)據(jù)庫引擎:擴(kuò)展并運(yùn)行數(shù)據(jù)庫單元測試。
第十四課 發(fā)布數(shù)據(jù)庫引擎:構(gòu)建CentOS環(huán)境下RPM形式發(fā)布包。
第十五課 發(fā)布數(shù)據(jù)庫引擎:大型項(xiàng)目遷移到自主研發(fā)數(shù)據(jù)庫中,數(shù)據(jù)庫層面的功能完善需求分析與設(shè)計(jì)。