解答つきデータベースと SQLワークシート

無料で印刷できるデータベースと SQLのワークシート:やさしい問題から試験レベルまで 8 問、解答つき。印刷するか PDF で保存できます。

先生方へ: 授業で自由に印刷・コピーしてお使いいただけます。新しいワークシートごとに数値が変わり、専用の解答が付きます。授業ページに ExamProblems へのリンクを載せていただけると嬉しいです。

名前: ____________________   日付: ____________

1.やさしい

GRANT と REVOKE は SQL のどの部分に属しますか?

  1. Aデータ定義言語(DDL)
  2. Bデータ操作言語(DML)
  3. Cデータ制御言語(DCL)
  4. Dデータ問い合わせ言語(DQL)
2.やさしい

複合キーとは何ですか?

  1. A2 つ以上の列からなるキー
  2. B重複した値を許すキー
  3. Cデータベースが生成するキー
  4. D別のテーブルに保存されたキー
3.やさしい

代理キー(サロゲートキー)とは何ですか?

  1. Aビューでだけ使われるキー
  2. Bメールアドレスのような実世界のデータから作ったキー
  3. C別のテーブルを参照するキー
  4. D自動採番の id のように、業務上の意味を持たない人工的な識別子
4.ふつう

学生は多くの科目を履修でき、科目には多くの学生がいます。これはテーブルでどのようにモデル化しますか?

  1. A1 つの列に科目 id のリストを保存して
  2. B学生と科目の両方への外部キーを持つ中間テーブルで
  3. C学生と科目を 1 つのテーブルにまとめて
  4. Dstudents テーブルに courses を指す外部キー列 course_id を置いて
5.ふつう

第一正規形(1NF)で求められるのは次のうちどれですか?

  1. Aすべてのテーブルがちょうど 1 列であること
  2. B外部キーがないこと
  3. Cすべての非キー列が、キー全体に従属し、キー以外のものには従属しないこと
  4. D各列が原子的な値を持ち、繰り返しグループがないこと
6.ふつう

SQL インジェクション(SQL injection)とは何ですか?

  1. Aユーザー入力によって SQL クエリの構造が変えられてしまう攻撃
  2. Bデータベースのバックアップ手法
  3. Cインデックスを追加する方法
  4. D1 つの INSERT 文で多数の行を高速に挿入する方法
7.むずかしい

EXPLAIN(PostgreSQL では EXPLAIN ANALYZE)はクエリについて何を示しますか?

  1. A関係代数の記法だけによるクエリの書き換え
  2. Bクエリ中の各 SQL キーワードの意味
  3. Cクエリを実行したユーザーの一覧
  4. Dスキャンや結合方法など、オプティマイザが選んだ実行計画
8.むずかしい

トランザクション T1 は行 A をロックして行 B を待ち、T2 は行 B をロックして行 A を待っています。一般的な DBMS はどうしますか?

  1. Aデッドロックを検出し、一方のトランザクションを犠牲として中止する
  2. B両方のトランザクションを同時にコミットする
  3. C一方がふつうにコミットするまで、両方のトランザクションを待たせる
  4. D2 つのトランザクションを 1 つにまとめる

解答

  1. 1. C · データ制御言語(DCL)
  2. 2. A · 2 つ以上の列からなるキー
  3. 3. D · 自動採番の id のように、業務上の意味を持たない人工的な識別子
  4. 4. B · 学生と科目の両方への外部キーを持つ中間テーブルで
  5. 5. D · 各列が原子的な値を持ち、繰り返しグループがないこと
  6. 6. A · ユーザー入力によって SQL クエリの構造が変えられてしまう攻撃
  7. 7. D · スキャンや結合方法など、オプティマイザが選んだ実行計画
  8. 8. A · デッドロックを検出し、一方のトランザクションを犠牲として中止する

ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。