用語集 — データベース設計入門
本ガイドで登場した主な専門用語をアルファベット / 五十音順にまとめています。各用語の詳しい解説は、リンク先の章を参照してください。
あ行
ACID 特性
トランザクションが満たすべき 4 つの性質: Atomicity (原子性) / Consistency (一貫性) / Isolation (独立性) / Durability (永続性)。詳しくは第 4 章。
Authorization Code Flow
OAuth 2.0 のフローの 1 つ。Client が認可サーバから「認可コード」を受け取り、それをアクセストークンに交換する。PKCE と組み合わせるのが現代の標準。詳しくは第 16 章。
bcrypt
パスワードハッシュ化アルゴリズム。意図的に遅い設計でブルートフォース攻撃に強い。Argon2 と並んで推奨される。詳しくは第 15 章。
BCNF (Boyce-Codd Normal Form)
第 3 正規形よりも厳しい正規形で、全ての関数従属性の左辺がスーパーキーであることを要求。多くの業務アプリは 3NF で十分。詳しくは第 11 章。
BIGINT
PostgreSQL / MySQL の 8 バイト整数型。主キーで連番が枯渇しない値域 (約 922 京) を扱える。SERIAL (= INTEGER 連番) で不安な場合は BIGSERIAL を使う。
CASCADE
外部キー制約の ON DELETE / ON UPDATE のアクションの 1 つ。親レコードの変更を子レコードに自動波及させる。詳しくは第 10 章。
CHECK 制約
カラムの値が条件を満たすことを保証する DB 制約。例: CHECK (age >= 0 AND age <= 150)。詳しくは第 4 章。
CRUD
データベースの基本操作 4 つ: Create (INSERT) / Read (SELECT) / Update (UPDATE) / Delete (DELETE)。詳しくは第 4 章。
DBMS
データベース管理システム (Database Management System)。SQL の解析・データ保存・同時アクセス制御などを担うソフトウェア。PostgreSQL / MySQL / Oracle / SQL Server などが代表例。詳しくは第 6 章。
DDL / DML / DCL / TCL
SQL の 4 分類。DDL = データ定義 (CREATE/ALTER/DROP)、DML = データ操作 (SELECT/INSERT/UPDATE/DELETE)、DCL = 権限管理 (GRANT/REVOKE)、TCL = トランザクション制御 (BEGIN/COMMIT/ROLLBACK)。詳しくは第 6 章。
ER 図 (Entity-Relationship Diagram)
データベースの構造をエンティティと関係性で視覚化する図。詳しくは第 12 章。
インデックス (Index)
検索を高速化するためのデータ構造。本の巻末索引のように、特定の値からレコードの位置を素早く引ける。第 6 章で初出、どのカラムに張るか・複合インデックスの順序などの設計は第 19 章。
か行
外部キー (Foreign Key, FK)
別のテーブルの主キーを参照するカラム。テーブル間の関係を表現し、参照整合性を保証する。詳しくは第 10 章。
関数従属性 (Functional Dependency)
「A → B」と書き、「A が決まれば B も一意に決まる」関係。正規化を理解するための基礎概念。詳しくは第 11 章。
カーディナリティ (Cardinality)
リレーションシップの多重度 (1 対 1 / 1 対多 / 多対多)。E-R 図で線の記号で表す。詳しくは第 12 章。
カラム (Column)
テーブルの列 (列ヘッダー)。データの項目に対応。「フィールド」「属性」とも呼ばれる。詳しくは第 7 章。
候補キー (Candidate Key)
レコードを一意に識別できる属性 (またはその組み合わせ)。1 つのテーブルに複数の候補キーがあり得る。詳しくは第 10 章。
クエリ (Query)
データベースへの問い合わせ。一般に SQL 文 1 つ = 1 クエリ。
さ行
自然キー (Natural Key)
業務上の意味を持つ属性をそのまま主キーにしたもの (例: ISBN, ISO 国コード)。安定性のある値だけ採用すべき。詳しくは第 10 章。
主キー (Primary Key, PK)
テーブルの各レコードを一意に識別する正式な識別子。NOT NULL + UNIQUE。詳しくは第 10 章。
スキーマ (Schema)
テーブルやインデックスをまとめる名前空間。PostgreSQL では public がデフォルト。MySQL では「データベース」とほぼ同義。詳しくは第 7 章。
スナップショット (Snapshot)
時点の値を保存しておくこと。例: 注文明細の unit_price は注文時の商品単価を保存し、商品マスタの将来価格変更から守る。詳しくは第 8 章 / 第 13 章。
スーパータイプ / サブタイプ
継承関係を持つエンティティ。共通属性を持つ親 (スーパータイプ) + 固有属性を持つ子 (サブタイプ) の構成。例: locations + factories / stores。詳しくは第 12 章 / 第 17 章。
SERIAL / BIGSERIAL
PostgreSQL の自動採番型。SERIAL = INTEGER の連番、BIGSERIAL = BIGINT の連番。MySQL の AUTO_INCREMENT に相当。
正規化 (Normalization)
データの重複と矛盾を排除する設計手法。第 1 〜 第 3 正規形が業務アプリの標準。詳しくは第 11 章 / 第 18 章 演習。
制約 (Constraint)
DB が不正なデータを弾くためのルール。NOT NULL / CHECK / UNIQUE / PRIMARY KEY / FOREIGN KEY / DEFAULT がある。詳しくは第 4 章。
た行
第 1 正規形 (1NF)
各セルが原子的な値で、繰り返しグループがない状態。詳しくは第 11 章。
第 2 正規形 (2NF)
第 1 正規形 + 部分関数従属がない状態。詳しくは第 11 章。
第 3 正規形 (3NF)
第 2 正規形 + 推移的関数従属がない状態。業務アプリで目指す標準。詳しくは第 11 章。
代理キー (Surrogate Key)
システムが自動生成する意味のない識別子 (連番・UUID)。現代では「代理キー = 主キー + 自然キー = UNIQUE 制約」のハイブリッドが推奨。詳しくは第 10 章。
多対多 (Many-to-Many)
両方向で複数あり得る関係。中間テーブル (ジャンクションテーブル) で実装する。詳しくは第 14 章。
テーブル (Table)
データを格納する基本単位。行 (レコード) と列 (カラム) で構成される 2 次元の表。詳しくは第 7 章。
トランザクション (Transaction)
複数の操作をひとまとまりとして扱う仕組み。BEGIN / COMMIT / ROLLBACK で制御。ACID 特性を保証する。詳しくは第 4 章。
トリガー (Trigger)
DB のイベント (INSERT / UPDATE / DELETE) に応じて自動実行される処理。集計カラムの自動更新などに使えるが、ロック競合リスクあり。詳しくは第 14 章。
な行
非正規化 (Denormalization)
性能要求などのため、意図的に正規化を緩める設計。「まず正規化、測定ベースで選択的に非正規化」が現代ベストプラクティス。詳しくは第 11 章。
は行
PKCE (Proof Key for Code Exchange)
OAuth 2.0 で認可コードの盗難を防ぐ仕組み。RFC 9700 で public client は必須 (confidential client も推奨)、OAuth 2.1 では標準装備。詳しくは第 16 章。
物理削除 / 論理削除
データを実際に DELETE する (物理) / 削除フラグを立てて残す (論理)。GDPR / 個人情報保護法と併せて使い分け。詳しくは第 13 章。
ま行
マスターデータ
基準となる情報 (商品 / 顧客 / 部署など)。更新頻度が低くデータ量も少ない。トランザクションデータの対概念。詳しくは第 8 章。
ら行
RBAC (Role-Based Access Control)
ロール (役割) ベースの権限管理。ユーザー → ロール → 権限の 3 層構造で、多対多 × 多対多で実装。詳しくは第 14 章。
リレーショナルデータベース (RDB)
データを表 (テーブル) 形式で管理し、テーブル間の関係を表現できるデータベース。詳しくは第 5 章。
レコード (Record)
テーブルの行。1 件分のデータ。「行」「タプル」とも呼ばれる。詳しくは第 7 章。
わ行・英数
NoSQL
リレーショナルでないデータベースの総称 (MongoDB / Redis / Cassandra など)。RDB との使い分けは第 5 章。
NULL
「値がない」状態を表す特殊値。0 や空文字とは区別される。NULL = NULL は false ではなく unknown になる点に注意。
OpenID Connect (OIDC)
OAuth 2.0 の上に構築された認証層。ID Token (JWT) を発行する。詳しくは第 16 章。
TIMESTAMP / TIMESTAMP WITH TIME ZONE
日時を表すデータ型。タイムゾーン付き (TIMESTAMPTZ) を使うのが国際展開で安全。
JWT (JSON Web Token, RFC 7519)
3 部 (header.payload.signature) からなる署名付きトークン形式。OpenID Connect の ID Token に使われる。詳しくは第 16 章。
UUID (Universally Unique Identifier)
128 ビットのランダム識別子。代理キーとして連番より推測されにくい利点がある。gen_random_uuid() (PostgreSQL) で生成。
本ガイドを読みながら「この用語の解説が欲しい」と感じたら、本ファイルに追加してください。Jr の自己学習をサポートする集合知になります。