本文へ移動
合格ノート.
ITパスポート
← 合格ノート ホーム
記事内の見出し

体系学習

データベースの仕組みを最初から理解する

データを表に整理するところから、主キー・外部キー、正規化、SQL、トランザクションまでを一つの流れとして理解する。

対象資格:ITパスポート / 基本情報技術者試験
目安時間:20分

このページで理解できること

  • データベースとDBMSの違いを説明できる
  • テーブル・レコード・フィールドの関係を説明できる
  • 主キーと外部キーの役割を区別できる
  • 正規化を行う目的を説明できる
  • 選択・射影・結合の違いを説明できる
  • トランザクションが必要な理由を説明できる

ITパスポート:データベースとDBMSの目的、表・レコード・フィールド、主キー・外部キー、正規化の必要性、選択・射影・結合、トランザクションと障害回復の概要を区別して理解する。SQLは文法暗記ではなく、何をする操作かを理解する。

データベースは、単にデータを保存する箱ではありません。必要なデータを取り出しやすくし、重複や矛盾を減らし、複数の利用者が同時に使っても整合性を保てるように管理する仕組みです。このページでは、学校の受講管理を例に、データを表へ整理してから検索・更新・保全するまでを順番に追います。

まずは全体の流れ

データベースを使うときの考え方を、大きく6段階に分けます。

  1. 必要なデータを整理する

    何を管理したいかを洗い出し、学生・科目・受講などのデータと、その関係を整理します。

  2. 表の形を設計する

    テーブル、レコード、フィールドに分け、主キーや外部キーを決めます。

  3. 重複や矛盾を減らす

    正規化などを使い、同じ事実を不必要に何度も保存しない構造を目指します。

  4. 必要なデータを操作する

    挿入・更新・削除・検索を行います。関係データベースではSQLが代表的な操作手段です。

  5. 複数処理の整合性を守る

    トランザクションや排他制御を使い、途中状態や同時更新による矛盾を防ぎます。

  6. 障害から回復する

    バックアップやログなどを利用し、障害が起きてもデータを復旧できるようにします。

1. データベースとDBMSは同じものではない

データそのものと、それを管理するソフトウェアを分けて考えます。

データベースは、利用しやすい形に整理して保存されたデータの集合です。例えば、学生番号・氏名・所属学科などを体系的に管理したものがデータベースに当たります。

DBMS(データベース管理システム)は、そのデータベースを作成・検索・更新・保護するためのソフトウェアです。利用者やアプリケーションはDBMSを通してデータを操作します。

関係データベースを管理するDBMSはRDBMSと呼ばれます。一方、データを必ずしも表形式だけで扱わないNoSQL系のデータベースもあります。

1. データベースとDBMSは同じものではないの比較表
用語役割
データベース整理されたデータの集合
DBMSデータベースの作成・検索・更新・制御などを行う管理システム
RDBMS関係データベースを管理するDBMS
NoSQL関係モデル以外の方式も含むデータベース群の総称として使われる

2. 表・レコード・フィールドでデータを整理する

関係データベースでは、表の構造を正確にイメージできることが基本です。

関係データベースでは、データをテーブル(表)として扱います。例えば学生テーブルなら、学生一人分の情報が1行にまとまります。

1行分のデータをレコードと呼び、学生番号や氏名のような各列をフィールド(項目)と呼びます。

『表の1行がレコード、表の1列がフィールド』と対応付けておくと、用語を混同しにくくなります。

学生テーブルの例
学生番号氏名学科コード
1001佐藤IT
1002鈴木EE
1003高橋IT
この例では、各行がレコード、学生番号・氏名・学科コードがフィールドです。

3. 主キーと外部キーで「どのデータか」「何とつながるか」を表す

主キーは行を一意に識別し、外部キーは別の表との関係を表します。

主キーは、テーブル内の各レコードを一意に識別するための項目です。学生テーブルで学生番号が重複しないなら、学生番号を主キーにできます。

外部キーは、別のテーブルの主キーなどを参照し、表と表の関係を表すために使います。

例えば学生テーブルに学科コードを持たせ、その値を学科テーブルの学科コードへ対応させれば、『この学生はどの学科に所属するか』を表せます。

3. 主キーと外部キーで「どのデータか」「何とつながるか」を表すの比較表
項目主な役割例
主キー自分の表のレコードを一意に識別する学生テーブルの学生番号
外部キー別の表との関係を表す学生テーブルの学科コード

4. 正規化は「同じ事実を何度も持たない」ために行う

データの重複を減らし、更新時の矛盾が起きにくい表構造を作ります。

一つの表に何でも詰め込むと、同じ情報が何度も現れやすくなります。例えば、受講者ごとに『科目コード・科目名・担当教員名』を毎回保存すると、同じ科目名や担当教員名が繰り返し記録されます。

この状態で科目名を変更すると、複数の行をすべて正しく更新しなければならず、一部だけ古い値が残る可能性があります。

正規化は、データの重複や更新時の矛盾を減らすために表を適切に分割していく考え方です。試験範囲の深さは資格で異なり、ITパスポートでは正規化の必要性を理解することが中心で、詳細な正規化手順は問わないと現行シラバスに明記されています。一方、FEでは第1〜第3正規形や関数従属性まで扱います。

重複が多い表のイメージ
学生番号科目コード科目名担当教員
1001DB01データベース基礎田中
1002DB01データベース基礎田中
1003NW01ネットワーク基礎山田
DB01の科目名や担当教員が受講者ごとに繰り返されています。科目情報と受講情報を適切に分けることで、同じ事実の重複を減らせます。

5. 選択・射影・結合は「どのデータを取り出すか」の違い

ITパスポートではSQL文法そのものより、代表的なデータ操作の意味を押さえることが重要です。

選択は、条件に合う行を取り出す操作です。例えば『学科コードがITの学生だけ』を取り出す操作です。

射影は、必要な列だけを取り出す操作です。例えば学生テーブルから『学生番号と氏名だけ』を取り出します。

結合は、関連する複数の表をつないで必要な情報を得る操作です。例えば学生テーブルと学科テーブルを学科コードで結び、学生名と学科名を一緒に表示できます。

5. 選択・射影・結合は「どのデータを取り出すか」の違いの比較表
操作何を絞る・つなぐか例
選択行IT学科の学生だけ取り出す
射影列学生番号と氏名だけ取り出す
結合複数の表学生表と学科表を学科コードでつなぐ

6. トランザクションは複数の処理を一つのまとまりとして扱う

途中まで成功した状態を残さないことが、データの整合性を守るうえで重要です。

トランザクションは、データベースに対する一連の処理を一つの論理的な処理単位として扱う考え方です。

例えば銀行振込では、『A口座から1万円減らす』だけ成功して『B口座へ1万円増やす』処理が失敗すると、全体として矛盾します。そこで、すべて成功したときだけ結果を確定し、途中で失敗した場合は変更を取り消す必要があります。

トランザクションに求められる代表的な性質はACID特性として整理されます。原子性(Atomicity)、一貫性(Consistency)、独立性(Isolation)、永続性(Durability)の4つです。

複数の利用者が同時にデータを更新するときは、排他制御などを利用して互いの処理が不整合を起こさないようにします。

障害が発生した場合に備えて、バックアップやログなどを利用したリカバリも重要です。

6. トランザクションは複数の処理を一つのまとまりとして扱うの比較表
用語考え方
コミット一連の処理結果を確定する
ロールバック処理途中の変更を取り消して整合した状態へ戻す
排他制御同時更新などによる矛盾を防ぐ
リカバリ障害後にデータを回復する

ITパスポートではここまでを確実に

  • データベースとDBMSの違いを説明できる
  • テーブル・レコード・フィールドを区別できる
  • 主キーと外部キーの役割を区別できる
  • 正規化が必要な理由を説明できる
  • 選択・射影・結合の違いを説明できる
  • トランザクション・排他制御・リカバリの目的を説明できる

最後に一本の流れへ戻す

  • 管理したいデータとその関係を整理する
  • テーブル・レコード・フィールドとして設計する
  • 主キーでレコードを識別し、外部キーで表同士を関連付ける
  • 正規化によって重複や更新時の矛盾を減らす
  • SQLなどを使って必要なデータを検索・追加・更新・削除する
  • トランザクションと排他制御で処理の整合性を守る
  • バックアップやログなどを利用して障害から回復する

データベース分野は用語数が多いですが、『設計する→操作する→整合性を守る→回復する』という流れで整理すると、それぞれの技術が何のために存在するのかを判断しやすくなります。

重要用語

関連する比較

理解度チェック

DBMSの役割として最も適切なものはどれか。
関係データベースの表で、1行分のデータを表す用語はどれか。
主キーの主な役割として最も適切なものはどれか。
関係データベースで、条件に合う行を取り出す操作はどれか。
正規化を行う主な目的として最も適切なものはどれか。
一連のデータベース処理を一つの論理的な処理単位として扱う考え方はどれか。