DBデータベーススペシャリスト試験 午前Ⅱ

平成21年度春期 データベーススペシャリスト 午前Ⅱ 問7

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

次のSQL文の実行結果の説明として,適切なものはどれか。 CREATE VIEW 東京取引先 AS SELECT * FROM 取引先 WHERE 取引先.所在地 = '東京' GRANT SELECT ON 東京取引先 TO "8823"

選択肢

  1. ア
    8823のユーザは,所在地が“東京”の行を参照できるようになる。
  2. イ
    このビューの作成者は,このビューに対するSELECT権限をもたない。
  3. ウ
    実表“取引先”が削除されても,このビューに対するユーザの権限は残る。
  4. エ
    導出表“東京取引先”には,8823行までを記録できる。
解き方のヒントを見る

抽出条件を行単位で整理する視点

SQLの抽出結果を考えるときは、条件がどの行に関係するかを一行ずつ切り分け、NULLや重複、結合の影響を混同せずに、各選択肢の説明範囲を整理しましょう。

この問題で問われていること

この問題では、抽出条件と結果の対応を行単位で追うことに集中し、条件の評価対象、特殊な値の扱い、行数への影響を別々に確認する視点を持ちましょう。

視点

抽出結果を全体の印象で判断せず、対象となる行、条件に関係する列、行数が変化する要因を分けて整理すると、説明の前提や適用範囲を比較しやすくなります。

確認ポイント

  • 条件がどの行と列を対象にしているかを確認する
  • NULLや重複など、通常の値と区別して扱う要素を確認する
  • 結合や複数条件によって結果の行数が変わる可能性を確認する
正解と解説を見る

正解

ア

解説

CREATE VIEWで所在地の条件に合う行だけを返すビューを定義し,GRANT SELECTでユーザ8823にそのビューの参照権限を与えている。したがって適切な説明はアです。

理由

CREATE VIEW 東京取引先 AS SELECT * FROM 取引先 WHERE 取引先.所在地 = '東京' により,実表「取引先」から所在地が東京である行を対象とするビューが定義される。その後のGRANT SELECT ON 東京取引先 TO "8823"によって,ユーザ8823はこのビューをSELECTで参照できる。

比較

GRANTが与えるのはビューに対するSELECT権限であり,ビューの作成者の権限を否定するものではありません。また,ビューは導出表であって8823行を記録する表ではありません。基になる実表が削除されれば,ビューを通常どおり参照できるとは限らない。

選択肢ア(正解)

これは正解だよ。ビューは実表「取引先」からWHERE句の条件に一致する行を取り出す定義になっており,GRANT SELECTによってユーザ8823にビュー「東京取引先」の参照権限が与えられる。そのため,8823は条件に合う行をビュー経由で参照できる。

選択肢イ

これは不正解だよ。CREATE VIEWを実行してビューを作成したユーザは,そのビューの所有者または作成者として扱われる。設問のGRANTはユーザ8823への権限付与を示す文であり,ビュー作成者がSELECT権限をもたないという説明にはならない。

選択肢ウ

これは不正解だよ。ビューは実表「取引先」を基に定義されているため,基になる実表が削除されると,ビューの定義や参照に影響が生じる。ビューに対して付与された権限だけが,実表の削除後も通常どおり有効に残るとはいえない。

選択肢エ

これは不正解だよ。8823はGRANTの付与先であるユーザ名であり,ビューに記録できる行数を表す数値ではない。さらに,東京取引先はSELECT文から導出されるビューなので,設問のSQLは8823行まで保存できるという記録容量を指定していない。

学習のポイント

ビュー定義,WHERE句による行の抽出,GRANT SELECTの権限対象を区別して理解する。

出典:独立行政法人 情報処理推進機構(IPA)平成21年度春期 データベーススペシャリスト試験 午前Ⅱ 問7(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針