データベースのキーと関連から検索を組み立てる
主キー、書籍IDの参照、条件に合う行の選択、必要な列の表示を考える14問と六つの記述課題です。
学年・内容の目安 高校「情報Ⅰ」。授業の復習や教材の準備に使えます。公開教材の利用条件を確認し、年少の生徒には講師が紙の教材を用意します。
学習内容や既習事項に合わせて使う独自の練習です。文部科学省の認定教材や、教科書・入試の全範囲を網羅する教材ではありません。
高等学校「情報Ⅰ」(4)ア(イ)・イ(イ)。データベースと表形式の関連の利用。
解説を読む
架空の書籍表と貸出表を使い、同じ値で二つの表をつなぎ、条件に合う行と表示する列を選びます。
必要な予備知識
表の行と列を読み、同じ値を探せること。
- 主キーの値で表の一行を特定します。
- 表を結び付けるときは、参照する値を対応する列で探します。
- どの行を残すかと、結果にどの列を出すかを分けます。
解き方の例
貸出表にある書籍IDを、書籍表の書籍IDと照らし合わせると、貸出記録に題名を付けられます。
よくある間違い
- 同じ題名の行を、同じ本と決める。
- 同じ本の貸出を、何度あっても一件にしてしまう。
- 検索条件に使った列を、そのまま結果にも出すと考える。
資料と考え方を講師と確かめる
表のキーと関連、残す行の条件と表示する列を明示し、結果を確かめます。
架空の表を使います。検索手順は文章、表への印や擬似コードで表せます。書いた手順はこのページで実行されません。結果と手順は印刷したワークシートや自分のファイルに残せます。
文部科学省:高等学校学習指導要領解説 情報編 · 文部科学省:「情報Ⅰ」教員研修用教材 · PostgreSQL:表どうしの結合(英語) · PostgreSQL:外部キー(英語)
読む文章・資料
同じ題名でも本を見分ける
資料Aの書籍表は、書籍IDと題名を持ちます。行は(B01、海)、(B02、山)、(B03、海)です。書籍IDは行ごとに異なります。題名が同じでも、書籍IDが違えば別の本です。
二つの表を同じ値で結び付ける
資料Bの書籍表は(書籍ID、題名)の順で(B01、海)、(B02、山)、(B03、川)です。
貸出表は(貸出ID、書籍ID)の順で(L01、B01)、(L02、B03)、(L03、B01)です。貸出表の書籍IDを使って、対応する本を探します。
同じ本の複数の記録を調べる
資料Cの貸出表は(貸出ID、書籍ID)の順で(L11、B02)、(L12、B02)、(L13、B03)、(L14、B02)です。貸出IDは貸出を一件ずつ区別します。同じ本の書籍IDは、複数の貸出の行に現れます。
条件に合う行と、表示する列を分ける
資料Dには(貸出ID、書籍ID、状態)の順で(L21、B01、返却済)、(L22、B02、貸出中)、(L23、B01、貸出中)があります。「貸出中」の行だけを取り出し、結果では貸出IDと書籍IDだけを表示します。
二つの表を使い、条件に合う結果を作る
資料Eの書籍表は(書籍ID、題名)の順で(B01、海)、(B02、山)、(B03、川)です。
貸出表は(貸出ID、書籍ID、状態)の順で(L31、B01、返却済)、(L32、B03、貸出中)、(L33、B01、貸出中)です。貸出中の行に書籍表の題名を付けます。
参照する行が見つからない場合を調べる
資料Fでは書籍表にB01、B02、B03があります。調査用に別のファイルから読み込んだ貸出データには書籍IDがB99の行があります。元の書籍表にはB99がないため、このままではB99の題名が分かりません。
ほかの人が検索を繰り返せるようにする
資料Gで「貸出中の本の題名」を一覧にしました。貸出表には「返却済」か「貸出中」かを示す状態の列があります。同じ検索を繰り返すため、使った表、つないだ列、取り出した条件、表示した列を記録します。表には学習用の架空データを使います。
練習する
選択問題では答えを一つ選び、入力問題では指定された形式で答えます。判断の根拠や途中の手順は、記述課題で講師と確認します。
入力した答えは、ページを再読み込みするか離れるまで、このページのメモリ上に保持されます。保存済みの下書き、アカウントの成績、自動の宿題提出は作成されません。
自分の答えと記述
確認問題・資料・講師と使う課題
資料:同じ題名でも本を見分ける
資料Aで書籍表の一行を見分けるキーとして使えるのはどれですか。
- 書籍ID。どの行にも違う値が付く。
- 題名。同じ題名は同じ本の行になる。
- 行を表示した色。画面で変更できる。
答えと解説
書籍ID。どの行にも違う値が付く。
題名が重なる場合も、書籍IDなら一つの行を区別できます。
資料:同じ題名でも本を見分ける
資料Aで題名が「海」の本を区別するには何を比べますか。
- 表を開いた人の名前。
- B01とB03の書籍ID。
- 「海」の文字の数。
答えと解説
B01とB03の書籍ID。
題名が同じでも書籍IDが違うので、二冊の行を区別できます。
資料:二つの表を同じ値で結び付ける
資料Bで貸出L02を「川」と結び付けるときに使う値はどれですか。
- L02。書籍表でも貸出IDを探す。
- 川。貸出表の題名に書いてある。
- B03。両方の表にある書籍ID。
答えと解説
B03。両方の表にある書籍ID。
L02の書籍IDがB03なので、書籍表でB03の題名を調べます。
資料:二つの表を同じ値で結び付ける
資料Bで貸出L03の本の題名はどれですか。
- 海。L03の書籍IDはB01。
- 山。L03の書籍IDはB02。
- 川。L03の書籍IDはB03。
答えと解説
海。L03の書籍IDはB01。
貸出IDから書籍IDを読み、同じ書籍IDの題名を探します。
資料:同じ本の複数の記録を調べる
資料CでB02の貸出は何件ありますか。数値を入力します。
答えと解説
3
B02はL11、L12、L14の三件に現れます。
資料:同じ本の複数の記録を調べる
資料Cで貸出表の一件を区別するキーはどれですか。
- 書籍ID。同じ本の貸出は一件として扱う。
- 貸出ID。貸出の行ごとに値が異なる。
- 書籍の題名。貸出表の中から名前を読む。
答えと解説
貸出ID。貸出の行ごとに値が異なる。
一つの書籍IDが何度も現れるので、行を区別するには貸出IDを使います。
資料:条件に合う行と、表示する列を分ける
資料Dの条件を満たす貸出IDの組はどれですか。
- L21とL22。
- L21とL23。
- L22とL23。
答えと解説
L22とL23。
状態が「貸出中」のL22とL23を残します。
資料:条件に合う行と、表示する列を分ける
資料Dの条件に合う結果として表示する列はどれですか。
- 貸出IDと書籍ID。
- 状態と題名。
- 貸出IDと状態。
答えと解説
貸出IDと書籍ID。
状態は行を選ぶために使い、表示する列には含めません。
資料:二つの表を使い、条件に合う結果を作る
資料Eで貸出L32に付ける題名はどれですか。
- 海。
- 川。
- 山。
答えと解説
川。
L32の書籍IDがB03なので、書籍表にある「川」を付けます。
資料:二つの表を使い、条件に合う結果を作る
資料Eで、題名が「海」となる貸出中の行はどれですか。
- L31。
- L32。
- L33。
答えと解説
L33。
B01は「海」で、貸出中のB01はL33です。L31は返却済です。
資料:参照する行が見つからない場合を調べる
資料FでB99について、今の二つのデータから確認できるのはどれですか。
- 書籍表に対応する行がない。
- B99の題名は「海」である。
- B99の貸出はすでに返却された。
答えと解説
書籍表に対応する行がない。
書籍表にB99がないので、題名は特定できません。
資料:参照する行が見つからない場合を調べる
資料FでB99の題名を調べる次の手順はどれですか。
- 一番近いIDのB03の題名をそのまま付ける。
- 読み込んだIDと、元の書籍の記録を確かめる。
- 空欄に新しい題名を考えて入力する。
答えと解説
読み込んだIDと、元の書籍の記録を確かめる。
元の記録と比較し、転記や表の不足があるかを確かめます。
資料:ほかの人が検索を繰り返せるようにする
資料Gで別の人が同じ検索を行うために残す内容はどれですか。
- 検索した人の名前と、その日の時刻だけ。
- 出た行の数と、見出しに使った色だけ。
- 使った表、結び付ける列、条件と出す列。
答えと解説
使った表、結び付ける列、条件と出す列。
同じ表と条件で同じ出力を組み立てられるように記録します。
資料:ほかの人が検索を繰り返せるようにする
資料Gで「貸出中」はどこで使いますか。
- 貸出表から残す行を選ぶ条件。
- 二つの表を結び付けるための書籍ID。
- 書籍表で各本の題名を表す列。
答えと解説
貸出表から残す行を選ぶ条件。
状態が貸出中の行を選び、書籍IDで対応する題名を探します。
資料と考え方を講師と確かめる
資料:同じ題名でも本を見分ける
資料Aで主キーに使う列を選び、その列を使うと題名が「海」の二冊をどう区別できるか説明しましょう。
答えと解説
書籍IDを使います。「海」という題名は二冊にありますが、B01とB03は違う値なので、一行ずつ区別できます。
一つの行を特定できるかどうかでキーを選びます。
- 書籍IDを主キーとして選ぶ。
- 同じ題名でもB01とB03で区別できると説明する。
資料:二つの表を同じ値で結び付ける
資料Bで貸出L01の題名を求める手順を、二つの表の列と値を使って書きましょう。
答えと解説
貸出表のL01の行から書籍IDのB01を読みます。書籍表で同じB01を探し、その行の題名「海」を得ます。
表を渡るときに同じ値を照合します。
- 貸出表からL01の書籍ID B01を得る。
- 書籍表で同じIDを探し、題名「海」を得る。
資料:同じ本の複数の記録を調べる
資料CでB02の貸出をすべて探して、区別に使う値と一緒に並べましょう。何件になるかも示しましょう。
答えと解説
書籍IDがB02の行を選び、貸出IDのL11、L12、L14を並べます。三つの貸出IDがあるので三件です。
本の件数と貸出の件数は別に数えます。
- B02の行のL11、L12、L14を過不足なく示す。
- 貸出IDで区別するので、合計三件だと示す。
資料:条件に合う行と、表示する列を分ける
資料Dで残す行の条件と表示する列を示し、結果の行を二つ書きましょう。
答えと解説
状態が貸出中の行だけを残し、貸出IDと書籍IDを表示します。結果は(L22、B02)、(L23、B01)です。
二つの結果行の並び順は問いません。
- 貸出中という条件で行を選び、貸出IDと書籍IDを出す。
- 結果の二行を過不足なく示す。
資料:二つの表を使い、条件に合う結果を作る
資料Eで貸出中の記録を、貸出IDと本の題名で一覧にする手順を書きましょう。二つの結果行も示しましょう。
答えと解説
貸出表で状態が貸出中の行を選び、書籍IDが同じ書籍表の行と結び付けます。貸出IDと題名だけを表示して、(L32、川)、(L33、海)を得ます。
書籍IDで結んだ後で状態を絞る書き方や、表に印を付けてから結果を写す書き方も使えます。
- 状態で選び、書籍IDで結び、貸出IDと題名を出す手順を示す。
- (L32、川)と(L33、海)の二行を示す。
資料:参照する行が見つからない場合を調べる
資料Fで題名が見つからない理由を述べ、勝手に題名を付ける前に、次に確かめることを一つ挙げましょう。
答えと解説
書籍表にB99の行がないため、貸出の行に対応する題名が分かりません。読み込む前の貸出の記録を見て、書籍IDの転記が合っているか確かめます。
結果が欠ける場合は、確かめられる情報と不足する情報を分けます。
- B99の参照先がないため題名が分からないと説明する。
- 元のIDや書籍表が完全かを調べる具体策を一つ示す。
ワークシート
学習内容と参考資料
日本の学習指導要領
高等学校「情報Ⅰ」(4)ア(イ)・イ(イ)。データベースと表形式の関連の利用。 · 2026-11-09
学習内容と参考資料授業・宿題・次の記録につなげる
資料をもとにした判断や計算の手順を、生徒と一緒に確かめましょう。印刷する場合は生徒用と講師用を分け、記述課題は講師用の基準で確認します。年少の生徒には講師が紙の教材を用意します。生徒用のログインを使う場合は、利用条件と同意の手順を確認してください。
講師の方へ
教材にリンクを保存し、必要なときに生徒と共有できます。
この練習問題を保存ワークシート: データベースのキーと関連から検索を組み立てる
MomentDesk · https://momentdesk.com/ja/practice/build-queries-from-database-keys-and-relationships/
表のキーと関連、残す行の条件と表示する列を明示し、結果を確かめます。
文部科学省:高等学校学習指導要領解説 情報編 · 文部科学省:「情報Ⅰ」教員研修用教材 · PostgreSQL:表どうしの結合(英語) · PostgreSQL:外部キー(英語)
読む文章・資料
同じ題名でも本を見分ける
資料Aの書籍表は、書籍IDと題名を持ちます。行は(B01、海)、(B02、山)、(B03、海)です。書籍IDは行ごとに異なります。題名が同じでも、書籍IDが違えば別の本です。
二つの表を同じ値で結び付ける
資料Bの書籍表は(書籍ID、題名)の順で(B01、海)、(B02、山)、(B03、川)です。
貸出表は(貸出ID、書籍ID)の順で(L01、B01)、(L02、B03)、(L03、B01)です。貸出表の書籍IDを使って、対応する本を探します。
同じ本の複数の記録を調べる
資料Cの貸出表は(貸出ID、書籍ID)の順で(L11、B02)、(L12、B02)、(L13、B03)、(L14、B02)です。貸出IDは貸出を一件ずつ区別します。同じ本の書籍IDは、複数の貸出の行に現れます。
条件に合う行と、表示する列を分ける
資料Dには(貸出ID、書籍ID、状態)の順で(L21、B01、返却済)、(L22、B02、貸出中)、(L23、B01、貸出中)があります。「貸出中」の行だけを取り出し、結果では貸出IDと書籍IDだけを表示します。
二つの表を使い、条件に合う結果を作る
資料Eの書籍表は(書籍ID、題名)の順で(B01、海)、(B02、山)、(B03、川)です。
貸出表は(貸出ID、書籍ID、状態)の順で(L31、B01、返却済)、(L32、B03、貸出中)、(L33、B01、貸出中)です。貸出中の行に書籍表の題名を付けます。
参照する行が見つからない場合を調べる
資料Fでは書籍表にB01、B02、B03があります。調査用に別のファイルから読み込んだ貸出データには書籍IDがB99の行があります。元の書籍表にはB99がないため、このままではB99の題名が分かりません。
ほかの人が検索を繰り返せるようにする
資料Gで「貸出中の本の題名」を一覧にしました。貸出表には「返却済」か「貸出中」かを示す状態の列があります。同じ検索を繰り返すため、使った表、つないだ列、取り出した条件、表示した列を記録します。表には学習用の架空データを使います。
資料:同じ題名でも本を見分ける
資料Aで書籍表の一行を見分けるキーとして使えるのはどれですか。
- 書籍ID。どの行にも違う値が付く。
- 題名。同じ題名は同じ本の行になる。
- 行を表示した色。画面で変更できる。
途中の計算・単位・理由・確認答え:
資料:同じ題名でも本を見分ける
資料Aで題名が「海」の本を区別するには何を比べますか。
- 表を開いた人の名前。
- B01とB03の書籍ID。
- 「海」の文字の数。
途中の計算・単位・理由・確認答え:
資料:二つの表を同じ値で結び付ける
資料Bで貸出L02を「川」と結び付けるときに使う値はどれですか。
- L02。書籍表でも貸出IDを探す。
- 川。貸出表の題名に書いてある。
- B03。両方の表にある書籍ID。
途中の計算・単位・理由・確認答え:
資料:二つの表を同じ値で結び付ける
資料Bで貸出L03の本の題名はどれですか。
- 海。L03の書籍IDはB01。
- 山。L03の書籍IDはB02。
- 川。L03の書籍IDはB03。
途中の計算・単位・理由・確認答え:
資料:同じ本の複数の記録を調べる
資料CでB02の貸出は何件ありますか。数値を入力します。
途中の計算・単位・理由・確認答え:
資料:同じ本の複数の記録を調べる
資料Cで貸出表の一件を区別するキーはどれですか。
- 書籍ID。同じ本の貸出は一件として扱う。
- 貸出ID。貸出の行ごとに値が異なる。
- 書籍の題名。貸出表の中から名前を読む。
途中の計算・単位・理由・確認答え:
資料:条件に合う行と、表示する列を分ける
資料Dの条件を満たす貸出IDの組はどれですか。
- L21とL22。
- L21とL23。
- L22とL23。
途中の計算・単位・理由・確認答え:
資料:条件に合う行と、表示する列を分ける
資料Dの条件に合う結果として表示する列はどれですか。
- 貸出IDと書籍ID。
- 状態と題名。
- 貸出IDと状態。
途中の計算・単位・理由・確認答え:
資料:二つの表を使い、条件に合う結果を作る
資料Eで貸出L32に付ける題名はどれですか。
- 海。
- 川。
- 山。
途中の計算・単位・理由・確認答え:
資料:二つの表を使い、条件に合う結果を作る
資料Eで、題名が「海」となる貸出中の行はどれですか。
- L31。
- L32。
- L33。
途中の計算・単位・理由・確認答え:
資料:参照する行が見つからない場合を調べる
資料FでB99について、今の二つのデータから確認できるのはどれですか。
- 書籍表に対応する行がない。
- B99の題名は「海」である。
- B99の貸出はすでに返却された。
途中の計算・単位・理由・確認答え:
資料:参照する行が見つからない場合を調べる
資料FでB99の題名を調べる次の手順はどれですか。
- 一番近いIDのB03の題名をそのまま付ける。
- 読み込んだIDと、元の書籍の記録を確かめる。
- 空欄に新しい題名を考えて入力する。
途中の計算・単位・理由・確認答え:
資料:ほかの人が検索を繰り返せるようにする
資料Gで別の人が同じ検索を行うために残す内容はどれですか。
- 検索した人の名前と、その日の時刻だけ。
- 出た行の数と、見出しに使った色だけ。
- 使った表、結び付ける列、条件と出す列。
途中の計算・単位・理由・確認答え:
資料:ほかの人が検索を繰り返せるようにする
資料Gで「貸出中」はどこで使いますか。
- 貸出表から残す行を選ぶ条件。
- 二つの表を結び付けるための書籍ID。
- 書籍表で各本の題名を表す列。
途中の計算・単位・理由・確認答え:
資料と考え方を講師と確かめる
ここからは講師と確認する記述問題です。自動採点の点数には含みません。
資料:同じ題名でも本を見分ける
資料Aで主キーに使う列を選び、その列を使うと題名が「海」の二冊をどう区別できるか説明しましょう。
資料:二つの表を同じ値で結び付ける
資料Bで貸出L01の題名を求める手順を、二つの表の列と値を使って書きましょう。
資料:同じ本の複数の記録を調べる
資料CでB02の貸出をすべて探して、区別に使う値と一緒に並べましょう。何件になるかも示しましょう。
資料:条件に合う行と、表示する列を分ける
資料Dで残す行の条件と表示する列を示し、結果の行を二つ書きましょう。
資料:二つの表を使い、条件に合う結果を作る
資料Eで貸出中の記録を、貸出IDと本の題名で一覧にする手順を書きましょう。二つの結果行も示しましょう。
資料:参照する行が見つからない場合を調べる
資料Fで題名が見つからない理由を述べ、勝手に題名を付ける前に、次に確かめることを一つ挙げましょう。
解答: データベースのキーと関連から検索を組み立てる
書籍ID。どの行にも違う値が付く。
題名が重なる場合も、書籍IDなら一つの行を区別できます。
B01とB03の書籍ID。
題名が同じでも書籍IDが違うので、二冊の行を区別できます。
B03。両方の表にある書籍ID。
L02の書籍IDがB03なので、書籍表でB03の題名を調べます。
海。L03の書籍IDはB01。
貸出IDから書籍IDを読み、同じ書籍IDの題名を探します。
3
B02はL11、L12、L14の三件に現れます。
貸出ID。貸出の行ごとに値が異なる。
一つの書籍IDが何度も現れるので、行を区別するには貸出IDを使います。
L22とL23。
状態が「貸出中」のL22とL23を残します。
貸出IDと書籍ID。
状態は行を選ぶために使い、表示する列には含めません。
川。
L32の書籍IDがB03なので、書籍表にある「川」を付けます。
L33。
B01は「海」で、貸出中のB01はL33です。L31は返却済です。
書籍表に対応する行がない。
書籍表にB99がないので、題名は特定できません。
読み込んだIDと、元の書籍の記録を確かめる。
元の記録と比較し、転記や表の不足があるかを確かめます。
使った表、結び付ける列、条件と出す列。
同じ表と条件で同じ出力を組み立てられるように記録します。
貸出表から残す行を選ぶ条件。
状態が貸出中の行を選び、書籍IDで対応する題名を探します。
記述問題の解答・確認の観点
資料:同じ題名でも本を見分ける
資料Aで主キーに使う列を選び、その列を使うと題名が「海」の二冊をどう区別できるか説明しましょう。
書籍IDを使います。「海」という題名は二冊にありますが、B01とB03は違う値なので、一行ずつ区別できます。
一つの行を特定できるかどうかでキーを選びます。
- 書籍IDを主キーとして選ぶ。
- 同じ題名でもB01とB03で区別できると説明する。
資料:二つの表を同じ値で結び付ける
資料Bで貸出L01の題名を求める手順を、二つの表の列と値を使って書きましょう。
貸出表のL01の行から書籍IDのB01を読みます。書籍表で同じB01を探し、その行の題名「海」を得ます。
表を渡るときに同じ値を照合します。
- 貸出表からL01の書籍ID B01を得る。
- 書籍表で同じIDを探し、題名「海」を得る。
資料:同じ本の複数の記録を調べる
資料CでB02の貸出をすべて探して、区別に使う値と一緒に並べましょう。何件になるかも示しましょう。
書籍IDがB02の行を選び、貸出IDのL11、L12、L14を並べます。三つの貸出IDがあるので三件です。
本の件数と貸出の件数は別に数えます。
- B02の行のL11、L12、L14を過不足なく示す。
- 貸出IDで区別するので、合計三件だと示す。
資料:条件に合う行と、表示する列を分ける
資料Dで残す行の条件と表示する列を示し、結果の行を二つ書きましょう。
状態が貸出中の行だけを残し、貸出IDと書籍IDを表示します。結果は(L22、B02)、(L23、B01)です。
二つの結果行の並び順は問いません。
- 貸出中という条件で行を選び、貸出IDと書籍IDを出す。
- 結果の二行を過不足なく示す。
資料:二つの表を使い、条件に合う結果を作る
資料Eで貸出中の記録を、貸出IDと本の題名で一覧にする手順を書きましょう。二つの結果行も示しましょう。
貸出表で状態が貸出中の行を選び、書籍IDが同じ書籍表の行と結び付けます。貸出IDと題名だけを表示して、(L32、川)、(L33、海)を得ます。
書籍IDで結んだ後で状態を絞る書き方や、表に印を付けてから結果を写す書き方も使えます。
- 状態で選び、書籍IDで結び、貸出IDと題名を出す手順を示す。
- (L32、川)と(L33、海)の二行を示す。
資料:参照する行が見つからない場合を調べる
資料Fで題名が見つからない理由を述べ、勝手に題名を付ける前に、次に確かめることを一つ挙げましょう。
書籍表にB99の行がないため、貸出の行に対応する題名が分かりません。読み込む前の貸出の記録を見て、書籍IDの転記が合っているか確かめます。
結果が欠ける場合は、確かめられる情報と不足する情報を分けます。
- B99の参照先がないため題名が分からないと説明する。
- 元のIDや書籍表が完全かを調べる具体策を一つ示す。