[ITパスポート]データベースとは[無料講座]

2020年2月26日

今回はITパスポートDB(データベース)について学習していきます。

ラク
ラク
DBっつったらドラ〇ンボールだよなぁ!?!?
キュー
キュー
金髪オタクゲーマーは黙ってろ

データベースとは

データベースは業務を行う上で必要なデータを収納しておくスペースの事を表します。

家でもクローゼットや本棚等、いろんな物を収納する場所は必要ですね。

このデータベースの構造によって必要なデータを迅速に取り出したり、分かりやすく整列させたりすることが可能となります。

カズ
カズ
エクセルなんかも一種のデータベースとして見れるね

リレーショナルデータベース

データベースの主流となっているのが関連型(リレーショナル)データベースと呼ばれるものです。

データを表形式で表すことが出来、情報処理技術者試験でもほとんどの場合データベース=リレーショナルデータベースと把握してしまって問題ありません。

商品ID カテゴリ 商品名 在庫量 単価
0001 食品 りんご 7 300
0002 食品 みかん 12 240
0005 キッチン用品 洗剤 6 400
0016 ペット用品 虫かご 2 1,000
キュー
キュー
背景ピンクで表した縦一列をと言って属性やアトリビュート、項目、フィールドって言い方もするで
モナ
モナ
青文字で書かれた横一列はって言ってタプルや組、レコードと言った言い方もするニャ

主キー

表の行を一意に特定できる列または列の組み合わせを主キーと呼びます。一意の意味はたった一つ、オンリーワンを意味しているため、その列または複数列のデータの組み合わせによってデータの値が決まれば行が特定できる必要があります。

そのため、主キーはデータの値の重複空白(NULL値)を許しません。

例えば先ほどのデータベースの例を見てみましょう。「カテゴリ」を主キーにしようとした場合、りんごもみかんも食品に該当するため一意に定まりません。そのため主キーにはなりません。

「在庫量」も現在はバラバラですが、みかんが5個売れてりんごとみかんの個数が7個になった場合一意に特定できないためこちらもOUTです。

一方で「商品ID」はそれぞれの商品に割り当てられた個別の物で、重複することは考えづらいです。そのため主キーになり得ます。また、「商品ID」+「カテゴリ」の様に、複数列を組み合わせて主キーとすることも可能です。

正規化

データベースを設計するにはデータの重複や矛盾を排除して整合性を一貫させる正規化と呼ばれる作業を行う必要があります。

例えば年間利用目的のスポーツクラブの会員のデータベースを例に見てみましょう。

利用者名 住所 電話番号 入会日 該当スポーツ レンタル備品 貸出日 返却日

このままデータを表にするといくつかの不具合が生じてきます。例えば同じ利用者が複数のスポーツに登録したり複数のレンタル品を借りたりすることで同じ表がいくつも生成されます。

また、万が一住所や電話番号が変わったとき、もとのデータベースを削除しなければ同じ利用者名で住所が違うデータが登録されることになります。

そのため以下の様に表を分割します。

利用者表

利用者コード 利用者名 住所 電話番号 入会日

備品表

備品コード 該当スポーツ レンタル備品

貸出表

利用者コード 備品コード 貸出日 返却日

このように表を分割することで1人の利用者による住所などのデータは一意に定まります。

また、「備品コード」や「利用者コード」と言った列が増えた分、データの不整合が生じなくなり、行も増えなくなるため全体のデータ量も減ります。

ここで気を付けるべきポイントとして、主キーの割り当てがあります。例えば利用者表の主キーは「利用者コード」、備品表の主キーは「備品コード」になりますが、貸出表の主キーは「利用者コード」だけでも「備品コード」だけでもダメです。

前者の場合は1人が複数の備品を借りることが出来なくなりますし、後者の場合は1種類の備品(例えば野球ボール)を誰か1人借りたら他が借りられなくなってしまいます。

それでは「利用者コード」+「備品コード」ではどうでしょうか。これでも難しくて、例えば1人で2月に野球ボールを借りて、翌月にもう一度野球ボールを借りようとしたときにブッキングしてしまいます。

したがって貸出日も加えて、「利用者コード」+「備品コード」+「貸出日」とするのがよさそうですね。

キュー
キュー
どの組み合わせが良いかは場合によるで

また、複数の行にまたがって同じ列があることにも注目しましょう。例えば貸出表の備品コードは備品表にある備品コードと同一です。このように他の表を参照することになる列を外部キーと呼びます。

そしてこの貸出表の備品コードが備品表では主キーになっている点もポイントです。相手の表で主キーになっていることで、複数の表に分かれた場合でも必要に応じて対応させることが出来ます。

スポンサーリンク

データベース・例題

実際に例題を解いて問題に慣れていきましょう。

問題

問1

関係データベースを利用する際に,データの正規化を行う目的として,適切なものはどれか。(H.21/秋)

ア 異機種のコンピュータ間の,データの互換性を保証する。
イ データが重複したり,データ更新の際に矛盾が生じたりしないようにする。
ウ データベースをネットワークで利用する際に,伝送上許されない文字を除去する。
エ 複数の媒体にまたがるデータの格納領域を,一つの連続した格納領域に見せかける。

問2

関係データベースにおける外部キーに関する記述のうち,適切なものはどれか。(H.29/秋)

ア 外部キーがもつ特性を,一意性制約という。
イ 外部キーを設定したフィールドには,重複する値を設定することはできない。
ウ 一つの表に複数の外部キーを設定することができる。
エ 複数のフィールドを,まとめて一つの外部キーとして設定することはできない。

解説(クリックで展開)

データベース・まとめ

今回はデータベースについて学習しました。

基礎的な内容ですが重要な語句が多く出てきたのでしっかりと覚えてしまいましょう。

カズ
カズ
特に赤文字の所は絶対覚えよう!

次回はデータベースの演算や管理について学習します。


システムのアンケート

学習ページにおいて、当サイトでは任意の箇所にメモを残せる機能を搭載しております。

そちらのメモ機能に関して、アンケートをお願いいたします。

該当システムは直感的に使いやすかったですか?

View Results

Loading ... Loading ...

該当システムは学習の理解度に貢献しましたか?

View Results

Loading ... Loading ...

該当システムはユーザ間での情報共有に役立つと思いますか?

View Results

Loading ... Loading ...

アンケートは以上になります。ありがとうございます。

スポンサーリンク