春期試験の押さえどころを総ざらい!データベースエキスパート試験攻略のツボ(4/5 ページ)

» 2008年04月16日 00時00分 公開
[西沢直木@IT]

午後1問題の対策

 午後1問題はパターンがはっきりしていて、特に次の3パターンの問題が毎年といってよいほど出題されます。

午後1問題の出題ジャンル

(1)正規化――主キーや従属性を挙げさせる問題

(2)SQL――SQL文の穴埋めや記述

(3)データベース設計――データベース構造や問題点を問う問題


 苦手分野がある方はその分野の問題を解き、要求されるスピードを体感しておきたい場合は、1年分を通して解くと良いでしょう。「90分で3問」は決してゆっくりできる時間ではありません。したがって、「どの問題にどう答えるか」のヒントになるパターンをいくつも蓄積しておくと効率的な回答に役立ちます。

午後1問題 (1)正規化の問題

 午後1(1)では、正規化について問われます。押さえるべき過去問と代表的な問題例は次のとおりです。

正規化の問題パターン

- 主キーや関数従属性を挙げる問題
主キー(19年-問1-設問2)、候補キー(19年-問1-設問4)、外部キー(18年-問2-設問1)、非キー属性(16年-問1-設問1)などを列挙させる問題は毎回出題。従属性について、部分関数従属性(17年-問1-設問1)、推移的関数従属性(18年-問1-設問1)を記述させる問題も出題される

【問】部分関数従属性を挙げよ。


【答】{属性1, 属性2} → {属性3, 属性4}


【問】推移的関数従属性を挙げよ。


【答】属性1 → {属性2, 属性3} → {属性4, 属性5}


- 表Xは第何正規形かを問う問題
午前の説明でも指摘した各正規形の違いから、従属性の有無などに言及しながら正規形名を答える(19年-問1-設問2、18年-問1-設問1)

【答】第3正規形。すべての属性が単一値で、すべての非キー属性が候補キーに完全関数従属し、すべての非キー属性が候補キーに推移的関数従属

していないから。


- 関数従属性の誤りを指摘させる問題
一意に決まらない属性を指摘する(17年-問1-設問1)

- 表Xへのデータ追加時に生じる不都合を述べさせる問題
列の冗長性や主キーの矛盾をチェックする (19年-問1-設問3、17年-問1-設問2)


午後1問題 (2)SQLの問題

 午後1問題のSQL問題こそ、データベースの仕事に従事していれば試験対策せずに解ける問題です。とはいえ、SQL文を手書きで穴埋めさせたり、記述させる設問もあるので、過去の問題から、注意すべきSQL文のパターンを挙げておきます。ヤマを張りたい方は外部結合やサブクエリに力を入れて見ておくとよいでしょう。

SQLの問題パターン

- 外部結合、サブクエリの穴埋め問題
外部結合やサブクエリといった、少々複雑なSQL文を穴埋めさせる問題がよく出題される。日常業務の延長でこなせる場合は問題なし。心配な場合は「17年-問3-設問1」や「16年-問2-設問1」をチェック

- CREATE TABLE文の穴埋め問題
「18年-問3-設問1」では、制約などの穴埋めが出題された。具体的には、「CONSTRAINT」、「FOREIGN KEY」、「REFERENCES」、「ON DELETE CASCADE」というキーワードを記述するもので、いずれも制約としては典型的なもの。CREATE TABLE文はあまり入力しないという方は念のため確認を

- カーソルのSQL文を記述させる問題
問題は午前でも出題される問題。頻繁に記述しない方は、構文を確認すること。特に「FOR UPDATE」や「CURRENT OF カーソル名」に注意(17年-問4-設問3)

DECLARE カーソル名 CURSOR FOR SELECT ... FROM ... 
WHERE ... FOR UPDATE OF ...
OPEN カーソル名
FETCH カーソル名 INTO ...
UPDATE ... SET ... WHERE CURRENT OF カーソル名
CLOSE カーソル名
カーソルのSQL文の例

- GRANT文の穴埋め問題
最近の「19年-問3-設問2」で出題されたパターンでは「TO 営業1課長ロール」とTO以下を埋めるだけだったが、「GRANT」以下をすべて記述させる場合もある。以下の構文を確認しておこう

GRANT 権限 TO ユーザ
GRANT 権限 ON オブジェクト名 TO ユーザ
GRANT文の構文

- IS NULLを記述させる問題
「= NULL」と記述しないように注意(18年-問4-設問2)


 SQL文については穴埋めだけではなく、「理由」などを問う問題もあります。これらは同じ設問が繰り返される可能性が高いとは言えないものの、出題された場合はすぐに解答できるようにしておきたいところです。

穴埋め以外で注意しておきたいSQL関連の問題

- 集計処理でCOALESCE関数が使われている理由
期間中のデータがなくNULLになってしまう集計対象値を0に変換するため(17年-問3-設問2)

- 結合処理で外部結合を使う理由
例えば、売上や使用実績が0の場合も集計結果に出力するため(17年-問3-設問1)

- アクセス権限の適切な設定方法
アクセス権限をテーブルに付与せず、ビューだけに付与する(19年-問3-設問1)


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。