Instiq
第2章 · リレーショナルデータ·v2.0.0·更新 2026/6/28·読了目安 約14分

変更要約: DP-900 第2章を AZ-900 基準まで深掘り(テーブル/型/キー/インデックス/ビュー/正規化+SQL4分類表・コード例、Azureリレーショナルサービス+IaaS/PaaS責任範囲表・選定シナリオ・FAQ)。図2枚ja化

2.1リレーショナルデータの概念

この節の要点

テーブル・行・列・データ型・主キー・外部キー・インデックス・ビューといったリレーショナルデータの基本概念と、正規化、SQL の4分類(DDL/DML/DQL/DCL)を理解します。

リレーショナルデータベース は、データを テーブル(表) に格納し、テーブル同士を キー で関連づけて管理します。1970 年代に提唱されたモデルで、各テーブルが明確なスキーマ(列の定義)を持つため、整合性のある業務データの管理に最も広く使われてきました。前章で学んだ「構造化データ」を扱う代表的な仕組みで、問い合わせには共通言語の SQL を使います。

2.1.1基本概念:テーブル・行・列

テーブル は、行(レコード)列(属性/フィールド) からなる表です。各列には データ型(整数・文字列・日付・真偽値など)が定められ、その列に入る値の種類を制約します。1行が1件のデータ(例:1人の顧客、1件の注文)を表し、列がその項目(氏名・住所・金額など)を表します。型を決めておくことで、誤ったデータの混入を防ぎ、検索や集計を正確に行えます。

2.1.2キー・インデックス・ビュー

  • 主キー(primary key):各行を一意に識別する列(または列の組)。重複・空値(NULL)は不可。例:顧客ID。
  • 外部キー(foreign key):別テーブルの主キーを参照し、テーブル間を関連づける。これにより参照整合性(存在しない相手を参照しない)が保たれる。
  • インデックス(index):特定の列の検索を高速化する仕組み。本の索引のような役割で、読み取りは速くなるが書き込み時の更新コストが増える。
  • ビュー(view):1つ以上のテーブルから導かれる仮想の表。よく使う問い合わせを名前付きで再利用でき、必要な列だけ見せる用途にも使う。

2.1.3正規化

正規化 は、重複を減らし整合性を保つようにテーブルを分割・設計する手法です。たとえば「注文」テーブルに顧客の住所を毎回書くと、住所変更時に全行を直す必要があり、直し漏れで矛盾(更新時異常)が起きます。顧客情報を別テーブルに分け、外部キーで参照すれば、住所は1か所だけ直せば済みます。正規化はデータの正しさを支える OLTP 向けの基本設計で、逆に分析(OLAP)では集計しやすさを優先してあえて非正規化することもあります。

2.1.4SQL の基本

SQL(Structured Query Language)は、リレーショナルデータベースを操作する共通言語です。命令はおおまかに4つに分類されます。

分類役割代表的な命令
DDL(定義)構造を定義・変更CREATE / ALTER / DROP
DML(操作)データを変更INSERT / UPDATE / DELETE
DQL(問い合わせ)データを取得SELECT
DCL(権限)アクセス権を管理GRANT / REVOKE
SELECT customer_id, name
FROM customers
WHERE city = 'Tokyo'
ORDER BY name;

シナリオ:受注管理。 customers(顧客)と orders(注文)の2テーブルを用意し、orderscustomer_id外部キーとして持たせて顧客を参照。顧客情報の重複を避ける(正規化)。「東京の顧客の一覧」は SELECT(DQL)で取得、新規注文は INSERT(DML)、テーブル定義の変更は ALTER(DDL)。customer_id 列にインデックスを張れば結合・検索が速くなります。

注意

混同に注意:
主キー(自テーブルの行を一意に識別)外部キー(他テーブルの主キーを参照して関連づけ)を取り違えない。
SELECT=DQL(取得)/INSERTUPDATEDELETE=DML(変更)/CREATEALTERDROP=DDL(定義)
インデックスは読み取りを速くするが、書き込みのたびに更新コストがかかる(無制限に張ればよいわけではない)。

補足

Q. 主キーと一意制約(UNIQUE)の違いは? どちらも重複を許しませんが、主キーは1テーブルに1つで NULL 不可、UNIQUE は複数設定でき NULL を許す場合があります。Q. ビューは実データを持つ? いいえ、ビューは問い合わせの定義(仮想の表)で、参照時に元テーブルから計算されます。Q. なぜ型を決める? 不正な値の混入を防ぎ、検索・集計・並び替えを正しく速く行うためです。

試験ポイント

主キー=一意に識別/外部キー=テーブル間の関連/インデックス=検索高速化/ビュー=仮想の表、そして SELECT=DQL/INSERT等=DML/CREATE等=DDL/GRANT等=DCL の対応が頻出です。正規化=重複削減で更新時異常を防ぐ。

テーブル/主キー/外部キー/正規化の図。
行と列+キーで関連付け

2.1.5この節のまとめ

  • リレーショナル=テーブル(行・列・型)+キーでデータを関連づける構造化データの仕組み
  • 主キー(一意識別)/外部キー(関連・参照整合性)/インデックス(高速化)/ビュー(仮想表)/正規化(重複削減)
  • SQL:DDL(定義)/DML(変更)/DQL=SELECT(取得)/DCL(権限)

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. リレーショナルデータベースで各行を一意に識別する列はどれですか?

Q2. データを問い合わせて取得する SQL ステートメントはどれですか?

Q3. テーブル同士を関連づけるために、別テーブルの主キーを参照する列はどれですか?

Q4. 特定の列での検索を高速化するために使うものはどれですか?

Q5. テーブル定義(構造)を作成・変更・削除する SQL の分類はどれですか?

Q6. 正規化を行う主な目的はどれですか?

理解度を確認第2章「リレーショナルデータ」の問題を解く