情報I / 情報通信ネットワークとデータの活用 4 / 6

データベースの仕組み

データベースの仕組み

コンビニの販売記録、学校の成績、SNSの投稿 — 現代社会は膨大なデータの上に成り立っています。大量のデータを整理して保存し、必要なものをすばやく取り出す仕組みがデータベースです。この講義では、最も広く使われるリレーショナルデータベースとSQLの基礎を学びます。

データベースとDBMS

データベースは、一定の規則で整理されたデータの集まりです。データベースを管理するソフトウェアをDBMS(データベース管理システム)と呼び、①複数人が同時に使っても矛盾が起きないようにする(同時実行制御)、②障害からデータを守る、③アクセス権を管理する、といった役割を担います。ファイルを個人がバラバラに管理するのと違い、データを一元管理して共有できるのが強みです。

リレーショナルデータベース(RDB)

現在最も普及しているのがリレーショナルデータベースです。データを行と列からなる表(テーブル)の形で管理し、表の横1行をレコード(1件分のデータ)、縦1列をフィールド(項目)と呼びます。

各レコードを一意に識別するための列を主キーと呼びます。主キーは値が重複してはならず、空(NULL)であってもならないという条件があります。学籍番号や会員IDが典型例です。また、他の表の主キーを参照する列を外部キーと呼び、これによって複数の表を関連づけられます。

📘 例 図書室の貸出管理を考えます。「生徒表(学籍番号・氏名・クラス)」「書籍表(書籍ID・題名・著者)」「貸出表(貸出ID・学籍番号・書籍ID・貸出日)」の3つの表に分けます。貸出表の「学籍番号」「書籍ID」は外部キーとして生徒表・書籍表の主キーを参照しています。氏名や題名を貸出表に直接書き込まないことで、同じ情報を二重に持たずに済み、「生徒の氏名変更が1か所の修正で済む」など、更新時の矛盾を防げます。

正規化 — 表をきれいに分ける

上の例のように、データの重複をなくすように表を分割・整理する作業正規化と呼びます。1つの表に何でも詰め込むと、同じ生徒の氏名があちこちに重複して記録され、修正漏れによる矛盾(更新時異状)が起きやすくなります。正規化によって「1つの事実は1か所にだけ記録する」状態に近づけるのがデータベース設計の基本です。

SQL — データベースへの問い合わせ言語

RDBの操作にはSQLという言語を使います。データを取り出す基本形は次のとおりです。

SELECT 列名 FROM 表名 WHERE 条件;

たとえば SELECT 氏名 FROM 生徒表 WHERE クラス = '2A'; は、「生徒表から、クラスが2Aである生徒の氏名を取り出す」という意味です。ほかに、追加のINSERT、更新のUPDATE、削除のDELETEなどの命令があります。

💡 ポイント
  • DBMSはデータの一元管理・同時実行制御・障害対策・アクセス権管理を担う。
  • RDBは表形式。行=レコード、列=フィールド。
  • 主キーは「重複しない」「NULLでない」の2条件。外部キーで表どうしを関連づける。
  • 正規化=重複をなくすよう表を分けること。更新時の矛盾を防ぐ。
  • SELECT 列 FROM 表 WHERE 条件 がSQLの基本形。

練習問題

  1. 主キーが満たさなければならない条件を2つ答えなさい。
  2. SELECT 氏名 FROM 生徒表 WHERE 学年 = 2; というSQL文の意味を日本語で説明しなさい。
  3. データベースの正規化を行う目的を説明しなさい。

解答・解説

  1. 解答:①値が重複しないこと(一意であること)、②空(NULL)でないこと
    解説:この2条件により、どのレコードも主キーの値で必ず1件に特定できる。
  2. 解答:生徒表から、学年が2である生徒の氏名をすべて取り出す。
    解説:SELECTが「取り出す列」、FROMが「対象の表」、WHEREが「絞り込み条件」を指定する。
  3. 解答:データの重複をなくし、更新・削除の際に矛盾(同じ情報の一部だけ直して食い違う等)が生じるのを防ぐため。
    解説:「1つの事実は1か所に」が原則。重複が減ることで記憶容量の節約にもつながる。
🔒

続きは無料アカウントで読めます

このレッスンの続きと、AIに教えて学ぶ機能が使えます。登録は無料です。

無料でアカウントを作る ログイン

このレッスンのQ&A

読み込み中...