magazine.gif新標準PostgreSQL

CHAPTER 1 データベースの基礎知識

  • 1-1 RDBMS概説
    • 1-1-1 RDBMS
    • 1-1-2 オブジェクト・リレーショナルデータベース
    • 正規化
  • 1-2 SQLの文法
    • 1-2-1 SQLとは
    • 1-2-2 データ定義言語(DDL:Data Definition Language)
    • 1-2-3 データ制御言語(DCL:Data Control Language)
    • 1-2-4 データ操作言語(DML:Data Manipulate Language)
    • 1-2-5 レコードの取り出し
    • 1-2-6 テーブルの結合
  • 1-3 ビューについて
    • 1-3-1 ビューでできること
  • 1-4 トランザクション
    • 1-4-1 トランザクションの方法
    • 1-4-2 トランザクションの隔離レベル
  • 1-5 PostgreSQLを使う理由

CHAPTER 2 システムのスタートアップ(Windows編)

  • 2-1 PostgreSQLのインストール
    • 2-1-1 インストールの実施
    • 2-1-2 初期設定の実施
    • 2-1-3 設定ファイル
    • COLUMN Windows版インストーラでうまくいかないケース

CHAPTER 3 システムのスタートアップ(Linux編)

  • 3-1 PostgreSQLのインストール
    • 3-1-1 インストールの実施
    • 3-1-2 環境変数の設定およびデータベースの初期化
    • 3-1-3 設定ファイル

CHAPTER 4 PostgreSQLひとめぐり

  • 4-1 データベースの準備
    • 4-1-1 サーバーに接続しよう
    • 4-1-2 ユーザーを作成しよう
    • 4-1-3 データベースを作成しよう
    • 4-1-4 データベースクラスタとは?
    • 4-1-5 サーバーを停止するには?
  • 4-2 テーブル操作ひとめぐり
    • 4-2-1 SQLを実行する
    • 4-2-2 テーブルを作成する
    • 4-2-3 レコードを追加する
    • 4-2-4 条件をつけてレコードを検索する
    • 4-2-5 レコードをソートする
    • 4-2-6 集約関数を使う
    • 4-2-7 レコードを更新する
    • 4-2-8 レコードを削除する
    • 4-2-9 テーブルを削除する
  • 4-3 SQL文法のまとめ
    • 4-3-1 SQL文
    • 4-3-2 コメント
    • 4-3-3 識別子
    • 4-3-4 定数値
    • COLUMN psql〜WindowsとLinuxの違いなど〜

CHAPTER 5 アプリケーションからDBをコントロールしよう

  • 5-1 PHPによる接続
    • 5-1-1 PHPひとめぐり
    • 5-1-2 準備とソフトウェアの構成
    • 5-1-3 データを取り出して一覧表示
    • 5-1-4 データを検索する
    • 5-1-5 データを追加する
    • 5-1-6 データを更新する
    • 5-1-7 データを削除する
  • 5-2 Javaによる接続
    • 5-2-1 JavaによるWebアプリケーション開発概要
    • 5-2-2 サンプルプログラムの配備
    • 5-2-3 サンプルプログラムをビルドする
    • 5-2-4 データベースへアクセスする
    • 5-2-5 全件検索する
    • 5-2-6 条件検索する
    • 5-2-7 追加する
    • 5-2-8 変更する
    • 5-2-9 削除する
    • 5-2-10 まとめ
  • 5-3 その他の言語からの接続
    • 5-3-1 Perlからの接続
    • 5-3-2 Pythonからの接続
    • 5-3-3 .NETからの接続
    • 5-3-4 Rubyからの接続

CHAPTER 6 PostgreSQLを使いこなす

  • 6-1 テーブル定義いろいろ
    • 6-1-1 カラムに制約をつける
    • 6-1-2 外部キー制約
    • 6-1-3 カラムのデフォルト値
    • 6-1-4 インデックスを作る
    • 6-1-5 スキーマを利用する
    • 6-1-6 テーブル定義をあとから変更する
  • 6-2 数値を扱う
    • 6-2-1 数値のデータ型のいろいろ
    • 6-2-2 演算子と算術関数
  • 6-3 文字列を扱う
    • 6-3-1 文字列を扱うデータ型
    • 6-3-2 文字列を加工する
    • 6-3-3 パターンマッチ
    • 6-3-4 全文検索機能
  • 6-4 日付時刻を扱う
    • 6-4-1 日付時刻のデータ型
    • 6-4-2 日付時刻の入出力
    • 6-4-3 日付時刻を演算する
  • 6-5 複雑な問い合わせをする
    • 6-5-1 テーブルを結合する
    • 6-5-2 副問い合わせ(サブクエリー)
    • 6-5-3 問い合わせ結果を結合する
    • 6-5-4 再問い合わせ
  • 6-6 集計をする
    • 6-6-1 集約関数各種
    • 6-6-2 GROUP BY/HAVING
    • 6-6-3 DISTINCT
    • 6-6-4 ウィンドウ関数を使う
  • 6-7 ビューとルール
    • 6-7-1 ビューを定義する
    • 6-7-2 ルールを定義する
  • 6-8 トランザクションを設計する
    • 6-8-1 トランザクションとは?
    • 6-8-2 同時実行制御
  • 6-9 権限を設定する
    • 6-9-1 ロール
    • 6-9-2 GRANT/REVOKE
  • 6-10 落ち穂ひろい
    • 6-10-1 COPY
    • 6-10-2 PREPARE
    • 6-10-3 カーソル
    • 6-10-4 配列

CHAPTER 7 ユーザー定義関数

  • 7-1 はじめに
    • 7-1-1 これから使うテーブルとデータ
  • 7-2 ユーザー定義関数の基本
    • 7-2-1 簡単な例
    • 7-2-2 関数定義の詳細
    • 7-2-3 オーバーロードについて
    • 7-2-4 関数定義の表示
  • 7-3 PL/pgSQLの利用
    • 7-3-1 PL/pgSQLに紹介
    • 7-3-2 PL/pgSQLの利用準備
    • 7-3-3 PL/pgSQLによる関数定義の基本
    • 7-3-4 制御構造
  • 7-4 トリガとトリガ関数について
    • 7-4-1 トリガとは
    • 7-4-2 トリガの登録
    • 7-4-3 トリガの使用例

CHAPTER 8 Webアプリケーションを作る

  • 8-1 書籍管理システムを作ろう(PHP)
    • 8-1-1 システムの仕様
    • 8-1-2 システムの構成
    • 8-1-3 検索機能
    • 8-1-4 コメント機能
    • 8-1-5 書籍追加機能
    • 8-1-6 まとめ
  • 8-2 アンケートシステムを作ろう(Java)
    • 8-2-1 アンケートシステムの概要
    • 8-2-2 データベースの定義
    • 8-2-3 Webアプリケーションの配備
    • 8-2-4 データベースへアクセスする(コネクションプーリング)
    • 8-2-5 アンケートに答える
    • 8-2-6 アンケートを管理する
    • 8-2-7 アンケートを登録する
    • 8-2-8 アンケートを削除する
    • 8-2-9 文字エンコーディング設定
    • 8-2-10 Apacheとの連携
    • 8-2-11 まとめ

CHAPTER 9 データベースの管理

  • 9-1 接続の設定
    • 9-1-1 postgresql.confによる接続条件の設定
    • 9-1-2 pg_hba.confファイルの設定
  • 9-2 バックアップを取る
    • 9-2-1 オンラインバックアップ
    • 9-2-2 ポイントインタイムリカバリ(PITR)による差分バックアップ
  • 9-3 ログを取る
    • 9-3-1 postgresql.confによるログ出力の設定
    • 9-3-2 postgresql.confによるログ出力項目の設定
  • 9-4 性能を維持する
    • 9-4-1 ANALYZE
    • 9-4-2 VACUUM
    • 9-4-3 自動VACUUM
    • 9-4-4 REINDEX

CHAPTER 10 パフォーマンスチューニング

  • 10-1 VACCUM/ANALYZEしてますか?
    • 10-1-1 VACUUMが十分に行われているかどうか確認する
    • 10-1-2 ANALYZEが適切に行われているか確認する
  • 10-2 設定ファイルでリソースを調整しよう
    • 10-2-1 メモリの設定
    • 10-2-2 データの書く込み方
  • 10-3 実行プランを改善しよう
    • 10-3-1 EXPLAINでSQLの実行プランを確認
    • 10-3-2 実行プランを改善しよう
  • 10-4 実行時統計情報を活用しよう
    • 10-4-1 実行時統計情報の設定
    • 10-4-2 現在の実行状態を取得
    • 10-4-3 累積的な実行時統計情報
  • 10-5 ディスク読み書きのチューニング
    • 10-5-1 テーブルスペース機能とディスク分散
    • COLUMN pgbench
    • COLUMN generate_series関数
    • 10-5-2 テーブルパーティショニングを使う

APPENDIX 1 各種設定情報 ~Java、PHP、Perl、Ruby~

  • A1-1 インストールと設定〜Windows編〜
    • A1-1-1 ApachePHPの操作
    • A1-1-2 サーブレット/JSP環境のインストール
    • A1-1-3 Ruby環境のインストール
    • A1-1-4 Perl環境のインストール
    • A1-1-5 Pyton環境のインストール
    • A1-1-6 .NET環境のインストール
  • A1-2 インストールと設定〜linux編〜
    • A1-2-1 Apacheのインストール
    • A1-2-2 PHPのインストール
    • A1-2-3 サーブレット/JSP環境のインストール
    • A1-2-4 Ruby環境のインストール
    • A1-2-5 Perl環境のインストール
    • A1-2-6 Pyton環境のインストール

APPENDIX 2 PostgreSQLで使えるツール群

  • A2-1 PostgreSQL用の外部ツール
    • A2-1-1 強力なGUI管理ツール PgAdminIII
    • A2-1-2 WebベースのPostgreSQL管理ツール phpPgAdmin
    • A2-1-3 データベースのレプリケーションツール Slony-I
    • A2-1-4 多機能コネクションプーリングツール pgpool/pgpool-II
    • A2-1-5 PostgreSQL関連ツールを開発、配布しているWebサイト

APPENDIX 3 バージョン8.4への移行

  • A3-1 PostgreSQLのバージョンアップ
    • A3-1-1 マイナーバージョンだけアップする場合
    • A3-1-2 メジャーバージョンをアップする
    • A3-1-3 停止時間をもっと短くしたい

APPENDIX 4 日本語の扱いについて

  • A4-1 PostgreSQLと文字エンコーディング
    • A4-1-1 PostgreSQLの文字エンコーディング処理
    • A4-1-2 Webアプリケーションでの文字エンコーディングの実際
    • COLUMN 文字セットとエンコーディング

APPENDIX 5 PostgreSQLの設定パラメータ一覧

  • A5-1 設定パラメータ
    • A5-1-1 postgresql.confで設定する
    • A5-1-2 postgresの引数で設定する
    • A5-1-3 SETコマンドで設定する
    • A5-1-4 パラメータ一覧

索引