メインコンテンツまでスキップ

用語集 — データベース設計入門

本ガイドで登場した主な専門用語をアルファベット / 五十音順にまとめています。各用語の詳しい解説は、リンク先の章を参照してください。

あ行

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 = NULLfalse ではなく 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 の自己学習をサポートする集合知になります。