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






