新刊
同人誌・104ページ・50部頒布・紙・2,000円本書はデータベースおよびPostgreSQLの脱初級者向けの本です。
想定している読者は、次のような方です。
●目次
はじめに
第1 章GUI でPostgreSQL を操作してみよう
1.1 pgAdmin 4
1.2 インストール
1.3 起動
1.4 サーバーの追加
1.5 データベースの追加
1.6 テーブルの作成
1.7 SQL を実行する
1.8 その他の機能・注意点
第2 章プログラムからPostgreSQL を操作しよう・準備編
2.1 何を作るのか?
2.2 プログラミング言語
2.3 CUI? GUI?
2.3.1 Flask の動作確認
2.3.2 動作確認の解説
2.3.3 Flask の終了
2.4 Web ページのデザインは?
2.4.1 Bootstrap のセットアップ
2.5 ドライバ
2.6 オブジェクト関係マッピング
2.7 月の計算
2.8 データベースの準備
2.8.1 postgresql.conf の修正
2.8.2 ユーザの作成
2.8.3 データベースの作成
2.8.4 pg_hba.conf の修正
2.8.5 テーブルの作成
第3 章プログラムからPostgreSQL を操作しよう・実践編
3.1 ページテンプレートの作成
3.1.1 Jinja2
3.2 トップページの作成
3.2.1 トップページHTML の作成
3.2.2 トップページ表示関数
3.3 従業員一覧ページ
3.3.1 config ファイルの作成
3.3.2 データベースクラスの作成
3.3.3 モデルを作成する
3.3.4 従業員一覧ページを表示する関数
3.3.5 従業員一覧ページHTML の作成
3.4 従業員追加・削除機能の追加
3.4.1 従業員追加ページの作成
3.4.2 従業員追加関数の作成
3.4.3 従業員削除ページ
3.4.4 従業員削除関数の作成
3.5 シフト表示画面
3.5.1 月間シフト取得関数
3.5.2 月間シフト表示ページの作成
3.6 当日シフト表示画面
3.6.1 当日シフト取得関数
3.6.2 当日シフト表示ページの作成
3.7 シフト入力機能の追加
3.7.1 シフト入力画面の作成
3.7.2 シフト入力画面遷移関数の作成
3.7.3 シフト入力関数の作成
3.8 シフト削除機能の追加
3.8.1 シフト削除関数の追加
3.9 さらに発展させるには
3.10 ORM の功罪
第4 章性能問題調査
4.1 データベースの性能調査の前に
4.1.1 ボトルネックを見極める
4.1.2 本当に改善しなければならないのか考える
4.1.3 目標値を定める
4.2 性能調査の準備
4.2.1 postgresql.conf
4.2.2 サーバリソース状況を収集しておく
4.3 性能問題ケース
4.3.1 SELECT が遅い
4.3.2 JOIN すると遅い
4.3.3 UPDATE が遅い
4.4 CHECKPOINT
4.4.1 CHECKPOOINT のチューニング
4.4.2 CHECKPOINT とWAL の関係
4.5 ディスクIO を分散する
4.5.1 テーブルファイルを分散する
4.5.2 WAL を分散する
第5 章セキュリティと監査
5.1 データベースにおけるセキュリティ
5.2 アクセス制御
5.3 権限分掌
5.3.1 属性の割り当て
5.3.2 オブジェクト権限
5.4 データベースにおける監査機能
5.5 監査方針
5.6 監査に必要なデータ
5.7 ログの保存
5.8 PostgreSQL における監査ログ
5.8.1 log_statement
5.8.2 pgAudit
5.8.3 商用の監査ログ収集ツール
あとがき
本書はデータベースおよびPostgreSQLの入門書です。
想定している読者は、次のような方です。
●目次
はじめに
第1 章 始めましょうデータベース生活
1.1 データベースという概念
1.2 データベースを管理する
1.3 データを破壊から守護(まも) る
1.4 関係モデルとは
1.4.1 関係モデルの用語
1.5 なぜDBMS を使うのか
1.5.1 同時にデータにアクセスできる
1.5.2 大容量データを扱える
1.5.3 データの矛盾・重複を防ぐ
1.5.4 別テーブルを関連付けて検索できる
第2 章 PostgreSQL 概要
2.1 PostgreSQL 前史
2.2 PostgreSQL の開発形態
PostgreSQL のバージョン番号
2.3 PostgreSQL の特徴
2.3.1 ライセンス
2.3.2 豊富な拡張機能
2.4 なぜPostgreSQL を使うの?
2.5 日本PostgreSQL ユーザ会
第3 章 PostgreSQL をインストールしよう
3.1 Linux へのPostgreSQL のインストール
3.2 既存のPostgreSQL をアンインストール
3.3 YUM リポジトリの登録
3.4 PostgreSQL インストール
3.5 postgres ユーザの環境変数
第4 章 データベースを作成しよう
4.1 データベースの作成?
4.2 データベースクラスタ
4.3 initdb
4.4 データベースクラスタの構成
4.4.1 主なディレクトリ
4.4.2 主なファイル
4.5 起動
4.6 psql でデータベースに接続
4.7 通常使用するユーザを作りましょう
4.7.1 ユーザの作成
4.7.2 ユーザの属性
4.7.3 pg_hba.conf の修正
4.8 切断
4.9 停止
マルチインスタンス
第5 章 テーブルを作ろう
5.1 またデータベース?
5.1.1 デフォルトデータベース
5.1.2 データベースの新規作成
5.2 スキーマ
5.3 テーブルの作成
5.3.1 データ型
5.3.2 NULL について
5.3.3 主キー
5.3.4 正規化
5.3.5 外部キー
5.4 テーブルの情報を確認
5.4.1 テーブル一覧
5.4.2 テーブル構造の確認
第6 章 SQL でデータを操作してみよう
6.1 INSERT
6.2 SELECT
6.2.1 基本形
6.2.2 条件を指定してレコードを抽出
6.2.3 テーブル内のレコードの件数を数える
6.2.4 FROM 句を指定しないデータ取得
6.2.5 グループ化
6.2.6 取得結果をソートする
6.3 結合
6.3.1 内部結合
6.3.2 外部結合
6.4 UPDATE
6.5 DELETE
第7 章 トランザクションと同時実行制御
7.1 トランザクション
7.2 同時実行制御
7.2.1 ロック
7.2.2 デッドロック
7.3 トランザクション分離レベル
7.4 psql でのトランザクション
7.5 データ永続化の鍵を握るWAL ファイル
第8 章 追記型アーキテクチャとVACUUM
8.1 追記型アーキテクチャ
8.1.1 ここでも同時実行制御
8.2 不要領域の再利用
8.2.1 VACUUM
8.2.2 自動VACUUM
8.3 VACUUM FULL
8.3.1 ACCESS EXCLUSIVE ロック
8.3.2 テーブルサイズの倍の領域が一時的に必要
第9 章 止まらないデータベースシステムを構成しよう
9.1 冗長化
9.2 ストリーミングレプリケーション
9.2.1 レプリケーション専用ユーザの作成
9.2.2 pg_hba.conf 修正
9.2.3 postgresql.conf 修正
9.2.4 インスタンスの複製
9.2.5 recovery.conf 編集
9.2.6 セカンダリ起動
9.2.7 レプリケーション状態の確認
9.3 非同期レプリケーション
9.4 ストリーミングレプリケーションの仕組み
ロジカルレプリケーション
第10 章 データが壊れても元に戻せるようにしよう
10.1 バックアップの目的
10.2 リカバリ要件を決める
10.3 オフラインバックアップ
10.4 オンラインバックアップ
10.5 論理バックアップ
10.5.1 pg_dump
10.5.2 pg_dumpall
10.5.3 論理バックアップのリストア
10.6 物理バックアップ
10.6.1 データディレクトリのコピー
10.6.2 pg_basebackup
10.6.3 物理バックアップのリストア
10.7 ポイント・イン・タイム・リカバリ(PITR)
10.7.1 ここでもWAL が出てきます
10.7.2 WAL アーカイブ運用
10.7.3 ベースバックアップ取得
10.7.4 リカバリ
recovery.conf
付録A 他のDBMS の紹介
A.1 Oracle Database
A.1.1 テーブル名の大文字と小文字
A.1.2 表領域とテーブル空間
A.1.3 ユーザとスキーマの関係
A.2 MySQL
A.2.1 スキーマが存在しない
A.2.2 プロセスとスレッド
A.2.3 結合が不得意
A.3 MongoDB
あとがき