PostgreSQL 课程大纲

基础入门

  • PostgreSQL 简介和特性
  • 安装和环境配置
  • 创建第一个数据库
  • 基本SQL语句 (SELECT, INSERT, UPDATE, DELETE)
  • psql命令行工具使用

核心概念

  • 数据类型
  • 表和约束
  • 索引
  • 视图
  • 模式(Schema)
  • 事务和ACID

高级查询

  • 子查询
  • 连接(JOIN)
  • 集合操作(UNION, INTERSECT, EXCEPT)
  • 窗口函数
  • 公共表表达式(CTE)

数据库设计

  • 范式化
  • ER图
  • 主键和外键
  • 继承
  • 分区表

性能优化

  • 查询计划分析
  • 索引优化
  • 查询优化
  • 配置调优
  • VACUUM和ANALYZE

高级特性

  • 存储过程和函数
  • 触发器
  • 事件触发器
  • 全文搜索
  • JSON和JSONB支持

并发控制

  • 锁机制
  • MVCC(多版本并发控制)
  • 死锁处理
  • 隔离级别

备份和恢复

  • pg_dump和pg_restore
  • 连续归档和时间点恢复(PITR)
  • 复制和流复制
  • 故障转移和高可用性

安全性

  • 用户和角色管理
  • 权限控制
  • SSL连接
  • 行级安全性

扩展和插件

  • 常用扩展介绍(如PostGIS, pgcrypto)
  • 自定义扩展开发
  • 外部数据包装器(FDW)

管理和监控

  • 日志管理
  • 性能监控
  • 连接池(如PgBouncer)
  • 数据库集群管理

与应用程序集成

  • JDBC和ODBC驱动
  • ORM工具(如Hibernate, SQLAlchemy)
  • 连接池最佳实践

大数据和分析

  • 并行查询
  • 物化视图
  • 数据仓库设计
  • 与Hadoop生态系统集成

云端PostgreSQL

  • Amazon RDS for PostgreSQL
  • Azure Database for PostgreSQL
  • Google Cloud SQL for PostgreSQL

版本更新和迁移

  • 主要版本特性介绍
  • 升级策略
  • 从其他数据库迁移到PostgreSQL

实战项目

  • 设计和实现一个博客系统数据库
  • 构建一个电商平台的数据模型
  • 开发一个时间序列数据分析应用

工具和资源

  • pgAdmin和其他GUI工具
  • 常用扩展和工具推荐
  • 社区资源和文档