データベースのキーと関連から検索を組み立てる

主キー、書籍IDの参照、条件に合う行の選択、必要な列の表示を考える14問と六つの記述課題です。

学年・内容の目安 高校「情報Ⅰ」。授業の復習や教材の準備に使えます。公開教材の利用条件を確認し、年少の生徒には講師が紙の教材を用意します。

学習用の練習の使い方

学習内容や既習事項に合わせて使う独自の練習です。文部科学省の認定教材や、教科書・入試の全範囲を網羅する教材ではありません。

解説を読む

架空の書籍表と貸出表を使い、同じ値で二つの表をつなぎ、条件に合う行と表示する列を選びます。

必要な予備知識

表の行と列を読み、同じ値を探せること。

  1. 主キーの値で表の一行を特定します。
  2. 表を結び付けるときは、参照する値を対応する列で探します。
  3. どの行を残すかと、結果にどの列を出すかを分けます。

解き方の例

貸出表にある書籍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で「貸出中の本の題名」を一覧にしました。貸出表には「返却済」か「貸出中」かを示す状態の列があります。同じ検索を繰り返すため、使った表、つないだ列、取り出した条件、表示した列を記録します。表には学習用の架空データを使います。

練習する

選択問題では答えを一つ選び、入力問題では指定された形式で答えます。判断の根拠や途中の手順は、記述課題で講師と確認します。

入力した答えは、ページを再読み込みするか離れるまで、このページのメモリ上に保持されます。保存済みの下書き、アカウントの成績、自動の宿題提出は作成されません。

確認問題・資料・講師と使う課題

  1. 資料:同じ題名でも本を見分ける

    資料Aで書籍表の一行を見分けるキーとして使えるのはどれですか。

    • 書籍ID。どの行にも違う値が付く。
    • 題名。同じ題名は同じ本の行になる。
    • 行を表示した色。画面で変更できる。
    答えと解説

    書籍ID。どの行にも違う値が付く。

    題名が重なる場合も、書籍IDなら一つの行を区別できます。

  2. 資料:同じ題名でも本を見分ける

    資料Aで題名が「海」の本を区別するには何を比べますか。

    • 表を開いた人の名前。
    • B01とB03の書籍ID。
    • 「海」の文字の数。
    答えと解説

    B01とB03の書籍ID。

    題名が同じでも書籍IDが違うので、二冊の行を区別できます。

  3. 資料:二つの表を同じ値で結び付ける

    資料Bで貸出L02を「川」と結び付けるときに使う値はどれですか。

    • L02。書籍表でも貸出IDを探す。
    • 川。貸出表の題名に書いてある。
    • B03。両方の表にある書籍ID。
    答えと解説

    B03。両方の表にある書籍ID。

    L02の書籍IDがB03なので、書籍表でB03の題名を調べます。

  4. 資料:二つの表を同じ値で結び付ける

    資料Bで貸出L03の本の題名はどれですか。

    • 海。L03の書籍IDはB01。
    • 山。L03の書籍IDはB02。
    • 川。L03の書籍IDはB03。
    答えと解説

    海。L03の書籍IDはB01。

    貸出IDから書籍IDを読み、同じ書籍IDの題名を探します。

  5. 資料:同じ本の複数の記録を調べる

    資料CでB02の貸出は何件ありますか。数値を入力します。

    答えと解説

    3

    B02はL11、L12、L14の三件に現れます。

  6. 資料:同じ本の複数の記録を調べる

    資料Cで貸出表の一件を区別するキーはどれですか。

    • 書籍ID。同じ本の貸出は一件として扱う。
    • 貸出ID。貸出の行ごとに値が異なる。
    • 書籍の題名。貸出表の中から名前を読む。
    答えと解説

    貸出ID。貸出の行ごとに値が異なる。

    一つの書籍IDが何度も現れるので、行を区別するには貸出IDを使います。

  7. 資料:条件に合う行と、表示する列を分ける

    資料Dの条件を満たす貸出IDの組はどれですか。

    • L21とL22。
    • L21とL23。
    • L22とL23。
    答えと解説

    L22とL23。

    状態が「貸出中」のL22とL23を残します。

  8. 資料:条件に合う行と、表示する列を分ける

    資料Dの条件に合う結果として表示する列はどれですか。

    • 貸出IDと書籍ID。
    • 状態と題名。
    • 貸出IDと状態。
    答えと解説

    貸出IDと書籍ID。

    状態は行を選ぶために使い、表示する列には含めません。

  9. 資料:二つの表を使い、条件に合う結果を作る

    資料Eで貸出L32に付ける題名はどれですか。

    • 海。
    • 川。
    • 山。
    答えと解説

    川。

    L32の書籍IDがB03なので、書籍表にある「川」を付けます。

  10. 資料:二つの表を使い、条件に合う結果を作る

    資料Eで、題名が「海」となる貸出中の行はどれですか。

    • L31。
    • L32。
    • L33。
    答えと解説

    L33。

    B01は「海」で、貸出中のB01はL33です。L31は返却済です。

  11. 資料:参照する行が見つからない場合を調べる

    資料FでB99について、今の二つのデータから確認できるのはどれですか。

    • 書籍表に対応する行がない。
    • B99の題名は「海」である。
    • B99の貸出はすでに返却された。
    答えと解説

    書籍表に対応する行がない。

    書籍表にB99がないので、題名は特定できません。

  12. 資料:参照する行が見つからない場合を調べる

    資料FでB99の題名を調べる次の手順はどれですか。

    • 一番近いIDのB03の題名をそのまま付ける。
    • 読み込んだIDと、元の書籍の記録を確かめる。
    • 空欄に新しい題名を考えて入力する。
    答えと解説

    読み込んだIDと、元の書籍の記録を確かめる。

    元の記録と比較し、転記や表の不足があるかを確かめます。

  13. 資料:ほかの人が検索を繰り返せるようにする

    資料Gで別の人が同じ検索を行うために残す内容はどれですか。

    • 検索した人の名前と、その日の時刻だけ。
    • 出た行の数と、見出しに使った色だけ。
    • 使った表、結び付ける列、条件と出す列。
    答えと解説

    使った表、結び付ける列、条件と出す列。

    同じ表と条件で同じ出力を組み立てられるように記録します。

  14. 資料:ほかの人が検索を繰り返せるようにする

    資料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や書籍表が完全かを調べる具体策を一つ示す。

ワークシート

印刷用PDFを教材としてアップロード · 宿題に添付

学習内容と参考資料

日本の学習指導要領

高等学校「情報Ⅰ」(4)ア(イ)・イ(イ)。データベースと表形式の関連の利用。 · 2026-11-09

学習内容と参考資料

文部科学省 · 冊子37ページ。ア(イ)のデータベースによる蓄積、管理、提供。

文部科学省 · 冊子38ページ。ア(イ)・イ(イ)のデータの管理、表形式の関連と利用。

授業・宿題・次の記録につなげる

資料をもとにした判断や計算の手順を、生徒と一緒に確かめましょう。印刷する場合は生徒用と講師用を分け、記述課題は講師用の基準で確認します。年少の生徒には講師が紙の教材を用意します。生徒用のログインを使う場合は、利用条件と同意の手順を確認してください。

講師の方へ

教材にリンクを保存し、必要なときに生徒と共有できます。

この練習問題を保存