ITの教科書検索
入門読了 約7分

リレーショナルデータベース(RDB)とは ― 表・行・列と表どうしのつながり

リレーショナルデータベース(RDB)は、データを行と列の表に分けて持ち、表どうしを共通の列の値でつなぐデータベースです。表・行・列の呼び方と、主キー・外部キーの役割が分かります。

目次
  1. リレーショナルデータベースとは
  2. テーブル・行・列の呼び方
  3. 行を決める主キー
  4. 表どうしのつながり
  5. 練習問題

リレーショナルデータベース(RDB)とは、データを複数の表で管理するデータベース

リレーショナルデータベース(RDB)とは、データを複数の表に分けて持ち、表どうしを共通の列でつないで扱うデータベースです。会員と注文、商品と在庫のような業務データの多くは、RDBの表に入っています。SQLを書くときも、テーブルを設計するときも、相手にするのはこの表です。

データベースにはRDB以外の種類もあります。どんな種類があるかはデータベースとはの記事で、表の形を使わない種類との違いはNoSQLの記事で説明しています。

RDBは、日本語で関係データベースといいます。ここでいう「関係」は表を指し、日常語の「関係」とは意味が違います。RDBの理論である関係モデルでは、表を関係(リレーション)と呼びますが、以下では表と書きます。

テーブルは、行と列で構成する

テーブルは行と列でできています。行の1件分をレコード、列の1つをフィールドと呼びます。

関係モデルの用語では、行をタプル、列を属性と呼びます。表から行や列を取り出す操作と、表どうしをつなぐ操作をまとめて、関係演算と呼びます。

表と列の定義がデータベースの構造のどの層に当たるかは、3層スキーマの記事を読むと分かります。

表の行は、主キーの値で1つに決まる

RDBでは、決まった列の値で表の行を見分けます。この列を主キーと呼びます。次の顧客テーブルでは、顧客IDが主キーです。

顧客テーブル。顧客IDが主キー
顧客ID(主キー)氏名
101田中 美咲
102佐藤 健太
103鈴木 大輔

顧客IDの値は、行ごとに重ならないようにします。この決まりを一意性制約と呼びます。主キーには、空の値(NULL)も使えません。空の値では、どの行かを決められないためです。顧客IDのような値の付け方は、コード設計の記事にまとめました。

主キーの選び方や、複数の列を組にした複合キーは、主キーと外部キーの記事で詳しく説明しています。

表どうしは、外部キーの列でつながる

RDBは、顧客と注文のように表を分けてデータを持ち、同じ値を入れた列で表どうしをつなぎます。次の注文テーブルでは、顧客IDの列が顧客テーブルの行を指しています。このように別の表の主キーと同じ値を持ち、その行を指す列を外部キーと呼びます。

注文テーブル。顧客IDが外部キー
注文ID(主キー)顧客ID(外部キー)商品
5001101ノートPC
5002102マウス
5003101モニター
5004103キーボード

注文5001と注文5003は、どちらも顧客ID101を指しています。このように、1人の顧客は複数の注文を持てます。主キーと違い、外部キーは複数の行で同じ値を使ってかまいません。

次の図は、注文テーブルの外部キーが、顧客テーブルのどの行を指すかを示しています。どちらの列にも、同じ顧客IDの値が入ります。

顧客テーブル顧客ID(主キー)氏名注文テーブル注文ID(主キー)顧客ID(外部キー)商品参照する
外部キー(顧客ID)は、参照先の主キーと同じ値を持つ行を指します。この参照によって、注文テーブルの行が顧客テーブルの1行と結び付きます。

次の図で注文を選ぶと、その外部キーが指す顧客の行を表示します。

注文5001:商品はノートPC。外部キー(顧客ID)は101です。

顧客ID(主キー)氏名
101田中 美咲
102佐藤 健太
103鈴木 大輔

外部キー101が、顧客テーブルの主キー101の行(田中 美咲)と一致します。

外部キーの値は、参照先の主キーに存在する値でなければなりません。この決まりを参照制約と呼びます。外部キーを設定してあれば、存在しない顧客IDを注文テーブルに入れようとしても、DBMSが拒否します。

参照制約で拒否される操作は、主キーと外部キーの記事で、操作を選んで確かめられます。SQLで主キーや外部キーを定義する書き方は、CREATE TABLEと制約の記事で説明しています。

ここまでの例は、すでにできあがったテーブルです。実際の設計では、テーブルを作る前に、顧客や注文のような管理の対象(エンティティ)を洗い出し、どう関連付けるかを決めます。その考え方は、E-R図の記事で説明しています。

参考にした資料

練習問題(全5問)

Q1リレーショナルデータベース(RDB)の説明として最も適切なものはどれ?
Q2関係モデルの用語で、表(テーブル)を指すものはどれ?
Q3主キーについて正しいものはどれ?
Q4外部キーの役割として正しいものはどれ?
Q5注文テーブルに顧客ID104という値の行を追加しようとしたとき、顧客テーブルに顧客ID104が無いとどうなる?

選んでから「採点する」を押すと、解説つきで答え合わせができます。

関連記事

おすすめの本 PR

セキュリティとデータベースは、基本情報技術者試験の対策本でまとめて学べます。

目的別の本の選び方を見る

データベースの記事を続けて読む

データベース 全36本中2本目