コンテンツにスキップ

データベース:データを共有して管理する

指導者向けの公開補足

学習本文に加えて、指導の視点・背景・授業での確かめ方を示します。どなたでも読めます。

指導の焦点

表の見た目だけでなく、何を一件として記録し、一意に区別するかを考える。表計算とデータベースを、製品の優劣として説明しない。

一歩踏み込んだ背景

データの重複を減らす設計は更新の不整合を防ぐが、表を細かく分ければ常によいわけではない。結合や制約、同時更新の制御も管理の一部である。

授業での確かめ方

本文の図書と貸出の架空データで、同じ本の名称を毎回書く設計と、本IDで参照する設計を比べる。返却時の更新箇所を示して理由を説明させる。

制度・規格等は本文末尾の参考資料も確認してください。

この単元でできるようになること

Section titled “この単元でできるようになること”
  • データベースを使う目的を説明できる。
  • 表、レコード、フィールド、主キーの関係を説明できる。
  • データの重複や更新の不整合を避ける設計の意味を説明できる。

データベースは、一定の目的に沿って整理され、検索や更新ができるように蓄積したデータの集まりだ。多くの場合、専用のソフトウェアであるデータベース管理システム(DBMS)が、読み書き、同時利用、アクセス制御、障害への備えを支援する。単にファイルを一つにまとめただけで、全てのデータベース機能が得られるわけではない。

表形式の関係データベースでは、対象の種類ごとに表を作る。列は属性、行は一件の記録を表す。行をレコード、列をフィールドと呼ぶ場合もある。図書室で本と貸出記録を管理するなら、同じ本の著者名を貸出のたびに書き直すのでなく、本の情報と貸出履歴を分けて保存する設計が考えられる。

本ID 書名 分類
B031 星の観察入門 自然
B042 まちの地図づくり 地理
貸出ID 本ID 返却予定日
L510 B031 2026-11-12
L511 B042 2026-11-14

表の値は教材のために作った架空の記録だ。実際の図書館データや利用者の情報ではない。この形では貸出記録に書名を繰り返さず、本IDから本の情報を参照できる。

各行を区別するための属性を主キーという。表の中で重複しない値を使い、空欄にもならないようにする。貸出表の 貸出ID は、同じ本が何度も貸し出されても、それぞれの出来事を区別する候補になる。主キーに書名を使うと、同名の本や改題がある場合に一意な識別が難しくなる。

別の表にある主キーを参照する値は外部キーと呼ぶ。表の対応関係を保つことで、存在しない本IDの貸出記録が作られないようにする制約を設定できる。これらの制約はデータの整合性を守る助けになる。ただし、入力された書名や日付そのものが事実として正しいことまでは保証しない。

データベースでは、条件に合う記録を選び、必要な項目を取り出し、関連する表を結合して結果を得る。SQLを使う方式では、例えば「返却予定日が今週の貸出について、書名と予定日を一覧にする」という検索意図を表せる。ここでは実行可能なSQLではなく、何を選ぶかという処理の目的を示している。

検索したいこと 使う情報 得たい結果
今週返却予定の本 貸出記録の返却予定日、本表の本ID 書名と返却予定日
自然分類の貸出件数 本表の分類、貸出記録の本ID 分類ごとの件数

データベースは複数の利用者やプログラムで共通のデータを扱える一方、閲覧や更新の権限管理が必要になる。不要な個人情報を集めない、利用目的を決める、バックアップと削除の方法を整えることも大切だ。

用語 意味
データベース 整理し、検索や更新を行えるように蓄積したデータ
DBMS データベースの作成、検索、更新などを管理するソフトウェア
レコード 表の一行に当たる一件分の記録
主キー 表のレコードを一意に識別する属性
外部キー 他の表のレコードとの関係を示す属性
  1. 貸出表に書名を毎回書く代わりに本IDを使う利点を説明しよう。
  2. 貸出表の外部キーが、存在しない本IDを参照できないようにする理由を説明しよう。
  3. 主キーの値が一意であることだけでは、本の記録が正しいとは言えないのはなぜか。
問1の解答例を見る

同じ本の情報を何度も書かずに済み、書名の表記揺れや修正漏れを減らせる。本IDで書籍表と貸出表を結び付け、必要な情報を取り出せる。

問2の解答例を見る

存在しない本への貸出記録ができると、どの本を貸したのか確認できず、表同士の整合性が壊れるためである。外部キーの制約で不正な参照を防ぐ。

問3の解答例を見る

主キーの一意性は記録を区別できることを保証するだけである。書名・著者・冊数などの入力内容が実物や原資料と一致しているかは、別に確認する必要がある。