DBデータベーススペシャリスト試験 午前Ⅱ
平成21年度春期 データベーススペシャリスト 午前Ⅱ 問7
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- ア8823のユーザは,所在地が“東京”の行を参照できるようになる。
- イこのビューの作成者は,このビューに対するSELECT権限をもたない。
- ウ実表“取引先”が削除されても,このビューに対するユーザの権限は残る。
- エ導出表“東京取引先”には,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による補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針