データベース|関係データベースの表・主キーと外部キー・選択・射影・結合

公開 2026年11月8日

ネットショッピングの商品一覧、学校の成績管理、図書館の蔵書検索。大量のデータを整理して蓄え、必要なときにすぐ取り出せるようにしたものがデータベースです。共通テストでは、表の構造を読み取り、どの操作でどんな結果が得られるかを考える問題が出ます。

データベースとDBMS

データベースは、目的に合わせて集めたデータを、検索や更新がしやすいように整理して蓄えたものです。データベースを管理するソフトウェアを DBMS(データベース管理システム)といいます。

DBMSには、主に次のような機能があります。

機能 内容
データの検索・更新 条件に合うデータをすばやく取り出し、追加・変更・削除する
同時実行の制御(排他制御) 複数の人が同時に同じデータを更新しても、矛盾が起きないようにする
整合性の維持 決められたルールに合わないデータが入らないようにする
障害からの回復 故障が起きても、データを正しい状態に戻せるようにする
アクセス制御 利用者ごとに、見られるデータや操作できる範囲を制限する

排他制御の例: 座席予約で、2人が同時に最後の1席を予約しようとしたとき、一方の処理が終わるまでもう一方を待たせることで、同じ席が二重に予約されるのを防ぎます。

関係データベース

現在最も広く使われているのが、データを表の形で管理する**関係データベース**(リレーショナルデータベース)です。

生徒表

生徒番号 氏名 学年 部活コード
1001 青木 1 B01
1002 石田 2 B02
1003 上野 1 B01
用語 意味
レコード(行) 1件分のデータ。1人の生徒の情報
フィールド(列) データの項目。氏名、学年など
主キー レコードを一つに特定できるフィールド。値が重複せず、空にならない(この表では生徒番号)
外部キー ほかの表の主キーを参照するフィールド(この表では部活コード)

氏名は同姓同名の人がいるかもしれないので、主キーには向きません。学籍番号や商品コードのように、重複しないことが保証された番号を主キーにします。

3つの基本操作

部活表

部活コード 部活名 活動場所
B01 情報部 情報室
B02 写真部 美術室
操作 内容 例
選択 条件に合う行を取り出す 生徒表から「学年が1」の行 → 青木、上野の2行
射影 必要な列だけを取り出す 生徒表から「氏名」と「学年」の列だけ
結合 共通のフィールドで、複数の表をつなげる 生徒表と部活表を部活コードでつなげ、生徒ごとに部活名と活動場所を表示

結合の結果

生徒番号 氏名 学年 部活コード 部活名 活動場所
1001 青木 1 B01 情報部 情報室
1002 石田 2 B02 写真部 美術室
1003 上野 1 B01 情報部 情報室

「選択は行、射影は列」と覚えましょう。

表を分ける理由(正規化の考え方)

結合の結果のような1つの大きな表でデータを管理すると、情報部の活動場所が、情報部の生徒の数だけ何度も書かれることになります。

そこで、部活の情報は部活表に一度だけ書き、生徒表には部活コードだけを持たせます。このように、データの重複をなくすように表を分けることを正規化といいます。必要なときは、結合すれば元の大きな表が得られます。

関係データベース以外のデータベース

種類 特徴 使われる場面
キー・バリュー型 「キー」と「値」の組で、単純なデータを高速に読み書きする Webサービスのセッション管理、ショッピングカート
ドキュメント型 形式の決まっていないデータを、まとまり(文書)ごとに保存する SNSの投稿、商品ごとに項目が違うカタログ

これらは NoSQL と呼ばれ、表の形に収まりにくい大量のデータ(ビッグデータ)を扱うのに向いています。

共通テストでの出題

よくある間違い

まとめ

確認問題

問題を準備しています…

この分野が出た過去問

関連する用語