みならいノート

情報Ⅰ 2027年度版

関係データモデル

みならいノートで覚える(無料)

このノートの問いがそのまま復習カードになり、忘れかけたころに出題されます。

0. どういうまとまりか

いま最も広く使われているデータベースは、データを表の形で持ちます。
表を何枚かに分けて持ち、必要なときに表から行や列を取り出したり、表どうしをつないだりして答えを作ります。

操作 何を取り出すか 表の形はどう変わるか
選択 条件に合う行 横に切る(列はそのまま、行が減る)
射影 指定した列 縦に切る(行はそのまま、列が減る)
結合 2 つの表を、共通の列の値でつないだもの 横につなぐ(列が増える)

分かれ目は次の 3 つ。

1. 関係データモデルと表

根拠: 学習指導要領 情報Ⅰ-(4)-ア-(イ)

データを行と列からなる表で表し、表どうしの関係(共通の列)で結びつけて扱う考え方を関係データモデルといいます。
この考え方でつくったデータベースが、関係データベース(リレーショナルデータベース)です。

生徒番号 氏名 学年 部活コード
S01 青木 1 B1
S02 井上 2 B2
S03 上田 1 B2
S04 江藤 2 B3
部活コード 部活名
B1 美術部
B2 写真部
B3 放送部

関係データモデルとは、データをどう表す考え方か?

データを行と列からなる表で表し、表どうしを共通の項目で関連づけて扱う考え方

この考え方でつくったデータベースを、関係データベース(リレーショナルデータベース)という。

関係データベースの表で、横の 1 行(1 件分のデータ)を何というか?

レコード(行)

生徒の表なら、1 人の生徒の生徒番号・氏名・学年などをまとめた 1 行。

関係データベースの表で、縦の 1 列(同じ種類の項目)を何というか?

フィールド(列)

生徒の表の「氏名」「学年」のように、どのレコードにも共通する項目。属性ともいう。

2. 主キーと外部キー

根拠: 学習指導要領 情報Ⅰ-(4)-ア-(イ)

表の中から特定の 1 行を取り出すには、行を区別できる列が要ります。
氏名は同姓同名がありうるので、重ならないように番号を振った列を用意します。

主キーとは何か?

表の中で、レコードを 1 つに特定できる列(または列の組)

生徒の表の「生徒番号」。同じ値が 2 つあってはならず、空欄も許されない。

「氏名」の列が主キーに向かないのはなぜか?

同姓同名の人がいると、値が重複してレコードを 1 つに特定できないから

主キーには、重複しないことが保証された番号などを使う。

1 つの列だけではレコードを特定できないとき、複数の列を組み合わせて主キーにしたものを何というか?

複合キー

例えば成績の表で、「生徒番号」と「科目」の組み合わせで 1 行が決まる場合。

外部キーとは何か?

別の表の主キーを参照するために置いた列

生徒の表の「部活コード」は、部活の表の主キー「部活コード」を指す外部キー。これで 2 つの表を関連づける。

外部キーの列に、参照先の表に存在しない値(例: 部活の表に無い部活コード)を入れようとするとどうなるか?

DBMS が登録を拒否する(参照の整合性を保つ)

存在しない部活に所属する生徒、という食い違ったデータが生まれないようにしている。

3. 選択・射影・結合

根拠: 学習指導要領 情報Ⅰ-(4)-ア-(イ)

関係データベースからデータを取り出すときは、表に対して次の 3 つの操作を組み合わせます。
操作の結果もまた表になるので、続けて別の操作をかけられます。

表から、条件に合う行だけを取り出す操作を何というか?

選択

「学年が 1 の生徒」のように、行を絞り込む。列の数は変わらない。

表から、指定した列だけを取り出す操作を何というか?

射影

「氏名と学年だけ」のように、列を絞り込む。行の数は(重複をまとめなければ)変わらない。

2 つの表を、共通の列の値が等しい行どうしでつないで 1 つの表にする操作を何というか?

結合

生徒の表と部活の表を「部活コード」でつなぐと、生徒ごとに部活名まで並んだ表ができる。

4. 正規化

根拠: 学習指導要領 情報Ⅰ-(4)-ア-(イ)

注文の表に、注文のたびに顧客の氏名・住所まで書いていくと、同じ顧客の住所が何度も現れます。
住所が変わったときに一部の行だけ直すと、同じ顧客の住所が食い違ってしまいます。

関係データベースの表の正規化とは何か?

データの重複をなくすように、表を分割して整理すること

顧客の情報は顧客の表に 1 回だけ書き、注文の表には顧客番号(外部キー)だけを置く。

表を正規化する目的は?

同じデータを 1 か所だけに持ち、更新したときに内容が食い違わないようにするため

分けた表は、結合すればいつでも元の形で見られる。

練習問題

1 の節の「生徒の表」と「部活の表」を使う。

問 1 生徒の表から「学年が 1」の行を選択した結果の表を答えよ。

次の 2 行(列は 4 つのまま)

生徒番号 氏名 学年 部活コード
S01 青木 1 B1
S03 上田 1 B2

選択は行を絞るだけなので、列はすべて残る。

問 2 生徒の表を「氏名」と「部活コード」で射影した結果の表を答えよ。

次の 4 行 2 列

氏名 部活コード
青木 B1
井上 B2
上田 B2
江藤 B3

射影は列を絞るだけなので、行は 4 つとも残る。

問 3 「写真部に所属する生徒の氏名」を求めたい。どの操作をどの順にかければよいか。また結果を答えよ。

生徒の表と部活の表を「部活コード」で結合 → 部活名が写真部の行を選択 → 氏名で射影。結果は「井上」「上田」。

結合すると各生徒の行に部活名が付く。部活コードが B2 の井上と上田の行が写真部になるので、それを選択し、氏名の列だけを射影する。

このノートの 13 問を、暗記カードで復習できます

みならいノートで覚える(無料)

答えを隠して出題し、忘れそうなころにもう一度出します。

前 データベースと管理システム
データの尺度と形式 次

このノートは無償で公開しています。当方は内容の正確性・完全性・最新性を保証しません。学習にあたっては、法令の原文・公式の出題範囲その他の一次資料を必ずご確認ください。試験への合格その他の効果を保証するものでもありません。

本文の転載・再配布はお断りしています(利用規約)。手元に置いて使いたい方は、ストアから Markdown ファイルとして入手できます。