基本情報技術者 PR

【基本情報】関係データベースの基本!関係演算も解説!

記事内に商品プロモーションを含む場合があります

●この記事で学べること
・関係データベースとは(基本、主キー)
・関係演算(射影、選択、結合、和)

関係データベースの基本

関係データベースとは、データを保存する2次元の表です。Excelで作られた表を想像してもらえるとOKです。関係データベースはリレーショナルデータベース(RDB)とも言います。

表を「テーブル」、列を「属性」、行を「レコード」と表現することがあります。

主キー

主キーとは、行を特定するための属性です。上の社員表の主キーは「社員番号」になります。社員番号が重複することはないので、社員番号を指定すれば社員を特定出来ますよね。

氏名は同姓同名の人がいるかもしれません。連絡先も重複は無いかもしれないですが、「電話番号が070-〇〇〇〇-××××の人」というより、「社員番号がA001の人」という方がしっくり来ますよね。なので、普通は社員番号を主キーにします。

ちなみに、複数の属性を合わせて主キーとする場合もあります。学校のクラスと出席番号が良い例です。出席番号だけでは生徒を特定出来ませんが、クラスと出席番号が分かれば生徒を特定出来ます。なので、下の生徒表の主キーは「クラスと出席番号」の組み合わせになります。

関係演算

表を作成しても活用しなければ意味がありません。関係データベースから別の表を作成する操作を関係演算と言います。

射影

表からの一部を取り出して別の表を作成する操作を「射影」と言います。

選択

表からの一部を取り出して別の表を作成する操作を「選択」と言います。

結合

表と表を共通の属性で横に足し算して別の表を作成する操作を「結合」と言います。下の例では、社員表の「部署」と部署表の「部署」を共通属性として横に足し算しています。

表と表を共通の属性で縦に足し算して別の表を作成する操作を「和」と言います。下の例では、学生表と講師表の「氏名」「学部」を共通属性として縦に足し算しています。

基本情報技術者試験での出題例

令和元年度秋期問27

基本情報技術者
午前試験 令和元年度秋期問27

関係モデルにおいて,関係から特定の属性だけを取り出す演算はどれか。

ア 結合(join)     イ 射影(projection)
ウ 選択(selection)   エ 和(union)

正解と解説

正解は”イ”

関係データベースから特定の属性を取り出す演算は射影です。

平成31年度春期問26

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

関係モデルの属性に関する説明のうち,適切なものはどれか。

ア 関係内の属性の定義域は重複してはならない。

イ 関係内の属性の並び順に意味はなく,順番を入れ替えても同じ関係である。

ウ 関係内の二つ以上の属性に,同じ名前を付けることができる。

エ 名前をもたない属性を定義することができる。

正解と解説

正解は”イ”

ア 定義域とは属性が取れる値を意味します。例えば、社員表に「年齢」と「勤続年数」という整数値を取る属性が2つあっても問題はありません。なのでアは誤りです。

イ 正解です。社員表の属性の並びが、「社員コード」「社員氏名」「所属部門」でも「社員コード」「所属部門」「社員氏名」でも意味が変わることはありません。

ウ 関係内の属性に名前の重複は許されません。同じ名前が複数あると「射影」を実行した時にどの属性の値を取得すればよいか分かりません。なので属性の名前は一意である必要があります。

エ 属性には名前が必要です。名前がないと「射影」を実行するときに属性を指定できないからです。

サンプル問題問24、平成31年度春期問28

基本情報技術者
科目A サンプル問題問24、午前試験 平成31年度春期問28

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

ア 結合(join)     イ 射影(projection)
ウ 選択(selection)   エ 併合(merge)

正解と解説

正解は”イ”

関係データベースから特定の属性(商品番号と数量)を取り出しているので射影です。

平成30年度秋期問28

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

関係XとYを自然結合した後,関係Zを得る関係代数演算はどれか。

ア 射影と和      イ 選択
ウ 選択と射影     エ 選択と和

正解と解説

正解は”ウ”

関係XとYを自然結合した後の表は下の通りです。

ここから、情報一郎と技術五郎の2行を取り出し、さらに、氏名と学部コードと学部名の3列を取り出しているので、選択と射影を行っています。

平成29年度春期問25

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

属性 a の値が決まれば属性 b の値が一意に定まることを,a→bで表す。例えば,社員番号が決まれば社員名が一意に定まるということの表現は,社員番号→社員名である。この表記法に基づいて,図のような関係が成立している属性 a~j を,関係データベース上の三つのテーブルで定義する組合せとして,適切なものはどれか。

ア テーブル1 (a)
テーブル2 (b,c,d,e)
テーブル3 (f,g,h,i,j)

ウ テーブル1 (a,b,f,g,h)
テーブル2 (c,d)
テーブル3 (e,i,j)

イ テーブル1 (a,b,c,d,e)
テーブル2 (b,f,g,h)
テーブル3 (e,i,j)

エ テーブル1 (a,c,d)
テーブル2 (b,f,g,h)
テーブル3 (e,i,j)

正解と解説

正解は”イ”

あるテーブルにおいて属性aの値が決まれば属性bの値が一意に定まるとき、属性aはそのテーブルの主キーになります。

問題の図では下の条件を満たします。
・属性aの値が決まれば、属性b,c,d,eの値が一意に定まる
・属性bの値が決まれば、属性f,g,hの値が一意に定まる
・属性eの値が決まれば、属性e,i,jの値が一意に定まる

つまり、これは下の条件を満たすことを意味します。
・属性aと属性b,c,d,eは同じテーブルに存在する
・属性bと属性f,g,hは同じテーブルに存在する
・属性eと属性e,i,jは同じテーブルに存在する

社員番号から社員名、社員の連絡先、社員が所属する部署、社員の入社年度が決まるなら、これら5つの項目は社員番号を主キーとする同じテーブルに存在しますよね。

属性a,b,eがそれぞれ主キーになっており、それぞれの主キーから一意に値が決まるようなテーブル定義になっているのは、イだけです。

関連記事