関係データベースとは

かんけいでーたべーす

データを行と列からなる表(関係、リレーション)で表し、表どうしを共通の値で関連付けて扱うデータベース。リレーショナルデータベース(RDB)とも呼ぶ。SQLで問い合わせや更新を行い、主キーや外部キーなどの制約でデータの整合性を保つ。

「関係データベース」は、1分野の7問の練習問題に出てきます(データベースの基礎など)。

この用語の分野: データベースの基礎

表・行・列と関係モデル

関係データベースは、1970年にE. F. Coddが提案した関係モデルに基づくデータベースです。データは表(関係、リレーション)の形で表し、表の1行をタプル(組)、1列を属性、属性が取りうる値の集合をドメインと呼びます。表どうしは、ポインタではなく共通の値でつながります。例えば注文表が顧客IDの列を持ち、その値で顧客表の行を指します。このため、どの表とどの表をどんな条件で組み合わせるかを、問い合わせのたびに自由に決められます。

SQLと制約によるデータの管理

関係データベースは、SQLという言語で、表の定義(DDL)、データの検索や更新(DML)、権限の制御(DCL)を行います。SQLでは「どんな結果がほしいか」を書けばよく、どの順番で表を読み、どのインデックスを使うかはDBMSのオプティマイザが決めます。データの正しさは、行を一意に識別する主キー、ほかの表の行を正しく参照させる外部キー、NULLや重複を禁じるNOT NULLやUNIQUE、値の範囲を決めるCHECKといった制約と、トランザクションのACID特性によって保たれます。

ほかのデータベースとの使い分け

関係データベースは、在庫や会計のように、データの整合性が重要で、さまざまな条件の組み合わせで検索する業務に広く使われています。一方、アクセスの量が非常に多いWebサービスなどでは、複数のサーバに分散しやすいキー・バリュー型やドキュメント型などのNoSQLのデータベースが使われることもあります。どちらか一方だけを使うのではなく、用途に応じて組み合わせることが一般的です。

関係データベースの練習問題に挑戦

関係データベースの用語で、表(リレーション)の1行に当たるものはどれか。

  1. Aタプル
  2. B属性
  3. Cドメイン
答えと解説を見る

正解:A. タプル

関係データベースは、データを行と列からなる表(関係、リレーション)の形で表し、表どうしを値で関連付けて扱うデータベースです。関係モデルの用語では、表の1行をタプル(組)、1列を属性(アトリビュート)、ある属性が取りうる値の集合をドメイン(定義域)と呼びます。例えば社員表で、1人の社員のデータの行がタプル、「氏名」や「部署」の列が属性、「年齢」の列が取りうる0以上の整数の範囲がドメインです。関係モデルでは、表を行の集合として扱うので、行の順番には意味がなく、まったく同じ行が2つあることも認めません(実際のSQLの表では、主キーを決めないと同じ行が入ることがあります)。

関係データベースの表で、主キーに指定する列(または列の組)が満たさなければならない条件はどれか。

  1. A値が数値であること
  2. B表の最初の列であること
  3. C値が表の中で重複せず、NULLを含まないこと
答えと解説を見る

正解:C. 値が表の中で重複せず、NULLを含まないこと

主キーは、表の中の1行を一意に識別するための列、または列の組です。そのため、主キーの値はほかの行と重複してはならず(一意性)、値が決まっていないことを表すNULLも認められません(非NULL)。SQLの CREATE TABLE で PRIMARY KEY を指定すると、DBMS(データベース管理システム)がこの2つの制約を守らせ、重複した値やNULLを入れようとする操作はエラーになります。主キーの値は社員番号のような数値でも文字列でもかまいませんし、列の位置にも決まりはありません。行を一意に識別できる最小限の列の組を候補キーと呼び、候補キーの中から1つを選んだものが主キーです。

よくある質問

関係データベースの「関係」とは何を指しますか?

表そのものを指します。数学で、いくつかの集合の要素の組み合わせの集まりを関係(リレーション)と呼ぶことに由来し、表の行が要素の組(タプル)に当たります。表どうしの関連付けのことではありません。

関係データベースとNoSQLはどう使い分けますか?

データの整合性が重要で、表を結合するような複雑な検索が多い業務には、関係データベースが向いています。キーを指定した単純な読み書きが非常に多く、複数のサーバに分散して規模を広げたい場合には、NoSQLが向いていることがあります。

解説の中の「関係データベース」

「関係データベース」が出てくる問題(7問)

  1. 関係データベースの用語で、表(リレーション)の1行に当たるものはどれか。
  2. 関係データベースの表で、主キーに指定する列(または列の組)が満たさなければならない条件はどれか。
  3. 関係データベースのビューの説明として、正しいものはどれか。
  4. 関係データベースの表を正規化する主な目的はどれか。
  5. E-R図で、学生と科目の間に「1人の学生は複数の科目を履修し、1つの科目は複数の学生が履修する」という多対多の関係がある。この関係を関係データベースの表で実現する方法として、適切なものはどれか。
  6. 100万行ある会員表の会員番号の列にB+木のインデックスを作成した。一般に期待できる効果と、その代償の組み合わせとして正しいものはどれか。
  7. NoSQLと呼ばれるデータベースのうち、キー・バリュー型の特徴として、一般に正しいものはどれか。

データベースの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

半導体・電子回路・情報の計算ツール

関連する用語

主キー SQL インデックス ビュー 正規化 E-R図 外部キー NoSQL ACID特性 第3正規形

用語集の一覧へ