20 個のガイド付き実践ラボで、PostgreSQL の高度な機能を学びます。基本的な表操作から、リレーショナル設計、特殊型、クエリ計画、トランザクション、データベースロジック、管理、拡張、接続プール、レプリケーションへ進み、SQL とコマンドラインを直接使用します。
各ラボは小さなローカル環境で 1 つの開発・運用テーマに集中します。クエリ計画の確認、PL/pgSQL 関数とトリガー、SQL バックアップと復元、PostGIS、PgBouncer の負荷試験、ストリーミングレプリカを実践します。複雑な機能を段階的に学びながら、本番上の制約も理解できます。
学習内容
- 外部キーで関係を設計し、内部結合と各種外部結合を比較する
- JSONB、配列、UUID、日時、タイムゾーン、CTE、サブクエリ、ウィンドウ関数を扱う
- インデックス作成、
EXPLAIN、表パーティション、GIN 全文検索を実装する - トランザクション、ロールバック、分離レベル、ロック、ビュー、マテリアライズドビューを管理する
- ストアド関数、行トリガー、イベントトリガー、PL/pgSQL 例外処理を開発する
- ロールと権限、バックアップ、復元、
VACUUM、ANALYZE、ログ確認を行う - PostGIS で点、距離、バッファ、交差を問い合わせる
- PgBouncer と PostgreSQL ストリーミングレプリケーションを設定・検証する
このコースの対象者
PostgreSQL の基礎を持ち、高度な機能を幅広くガイド付きで学びたい SQL 学習者、開発者、DB 管理者志望者向けです。実践的な理解には役立ちますが、短いラボは本番データベース基盤の設計・運用経験の代わりにはなりません。
前提知識: 基本 SQL、表、キー、クエリを理解し、Linux ターミナルを使える必要があります。多くのラボで SQL、サービス、設定コマンドを組み合わせるため、psql 経験を推奨します。
学習環境: 各ラボに Ubuntu 22.04 VNC デスクトップ、ローカル PostgreSQL、ターミナル、必要に応じて PostGIS や PgBouncer が用意されます。管理作業はローカルサービスと sudo を使い、クラウド DB や外部アカウントは不要です。
よくある質問
「高度」なのに Beginner なのはなぜですか?
20 ラボすべてが明示的な手順を提供するため Beginner とされています。ただし機能の幅は高度なので、SQL と PostgreSQL の基礎は重要です。各領域への導入であり、本番レベルの深さまでは扱いません。
レプリケーションは複数サーバーや高可用性を扱いますか?
いいえ。同じ VM で 5432 のプライマリと 5433 の読み取り専用レプリカを動かします。WAL、pg_basebackup、起動、監視、伝播は練習しますが、複数ホスト、 自動フェイルオーバー、災害復旧は扱いません。
PostGIS と PgBouncer に外部基盤は必要ですか?
不要です。両方ともローカルに導入します。空間問い合わせは小さな都市表、PgBouncer は localhost 上で pgbench と管理統計を使って試します。
管理ラボは本番運用にどの程度近いですか?
小さな使い捨て DB で、プレーン SQL の pg_dump や手動設定などの概念を示します。容量計画、セキュリティ強化、物理バックアップ、PITR、監視基盤、本番変更手順は範囲外です。


