この記事では関係データベースについてIT初心者にも分かりやすく解説します。
関係データベース
- 関係データベースはデータを複数の2次元の表として管理する方式。
- 主キーは行を特定できる属性。
関係演算
- 射影は表から列の一部を取り出す操作。
- 選択は表から行の一部を取り出す操作。
- 結合は表と表を共通の属性で横に足し算する操作。
- 和は表と表を共通の属性で縦に足し算する操作。
基本情報では関係データベースに関する問題が出題されます。是非最後までご覧ください。
関係データベースの基本
関係データベースとは、データを複数の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がそれぞれ主キーになっており、それぞれの主キーから一意に値が決まるようなテーブル定義になっているのは、イだけです。
基本情報に関する他の記事
ハードウェア | ソフトウェア | システム構成 |
ネットワーク | データベース | 開発手法 | 情報セキュリティ |
データベースに関する記事
関係データベースについての記事
【基本情報】トランザクション処理について解説
【基本情報】関係データベースの排他制御について解説
SQLについての記事
障害対応についての記事