サンプル問題 科目A 問24

問題

関係モデルにおいて表 X から表 Y を得る関係演算はどれか。

ア  結合(join)

イ  射影(projection)

ウ  選択(selection)

エ  併合(merge)

出典:基本情報技術者試験 サンプル問題

関係演算とは

この4つの選択肢では結合、射影、選択の3つは関係演算で併合は違って、この問題では属性(表の列)を減らしているので射影が答え、というふうに考えました。

ところで関係演算には何があったかな?と思って調べました。

IBMのサイトによると、「関係演算には、選択、射影、結合の 3 種類があります。」とのこと。

www.ibm.com

ただし、これはマニュアルのようなので、他の資料を探しました。

関係演算とは、リレーショナルデータベース(関係データベース)における集合の操作を体系化したもの。典型的には射影(projection)、選択(selection)、結合(join)、商(division)が含まれ、他に集合演算の和、差、積(交差)、直積を含めることがある。

(IT用語辞典 e-Words

これを見ているうちに、関係代数という言葉を思い出しました。

関係代数(かんけいだいすう、リレーショナル代数、英: relational algebra)は、関係データベースの関係モデル (リレーショナルモデル)において、集合論と一階述語論理に基づいて、関係 (リレーション、表、テーブル)として表現されたデータを扱う、コンピュータ科学における代数的な演算の体系である。
関係として表現されたデータに対して行う演算体系としては、関係論理(関係計算)とこの項目で説明する関係代数の2種類が知られている。 関係代数と関係論理は、主にエドガー・F・コッドによって考案され、その後コッドを含めた関係データベース(関係モデル)の研究者たちが発展させてきた。
現在では、関係代数の演算子としては、和、差、交わり (交差) 、直積、制限 (選択) 、射影、結合、商の8種類が言及されることが多い。

Wikipedia

ちなみに、このWikipediaの説明に出てくる関係論理はこんなの。かなり昔に説明を聞いたことがあるのですが、関係代数は理解できても、関係論理は難しかった記憶があります。

関係論理 (かんけいろんり、関係計算、リレーショナル論理、リレーショナル計算、英: relational calculus) は、関係データベースの関係モデル (リレーショナルモデル) において、宣言的な方法で関係 (リレーション、表、テーブル) として表現されたデータを扱う、コンピュータ科学における演算の体系である。

Wikipedia

この問題で言う関係演算は、Wikipediaの関係代数のことだと思いました。問題と直接関係しないところで時間がかかりましたが、私の知識が整理できて、私には有意義でした(笑)。

答え