---
note: 全13回の用語定義監査（作業用）。初出位置・定義の有無・欠陥分類の台帳
created: 2026-08-16T10:00:00+09:00
---

# 用語定義の監査台帳（作業用）

全13回（`00-index.md` は索引のため対象外）を走査し、SQLキーワード・組み込み関数・記法・
PostgreSQL固有の概念語・psqlメタコマンド・EXPLAIN出力のノード名・拡張/ツール名について、
初出位置と定義の有無を記録した台帳である。修正作業の根拠として残す。

## 判定基準

- **あり** … 「XとはYである」「XはYと呼ぶ」「X（＝Y）」のように、その用語が何であるかを述べる文が存在する
- **なし** … 用途や効果の説明だけで、それが何であるかの文がない
- 括弧書きの原語併記のみ（例: `CTE`（Common Table Expression））は「なし」に分類する

「到達目標」「到達度チェックリスト」での言及は目標の提示であり、初出・定義の先出しとは見なさない。
初出位置は本編・ハンズオン・前提と準備の本文を対象とする。

## 欠陥分類

| 分類 | 内容 |
|---|---|
| A | 定義より前の回で説明なしに使われている（先出し） |
| B | その回の主役は定義されるが、補助的な関数・記法・キーワードが定義されない |
| C | 構文の形は示されるが「それが何であるか」の定義文がない |
| D | 下位概念（種類・段階・レベル）は個別に定義されるが、それらを束ねる上位概念が定義されない |
| E | 略語が初出時に展開されていない |
| — | 欠陥なし |

## 監査観点

走査のたびに次を確認する。D・E は第2次監査で追加した観点である。

- 用語が初出時点で定義されているか。用途や効果の説明だけになっていないか。
- 定義がその用語を使う回より後の回にないか（先出し）。
- 各回のタイトル・主題に含まれる上位概念語が、個別の下位概念の定義だけで
  済まされていないか。「1NF/2NF/3NFは定義されているが正規形が定義されていない」
  型の抜けを疑う。
- 略語がすべて初出時に展開されているか。原語併記は定義ではないが、
  略語の展開は定義とは別に必須とする。

## 台帳

初出位置の行番号は第1次監査（2026-08-16）時点のものであり、その後の追記でずれている場合がある。

### 第1回 環境構築・エンコーディング/照合順序

| 用語 | 初出（ファイル:行） | 定義の有無 | 定義位置 | 欠陥分類 |
|---|---|---|---|---|
| メタコマンド（psql） | 01:84 | あり | 01:84 | — |
| `\l` / `\dt` / `\d` / `\c` / `\timing` / `\q` | 01:86-93 | あり | 01:86-93（表） | — |
| エンコーディング | 01:111 | あり | 01:123 | — |
| 照合順序（collation） | 01:111 | あり | 01:111, 125 | — |
| `LC_COLLATE` / `LC_CTYPE` | 01:111 | あり | 01:125 | — |
| `C` ロケール | 01:116 | あり | 01:125 | — |
| ICU | 01:131 | あり | 01:131 | — |
| `template0` / `template1` | 01:118 | あり | 01:173, 187 | — |
| `GENERATED BY DEFAULT AS IDENTITY` | 01:214 | なし | （04:219 で「サロゲートキー」として間接的に） | B |
| `numeric(p,s)` | 01:231 | あり | 05:70 | A（軽微・01:209 に後述予告あり） |
| `timestamptz` / `timestamp` | 01:209 | あり | 01:395（表） | — |
| `generate_series` | 01:302 | あり | 01:302 | — |
| `random()` | 01:302 | あり | 01:302 | — |
| `interval '365 days'` | 01:302 | なし | 05:165 | B |
| `::`（キャスト記法） | 01:323 | なし | （どこにもなし） | B |
| `\|\|`（文字列連結） | 01:308 | なし | （どこにもなし） | B |
| `ARRAY[...]`（配列リテラル） | 01:309 | なし | （どこにもなし） | B |
| `floor` / `round` | 01:309, 323 | なし | （どこにもなし） | B（軽微） |
| `ON CONFLICT ... DO NOTHING` | 01:351 | なし | 11:245（べき等登録の文脈） | B |
| `LATERAL` | 01:362 | なし | （どこにもなし） | B |
| `UNION ALL` | 01:446 | あり | 01:465 | — |
| GUC | 01:383 | なし（括弧書きのみ） | （どこにもなし） | B |
| B-tree | 01:386 | あり | 07:101 | A |
| `REINDEX` | 01:386 | なし | （どこにもなし） | B（軽微） |
| `pg_dump` / `pg_restore` | 01:383 | あり | 12:61 | A（軽微） |
| `pg_collation` | 01:131 | なし | （どこにもなし） | B（軽微） |
| `COLLATE` 句 | 01:171 | あり | 01:171 文脈 | — |

### 第2回 関係モデル

| 用語 | 初出（ファイル:行） | 定義の有無 | 定義位置 | 欠陥分類 |
|---|---|---|---|---|
| 関係（relation）/ タプル / 属性 / 定義域 | 02:59-64 | あり | 02:59-64（表） | — |
| 述語（predicate） | 02:109 | あり | 02:109 | — |
| プランナ | 02:103 | あり | 02:103 | — |
| 論理的評価順序 | 02:122 | あり | 02:126（表） | — |
| 集合演算（`UNION`/`INTERSECT`/`EXCEPT`） | 02:198 | あり | 02:233（表） | — |
| 三値論理 / unknown | 02:278 | あり | 02:280 | — |
| `IS NULL` / `IS NOT NULL` | 02:355 | あり | 02:355 | — |
| `COUNT(*)` / `COUNT(列名)` | 02:375 | あり | 02:377 | — |
| `VALUES`（テーブルとしての） | 02:317 | なし | （どこにもなし） | B |
| `::text`（キャスト） | 02:321 | なし | （どこにもなし） | B |
| `DISTINCT` | 02:244 | なし | （どこにもなし） | B（軽微） |
| `WITH`（CTE） | 02:591（課題2 想定解答） | あり | 03:305 | **A** |
| 集約関数 | 02:260 | あり | 03:159 | A（軽微） |

### 第3回 SQL を書ききる

| 用語 | 初出（ファイル:行） | 定義の有無 | 定義位置 | 欠陥分類 |
|---|---|---|---|---|
| `INNER JOIN` / `LEFT JOIN` / 自己結合 | 03:62 | あり | 03:62（表） | — |
| `GROUP BY` / 集約関数 | 03:159 | あり | 03:159 | — |
| サブクエリ / 相関・非相関 | 03:226 | あり | 03:226 | — |
| `EXISTS` | 03:278 | あり | 03:278 | — |
| CTE（`WITH` 句） | 03:305 | あり | 03:305 | — |
| `MATERIALIZED` | 03:341 | あり | 03:341 | — |
| **ウィンドウ関数** | 03:348 | **なし**（形のみ） | （どこにもなし） | **C** |
| `PARTITION BY` / フレーム句 | 03:363-368 | あり | 03:363-368 | — |
| `ROW_NUMBER` / `RANK` / `LAG` / `LEAD` | 03:370, 443, 468 | あり | 同左 | — |
| `date_trunc` | 03:175 | なし | （どこにもなし） | B |
| `coalesce` | 03:630 | なし | （どこにもなし） | B |
| `DISTINCT ON` | 03:602 | なし | （どこにもなし） | B |
| `array_agg` | 03:660 | なし | （どこにもなし） | B（軽微） |
| `\x auto` | 03:45 | なし | （第1回のメタコマンド表に無い） | B |
| `interval '7 days'` | 03:139 | なし | 05:165 | B |

### 第4回 論理設計と正規化

| 用語 | 初出（ファイル:行） | 定義の有無 | 定義位置 | 欠陥分類 |
|---|---|---|---|---|
| ER図 / 多重度（カーディナリティ） | 04:42 | あり | 04:42 | — |
| 鳥の足記法 | 04:44 | あり | 04:44 | — |
| 関数従属 / 決定項 / 候補キー | 04:57 | あり | 04:57 | — |
| 1NF / 2NF / 3NF / BCNF | 04:115, 123, 151, 178 | あり | 同左 | — |
| 部分従属 / 推移従属 | 04:121, 149 | あり | 同左 | — |
| **スーパーキー** | 04:151 | **なし** | （どこにもなし） | **B** |
| 素属性 | 04:151 | あり | 04:151（括弧内に定義） | — |
| 自然キー / サロゲートキー | 04:219 | あり | 04:219, 221（表） | — |
| 外部キー（FK）制約 | 04:280 | あり | 04:280 | — |
| 無損失分解 | 04:398 | なし（括弧書きのみ） | （どこにもなし） | B（軽微） |
| 更新異常 / 挿入異常 / 削除異常 | 04:349, 363, 377 | あり | 同左 | — |
| `CREATE TABLE ... AS` | 04:126 | なし | （どこにもなし） | B（軽微） |

### 第5回 データ型と制約設計

| 用語 | 初出（ファイル:行） | 定義の有無 | 定義位置 | 欠陥分類 |
|---|---|---|---|---|
| 整数系 / 浮動小数点系 / `numeric` | 05:61 | あり | 05:61, 64（表） | — |
| `text` / `varchar(n)` / `char(n)` | 05:114 | あり | 05:114 | — |
| `date` / `interval` | 05:165 | あり | 05:165 | — |
| `boolean` | 05:184 | あり | 05:184 | — |
| ENUM型 | 05:188 | あり | 05:194 文脈・05:210（表） | — |
| `jsonb` | 05:224 | あり | 05:224 | — |
| `->` / `->>` / `@>` / `?`（jsonb演算子） | 05:224 | なし（列挙のみ） | （`@>` のみ 06:149） | B |
| **GIN インデックス** | 05:224 | あり | 07:233（表） | **A** |
| NOT NULL / UNIQUE / CHECK / 主キー / 外部キー | 05:259-271 | あり | 同左 | — |
| 参照アクション（`ON DELETE`/`ON UPDATE`） | 05:273 | あり | 05:273 | — |
| 生成列 | 05:293 | あり | 05:293 | — |
| ドメイン型 | 05:316 | あり | 05:316 | — |
| **DDL** | 05:137 | **なし** | 10:462 に部分的（`ddl` は定義変更のみ） | **B** |
| **ORM** | 05:328 | **なし** | （どこにもなし） | **B** |
| `CREATE TEMP TABLE` | 05:119 | なし | （どこにもなし） | B（軽微） |
| `jsonb_to_recordset` | 05:249 | なし | （どこにもなし） | B（軽微） |

### 第6回 実務のモデリング

| 用語 | 初出（ファイル:行） | 定義の有無 | 定義位置 | 欠陥分類 |
|---|---|---|---|---|
| range型 / `tstzrange` | 06:58 | あり | 06:58 | — |
| `&&` / `@>`（範囲演算子） | 06:58 | あり | 06:58, 149 | — |
| 排他制約（`EXCLUDE USING gist`） | 06:92 | あり | 06:95 | — |
| `btree_gist` | 06:26 | なし（必要理由のみ） | （どこにもなし） | B |
| 半開区間 `'[)'` | 06:95 | あり | 06:95 | — |
| **トリガ** | 06:74 | **なし**（用途のみ） | （どこにもなし） | **C** |
| PL/pgSQL / `$$` / `OLD`・`NEW` / `RAISE EXCEPTION` | 06:196-215 | なし | （どこにもなし） | B |
| `IS DISTINCT FROM` | 06:220 | なし | （どこにもなし） | B（軽微） |
| **ビュー** | 06:266 | **なし**（用途のみ） | （どこにもなし） | **C** |
| **部分インデックス** | 06:251 | あり | 07:212 | **A** |
| 論理削除 | 06:239 | あり | 06:239 | — |
| 中間テーブル / 実体化 | 06:277, 289 | あり | 同左 | — |
| 非正規化 | 06:295 | あり | 06:295 | — |
| `RETURNING` | 06:363 | なし | （どこにもなし） | B（軽微） |
| レース条件 | 06:117 | なし | 09:133 に相当内容 | B（軽微） |

### 第7回 ストレージとインデックス

| 用語 | 初出（ファイル:行） | 定義の有無 | 定義位置 | 欠陥分類 |
|---|---|---|---|---|
| ヒープ / ページ / タプル | 07:51 | あり | 07:51 | — |
| 行ポインタ（ItemId） | 07:53 | あり | 07:53 | — |
| TID / `ctid` | 07:77 | あり | 07:77 | — |
| B-tree（根・内部・葉） | 07:101 | あり | 07:101-105 | — |
| 複合索引 | 07:127 | あり | 07:127 | — |
| カバリング索引 / `INCLUDE` | 07:189 | あり | 07:189, 210 | — |
| Index Only Scan | 07:189 | あり | 07:189 | — |
| 可視性マップ | 07:210 | あり | 07:210（括弧内に定義） | — |
| 部分索引 | 07:212 | あり | 07:212 | — |
| Hash / GIN / GiST / BRIN | 07:233 | あり | 07:233（表） | — |
| **`pg_trgm`** | 07:237 | **なし** | （どこにもなし） | **B** |
| **オペレータクラス / opclass** | 07:235（略称が先）| **なし** | （どこにもなし。07:289, 299 で用語だけ使用） | **B** |
| `text_pattern_ops` | 07:289 | あり | 07:299 | — |
| 式インデックス | 07:313 | あり | 07:313 | — |
| **`IMMUTABLE`** | 07:325 | **なし** | （どこにもなし） | **B** |
| **Seq Scan / Index Scan / Bitmap Heap Scan / Index Cond / Filter / Buffers / Heap Fetches** | 07:21, 143, 146, 206, 281 | あり | 08:97, 102（表）ほか | **A** |
| **`VACUUM` / 自動バキューム** | 07:97, 210 | あり | 12:238, 241 | **A** |
| `ANALYZE`（統計収集） | 07:31 | あり | 08:146 | A（軽微） |
| `SHOW block_size` | 07:44 | なし | （どこにもなし） | B（軽微） |

### 第8回 実行計画を読む

| 用語 | 初出（ファイル:行） | 定義の有無 | 定義位置 | 欠陥分類 |
|---|---|---|---|---|
| プランナ / 実行計画 | 08:12 | あり | 08:12（02:103 でも） | — |
| `EXPLAIN` の3オプション | 08:34 | あり | 08:34（表） | — |
| `cost` / `rows` / `width` / `actual time` / `loops` | 08:83-87 | あり | 同左 | — |
| Seq / Index / Index Only / Bitmap スキャン | 08:97 | あり | 08:97（表） | — |
| Nested Loop / Hash Join / Merge Join | 08:121 | あり | 08:121（表） | — |
| 統計情報 / `pg_stats` | 08:146 | あり | 08:146 | — |
| n_distinct / most_common_vals / histogram_bounds | 08:148-150 | あり | 同左 | — |
| **共有バッファ** | 08:89 | **なし** | （どこにもなし） | **B** |
| **選択率** | 08:95 | **なし**（括弧書きのみ） | （どこにもなし） | **B** |
| **`work_mem`** | 08:124 | **なし**（括弧書きのみ） | （どこにもなし） | **B** |
| `random_page_cost` | 08:138 | あり | 08:138 | — |
| **拡張統計** | 08:183 | **なし** | （どこにもなし） | **B** |
| `VACUUM ANALYZE` / 自動バキューム | 08:29, 180 | あり | 12:238, 241 | **A** |
| `track_io_timing` | 08:51 | なし | （どこにもなし） | B（軽微） |
| HashAggregate / Aggregate / Group Key | 08:70, 256 | なし | （どこにもなし） | B（軽微） |

### 第9回 トランザクションと並行制御

| 用語 | 初出（ファイル:行） | 定義の有無 | 定義位置 | 欠陥分類 |
|---|---|---|---|---|
| トランザクション | 09:58 | あり | 09:58 | — |
| ACID | 09:58 | あり | 09:60（表） | — |
| アノマリー（5種） | 09:71 | あり | 09:73-77 | — |
| 分離レベル | 09:67 | あり | 09:67, 79 | — |
| スナップショット分離 | 09:95 | あり | 09:95 | — |
| SSI | 09:97 | あり | 09:97 | — |
| MVCC / `xmin` / `xmax` | 09:101 | あり | 09:101-104 | — |
| スナップショット | 09:106 | あり | 09:106 | — |
| デッドタプル / ブロート | 09:131 | あり | 09:131 | — |
| read-modify-write | 09:135 | あり | 09:135 | — |
| 行ロック / 排他ロック | 09:177 | あり | 09:177 | — |
| デッドロック | 09:237 | あり | 09:237 | — |
| **`SQLSTATE`** | 09:97 | **なし**（括弧書きのみ） | （どこにもなし） | **B** |
| **`VACUUM`** | 09:124 | あり | 12:238 | **A** |
| xmin ホライズン | 09:377 | なし | （どこにもなし） | B（軽微） |
| `pg_stat_activity` | 09:395 | あり | 12:353 | A（軽微） |

### 第10回 権限・ロール・RLS・監査

| 用語 | 初出（ファイル:行） | 定義の有無 | 定義位置 | 欠陥分類 |
|---|---|---|---|---|
| ロール / `LOGIN` 属性 | 10:62 | あり | 10:62 | — |
| ロール属性一覧 | 10:73 | あり | 10:73（表） | — |
| 権限（privilege） | 10:89 | あり | 10:89 | — |
| グループロール / ログインロール | 10:93 | あり | 10:67, 93 | — |
| `ALTER DEFAULT PRIVILEGES` | 10:109 | あり | 10:118 | — |
| 認証 / 認可（3層モデル） | 10:205 | あり | 10:219（表） | — |
| RLS / ポリシー | 10:231 | あり | 10:231, 235 | — |
| `USING` / `WITH CHECK` | 10:312 | あり | 10:312-315 | — |
| `BYPASSRLS` / `FORCE ROW LEVEL SECURITY` | 10:79, 425 | あり | 同左 | — |
| マルチテナント | 10:233 | あり | 10:233（括弧内に定義） | — |
| fail-closed | 10:363 | あり | 10:363 | — |
| `pg_hba.conf` / 認証方式 | 10:500 | あり | 10:500, 523 | — |
| pgaudit | 10:472 | あり | 10:472, 486 | — |
| DML | 10:453 | あり | 10:453（括弧内に定義） | — |
| DDL | 10:462 | 部分的 | 10:462 | B（05 側で先出し） |
| セッション変数 / `current_setting` | 10:350 | あり | 10:361 | — |
| システムカタログ | 10:550 | あり | 10:550（括弧内） | — |

### 第11回 アプリとの境界＋インジェクション

| 用語 | 初出（ファイル:行） | 定義の有無 | 定義位置 | 欠陥分類 |
|---|---|---|---|---|
| N+1 問題 | 11:54 | あり | 11:54 | — |
| 遅延ロード / eager ロード | 11:142, 152 | あり | 同左 | — |
| バックエンドプロセス | 11:161 | あり | 11:161 | — |
| コネクションプール | 11:166 | あり | 11:166 | — |
| pgbouncer のプーリングモード | 11:185 | あり | 11:187（表） | — |
| べき等性 | 11:235 | あり | 11:235 | — |
| SQL インジェクション | 11:250 | あり | 11:250 | — |
| プレースホルダ / parse・bind | 11:298 | あり | 11:298 | — |
| 許可リスト（allowlist） | 11:353 | あり | 11:353 | — |
| 多層防御 | 11:374 | あり | 11:374 | — |
| `= ANY($1)` | 11:99 | なし（用途のみ） | （どこにもなし） | B |
| ORM | 11:13 | なし | （どこにもなし。05 で先出し） | B |
| advisory lock / `LISTEN`・`NOTIFY` | 11:196 | なし（列挙のみ） | （どこにもなし） | B（軽微） |
| `VACUUM` / デッドタプル | 11:222 | あり | 12:238 / 09:131 | A（軽微） |

### 第12回 運用＋pg_stat_statements

| 用語 | 初出（ファイル:行） | 定義の有無 | 定義位置 | 欠陥分類 |
|---|---|---|---|---|
| 論理バックアップ / 物理バックアップ | 12:61 | あり | 12:61 | — |
| WAL | 12:98 | あり | 12:98 | — |
| PITR | 12:13 | あり | 12:13, 100 | — |
| `recovery.signal` / 復旧パラメータ | 12:116 | あり | 12:116 | — |
| 復旧試験 | 12:139 | あり | 12:135 | — |
| `ACCESS EXCLUSIVE` ロック | 12:144 | あり | 12:144 | — |
| `CREATE INDEX CONCURRENTLY` | 12:149 | あり | 12:147-156 | — |
| テーブル書き換え（rewrite） | 12:169 | あり | 12:169 | — |
| `NOT VALID` → `VALIDATE` | 12:187 | あり | 12:187 | — |
| `lock_timeout` / 待ち行列 | 12:217 | あり | 12:217 | — |
| 死タプル / bloat | 12:233, 235 | あり | 同左 | — |
| `VACUUM` / `VACUUM FULL` / autovacuum | 12:238, 241, 244 | あり | 同左 | — |
| `pg_stat_statements` | 12:288 | あり | 12:288 | — |
| `pg_stat_activity` / キャッシュヒット率 | 12:353, 366 | あり | 同左 | — |
| `pg_ctl` | 12:299 | なし | （どこにもなし） | B（軽微） |

### 第13回 スケールと外の世界

| 用語 | 初出（ファイル:行） | 定義の有無 | 定義位置 | 欠陥分類 |
|---|---|---|---|---|
| 垂直スケール | 13:71 | あり | 13:71 | — |
| パーティショニング / 宣言的パーティショニング | 13:86 | あり | 13:86 | — |
| レンジ分割 / デフォルトパーティション | 13:89, 137 | あり | 同左 | — |
| partition pruning | 13:185 | あり | 13:185 | — |
| レプリケーション / プライマリ / スタンバイ | 13:245 | あり | 13:245 | — |
| ストリーミング（物理）/ 論理レプリケーション | 13:249 | あり | 13:249（表） | — |
| ホットスタンバイ | 13:258 | あり | 13:258 | — |
| 同期 / 非同期 | 13:276 | あり | 13:276 | — |
| レプリケーション遅延 / read-your-writes | 13:309 | あり | 13:309 | — |
| シャーディング / シャードキー | 13:315 | あり | 13:315 | — |
| CAP 定理 | 13:336 | あり | 13:336 | — |
| 結果整合性 | 13:345 | あり | 13:345 | — |
| OLTP / OLAP | 13:359, 362 | あり | 同左 | — |
| 行指向 / 列指向 | 13:367 | あり | 13:367（表） | — |
| ETL / DWH | 13:383 | あり | 13:383 | — |
| NoSQL | 13:394 | あり | 13:394 | — |
| ベクトルDB / 埋め込み / ANN | 13:408, 410 | あり | 同左 | — |
| **`Append`（ノード名）** | 13:214 | **なし** | （どこにもなし。08 の表にも無い） | **B** |
| `DO` ブロック / `format` / `%L` | 13:123 | なし | （どこにもなし） | B |
| `setval` / `pg_get_serial_sequence` | 13:152 | なし | （どこにもなし） | B（軽微） |
| 2相コミット | 13:324 | なし（括弧書きのみ） | （どこにもなし） | B（軽微） |
| HNSW / IVFFlat | 13:422, 431 | 部分的 | 13:431 | — |

## 集計

| 区分 | 語数 |
|---|---|
| 台帳に載せた用語（総数） | 172 |
| 定義あり（欠陥なし） | 118 |
| 欠陥A（先出し） | 13 |
| 欠陥B（脇役の未定義） | 38 |
| 欠陥C（形はあるが定義文なし） | 3 |

欠陥ありの合計は 54 語（A 13・B 38・C 3）である。うち「軽微」と付記したものを除いた
優先対応対象は 32 語。

## 優先度の高い欠陥

| 分類 | 用語 | 内容 |
|---|---|---|
| A | `WITH`（CTE） | 02:591 の課題2 想定解答で使用。定義は 03:305。1回分まるごと先出し |
| A | Seq Scan ほか EXPLAIN ノード名 | 07 で多用。定義は 08:97 の表 |
| A | `VACUUM` / autovacuum | 07:97 が初出。定義は 12:238 |
| A | 部分インデックス | 06:251 が初出。定義は 07:212 |
| A | GIN インデックス | 05:224 が初出。定義は 07:233 |
| A | B-tree | 01:386 が初出。定義は 07:101 |
| C | ウィンドウ関数 | 03:348 以降、形と評価タイミングのみで「何であるか」がない |
| C | トリガ | 06:74 以降、用途のみで定義文がない |
| C | ビュー | 06:266 で `CREATE VIEW` を使うが定義文がない |
| B | オペレータクラス / opclass | 07:235 で略称が先に出る |
| B | `IMMUTABLE` / `pg_trgm` | 07:325 / 07:237。いずれも未定義 |
| B | DDL / ORM | 05:137 / 05:328。以降の回で繰り返し使われる |
| B | スーパーキー | 04:151。3NF/BCNF の判定条件の中核語 |
| B | 共有バッファ / 選択率 / `work_mem` / 拡張統計 | 08 の脇役語 |
| B | `::` / `\|\|` / `ARRAY[...]` / `interval` / `VALUES` | 01・02 の記法・構文 |
| B | `date_trunc` / `coalesce` / `DISTINCT ON` | 03 の組み込み関数・句 |

## 回をまたいで繰り返し出る未定義の脇役語（glossary 判断の根拠）

次の語は複数の回にまたがって登場し、かつ初出時点で定義がない。10語を大きく超えるため
`glossary.md` を作成する判断とした。

`::`（キャスト） / `\|\|` / `ARRAY[...]` / `interval` / `VALUES` / `ON CONFLICT` /
`GENERATED BY DEFAULT AS IDENTITY` / GUC / DDL / ORM / `VACUUM` / autovacuum /
部分索引 / GIN / オペレータクラス / `IMMUTABLE` / `pg_trgm` / 共有バッファ / 選択率 /
`work_mem` / `SQLSTATE` / スーパーキー / `date_trunc` / `coalesce` / トリガ / ビュー
（26語）

## 第2次監査 — 上位概念（D）と略語（E）

第1次監査は「用語ごとに定義があるか」を見たため、**用語が語として登場しない欠落**を拾えなかった。
第4回で「NF って何か」という質問が出たのが発端である。本編では 1NF・2NF・3NF・BCNF が個別に厚く
定義されているのに、それらを束ねる上位概念「正規形」の定義も、NF = Normal Form の展開もどこにも
なかった。用語集は「主題語だから各回で定義される」として外し、各回の用語表は「本編で定義するから
表に要らない」として外した結果、両方の網から落ちていた。本編が定義していたのは個別の下位概念で
あって、上位概念ではない、という構造的な見落としである。

同型の欠落を全13回で洗い直した結果が次の2表である。

### D: 上位概念が定義されていない

| 回 | 上位概念 | 定義済みの下位概念 | 対応 |
|---|---|---|---|
| 第4回 | 正規形（NF） | 1NF / 2NF / 3NF / BCNF | 用語表の先頭に追加。4.3節の1NFの説明直前に定義文と包含関係を追加 |
| 第7回 | 索引（インデックス） | B-tree / Hash / GIN / GiST / BRIN | 用語表の先頭に追加。「B-tree の構造」冒頭に定義文を追加 |
| 第9回 | 分離レベル | READ COMMITTED / REPEATABLE READ / SERIALIZABLE | 括弧書きの言及のみだったため、4段の列挙に入る直前に定義文を追加 |
| 第10回 | 監査 | `log_statement` の粒度 / pgaudit | 用語表に追加。「監査」節の冒頭に定義文を追加 |
| 第13回 | 水平スケール | レプリケーション / シャーディング | 「水平方向の手法」とだけ書かれていた。用語表に追加し、垂直スケールの直後に定義 |

上位概念が定義済みで欠落なしと判定した回は次のとおり。第1回（エンコーディング・照合順序）、
第2回（関係モデル・集合演算・三値論理）、第3回（JOIN・集約・サブクエリ・ウィンドウ関数）、
第5回（制約・数値型の2系統）、第6回（履歴・状態遷移・論理削除・非正規化）、
第8回（実行計画・スキャン方式・結合方式）、第11回（N+1・コネクションプール・インジェクション）、
第12回（バックアップの2系統・bloat）。いずれも下位概念の列挙に入る前に「〜には大きく2系統ある」
「〜する方法は主に4つある」型の文が置かれており、上位概念が名指しで説明されている。

### E: 略語が展開されていない

原語併記は定義とは見なさないが（判定基準を参照）、略語の展開はそれとは別に必須とする。

| 略語 | 回 | 展開 | 対応位置 |
|---|---|---|---|
| NF | 4 | Normal Form | 4.3節・用語表・到達目標 |
| FD | 4 | Functional Dependency | 4.2節（4.5・4.6で説明なしに使われていた） |
| RDBMS | 2 | Relational Database Management System | 「関係モデルとは何か」 |
| CTE | 3 | Common Table Expression | 用語表（本編 3.5節には既にあり、到達目標が先行していた） |
| DDL / DML | 5・10 | Data Definition / Manipulation Language | 各回の用語表・用語集 |
| ORM | 5 | Object-Relational Mapping | 用語表・用語集 |
| GIN / GiST / BRIN | 7 | Generalized Inverted Index / Generalized Search Tree / Block Range Index | 「索引の種類の使い分け」 |
| KNN | 7 | k-Nearest Neighbor | 同上（表内） |
| MVCC | 9 | Multiversion Concurrency Control | 用語表（本編には既にあり） |
| RC / RR | 9 | READ COMMITTED / REPEATABLE READ | 分離レベルの列挙時に略記を導入 |
| WAL / PITR | 12 | Write-Ahead Log / Point-In-Time Recovery | 用語表（本編・ねらいには既にあり） |
| HA | 13 | High Availability | レプリケーション方式の比較表 |
| HNSW / IVFFlat | 13 | Hierarchical Navigable Small World / Inverted File with Flat compression | 「RDBMS を選ばない判断」 |

展開済みで対応不要と確認した略語は次のとおり。GUC・TID・SSI・ACID・CAP・OLTP / OLAP・ETL・DWH・
ANN・RAG・RLS・PK / UK / FK・ICU・`SQLSTATE`・BCNF（Boyce-Codd正規形として日本語名を併記）。
ICU のみ、原語の展開（01:148）より前に本文中の使用（01:128）があるが、同一節内のため軽微とした。

### 到達目標での略語先出しへの対応方針

全13回とも構成は「ねらい → 到達目標 → 前提と準備 → 用語表 → 本編」で、用語表は到達目標より後に
ある。したがって到達目標に略語が出る回は、用語表を前に動かすか、到達目標側に正式名称を併記するか
のどちらかになる。今回は**すべて併記で対応し、用語表は動かさなかった**。理由は2つある。第一に、
13回すべてで同じ並びが揃っており、1回だけ順序を変えると構成の一貫性が崩れる。第二に、併記は
到達目標のその行だけで完結するため、他の回にも同じ手を機械的に適用できる。

併記の対象は「展開しないと語の意味が推測できない略語」に限る。第4回の NF は 1NF・2NF という語の
一部として現れ、展開なしでは読めないため到達目標に併記した。一方 GIN・GiST・BRIN・MVCC のように
固有名として扱える略語は、到達目標では名前のまま置き、本編と用語表で展開する。
