データベース
データベースとは
Section titled “データベースとは”私たちの日常生活では、さまざまなデータが管理されています。たとえば、図書館の蔵書一覧、病院の患者カルテ、ネットショップの商品情報や注文履歴などです。こうした大量のデータを整理して蓄積し、必要なときにすばやく取り出せるようにした仕組みがデータベース(DB: Database)です。
データベースを使わない場合、データはファイルとしてバラバラに保存されることになります。たとえば、営業部が顧客情報をExcelファイルで管理し、経理部が別のファイルで同じ顧客情報を持っているとしましょう。この状態では、同じデータが重複して存在し、どちらかだけが更新されると内容が食い違ってしまいます。
データベースを使うと、こうした問題を解決できます。データベースの主な目的と特徴をまとめると、次のようになります。
| 目的・特徴 | 説明 |
|---|---|
| データの一元管理 | 同じデータを1か所にまとめ、重複や不整合を防ぐ |
| データの共有 | 複数の部門やシステムから同じデータを利用できる |
| 効率的な検索・更新 | 大量のデータの中から、必要な情報をすばやく取り出したり更新したりできる |
| データの整合性の維持 | ルールに従ったデータだけを登録し、矛盾のない状態を保つ |
データモデルの種類
Section titled “データモデルの種類”データベースにデータを格納するとき、「どのような構造でデータを整理するか」を決める考え方をデータモデルといいます。データモデルにはいくつかの種類があり、ITパスポート試験では次の3つが重要です。
| データモデル | データの構造 | イメージ |
|---|---|---|
| 階層モデル | データを親子関係(木構造)で表す | 会社の組織図のように、上から下へ枝分かれする形 |
| ネットワークモデル | データを網目状の関係で表す | 路線図のように、1つのデータが複数の親を持てる形 |
| 関係モデル(リレーショナルモデル) | データを「表(テーブル)」の形式で表す | Excelの表のように、行と列で整理する形 |
階層モデルは、1つの親に対して複数の子がぶら下がるツリー構造です。たとえば「本社→部→課」のように上下関係が明確なデータに向いていますが、複雑な関係を表すのが難しいという欠点があります。
ネットワークモデルは、階層モデルを拡張したもので、1つの子が複数の親を持てる構造です。より柔軟な関係を表現できますが、構造が複雑になりがちです。
関係モデルは、データを行と列からなる「表」で表現する、最もシンプルでわかりやすいモデルです。表同士を関連づけることで複雑なデータも扱えるため、現在もっとも広く使われています。この関係モデルに基づいて作られたデータベースを関係データベース(リレーショナルデータベース: RDB)と呼びます。
試験で出るポイント
「データを行と列からなる表形式で表すモデルはどれか?」という問題が出題されます。正解は関係モデルです。階層モデル(木構造)・ネットワークモデル(網目構造)との違いを押さえておきましょう。
関係データベースの基本構造
Section titled “関係データベースの基本構造”関係データベースでは、すべてのデータを表(テーブル)という形式で管理します。表は行(レコード)と列(フィールド / カラム)で構成されており、行が「1件分のデータ」、列が「データの項目」に対応します。Excelのシートをイメージするとわかりやすいでしょう。
関係データベースでは、用途に応じて複数のテーブルを作成し、テーブル同士を関連づけて利用します。たとえば「社員テーブル」と「部署テーブル」を分けて管理し、共通の項目(部署コードなど)で結びつけることで、データの重複を減らしながら柔軟にデータを扱えます。
テーブルの構成要素(テーブル・フィールド・レコード)の詳しい説明や、主キー・外部キーなどテーブル設計に関わる用語については、データの設計で詳しく解説しています。
試験で出るポイント
関係データベースの構成要素として、表(テーブル)・行(レコード)・列(フィールド/カラム) の3つの用語と、それぞれが何を指すかを正確に覚えておきましょう。「行=1件分のデータ」「列=データの項目」という対応関係が問われます。
過去問で実力チェック
Section titled “過去問で実力チェック”過去問に挑戦
Q. 関係データベースで管理された “商品” 表, “売上” 表から売上日が5月中で,かつ商品ごとの合計額が20,000円以上になっている商品だけを全て挙げたものはどれか。
商品
| 商品コード | 商品名 | 単価(円) |
|---|---|---|
| 0001 | 商品A | 2,000 |
| 0002 | 商品B | 4,000 |
| 0003 | 商品C | 7,000 |
| 0004 | 商品D | 10,000 |
売上
| 売上番号 | 商品コード | 個数 | 売上日 | 配達日 |
|---|---|---|---|---|
| Z00001 | 0004 | 3 | 4/30 | 5/2 |
| Z00002 | 0001 | 3 | 4/30 | 5/3 |
| Z00005 | 0003 | 3 | 5/15 | 5/17 |
| Z00006 | 0001 | 5 | 5/15 | 5/18 |
| Z00003 | 0002 | 3 | 5/5 | 5/18 |
| Z00004 | 0001 | 4 | 5/10 | 5/20 |
| Z00007 | 0002 | 3 | 5/30 | 6/2 |
| Z00008 | 0003 | 1 | 6/8 | 6/10 |
- ア 商品A,商品B,商品C
- イ 商品A,商品B,商品C,商品D
- ウ 商品B,商品C
- エ 商品C
解答(令和3年)
正解: ウ
Q. データを行と列から成る表形式で表すデータベースのモデルはどれか。
- ア オブジェクトモデル
- イ 階層モデル
- ウ 関係モデル
- エ ネットワークモデル
解答(令和4年)
正解: ウ