-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
4/1 新書到! 3/25 新書到! 12/20新書到! 12/13 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

PostgreSQL服務器編程

( 簡體 字)
作者:(美)Hannu Krosing, Jim Mlodgenski, Kirk Roybal類別:1. -> 資料庫 -> PostgreSQL
譯者:
出版社:機械工業出版社PostgreSQL服務器編程 3dWoo書號: 39853
詢問書籍請說出此書號!

缺書
NT售價: 245

出版日:10/1/2014
頁數:184
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787111480570
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

greSQL服務器遠遠不只是一臺數據庫服務器。實際上,PostgreSQL甚至可以承擔起一個應用程序開發框架的角色,這個框架的優勢在于其具備事務支持、大量數據存儲、日志記錄、系統恢復等功能,以及PostgreSQL引擎提供的許多優秀特性。在蓬勃發展的商業化時代,如果你掌握了足夠的PostgreSQL相關知識,你將有能力滿足當前人才市場對高級PostgreSQL技能的強烈需求。

本書將帶你學習PostgreSQL函數基礎知識。在學習過程中,你將會使用各種程序語言(不限于自帶的PL/pgSQL語言)進行函數的編寫。這里你會看到我們如何創建可用的庫文件,如何將這些庫文件組裝成更有用的組件,并把這些組件分發到社區中;你也會看到我們如何從大量外部數據源中抽取數據,并通過擴展PostgreSQL完成數據的本地化處理;同時,你也可以在以上過程中使用一個超級棒的調試界面,這個調試界面可以讓你更加高效與放心地完成工作。

本書主要內容

第1章介紹了PostgreSQL程序設計的功能。該章闡述了服務器程序設計的基本概念,并通過一些真實案例來衡量評估這項技術。

第2章討論了PostgreSQL的開發環境。該章從PostgreSQL的商業優勢與技術優勢等角度出發,舉例說明了人們為什么會選擇在PostgreSQL中編程。

第3章介紹了PL/pgSQL這種存儲過程語言。該章主要介紹了函數的基礎結構和函數的幾個關鍵組成部分。

第4章在對PL/pgSQL介紹的基礎之上,介紹了返回結構化數據的功能,并展示了怎么將復雜的數據返回給一個應用程序。其中采用了幾種不同的方法,并對每種方法的優缺點進行了對比分析。

第5章主要探究了如何基于數據庫中發生的事件而觸發執行服務端處理邏輯。該章介紹了觸發器的概念,并對一些相關案例進行深入討論。

第6章展示了如何對服務端程序進行調試。該章首先介紹了基于日志的簡單通知機制,繼而闡述了如何使用交互式的圖形調試器進行調試工作。

第7章重點關注了 PL/pgSQL語言之外的其他服務端開發語言。該章選擇了Python作為開發語言,通過函數在數據庫外完成其他處理工作。

第8章深入探討了我們該如何使用原生的C代碼進行PostgreSQL擴展。通過幾個詳細的實例,闡述了幾種基礎理念,這幾種理念可以大大增強PostgreSQL的原生開發功能。

第9章主要闡述了另外一種存儲過程語言,這種語言可以讓PostgreSQL超越單一的物理服務器。同時該章也討論了一些實用的技術,通過這些技術可以高效地拆分數據,從而進行服務器擴展。

第10章討論了PostgreSQL擴展程序網絡架構,包括如何將代碼模塊發布到開源社區。

閱讀前的準備工作

為了能夠順利學習本書示例,你需要安裝以下軟件:

Ubuntu 12.04 LTS

PostgreSQL 9.2或更新版本的服務器

本書的讀者對象

本書是面向中高級PostgreSQL數據庫專業人員的書籍。為了更好地理解本書,你應該有一些編寫普通SQL語句的經驗、查詢優化的基本思路和一些使用自己選擇的語言進行代碼編寫的經驗。
內容簡介:

特色
本書由資深PostgreSQL專家撰寫,系統講解PostgreSQL服務器編程的方方面面,Amazon全五星評價。書中通過豐富的實例,循序漸進闡釋PostgreSQL開發和擴展的相關概念及各種實用技術,包含大量實用技巧和竅門,為快速掌握PostgreSQL服務器編程提供系統實踐指南。
全書共10章:第1章介紹PostgreSQL服務器編程的性能;第2章從PostgreSQL的商業與技術優勢等角度討論PostgreSQL的開發環境;第3章介紹PL/pgSQL函數,涵蓋其基礎結構和關鍵組成部分;第4章介紹返回結構化數據的功能,并展示如何將復雜數據返回給一個應用程序;第5章通過一些相關案例探究PL/pgSQL觸發器函數;第6章展示如何對服務器端程序進行調試;第7章介紹如何使用Python進行服務器端開發;第8章深入探討如何使用原生的C代碼進行PostgreSQL擴展;第9章主要闡述如何通過PL/Proxy擴展數據庫;第10章討論PostgreSQL擴展程序網絡架構,包括如何將代碼模塊發布到開源社區。
PostgreSQL可以為你提供所有在你擅長的開發語言中可以實現的功能,并且可以在數據庫服務器上擴展這些功能。在蓬勃發展的商業市場中,如果你掌握了足夠的PostgreSQL相關知識,你將有能力應對當前人才市場對高級PostgreSQL技能的強烈需求。
本書將向你展示出PostgreSQL遠遠不止是一個數據庫服務器。實際上,它是一個應用程序開發框架,這種框架的優勢在于其具備事務支持、大量數據存儲、日志系統、恢復等功能,以及許多PostgreSQL引擎提供的優秀特性。
本書將帶你學習PostgreSQL函數的基礎部分。在學習過程中,你將會使用各種程序語言(不限于自帶的PL/pgSQL語言)進行函數的編寫。

通過閱讀本書,你將學到
編寫函數并創建你自己的數據類型,所有這些都可以用你擅長的編程語言實現。
使用內置的PL/pgSQL編程語言,編寫和調試函數與觸發器。
從外部數據源抽取數據。
安裝與管理擴展應用,創建與發布你自己的擴展應用。
決定你的程序將使用什么樣的硬件資源。
如何使用你自己的開發語言來擴展數據庫內核,使其擁有你自己的特性。
目錄:

前 言

第1章 PostgreSQL服務器簡介 1

1.1 為什么在服務器中進行程序設計 2

1.2 關于本書的代碼示例 5

1.3 超越簡單函數 7

1.4 使用觸發器管理相關數據 8

1.5 審核更改 11

1.6 數據清洗 16

1.7 定制排序方法 17

1.8 程序設計最佳實踐 18

1.8.1 KISS——盡量簡單(keep it simple stupid) 18

1.8.2 DRY——不要寫重復的代碼(don’t repeat yourself) 19

1.8.3 YAGNI——你并不需要它(you ain’t gonna need it) 19

1.8.4 SOA——服務導向架構(service-oriented architecture) 19

1.8.5 類型的擴展 20

1.9 關于緩存 21

1.10 總結——為什么在服務器中進行程序設計 21

1.10.1 性能 21

1.10.2 易于維護 22

1.10.3 保證安全的簡單方法 22

1.11 小結 22

第2章 服務器程序設計環境 24

2.1 購置成本 25

2.2 開發者的可用性 26

2.3 許可證書 26

2.4 可預測性 27

2.5 社區 28

2.6 過程化語言 28

2.6.1 平臺兼容性 29

2.6.2 應用程序設計 30

2.6.3 更多基礎 32

2.7 小結 35

第3章 第一個PL/pgSQL函數 36

3.1 為什么是PL / pgSQL 36

3.2 PL/pgSQL函數的結構 37

3.3 條件表達式 39

3.3.1 通過計數器循環 43

3.3.2 對查詢結果進行循環 45

3.3.3 PERFORM與SELECT 47

3.4 返回記錄 47

3.5 處理函數結果 50

3.6 結論 51

第4章 返回結構化數據 52

4.1 集合與數組 52

4.2 返回集合 53

4.3 使用返回集合的函數 54

4.4 基于視圖的函數 56

4.5 OUT參數與記錄集 59

4.5.1 OUT參數 59

4.5.2 返回記錄集 60

4.5.3 使用RETURNS TABLE 61

4.5.4 不返回預定義結構 62

4.5.5 返回SETOF ANY 63

4.5.6 可變參數列表 65

4.6 RETURN SETOF變量總結 66

4.7 返回游標 66

4.7.1 對從另一個函數中返回的游標進行迭代處理 68

4.7.2 函數返回游標(多個游標)的小結 69

4.8 處理結構化數據的其他方法 69

4.8.1 現代復雜數據類型——XML和JSON 69

4.8.2 XML數據類型和從函數中返回XML數據 70

4.8.3 以JSON格式返回數據 72

4.9 小結 74

第5章 PL/pgSQL觸發器函數 75

5.1 創建觸發器函數 75

5.2 簡單的“嘿,我被調用了”觸發器 76

5.3 審核觸發器 79

5.4 無效的DELETE 81

5.5 無效的TRUNCATE 83

5.6 修改NEW記錄 83

5.7 不可改變的字段觸發器 84

5.8 當觸發器被調用時的控制策略 85

5.8.1 有條件的觸發器 86

5.8.2 在特定字段變化的觸發器 87

5.9 可視化 87

5.10 傳遞給PL/pgSQL TRIGGER函數的變量 88

5.11 小結 88

第6章 PL/pgSQL調試 90

6.1 使用RAISE NOTICE進行“手動”調試 91

6.1.1 拋出異常 92

6.1.2 文件日志 94

6.2 可視化調試 95

6.2.1 安裝調試器 96

6.2.2 安裝pgAdmin3 96

6.2.3 使用調試器 96

6.3 小結 98

第7章 使用無限制的開發語言 99

7.1 不受信任的語言是否比受信任的語言差 99

7.2 不受信任的語言是否會拖垮數據庫 100

7.3 為什么不受信任 100

7.4 PL/Python快速介紹 101

7.4.1 最小的PL/Python函數 101

7.4.2 數據類型轉換 102

7.4.3 使用PL/Python編寫簡單函數 103

7.4.4 在數據庫中運行查詢 106

7.4.5 使用PL/Python編寫觸發器函數 108

7.4.6 構建查詢 113

7.4.7 處理異常 113

7.4.8 Python中的原子性 115

7.4.9 PL/Python調試 116

7.5 跳出“SQL 數據庫服務器”的限制進行思考 119

7.5.1 在保存圖像時生成縮略圖 119

7.5.2 發送一封電子郵件 120

7.6 小結 121

第8章 使用C編寫高級函數 122

8.1 最簡單的C函數——返回(a+b) 123

8.1.1 add_func.c 123

8.1.2 Makefile 125

8.1.3 創建add(int,int)函數 126

8.1.4 add_func.sql.in 126

8.1.5 關于寫C函數的總結 127

8.2 為add(int, int)添加功能 127

8.2.1 NULL參數的智能處理 128

8.2.2 與任何數量的參數一起運作 129

8.3 C函數編寫的基礎指南 134

8.4 來自C函數的錯誤報告 136

8.4.1 并非錯誤的“錯誤”狀態 136

8.4.2 消息何時被發送到客戶端 137

8.5 運行查詢與調用PostgreSQL函數 137

8.5.1 使用SPI的示例C函數 138

8.5.2 數據更改的可見性 139

8.5.3 SPI_*函數的更多相關信息 140

8.6 將記錄集作為參數或返回值處理 140

8.6.1 返回復雜類型的單個元組 141

8.6.2 從參數元組中提取字段 143

8.6.3 構建一個返回元組 143

8.6.4 插曲——什么是Datum 144

8.6.5 返回一個記錄集 144

8.7 快速獲取數據庫變更 147

8.8 在提交/回滾時處理情況 148

8.9 在后端間進行同步 148

8.10 C語言的額外資源 149

8.11 小結 149

第9章 使用PL/Proxy擴展數據庫 151

9.1 簡單的單服務器通話 151

9.2 處理跨多數據庫的成功分表 157

9.2.1 什么擴展計劃有用和什么時候有用 158

9.2.2 跨多服務器的數據分區 158

9.2.3 PL/Proxy——分區語言 162

9.2.4 從單數據庫移動數據到分區的數據庫 168

9.3 小結 169

第10章 發布自己的PostgreSQL擴展程序 170

10.1 什么時候創建擴展程序 170

10.2 未封裝的擴展程序 171

10.3 擴展程序版本 172

10.4 .control文件 173

10.5 構建擴展程序 173

10.6 安裝擴展程序 174

10.7 發布擴展程序 175

10.7.1 關于PostgreSQL Extension Network的簡介 175

10.7.2 注冊以發布擴展程序 176

10.7.3 創建擴展項目的簡單方法 178

10.7.4 提供擴展程序的相關元數據 179

10.7.5 編寫擴展代碼 182

10.7.6 創建程序包 183

10.7.7 向PGXN提交程序包 183

10.8 安裝PGXN上的擴展程序 185

10.9 小結 185
序: