PostgreSQL服务器编程 封面

PostgreSQL服务器编程

暂无评分
章节数
11
丛书
数据库技术丛书
ISBN
9787111480570

标签

内容简介

本书讲的是把 PostgreSQL 当作一个可编程的应用开发平台来用,而不仅仅把它当数据仓库。全书共 10 章:先说明为什么要把部分业务逻辑放到数据库服务器里执行,比较在服务器端与在应用端写代码的取舍,并给出 KISS、DRY、YAGNI、SOA 等程序设计原则与缓存方面的建议;接着讨论服务器端开发环境的成本、许可、社区与过程化语言选择;随后系统讲解 PL/pgSQL 函数的结构、条件与循环、返回记录,以及如何返回集合、数组、游标等结构化数据;再通过实例讲解 PL/pgSQL 触发器函数、变更审核与数据清洗;书中还介绍了服务器端程序的调试方法、用 Python 进行服务器端开发、用原生 C 代码编写 PostgreSQL 扩展,以及借助 PL/Proxy 做数据库水平拆分,最后讲到扩展程序的架构与如何把自研模块发布到社区。读者可以从中了解如何用自己熟悉的语言编写函数、自定义类型,从外部数据源抽取数据,并安装、管理与发布 PostgreSQL 扩展。

编辑推荐

这本书的价值在于把话题定在了很多 PostgreSQL 使用者长期绕开的区域:服务器端。多数人把 PG 当纯存储用,函数、触发器、自定义类型、C 扩展一概不碰,于是本该在数据库里一次完成的事,被拆成多次网络往返和应用层循环。三位作者都是社区里摸爬滚打多年的实战派,Hannu Krosing 是 2ndQuadrant 的首席顾问、1995 年就开始用 PostgreSQL,Jim Mlodgenski 曾任美国 PostgreSQL 协会董事,Kirk Roybal 长期做报表与数据仓库方案,写出来的内容偏向「怎么做成」而不是语法手册。全书篇幅不大,节奏紧凑,从 PL/pgSQL 起步,一路走到 Python 过程语言、C 扩展和 PL/Proxy 分库,覆盖面在同类书里少见。需要提醒的是,原书成于 PostgreSQL 9.x 时代,部分示例与工具链(如调试插件、扩展打包方式)在今天的新版本上需要自行调整。

适合谁读

适合

  • 已会写 SQL、想进一步使用 PostgreSQL 函数与触发器的开发者
  • 需要把数据清洗、审计、计算逻辑下沉到数据库的架构师
  • 要编写或维护 PostgreSQL 扩展(含 C 扩展)的工程师
  • 希望了解 PL/Proxy 等分库方案的技术负责人

不适合

  • 完全没有 SQL 与数据库基础的入门读者
  • 只想学 PostgreSQL 安装、备份、日常运维的 DBA
  • 寻找 PostgreSQL 17/18 新特性与最新最佳实践的读者

阅读建议

  1. 先读第 1、2 章明确「什么该放进数据库」,再动手写函数,避免把逻辑堆进库里
  2. 第 3~5 章务必边读边在本地实例上敲代码,返回集合与触发器的部分看懂和写对差别很大
  3. C 扩展与 PL/Proxy 两章可先通读思路,需要时再按书中示例在虚拟机里搭环境实验
  4. 书中示例基于较老版本,遇到报错先查当前版本的官方文档,不要照抄语法

出版社简介

机械工业出版社 中国 · 成立于 1950 年

机械工业出版社(China Machine Press)在科技与专业出版之外,库内图书还体现出对心理学、计算机、管理、财经与社科等方向的持续关注。心理学方面收入荣格作品及分析心理学导论,并涉及压力与健康、成瘾与疗愈等应用议题;计算机领域有《计算机程序的构造和解释(JavaScript版)》;管理与财经类包括《管理行为(原书第4版)》《不平等的代价(珍藏版)》《这次不一样:八百年金融危机史(纪念版)》;科学哲学与科学史方面则有《世界观(原书第3版)》。相关作者资源涵盖C.G.荣格、威廉·麦圭尔、索努·沙姆达萨尼、加博尔·马泰等。公开资料有限,以上仅据库内图书归纳其出版面貌。

目录

  1. 前言
  2. 第1章 PostgreSQL 服务器简介
  3. 第2章 服务器程序设计环境
  4. 第3章 第一个 PL/pgSQL 函数
  5. 第4章 返回结构化数据
  6. 第5章 PL/pgSQL 触发器函数
  7. 第6章 服务器端程序的调试
  8. 第7章 使用 Python 进行服务器端开发
  9. 第8章 使用原生 C 代码扩展 PostgreSQL
  10. 第9章 使用 PL/Proxy 扩展数据库
  11. 第10章 扩展程序的架构与发布

常见问题

这本书适合零基础学 PostgreSQL 吗?
不太适合。书中假设读者已能写常规 SQL、了解表与索引,直接进入服务器端函数与扩展开发。零基础建议先读一本 PostgreSQL 入门或官方教程,再回来看本书。
书中的代码在新版 PostgreSQL 上还能跑吗?
大部分 PL/pgSQL 语法仍然通用,但书中涉及的部分调试工具、扩展安装方式与 C 扩展接口在后续版本有变化,需要对照当前版本的官方文档做调整。
PL/pgSQL 和 PL/Python 应该先用哪个?
一般先用 PL/pgSQL,它与 SQL 集成最好、部署最省事;当需要复杂计算、调用 Python 生态库,或要与外部系统交互时,再考虑 PL/Python 等过程语言。
书中讲的 PL/Proxy 现在还有用吗?
PL/Proxy 仍是 PostgreSQL 生态中做水平拆分与远程过程调用的可选方案之一,但如今更多团队会选择应用层分片或分布式数据库中间件,读这一章重在理解拆分思路。

读者评论

查询本书

本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。

同类高分