はじめに
幽灯子/基本情報技術者副専門官「データベース」という言葉、聞いたことはあるけど、実際どういうものかよくわからない……という方は多いのではないでしょうか。基本情報技術者試験では、データベースに関する問題が必ず出題されます。
でも安心してください。難しそうに聞こえるデータベースの概念も、身近な例で考えれば意外とスッと理解できます。この記事では、データベースの基本をゼロからわかりやすく解説していきます。
そもそもデータベースって何?





データベースとは、大量のデータを整理して保存し、必要なときにすぐ取り出せるようにした仕組みのことです。
たとえば、あなたがスマホで通販アプリを使うとき、商品の情報、あなたの住所、注文履歴……これらすべてはデータベースに保存されています。レジで会計するときに店員さんが商品をスキャンすれば、すぐに値段が出てくるのも、商品情報がデータベースに入っているからです。
身近な例で言えば、エクセルの表に近いイメージです。行と列に整理されたデータが保存されていて、「〇〇さんの電話番号を調べて」と言えばすぐ出てくる——それがデータベースの基本的な役割です。
リレーショナルデータベース(RDB)とは



基本情報で最もよく出題されるのが、リレーショナルデータベースです。
リレーショナルデータベースとは、データを表(テーブル)の形式で管理するデータベースのことです。「リレーショナル」とは「関係」という意味で、複数の表を関連づけてデータを管理することからこの名前がついています。
たとえば、学校のシステムを例にしましょう。
「生徒」テーブル
| 生徒ID | 氏名 | クラス |
|---|---|---|
| 001 | 山田太郎 | 1年A組 |
| 002 | 佐藤花子 | 1年B組 |
| 003 | 鈴木一郎 | 2年A組 |
「成績」テーブル
| 生徒ID | 科目 | 点数 |
|---|---|---|
| 001 | 数学 | 85 |
| 001 | 国語 | 72 |
| 002 | 数学 | 91 |
「生徒ID」という共通の列(キー)を使って、2つのテーブルをつなぎ合わせることができます。「山田太郎の数学の点数は?」という質問に答えるとき、生徒テーブルと成績テーブルを生徒IDで結びつけて検索します。これがリレーショナルデータベースの基本的な考え方です。
覚えておきたい重要用語
① テーブル・レコード・フィールド
- テーブル:データを格納する表のこと(エクセルのシートに相当)
- レコード:テーブルの1行分のデータ(たとえば「山田太郎、1年A組」という1人分の情報)
- フィールド(カラム):テーブルの列のこと(「氏名」「クラス」など項目の種類)
② 主キー(プライマリーキー)
主キーとは、各レコードを一意に識別するための列のことです。「一意」とは「他と重複しない」という意味です。
たとえば、学校に「山田太郎」という生徒が2人いたとします。氏名だけでは区別できませんが、「生徒ID」が異なれば(001と004など)確実に区別できます。この生徒IDが主キーの役割を果たします。
主キーには以下の特徴があります。
- 値が重複しない(ユニーク)
- NULLにならない(必ず値が入っている)
③ 外部キー(フォーリンキー)
外部キーとは、別のテーブルの主キーを参照するための列です。先ほどの例で言えば、「成績」テーブルの「生徒ID」が外部キーです。この外部キーがあることで、2つのテーブルを関連づけることができます。
④ NULL(ヌル)
NULLとは、値が存在しない・不明であることを表す特別な状態です。「0」や「空欄」とは異なります。NULLは「値がない」という状態そのものを意味します。主キーにはNULLを設定することはできません。
SQL(エスキューエル)の基本



データベースに対して「このデータを取り出して」「このデータを追加して」と命令するための言語がSQLです。基本情報では、SQLの基本的な書き方を問う問題が頻出です。
SELECT文(データの検索)
最もよく使われるのが SELECT 文です。「テーブルからデータを取り出す」命令です。
SELECT 氏名, クラス FROM 生徒 WHERE クラス = '1年A組';
これを日本語で読むと、「生徒テーブルから、クラスが1年A組の人の、氏名とクラスを取り出せ」という意味になります。
- SELECT:取り出す列を指定する
- FROM:どのテーブルから取り出すか
- WHERE:条件を指定する(「〜の場合だけ」)
INSERT文(データの追加)
INSERT INTO 生徒 (生徒ID, 氏名, クラス) VALUES ('004', '田中次郎', '2年B組');
「生徒テーブルに、004・田中次郎・2年B組というデータを追加せよ」という意味です。
UPDATE文(データの更新)
UPDATE 生徒 SET クラス = '2年A組' WHERE 生徒ID = '001';
「生徒IDが001のレコードのクラスを、2年A組に書き換えよ」という意味です。
DELETE文(データの削除)
DELETE FROM 生徒 WHERE 生徒ID = '003';
「生徒IDが003のレコードを削除せよ」という意味です。
正規化とは?



正規化とは、データベースの設計を整理して、データの矛盾や重複をなくすための手法です。基本情報では「第1正規形」「第2正規形」「第3正規形」という概念が登場します。
難しく聞こえますが、本質はシンプルです。「同じ情報を何度も書かない、データが矛盾しないように設計しよう」ということです。
たとえば、1つの巨大なテーブルに生徒の情報も成績も住所も全部詰め込むと、同じ住所を何行にもわたって繰り返し書くことになります。住所が変わったとき、全行を修正しないとデータが矛盾してしまいます。これを解決するために、適切にテーブルを分割するのが正規化の目的です。
トランザクションとACID特性



銀行でお金を振り込むとき、「あなたの口座からお金が引かれる」と「相手の口座にお金が加わる」は必ずセットで行われる必要があります。片方だけ成功して片方が失敗したら大問題ですよね。
この「一連の処理をひとまとめにして、全部成功するか全部失敗するかを保証する仕組み」をトランザクションといいます。
トランザクションにはACID特性という4つの性質があります。
- A(Atomicity・原子性):処理は全部成功するか全部失敗するかのどちらかである
- C(Consistency・一貫性):処理の前後でデータの整合性が保たれる
- I(Isolation・独立性):複数のトランザクションが同時に実行されても互いに影響しない
- D(Durability・永続性):処理が完了したデータは障害が起きても失われない
まとめ


データベースの基本を整理すると、以下のポイントが試験に頻出です。
- データベースとは、データを整理して効率よく管理・検索できる仕組みのこと
- リレーショナルデータベース(RDB)は「表(テーブル)」でデータを管理し、テーブル同士を関連づける
- 主キーはレコードを一意に識別する列、外部キーは別テーブルの主キーを参照する列
- SQLの基本4命令:SELECT(検索)、INSERT(追加)、UPDATE(更新)、DELETE(削除)
- 正規化はデータの重複・矛盾をなくすためのテーブル設計の整理
- トランザクションは一連の処理をまとめて管理する仕組みで、ACID特性が重要



これらの概念は、過去問を解きながら繰り返し練習することで自然と身についていきます。難しそうに見えたデータベースも、基本の考え方を押さえれば着実に得点できる分野です。ぜひ過去問にも挑戦してみてください!














コメント