A型システムエンジニアの勉強メモ

情報処理試験の午前問題をネタにして、解説をじっくり書きながら勉強しています。基礎は大事。

広告

基本情報技術者試験 平成31年度 春期 午前 問28

 関係モデルの演算(結合、射影、選択、併合)についての問題。

 

--------------------------

基本情報技術者試験

平成31年度 春期 午前 問28

 

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

 

表X

商品番号 商品名 価格 数量
A01 カメラ 13,000 20
A02 テレビ 58,000 15
B01 冷蔵庫 65,000 8
B05 洗濯機 48,000 10
B06 乾燥機 35,000 5

 

表Y

商品番号 数量
A01 20
A02 15
B01 8
B05 10
B06 5

 

ア 結合(join)

イ 射影(projection)

ウ 選択(selection)

エ 併合(merge)

--------------------------

解説

 

 

関係モデルやデータベースの問題は表を描くことが面倒になる。

簡単に表の画像作れるサービスないかな。

 

選択肢となっている 4 つの操作を説明していく。

 

まずは選択肢アの結合(join)

結合(join)は 2 つの表を、同じ属性をキーにしてくっつける演算になる。

氏名 所属
一郎 総務
次郎 人事
史郎 調達

 

所属 フロア
調達 6F
総務 3F
人事 10F

 

上の 2 つの表は同じ "所属" という属性がある。

これをキーにしてくっつけると、以下のような表が作れる。

氏名 所属 フロア
一郎 総務 3F
次郎 人事 10F
史郎 調達 6F

 

結合(join)は表の属性(列)を増やし、横に広がるような演算になる。

 

 

次に選択肢エの併合(merge)をみる。

結合(join)が横に増えるのに対して、併合(merge)は縦に増える。

氏名 所属
一郎 総務
次郎 人事
史郎 調達

 

氏名 所属
十郎 SE

 

上の 2 つの表はどちらも同じ属性の組み合わせである。

この 2 表を併合(merge)すると以下のような表になる。

氏名 所属
一郎 総務
次郎 人事
史郎 調達
十郎 SE

 

併合(merge)は表の行を増やし、縦に広がるような演算になる。

 

 

merge は"併合" とか "合流"。join は "加わる" とか "交わる" 。

英単語の意味から覚えやすくできないかと思ったが、失敗。

横にジョイント(join)、縦にマージ(merge)とでも(無理やり)。

 

 

次に選択肢イの射影(projection)

射影(projection)は表から一部の属性(列)を抜粋する演算である。

商品番号 商品名 価格 数量
A01 カメラ 13,000 20
A02 テレビ 58,000 15
B01 冷蔵庫 65,000 8
B05 洗濯機 48,000 10
B06 乾燥機 35,000 5

 

上の表から一部の属性(列)を抜粋する射影(projection)をすると以下のような表になる。

商品番号 数量
A01 20
A02 15
B01 8
B05 10
B06 5

 

説明のための表が問題文の表そのものということで、この問題の答えは選択肢イの射影(projection)

 

 

選択肢ウの選択(selection)は選択肢イの射影(projection)とは逆に、行を抜粋する演算である。

商品番号 商品名 価格 数量
A01 カメラ 13,000 20
A02 テレビ 58,000 15
B01 冷蔵庫 65,000 8
B05 洗濯機 48,000 10
B06 乾燥機 35,000 5

 

上の表から、例えば数量が 15 以上の行という条件で選択(secelction)の演算をすると以下のような表になる。

商品番号 商品名 価格 数量
A01 カメラ 13,000 20
A02 テレビ 58,000 15

 

 

SQL 文だと射影(projection)も選択(selection)も select 文で書ける。

 

上の例の射影(projection)の演算を SQL 文で書くと以下のようになる。

 select 商品番号、数量 from 表X

 

上の例の選択(selection)の演算をSQL文で書くと以下のようになる。

 select * from 表X where 数量 >= 15

 

"数量 >= 15" の書き方はシェルスクリプトと一緒だろうと考えているが、お作法が違うかもしれない。SQL 文は詳しくないので、信用しないように。

大体の言語は読めるけど、書くとなったときの細かなお作法は毎回グーグル先生頼み。

 

 

前後の問題はこちら。