データベース

【基本情報】関係データベースの特徴と関係演算を解説

お茶ん太
お茶ん太

この記事では、関係データベースと関係演算について、初心者にも分かりやすく図解付きで丁寧に解説しています!

関係データベース

  • 関係データベースは表形式でデータを管理する。
  • 表をテーブル、行をレコード、列をフィールド・属性と呼ぶ。
  • 主キーは行を一意に特定できる属性。

関係演算

  • 射影は表から列の一部を取り出す操作。
  • 選択は表から行の一部を取り出す操作。
  • 結合は表と表を特定の列を介して繋げる操作。
  • 和は表と表を重複する行を削除して結合する操作。

データベース管理システム(DBMS)

データベース管理システム(DBMS)はデータベースを管理するためのソフトウェアで、
データを記録するためのテーブルを作成・管理したり、アプリの代わりにデータの登録・更新・参照・削除を行います。

関係データベース

データベースにはいくつか種類がありますが、試験でよく出てくるのが関係データベースです。関係データベースはリレーショナルデータベース(RDB)とも呼び、関係データベースのDBMSをリレーショナルデータベース管理システム(RDBMS)と呼びます。
関係データベースは表形式でデータを管理します。

表、行、列にはそれぞれ別の呼び方があります。

表(データの集合体) テーブル、関係
行(1件のデータ) レコード、タプル
列(データの構成要素) フィールド、属性

主キー

主キーとは、行を特定するための属性です。生徒表であれば、生徒番号を指定すれば、どの生徒か特定できますよね。なので、生徒番号が主キーになります。ちなみに、氏名は同姓同名の可能性があるので主キーには出来ません。

関係演算

関係演算は表から行や列を抽出したり、表と表を繋げたりする演算のことです。

選択

表から行を取り出す演算を選択と言います。

射影

表から列を取り出す演算を射影と言います。

結合

特定の列を介して表と表を繋げる演算を結合と言います。

和(和集合)

表と表を重複する行を削除して結合し、出力する演算をと言います。下の例だと、生徒表1と生徒表2に存在するデータを、重複行を削除して出力します。

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

令和元年度秋期問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がそれぞれ主キーになっており、それぞれの主キーから一意に値が決まるようなテーブル定義になっているのは、イだけです。