関係代数とは?かんけいだいすう
関係代数とは、演算の結果もまた一つの表になる(閉包性)ため、演算を次々に積み重ねて問合せを組み立てられる代数体系。和・差・共通・直積の集合演算と、選択・射影・結合・商の関係固有の演算を持つ。SQLが「何が欲しいか」を書くのに対し、関係代数は「どの順に取り出すか」という手順そのものを表す。
最終更新:2026-10-06
この語が出る過去問を解く →背景
階層型・網型のデータベースでは、目的のデータへ到達する経路をアプリケーション側がポインタをたどる手続きとして書いていたため、格納構造を変えるたびにプログラムが壊れた。表から表への演算だけで問合せを表現できるようにしたことで、経路の選択をDBMS側の仕事に移せるようになった。データベーススペシャリスト試験でこれを問うのは、問合せの書換えや実行計画の良し悪しを論じる土台がここにあるためで、記述式では「なぜその処理順が速いのか」を説明する言葉として使う。
具体例
1970年にIBMのエドガー・F・コッドが提唱した体系で、PostgreSQLやOracle Databaseの問合せ最適化器も、受け取ったSQLを内部では関係代数に近い式へ変換してから書き換える。受注表から「部門コードD01の担当者名」を得るなら、まず選択(条件で行を絞る)を当て、その結果に射影(列を絞る)を重ねる。
試験での引っ掛け
基本となるのは和・差・直積・選択・射影の5つだけで、共通・結合・商は残りの組合せで書き直せる導出演算にすぎない。R∩S を R−(R−S) に置き換えられるかを問う出題が定番。また関係代数は集合を扱う体系なので射影の結果から重複行は消えるが、SQL の SELECT は既定で重複を残す——DISTINCT を付けて初めて射影と一致する点も取り違えやすい。
関連用語
出た過去問
出典:平成28年度 春期 データベーススペシャリスト試験 午前Ⅱ 問12(IPA)
関係代数における直積に関する記述として、適切なものはどれか。
正解:二つの関係における、それぞれのタプルの全ての組合せの集合である。
要点:直積は条件なしに全タプルを組み合わせる演算
直積は二つの関係のタプルを総当たりで組み合わせる演算で、結果のタプル数は両者のタプル数の積になる。条件による絞り込みは一切行わない点が、条件付きで組み合わせる結合演算との違いである。
出典:令和2年度 10月試験 データベーススペシャリスト試験 午前Ⅱ 問9(IPA)
関係代数における直積に関する記述として、適切なものはどれか。
正解:二つの関係における、それぞれのタプルの全ての組合せの集合である。
要点:直積は条件なしで全タプルの組合せを作る演算
直積は2つの関係のタプルをすべて組み合わせる演算で、結果の件数は両者の件数の積になり、属性は双方の属性を並べたものになる。条件による絞り込みは一切行わない点が結合との違いである。よってエが正しい。
出典・参考
公式シラバスの3 データベースの分析・設計 > 3-1 概念データモデルの作成に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。