1.やさしい
代理キー(サロゲートキー)とは何ですか?
- A自動採番の id のように、業務上の意味を持たない人工的な識別子
- Bビューでだけ使われるキー
- Cメールアドレスのような実世界のデータから作ったキー
- D別のテーブルを参照するキー
2.やさしい
列に付けた UNIQUE 制約は何を保証しますか?
- Aその列で 2 つの行が同じ非 NULL 値を持たない
- B列の値が並べ替えられている
- Cその列が自動的にテーブルの主キーになる
- D挿入後に列を変更できない
3.やさしい
行数を数える集約関数はどれですか?
- AAVG
- BSUM
- CCOUNT
- DMAX
4.ふつう
2 つの SELECT クエリの間で使う INTERSECT は何を返しますか?
- A結果の直積
- B両方の結果に現れる行
- C1 つ目の結果にあって 2 つ目にない行
- D両方の結果のすべての行
5.ふつう
ROLLBACK TO SAVEPOINT s1 は何をしますか?
- Aトランザクション全体を最初から取り消す
- Bセーブポイントとそれ以降に変更されたすべてのテーブルを削除する
- Cセーブポイント s1 より後に行った変更を取り消し、トランザクションは開いたままにする
- Dトランザクションを終了し、すべてをコミットする
6.ふつう
customers テーブルの異なる都市の数を返すクエリはどれですか?
- ASELECT COUNT(DISTINCT city) FROM customers
- BSELECT SUM(DISTINCT city) FROM customers
- CSELECT DISTINCT COUNT(city) FROM customers
- DSELECT COUNT(city) FROM customers GROUP BY city
7.むずかしい
WHERE YEAR(order_date) = 2025 を含むクエリが order_date のインデックスを使わないことがあるのはなぜですか?
- AYEAR は有効な SQL ではないから
- Border_date のインデックスは ORDER BY 句にしか使われず、WHERE には決して使われないから
- Cインデックスは日付では決して機能しないから
- D列に関数を適用すると、単純なインデックス範囲検索ができなくなるから
8.むずかしい
テーブルを 3NF ではなく BCNF に分解することの知られた欠点は何ですか?
- A分解すると、結合し直したときに必ずデータが失われる
- B一部の関数従属性が、1 つのテーブル内では確認できなくなることがある
- CBCNF は 3NF より多くの冗長性を許す
- DBCNF のテーブルは主キーを持てない
解答
- 1. A · 自動採番の id のように、業務上の意味を持たない人工的な識別子
- 2. A · その列で 2 つの行が同じ非 NULL 値を持たない
- 3. C · COUNT
- 4. B · 両方の結果に現れる行
- 5. C · セーブポイント s1 より後に行った変更を取り消し、トランザクションは開いたままにする
- 6. A · SELECT COUNT(DISTINCT city) FROM customers
- 7. D · 列に関数を適用すると、単純なインデックス範囲検索ができなくなるから
- 8. B · 一部の関数従属性が、1 つのテーブル内では確認できなくなることがある
ステップごとの詳しい解答:このトピックは examproblems.com で練習できます。