「情報処理試験まとめ/データベーススペシャリスト試験の勉強法まとめ」の編集履歴(バックアップ)一覧はこちら
情報処理試験まとめ/データベーススペシャリスト試験の勉強法まとめ - (2016/10/17 (月) 20:00:11) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
&topicpath()&aname(top)
#divclass(pageTitle){データベーススペシャリスト試験の勉強法まとめ}
**目次
#contents_line(level=3,sep= / )
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
**はじめに
***はじめに
モバイル版が表示されてしまう人は画面最下部のPC版はこちらをクリックで見やすいページが表示されます。
データベーススペシャリスト試験に合格するための勉強方法、お勧め参考書、お勧め参考書、勉強テクニック、解答のコツなどを紹介。
***解答テクニックは別ページにまとめました
解答テクニックに関する内容は、記述内容を追加して文字数が多くなったため別ページにまとめました。あわせてご覧ください。
[[データベーススペシャリスト試験の解答テクニック>情報処理試験まとめ/データベーススペシャリスト試験の勉強法まとめ/午後1&2対策]]
**関連ページ
#ls3(情報処理試験まとめ)
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
**データベーススペシャリスト試験とは
***概要
主にデータベースに関連する能力が問われる試験。データベースに関する企画、開発、運用、保守など全般に関しての知識が問われる試験です。具体的には下記のような能力が問われる。
・データ管理者として,情報システム全体のデータ資源を管理する。
・データベースシステムに対する要求を分析し,効率性・信頼性・安全性を考慮した企画・要件定義・開発・運用・保守を行う。
・個別システム開発の企画・要件定義・開発・運用・保守において,データベース関連の技術支援を行う。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***難易度
データベーススペシャリスト試験はあらゆるコンピュータなどのIT技術者試験のなかでも難易度が高い試験と言われている。いきなりこの試験を目指すのは難しいと思うので、少なくともこの試験と同じIPAが実施する応用情報処理技術者試験程度は合格してから望むのがいい。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***試験傾向
試験問題の傾向はわりとはっきりしているので、この後にお勧めする参考書を中心に学習することでおおまかな傾向の理解はできると思う。試験の内容的には暗記量はそれほどでもないが、問題によっては思考力、応用力などが求められる傾向が強く、発想力が問われるようなことが多い。そのため基本を忠実に抑えて問われていることに対してどのように解決できるのかを解答できる能力が必要になる。
なので一般的には「解答して楽しい」などとも言われるが、逆に解答時間にはシビアな傾向なのでとにかく一つの問題で躓かずに次の問題に進み、とにかく一点でも多く獲得することが重要。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
**勉強方針
***求められる技術力
IPAによると求められる技術力というのは以下の通り。
・データベース技術の動向を広く見通し,目的に応じて適用可能な技術を選択できる。
・データ資源管理の目的と技法を理解し,データ部品の標準化,リポジトリシステムの企画・要件定義・開発・運用・保守ができる。
・データモデリング技法を理解し,利用者の要求に基づいてデータ分析を行い,正確な概念データモデルを作成できる。
・データベース管理システムの特性を理解し,高品質なデータベースの企画・要件定義・開発・運用・保守ができる。
これをみればわかりようにデータベースに関する全般の知識が必要で、具体的には必要に応じた技術の選択、現状のビジネスロジックにおけるデータの扱いから最適な概念データモデルを作成し実際に実装する知識、データベース運用に関する運用や保守に関する仕組みが必要となる。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***方針決定
データベーススペシャリスト試験は高度試験であるので、まずは最低限でも基本情報処理技術者試験に合格できる程度の知識が必要になる。この知識がないと午前1をクリアできないので、まずは基本情報を合格できる程度の知識を、可能ならば応用情報に合格できる程度の知識を得るのが望ましい。
その後はおおむね以下の3コースにわかれると思う。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***オススメコース1-最初からコース-
基本情報、応用情報の知識はあるけど、データベースに関する実務経験はまったく無いケース。この場合はデータベースに関する基礎から勉強する必要がある。データベースとは何?というところから始まると思うので、下記に記述する勉強方法のstep1から初めてしっかりとした知識を身につけることが望ましい。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***オススメコース2-クエリ勉強コース-
基本情報、応用情報の知識があり、データベースに関してもそれなりの知識はあるが、クエリを書いたことがないパターン。クエリを覚えなくても合格できるという意見もあるが、やはりクエリの学習をしたほうがいいと思う。概念的な学習は簡単だが、具体的にクエリの学習をすることでその本質が見えてくると思うからだ。例えば内部結合や外部結合に関して、どのように結合したほうがパフォーマンスが良いのか、またSQLにどのような関数があるのかは実際にSQLを学習して実際に動かしてみたほうがわかりやすいと思う。より合格を確実なものとするために、SQLを学習することから始める人は下記の勉強方法のstep2から開始しよう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***オススメコース3-過去問重視コース-
試験まであと2ヶ月程度で時間がない人や、業務でデータベースの構築経験がある人はこのコース。まず基本情報の午前試験に合格出来ないレベルの人はこの時点で学習を開始するのはほぼ無理があると思われる。基本情報、応用情報を取得していて、なんとかこの試験に合格したい人は時間的にこのコースを選択するしかない。また、すでに業務経験がありデータベースに関する経験がある人も、およそこのコースで十分だと考えられる。下記の勉強方法のstep4から開始しよう。
**お勧め参考書
***参考書の種類について
参考書をいろいろみてみると、参考書は学習することをメインに作られた学習用参考書と、合格するためのテクニックを追求したようなテクニック習得用参考書の二種類にわかれる。学習用の参考書はデータベースの基礎から記述されており、データベースのことを知らない人にもわかり安い作りになっている。テクニック習得用の参考書はどちらかとうと基礎を習得している人向けで合格するための情報や解答テクニックが重点となっている。
わかりやすい区別の方法は過去問の解説にどれだけページ数があるかで、過去問の解説がない参考書はゼロから勉強するのに向いている参考書と言える。過去問ベースで解説している参考書はテクニック重視の参考書で、その中間の参考書はデータベースに関する知識も解説しながら過去問も解説するというような形になっている。
データベースでの開発経験の無い人は学習用参考書とテクニック習得用参考書を二冊、開発経験のある人はテクニック習得用参考書だけ利用するなどというように工夫をしよう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***学習用参考書
データベースの業務経験が無い人は、まずは参考書を利用してデータベースに関する基礎知識から学習するのがお勧め。データベースの学習のための本はいろいろあるが、やはり資格試験で必要とされている知識はある程度決まっているので、資格試験用に記述された参考書での学習がお勧め。
***2016年学習用参考書一覧
#html2()
{
<iframe src="http://rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=matowiki-22&o=9&p=8&l=as4&m=amazon&f=ifr&ref=ss_til&asins=B016W1WKWQ" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
}
#html2()
{
<iframe src="http://rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=matowiki-22&o=9&p=8&l=as4&m=amazon&f=ifr&ref=ss_til&asins=B0141XEUNO" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
}
#html2()
{
<iframe src="http://rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=matowiki-22&o=9&p=8&l=as4&m=amazon&f=ifr&ref=ss_til&asins=4813262112" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
}
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***テクニック習得用参考書
実務経験がある人も無い人も絶対に購入すべき参考書。情報処理教科書は自分も実際に利用してとても重宝したのでおすすめできる。特に午後1、午後2の解説や解答方法の具体的なテクニックが記述されており、これを読むことで解答能力が確実にUPする。
データベーススペシャリスト試験における独特の解答の言い回し的な内容もしっかり記述されており、これを暗記するだけで確実に回答欄を埋めることができる。
テクニックだけでなく正規化、データモデリングに関する解説もしっかり記述されているので、データベースの構築経験やクエリを書ける人がうろ覚えにしている知識なんかも再確認できる。
さらに過去問の解説をダウンロードでWEBから入手することができる。一つの問題に対して数ページ、場合によっては10ページ近い解説がされているのでそれだけで購入する価値がある。この試験は過去問になれておいたほうが解答しやすくなると思われるので、この参考書は絶対に購入して学習に利用しよう。
そして過去問はこの参考書で網羅されているので、これを一冊購入すればわざわざ午後1、午後2用の過去問題集も買う必要はない。
***2016年テクニック習得用参考書(情報処理教科書が最もおすすめ、絶対に購入すべし)
&html(<iframe src="http://rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=matowiki-22&o=9&p=8&l=as4&m=amazon&f=ifr&ref=ss_til&asins=4798143219" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>)
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
**勉強方法
***基本的な流れ
基本的にはSTEP1から順番にこなしていこう。基本情報技術者、応用情報技術者試験に合格していない人は、まずはそれぞれのどちらかを合格しておいたほうがいいと思われる。
データベースの開発経験が無い人はSTEP1からSTEP5まで順番に。ただし時間が無い人はSTEP1とSTEP2を、クエリを学習しなくともなんとかなると考えている人はSTEP2を飛ばしても構わない。
データベースの開発経験のある人、クエリをかける人はSTEP1~3を飛ばしてSTEP4からこなしていこう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***step1 基礎学習-午前2対策-
まずはデータベースの基本を学ぶのがSTEP1。ER図、バックアップ・リカバリ、テーブル設計、チューニング、分散システム、正規化、トランザクションなど基本的なことを学ぶのがSTEP1。
具体的には学習用の参考書を利用してデータベースに関する基本を勉強していこう。内容をすべて暗記する必要はなく、データベースがどういうもので、どのような動きをしているのかなど仕組みについて理解することを心がけるようにしよう。この段階で完璧に理解するのは難しいので、step5に進む過程でわからない内容などがでてきたら、その都度参考書で再学習して理解を含めていこう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***step2 クエリの勉強-基本的なDBの仕組みの学習-
最近はクエリに関する設問もかなり増えているようなので、基本的なクエリや関数などについては覚えて置いたほうが合格率が高まる。
具体的な勉強方法は [[応用情報技術者試験向けデータベース入門 > 情報処理試験まとめ/応用情報技術者試験の勉強法まとめ/応用情報技術者試験向けデータベース入門]] を参考にしてもらえればいいと思う。応用情報向けだが基本的にこの程度のクエリが理解できればなんとかなる。あとは知らない関数などがでてくる度に、実際に自分でクエリを記述して動作を確認すれば問題ない。
基本的には、grant, create table, drop table, insert into, update, delete, select, where, group by, having, order by, inner join, outer join, sum, count. max, avg, datetime, between, exists, notあたりと、サブクエリまで抑えておけば大丈夫だと思う。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***step3 午前2対策
実務経験がない人は午前2の過去問を解いて基本的な知識が身についているか勉強しよう。おおむね毎回80%程度解答できるようになったら問題ない。基本的に午前問題は暗記で突破できてしまうので時間がなければ過去問の丸暗記でも問題ないが、午後問題は様々な知識が求められるため試験問題の暗記ではなく、ちゃんと理論を把握しておくことが望ましい。
午前2問題の演習時には、正答以外の選択肢に記述されている内容が何について述べているか理解できているかも確認すること。もし解答を間違ったり、選択肢の内容が一つでも理解できなかった場合は、その問題に「正」の字でチェックをすること。これは間違うたびにチェックをする。こうすると間違った回数がわかるので、その分野が苦手だということを確認できる。その分野については参考書で再学習して知識を高めるようにしよう。
80%程度解答できない場合は、過去問を周回して、それでも間違った問題に関しては参考書を利用して学習するようにしよう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***step3.5 応用情報DB関連の学習-DB問題の基礎-
時間がある人は、応用情報午後問題のデータベースに関する問題も解いてみよう。過去問はIPAのホームページに解答と共に公開されている。応用情報のデータベースに関する問題は、本当に基礎的な内容なのでこれが解けなければSTEP4、5に進んでも意味がない。過去問を読んで問題がわからないレベルならSTEP1、2に戻って学習を続けよう。楽々解ける感じならSTEP4に進んでも構わないが、ところどころまったくわからないような設問がでてくる場合は、その分野に疎いことが考えられるので、その分野に関する知識を再度学習することにしよう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***step4 午後1対策
実務経験がある人はSTEP4からのスタート。ただし経験がある人が必ずしも午前2をクリアできるだけの知識があるとは限らないので、数年度分程度、午前2の問題を解いて80%以上解答できることを確かめよう。もし80%以上解答できない場合は、残念だがstep3に戻り80%以上解答できるようにしておこう。
まずは&html(<a rel="nofollow" href="http://www.amazon.co.jp/gp/product/4798143219/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=4798143219&linkCode=as2&tag=matowiki-22">情報処理教科書 データベーススペシャリスト</a><img src="http://ir-jp.amazon-adsystem.com/e/ir?t=matowiki-22&l=as2&o=9&a=4798143219" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />)の午後1の解答テクニックが紹介されているページを熟読して解答テクニックを身につけておくこと。特に正規化、概念データモデリング、ER図などに関することの知識は必須になるので、その該当部分の知識を深めておく。
次に過去問を解く。可能であれば過去問を2周ほど回すのが望ましいが、もし時間がなければできるだけ多くの過去問を解いて慣れることから始めよう。間違った問題については、必ずどうして間違ってしまったのかを確認すること。文章の見落としなのか、知識がなかったのか、勘違いだったのかをはっきりさせることが重要だ。間違った問題に対しては、その解答のヒントが問題文中のどこにあるのかを確認して、なぜそれに気がつかなかったのかを把握することから始めよう。もし知識の穴があった場合には参考書を利用して学習し直そう。
午後1は、午後2を学習し慣れていくとかなり簡単に感じられるようになる。そのため午後1に関しては2周、3周もせずに1周で午後2に進んでしまうという手もアリだ。午後2の演習で慣れた頃、一度午後1を演習してみて手応えを感じてみる程度でも構わないと思う。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***step5 午後2対策
午後2対策も基本的に過去問を解けば大丈夫だが、その前に&html(<a rel="nofollow" href="http://www.amazon.co.jp/gp/product/4798143219/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=4798143219&linkCode=as2&tag=matowiki-22">情報処理教科書 データベーススペシャリスト</a><img src="http://ir-jp.amazon-adsystem.com/e/ir?t=matowiki-22&l=as2&o=9&a=4798143219" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />)の午後2の解答テクニックに関するページを熟読しテクニックを身につけておくこと。これをしっているかどうかで合格する確率はかなり異なってくる。
こちらも間違った問題に関しては、採点後に必ず見直して確認することが望ましい。問題文中にあるヒントに気がつかなかったのか、知識が無かったのかを確認しておくことが重要だ。間違った問題に関しては、解答をみてその解答を導くためのヒントがどこに書かれているのかを再度確認し、なぜそのヒントに気がつかなかったのかを自分の中で問い直そう。知識がなかったり不確かで間違えてしまった場合には、その知識は修正するようにしよう。
午後2に関しては慣れるまでこなしていくしかないので、解答ができるまで周回を繰り返して参考書の解説を読んで知識を修正していくようにしよう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
**勉強のポイント
***出題傾向から勉強分野を絞る
#divclass(h5){午後1編}
午後1は3問中2問の選択形式だが、これらは以下のように分かれることが多い。
#divclass(h6){問1、問2}
主に関係従属性、関係スキーマ、ER図、テーブル構造、正規化、候補キーなどを答えさせたりする問題が多い。さらにデータベースの更新順序を答えさせたり、データ抽出するためのクエリを記述させる問題なども出題される。またビジネスロジックや帳票などを文章で記述し、取り扱うデータをどのようなテーブル構造で実現すればいいかなど記述させる問題なども出題される。
#divclass(h6){問3}
こちらはデータベース設計、概念設計や論理設計以外のものがすべて入るのだが、物理設計やデータベースの復旧に関する問題、検索時間を早くするためのクエリチューニング、セキュリティ、同時実行制御、故障への対応などが問われることが多い。
#divclass(h6){まとめ}
問3のチューニング関連はクエリの動作実行に関する知識が深くなければ解けないこともあるし、問題の内容が常に一定するわけではないので実務経験がないと厳しいと思う。ただし実務で経験していたりすると割と楽な問題でもある。
そのため実務経験が無い人は主に概念設計が中心となる問1と問2を選択すると決めてしまい、物理設計が主となる問3に関してはスルーするしてしまうのも一つの手だ。時間がない人は積極的に検討してみよう。逆に設問3を解答してみて十分に高得点が狙えるような人は問3を選択肢、安定した得点源として利用するのがいいだろう。
#divclass(h5){午後2編}
午後2については以下のようになっている。
#divclass(h6){問1}
ER図や関係スキーマも問われるが、それだけでなくビジネスロジックを理解してどのようにデータを更新すればいいかといった問題やデータを抽出する方法を問うような問題、検索時のクエリチューニング、データの保存容量計算、物理設計に関する内容も出題される。
またここ数年、問1はER図や関係スキーマを問われることのない傾向となっている。具体的には、問題文の最初にER図、関係スキーマをすべて提示した上で、特定のデータを求める問い合わせの方法や、検索件数を計算させる問題、参照するテーブルを答えさせる問題、データの保存に必要なデータ量を答えさせる問題などが出題されるようになっている。これらはデータベーススペシャリスト試験では、今後は物理設計やクエリに関する知識も求めていくようになっていく傾向であるからと思われる。データモデリングが苦手な人は、問1を選択するという方法も念頭に置いて学習をしていこう。
#divclass(h6){問2}
ビジネスプロセスを理解し、概念データモデルやテーブル設計をするデータモデリングを問われる問題。関係スキーマやER図を答えさせる問題だ。こちらはモデリングだけで物理設計やデータベースの更新順序というようなアルゴリズムに関するような問題は出題されない。
#divclass(h6){まとめ}
どちらを選択するかは考え方次第だが、実際に解いて自分の好みに合う方を選択し、時間がなければ余り好きでない設問は学習しないという方法もある。問2はER図とテーブル構造を埋めるデータモデリングのみの問題であるため、それが苦手な人は問1を選択するといいし、逆に物理設計等が苦手であれば問2を選択すると決めてしまい学習するというのも一つの手だ。
もしどちらかを選択すると決めてしまえば、他方の学習はしなくてもよくなるので時間がない人は検討してみよう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***クエリの学習は必要か?
かつてはそれほどでもなかったが、最近はSQL(クエリ)やそれに近い内容を答えさせる問題が頻出化している。応用情報のデータベース問題でもクエリを答えさせる問題が毎年でるようになっているので、そのような傾向なのだろう。そのためクエリを学習する重要性はかつてより高まっているということはいえると思う。
また、実際にER図や関数従属性を表す図を眺めて理解するより、クエリを実際に記述したほうが、それぞれのテーブルがどのように組み合わさって表示させるのか理論的に理解しやすくなるためクエリを勉強することで、よりデータベースに関する理解が深まることは間違いない。
従って可能ならばクエリを学習することが望ましい。簡単な関数を思い浮かべる程度には学習しておこう。
しかし、クエリを勉強するには時間がかかる上に初心者の人にとっては難解であり時間もかかることから、もし学習する時間がないと考えるのであればクエリの学習をパスするという方法も戦術としてはあり得る。クエリが記述できなくとも、なんとか60%以上は解答できると思われるので、自分の学習状況や残り時間などを考慮してクエリの学習をするかどうか検討しよう。もちろん業務でクエリを記述した経験のある人は、すでに知識は十分と思われるので学習する必要はないだろう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***出題の傾向は決まっているので慣れが重要
問題中には過去に何回も問われている問題がある。例えば、正規化、ER図の作成、候補キーを探す問題などである。これらはほとんど例外なく出題されるような問題なので、これを学習することで合格率はかなり上昇すると考えられる。具体的にどのような問題が出題されるかは、&html(<a rel="nofollow" href="http://www.amazon.co.jp/gp/product/4798143219/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=4798143219&linkCode=as2&tag=matowiki-22">情報処理教科書 データベーススペシャリスト</a><img src="http://ir-jp.amazon-adsystem.com/e/ir?t=matowiki-22&l=as2&o=9&a=4798143219" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />)に記述されているので、午後1を始める前には午後1に関する解答テクニック集を、午後2の前には午後2のテクニック集を読んで理解してから始めるようにしよう。はじめは難しいかもしれないが、その理屈や理論みたいなのを理解してしまえば安定的な得点源となるため、確実にものにするようにしよう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***独特の言い回しを意識する
このあたりも情報処理教科書に記述されているので、具体的に学んで学習していこう。例えば「支社コードは支社によって一意で決まる」と書いてあれば支社テーブルにある支社コードは支社テーブルの候補キーになることを意味する。
次に「社員コードは支社ごとに一意に決まる」と書いてあるとする。そうすると、社員テーブルは、支社コード、社員コードが候補キーになるのではないかと推測できる。
さらに複雑になると「商品は商品コードで区別され、同じ商品コードでも色によって区別される」などという記述では、商品テーブルがあり、商品コード、色コードが主キーになっている可能性があるということがわかる。
このように「候補キー」であることを示す文章はほぼ定型的に記述されているので、それを学習することが重要。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***独特の言い回しを暗記する
言い回しにはもう一つある。それは解答時の言い回しだ。
例えば「第三正規形である理由を述べよ」みたいな問題がよくあるが、解答時の言い回しはほとんど定型で使い回せるものだ。第三正規形ならば「全ての属性が単一値で、候補キーからの部分関数従属がなく候補キーからの推移的関数従属性もないから」などが定型文にあたる。第一正規形~ボイスコッド正規形まで、すべてに定型文があるが、これらは情報処理教科書に記載されているので暗記すること。
また正規化していないことで発生する問題についても定型文が存在する。例えば第二正規形で終わっているテーブルは「属性○○が重複して登録される」「事前に属性○○を登録しておくことができない」「属性○○の更新時に整合性がとれなくなる」などだ。これも午後1では頻出ワードになるので覚えておくこと。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***概念データモデル
概念データモデルで必須なのはリレーションシップの「矢印」の記述で、これは絶対に間違えないで記述できるようにしておくこと。一般的にはリレーションシップは1対多の設計になっていることがほとんどなのでほとんど片側矢印で対応できると考えていい。矢印の向きはテーブルに主キーを外部キーとして取り込んでいるかどうかで判別できるので、必ず矢印の方向も間違えずに記述できるようにしておこう。
ただし、まれに1対1のリレーションシップが存在することがある。例えば注文があって、ごく一部の商品だけ外部の協力工場からの出荷になるので、その注文だけ出荷依頼テーブルが作られるというような場合だ。1対1だから同じテーブルにしてもかまわないわけだが、設計や運用、保守の関係でこのようなテーブル構造にしなければならないこともあるし、試験では実際に1対1のリレーションシップになるモデルが解答として出題されているので、そのあたりだけ気をつけるようにしよう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***サブタイプ
サブタイプも必ず理解しなければ概念の一つ。結構出題されるのでこれも理解できるようにしておく。
サブタイプは基本的にマスタ系に使われることが多い。例えば商品があって自社製造商品か仕入れた商品かなどの違いで一部属性が異なるような場合である。
同じ商品やサービスなのに属性の異なる商品などの説明があるとサブタイプになっている可能性が高いので検討してみよう。
***実際にデータベースをインストールして利用してみる
主に概念データモデリング系の設問のみ選択すればSQLをしらなくても合格できるかもしれないが、やはり確度を高めるためにSQLにある程度、慣れておくことは重要だと思う。最近はSQLに関する出題も多くなっており、計算に関するロジックなどの知識も必要になるケースがあることから勉強して損はない。
具体的には[[応用情報技術者試験向けデータベース入門 > 情報処理試験まとめ/応用情報技術者試験の勉強法まとめ/応用情報技術者試験向けデータベース入門]]などを参考に自分でSQLを学習してみるといいと思う。
もちろん時間が無く勉強する時間が足りない場合は一か八かで概念データモデリングのみで対処してしまうのもいいと思うが、これは資格試験で知識を身につけることが目的だと思うので、あまりお勧めしない。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***印字する
午後1と午後2の学習をするにあたって、必ず問題文と解答用紙を印刷しておくようにしよう。この試験の場合、パソコンでPDFを閲覧し解答するのは非常に難しい。なぜなら時間がほんとうに足りないからだ。自分の解答ペースが時間無いに間に合うかどうかはPDFではわからない(たぶん間に合わないと思う)。なので印字して時計を用意して計測して時間無いに解答できるかどうか確かめる必要がある。
なお、公開されている解答用紙には一部、解答スペースが足りないなどの問題がある解答用紙である可能性がある。例えば回答欄が5行しかないのに実は8行の記述を求められることもあるので注意しよう。これは回答欄を作成した人のミスだと思われる。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
**解答のコツ、解答テクニック
***データベーススペシャリスト試験の解答テクニック
&color(red){容量が大きくなったため別ページにしました。解答時に考えるべきこと。解答の定石パターン。データベースについての考え方などのテクニックを記述しています}
[[データベーススペシャリスト試験の解答テクニック>情報処理試験まとめ/データベーススペシャリスト試験の勉強法まとめ/午後1&2対策]]
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
**あると便利な文房具
***シャープペン
シャープペンシルは製図用のシャープペンと、好みのシャープペンの2種類をもっていくことが望ましい。またシャープペンシルの芯もBとHBなどというように二種類持っていったほうがいいと思う。
シャープペンは0.5mmで問題ない。最近のシャープペンは自動繰り出し式だったり、回転式だったりして定規で線を引くのが苦手な製品も多い。製図用のシャープペンはペン先で数mm飛び出しており定規で線を引くのがしやすい。またIPAの試験は午前と午後で紙質がかなり違うので、同じシャープペンの芯だと堅すぎたり柔らかすぎたり好みに合わないことがある。そのため、堅さの違う芯を2種類もっていくと対処がしやすい。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***テンプレート定規
テンプレート定規とは、簡単に四角形や円を記述できる定規の総称だ。文房具屋などで販売されている。
この定規のメリットは、簡単に直角や四角形を描けることだ。例えば概念データモデリングなどで線を引くことがあるが、このとき直角に曲がる線や四角形を書かなければならないことがある。普通の定規だと上下左右の線を4回定規を動かし記述する必要があるが、四角形を書けるテンプレート定規だと、左上の角、右下の角のように2回動かすだけ四角形を記述できるので非常に楽だ。
またテンプレート定規は薄いものなら、消したい場所の上に定規の穴をあてて、その上から消しゴムで消すことで特定範囲だけをまるごと消せるという使い方もできる。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***ノック式消しゴム
この試験では図形を記述することがあるので、ほんとうに少しだけ、細かな場所を消したくなる場合がある。例えば直線を少し長く書きすぎて、他の線と重なってしまったというような場合だ。このとき普通の消しゴムだと消える範囲が広すぎて、全体をけしてから再度消してしまった場所を上書きするなど面倒になってしまうことがある。
そこで便利なのがノック式の消しゴムだ。これなら数mmの場所でもらくらく消せるので余分な場所を消してしまう心配がない。ただし、広い範囲をまとめて消すには不向きなので普通の消しゴムも必ず持っていくようにしよう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
**コメント
#comment()
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
----
#right(){&lastmod()&aname(bottom)}
#right(){&trackback()}
&topicpath()&aname(top)
#divclass(pageTitle){データベーススペシャリスト試験の勉強法まとめ}
**目次
#contents_line(level=3,sep= / )
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
**はじめに
***はじめに
モバイル版が表示されてしまう人は画面最下部のPC版はこちらをクリックで見やすいページが表示されます。
データベーススペシャリスト試験に合格するための勉強方法、お勧め参考書、お勧め参考書、勉強テクニック、解答のコツなどを紹介。
***解答テクニックは別ページにまとめました
解答テクニックに関する内容は、記述内容を追加して文字数が多くなったため別ページにまとめました。あわせてご覧ください。
[[データベーススペシャリスト試験の解答テクニック>情報処理試験まとめ/データベーススペシャリスト試験の勉強法まとめ/午後1&2対策]]
**関連ページ
#ls3(情報処理試験まとめ)
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
**データベーススペシャリスト試験とは
***概要
主にデータベースに関連する能力が問われる試験。データベースに関する企画、開発、運用、保守など全般に関しての知識が問われる試験。具体的には下記のような能力が問われる。
・データ管理者として,情報システム全体のデータ資源を管理する。
・データベースシステムに対する要求を分析し,効率性・信頼性・安全性を考慮した企画・要件定義・開発・運用・保守を行う。
・個別システム開発の企画・要件定義・開発・運用・保守において,データベース関連の技術支援を行う。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***難易度
データベーススペシャリスト試験はあらゆるコンピュータなどのIT技術者試験のなかでも難易度が高い試験と言われている。いきなりこの試験を目指すのは難しいと思うので、少なくとも応用情報処理技術者試験程度は合格してから望むのがいい。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***試験傾向
試験問題の傾向はわりとはっきりしているので、この後にお勧めする参考書を中心に学習することでおおまかな傾向の理解はできると思う。試験の内容的には暗記量はそれほどでもないが、思考力、応用力、発想力などが求められる傾向が強い。そのため基本を忠実に抑え、問題に対して解決する能力を養うことが重要となる。
上記のような特性から、一般的には「解答して楽しい」などとも言われるが、解答時間にはシビアな傾向だ。従って、一つの問題に多くの時間を消費せず、とにかくすべてに解答し一点でも多く獲得することが重要となる。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
**勉強方針
***求められる技術力
IPAによると求められる技術力というのは以下の通り。
・データベース技術の動向を広く見通し,目的に応じて適用可能な技術を選択できる。
・データ資源管理の目的と技法を理解し,データ部品の標準化,リポジトリシステムの企画・要件定義・開発・運用・保守ができる。
・データモデリング技法を理解し,利用者の要求に基づいてデータ分析を行い,正確な概念データモデルを作成できる。
・データベース管理システムの特性を理解し,高品質なデータベースの企画・要件定義・開発・運用・保守ができる。
これをみればわかりようにデータベースに関する全般の知識が必要で、具体的には必要に応じた技術の選択、現状のビジネスロジックにおけるデータの扱いから最適な概念データモデルを作成し実際に実装する知識、データベース運用に関する運用や保守に関する仕組みが必要となる。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***方針決定
データベーススペシャリスト試験は高度試験であるので、まずは最低限でも基本情報処理技術者試験に合格できる程度の知識が必要になる。この知識がないと午前1をクリアできないので、まずは基本情報を合格できる程度の知識を、可能ならば応用情報に合格できる程度の知識を得るのが望ましい。
その後はおおむね以下の3コースにわかれると思う。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***オススメコース1-最初からコース-
基本情報、応用情報の知識はあるけど、データベースに関する実務経験はまったく無いケース。この場合はデータベースに関する基礎から勉強する必要がある。データベースとは何?というところから始まると思うので、下記に記述する勉強方法のstep1から初めてしっかりとした知識を身につけることが望ましい。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***オススメコース2-クエリ勉強コース-
基本情報、応用情報の知識があり、データベースに関してもそれなりの知識はあるが、クエリを書いたことがないパターン。クエリを覚えなくても合格できるという意見もあるが、クエリの学習をするとDBの仕組みを詳しく理解できるので、やはりクエリについて学習することがお勧めだ。
より合格を確実なものとするために、SQLを学習することから始める人は下記の勉強方法のstep2から開始しよう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***オススメコース3-過去問重視コース-
試験までの期間が短い人、勉強する時間がない人、業務でデータベースの構築経験がある人はこのコース。
時間的に余裕の無い人はこのコースを選択するしかない。また、すでに業務経験がありデータベースに関する経験がある人も、およそこのコースで十分だと考えられる。下記の勉強方法のstep4から開始しよう。
**お勧め参考書
***参考書の種類について
参考書をいろいろみてみると、参考書は学習することをメインに作られた学習用参考書と、合格するためのテクニックを追求したようなテクニック習得用参考書の二種類にわかれる。学習用の参考書はデータベースの基礎から記述されており、データベースのことを知らない人にもわかり安い作りになっている。テクニック習得用の参考書は基礎を習得している人向けに記述されており、合格するための情報や解答テクニックがメインとなっている。
学習用とテクニック用のわかりやすい区別の方法は、過去問の解説にどれだけページ数を割いているかだ。過去問の解説がない参考書はゼロから勉強するのに向いている学習用参考書と言える。過去問の解き方を解説している参考書はテクニック重視の参考書と言える。そして、それらの中間の参考書はデータベースに関する知識も解説しながら過去問も解説するというようなハイブリッド型になっている。
データベースでの開発経験の無い人は学習用参考書とテクニック習得用参考書を二冊、開発経験のある人はテクニック習得用参考書だけ利用するなどというように工夫をしよう。
ハイブリッド型は過去問の掲載数も少ないし、説明も中途半端なので避けたほうがいい。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***学習用参考書
データベースの業務経験が無い人は、まずは参考書を利用してデータベースに関する基礎知識から学習するのがお勧め。データベースの学習のための本はいろいろあるが、やはり資格試験で必要とされている知識はある程度決まっているので、資格試験用に記述された参考書での学習がお勧め。
***2016年学習用参考書一覧
#html2()
{
<iframe src="http://rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=matowiki-22&o=9&p=8&l=as4&m=amazon&f=ifr&ref=ss_til&asins=B016W1WKWQ" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
}
#html2()
{
<iframe src="http://rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=matowiki-22&o=9&p=8&l=as4&m=amazon&f=ifr&ref=ss_til&asins=B0141XEUNO" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
}
#html2()
{
<iframe src="http://rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=matowiki-22&o=9&p=8&l=as4&m=amazon&f=ifr&ref=ss_til&asins=4813262112" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
}
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***テクニック習得用参考書
実務経験がある人も無い人も絶対に購入すべき参考書がテクニック用参考書だ。情報処理教科書は自分も実際に利用してとても重宝したのでおすすめできる。特に午後1、午後2の解説や解答方法の具体的なテクニックが記述されており、これを読むことで解答能力が確実にUPする。
データベーススペシャリスト試験における独特の解答の言い回しもしっかり記述されており、これを暗記するだけで確実に回答欄を埋めることができる。
テクニックだけでなく正規化、データモデリングに関する解説もしっかり記述されているので、データベースの構築経験やクエリを書ける人がうろ覚えにしている知識も再確認できる。
さらに多くの過去問解説をWEBからダウンロードして入手することができる。この解説は一つの問題に対して数ページ、場合によっては10ページ近い解説がされており購入する価値は高い。
過去問はこの参考書で網羅されているので、これを一冊購入すればわざわざ午後1、午後2用の過去問題集も買う必要はないのでお勧めだ。
***2016年テクニック習得用参考書(情報処理教科書が最もおすすめ、絶対に購入すべし)
&html(<iframe src="http://rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=matowiki-22&o=9&p=8&l=as4&m=amazon&f=ifr&ref=ss_til&asins=4798143219" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>)
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
**勉強方法
***基本的な流れ
基本的にはSTEP1から順番にこなしていこう。基本情報技術者、応用情報技術者試験に合格していない人は、まずはそれぞれのどちらかを合格しておいたほうがいいと思われる。
データベースの開発経験が無い人はSTEP1からSTEP5まで順番に。ただし時間が無い人はSTEP1とSTEP2を、クエリを学習しなくともなんとかなると考えている人はSTEP2を飛ばしても構わない。
データベースの開発経験のある人、クエリをかける人はSTEP1~3を飛ばしてSTEP4からこなしていこう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***step1 基礎学習-午前2対策-
まずはデータベースの基本を学ぶのがSTEP1。ER図、バックアップ・リカバリ、テーブル設計、チューニング、分散システム、正規化、トランザクションなど基本的なことを学ぶのがSTEP1。
具体的には学習用の参考書を利用してデータベースに関する基本を勉強していこう。内容をすべて暗記する必要はなく、データベースがどういうもので、どのような動きをしているのかなど仕組みについて理解することを心がけるようにしよう。この段階で完璧に理解するのは難しいので、step5に進む過程でわからない内容などがでてきたら、その都度参考書で再学習して理解を含めていこう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***step2 クエリの勉強-基本的なDBの仕組みの学習-
最近はクエリに関する設問もかなり増えているようなので、基本的なクエリや関数などについては覚えて置いたほうが合格率が高まる。
具体的な勉強方法は [[応用情報技術者試験向けデータベース入門 > 情報処理試験まとめ/応用情報技術者試験の勉強法まとめ/応用情報技術者試験向けデータベース入門]] を参考にしてもらえればいいと思う。応用情報向けだが基本的にこの程度のクエリが理解できればなんとかなる。あとは知らない関数などがでてくる度に、実際に自分でクエリを記述して動作を確認すれば問題ない。
基本的には、grant, create table, drop table, insert into, update, delete, select, where, group by, having, order by, inner join, outer join, sum, count. max, avg, datetime, between, exists, notあたりと、サブクエリまで抑えておけば大丈夫だと思う。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***step3 午前2対策
実務経験がない人は午前2の過去問を解いて基本的な知識が身についているか勉強しよう。おおむね毎回80%程度解答できるようになったら問題ない。基本的に午前問題は暗記で突破できてしまうので時間がなければ過去問の丸暗記でも問題ないが、午後問題は様々な知識が求められるため試験問題の暗記ではなく、ちゃんと理論を把握しておくことが望ましい。
午前2問題の演習時には、正答以外の選択肢に記述されている内容が何について述べているか理解できているかも確認すること。もし解答を間違ったり、選択肢の内容が一つでも理解できなかった場合は、その問題に「正」の字でチェックをすること。これは間違うたびにチェックをする。こうすると間違った回数がわかるので、その分野が苦手だということを確認できる。その分野については参考書で再学習して知識を高めるようにしよう。
80%程度解答できない場合は、過去問を周回して、それでも間違った問題に関しては参考書を利用して学習するようにしよう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***step3.5 応用情報DB関連の学習-DB問題の基礎-
時間がある人は、応用情報午後問題のデータベースに関する問題も解いてみよう。過去問はIPAのホームページに解答と共に公開されている。応用情報のデータベースに関する問題は、本当に基礎的な内容なのでこれが解けなければSTEP4、5に進んでも意味がない。過去問を読んで問題がわからないレベルならSTEP1、2に戻って学習を続けよう。楽々解ける感じならSTEP4に進んでも構わないが、ところどころまったくわからないような設問がでてくる場合は、その分野に疎いことが考えられるので、その分野に関する知識を再度学習することにしよう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***step4 午後1対策
実務経験がある人はSTEP4からのスタート。ただし経験がある人が必ずしも午前2をクリアできるだけの知識があるとは限らないので、数年度分程度、午前2の問題を解いて80%以上解答できることを確かめよう。もし80%以上解答できない場合は、残念だがstep3に戻り80%以上解答できるようにしておこう。
まずは&html(<a rel="nofollow" href="http://www.amazon.co.jp/gp/product/4798143219/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=4798143219&linkCode=as2&tag=matowiki-22">情報処理教科書 データベーススペシャリスト</a><img src="http://ir-jp.amazon-adsystem.com/e/ir?t=matowiki-22&l=as2&o=9&a=4798143219" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />)の午後1の解答テクニックが紹介されているページを熟読して解答テクニックを身につけておくこと。特に正規化、概念データモデリング、ER図などに関することの知識は必須になるので、その該当部分の知識を深めておく。
次に過去問を解く。可能であれば過去問を2周ほど回すのが望ましいが、もし時間がなければできるだけ多くの過去問を解いて慣れることから始めよう。間違った問題については、必ずどうして間違ってしまったのかを確認すること。文章の見落としなのか、知識がなかったのか、勘違いだったのかをはっきりさせることが重要だ。間違った問題に対しては、その解答のヒントが問題文中のどこにあるのかを確認して、なぜそれに気がつかなかったのかを把握することから始めよう。もし知識の穴があった場合には参考書を利用して学習し直そう。
午後1は、午後2を学習し慣れていくとかなり簡単に感じられるようになる。そのため午後1に関しては2周、3周もせずに1周で午後2に進んでしまうという手もアリだ。午後2の演習で慣れた頃、一度午後1を演習してみて手応えを感じてみる程度でも構わないと思う。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***step5 午後2対策
午後2対策も基本的に過去問を解けば大丈夫だが、その前に&html(<a rel="nofollow" href="http://www.amazon.co.jp/gp/product/4798143219/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=4798143219&linkCode=as2&tag=matowiki-22">情報処理教科書 データベーススペシャリスト</a><img src="http://ir-jp.amazon-adsystem.com/e/ir?t=matowiki-22&l=as2&o=9&a=4798143219" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />)の午後2の解答テクニックに関するページを熟読しテクニックを身につけておくこと。これをしっているかどうかで合格する確率はかなり異なってくる。
こちらも間違った問題に関しては、採点後に必ず見直して確認することが望ましい。問題文中にあるヒントに気がつかなかったのか、知識が無かったのかを確認しておくことが重要だ。間違った問題に関しては、解答をみてその解答を導くためのヒントがどこに書かれているのかを再度確認し、なぜそのヒントに気がつかなかったのかを自分の中で問い直そう。知識がなかったり不確かで間違えてしまった場合には、その知識は修正するようにしよう。
午後2に関しては慣れるまでこなしていくしかないので、解答ができるまで周回を繰り返して参考書の解説を読んで知識を修正していくようにしよう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
**勉強のポイント
***出題傾向から勉強分野を絞る
#divclass(h5){午後1編}
午後1は3問中2問の選択形式だが、これらは以下のように分かれることが多い。
#divclass(h6){問1、問2}
主に関係従属性、関係スキーマ、ER図、テーブル構造、正規化、候補キーなどを答えさせたりする問題が多い。さらにデータベースの更新順序を答えさせたり、データ抽出するためのクエリを記述させる問題なども出題される。またビジネスロジックや帳票などを文章で記述し、取り扱うデータをどのようなテーブル構造で実現すればいいかなど記述させる問題なども出題される。
#divclass(h6){問3}
こちらはデータベース設計、概念設計や論理設計以外のものがすべて入るのだが、物理設計やデータベースの復旧に関する問題、検索時間を早くするためのクエリチューニング、セキュリティ、同時実行制御、故障への対応などが問われることが多い。
#divclass(h6){まとめ}
問3のチューニング関連はクエリの動作実行に関する知識が深くなければ解けないこともあるし、問題の内容が常に一定するわけではないので実務経験がないと厳しいと思う。ただし実務で経験していたりすると割と楽な問題でもある。
そのため実務経験が無い人は主に概念設計が中心となる問1と問2を選択すると決めてしまい、物理設計が主となる問3に関してはスルーするしてしまうのも一つの手だ。時間がない人は積極的に検討してみよう。逆に設問3を解答してみて十分に高得点が狙えるような人は問3を選択肢、安定した得点源として利用するのがいいだろう。
#divclass(h5){午後2編}
午後2については以下のようになっている。
#divclass(h6){問1}
ER図や関係スキーマも問われるが、それだけでなくビジネスロジックを理解してどのようにデータを更新すればいいかといった問題やデータを抽出する方法を問うような問題、検索時のクエリチューニング、データの保存容量計算、物理設計に関する内容も出題される。
またここ数年、問1はER図や関係スキーマを問われることのない傾向となっている。具体的には、問題文の最初にER図、関係スキーマをすべて提示した上で、特定のデータを求める問い合わせの方法や、検索件数を計算させる問題、参照するテーブルを答えさせる問題、データの保存に必要なデータ量を答えさせる問題などが出題されるようになっている。これらはデータベーススペシャリスト試験では、今後は物理設計やクエリに関する知識も求めていくようになっていく傾向であるからと思われる。データモデリングが苦手な人は、問1を選択するという方法も念頭に置いて学習をしていこう。
#divclass(h6){問2}
ビジネスプロセスを理解し、概念データモデルやテーブル設計をするデータモデリングを問われる問題。関係スキーマやER図を答えさせる問題だ。こちらはモデリングだけで物理設計やデータベースの更新順序というようなアルゴリズムに関するような問題は出題されない。
#divclass(h6){まとめ}
どちらを選択するかは考え方次第だが、実際に解いて自分の好みに合う方を選択し、時間がなければ余り好きでない設問は学習しないという方法もある。問2はER図とテーブル構造を埋めるデータモデリングのみの問題であるため、それが苦手な人は問1を選択するといいし、逆に物理設計等が苦手であれば問2を選択すると決めてしまい学習するというのも一つの手だ。
もしどちらかを選択すると決めてしまえば、他方の学習はしなくてもよくなるので時間がない人は検討してみよう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***クエリの学習は必要か?
かつてはそれほどでもなかったが、最近はSQL(クエリ)やそれに近い内容を答えさせる問題が頻出化している。応用情報のデータベース問題でもクエリを答えさせる問題が毎年でるようになっているので、そのような傾向なのだろう。そのためクエリを学習する重要性はかつてより高まっているということはいえると思う。
また、実際にER図や関数従属性を表す図を眺めて理解するより、クエリを実際に記述したほうが、それぞれのテーブルがどのように組み合わさって表示させるのか理論的に理解しやすくなるためクエリを勉強することで、よりデータベースに関する理解が深まることは間違いない。
従って可能ならばクエリを学習することが望ましい。簡単な関数を思い浮かべる程度には学習しておこう。
しかし、クエリを勉強するには時間がかかる上に初心者の人にとっては難解であり時間もかかることから、もし学習する時間がないと考えるのであればクエリの学習をパスするという方法も戦術としてはあり得る。クエリが記述できなくとも、なんとか60%以上は解答できると思われるので、自分の学習状況や残り時間などを考慮してクエリの学習をするかどうか検討しよう。もちろん業務でクエリを記述した経験のある人は、すでに知識は十分と思われるので学習する必要はないだろう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***出題の傾向は決まっているので慣れが重要
問題中には過去に何回も問われている問題がある。例えば、正規化、ER図の作成、候補キーを探す問題などである。これらはほとんど例外なく出題されるような問題なので、これを学習することで合格率はかなり上昇すると考えられる。具体的にどのような問題が出題されるかは、&html(<a rel="nofollow" href="http://www.amazon.co.jp/gp/product/4798143219/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=4798143219&linkCode=as2&tag=matowiki-22">情報処理教科書 データベーススペシャリスト</a><img src="http://ir-jp.amazon-adsystem.com/e/ir?t=matowiki-22&l=as2&o=9&a=4798143219" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />)に記述されているので、午後1を始める前には午後1に関する解答テクニック集を、午後2の前には午後2のテクニック集を読んで理解してから始めるようにしよう。はじめは難しいかもしれないが、その理屈や理論みたいなのを理解してしまえば安定的な得点源となるため、確実にものにするようにしよう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***独特の言い回しを意識する
このあたりも情報処理教科書に記述されているので、具体的に学んで学習していこう。例えば「支社コードは支社によって一意で決まる」と書いてあれば支社テーブルにある支社コードは支社テーブルの候補キーになることを意味する。
次に「社員コードは支社ごとに一意に決まる」と書いてあるとする。そうすると、社員テーブルは、支社コード、社員コードが候補キーになるのではないかと推測できる。
さらに複雑になると「商品は商品コードで区別され、同じ商品コードでも色によって区別される」などという記述では、商品テーブルがあり、商品コード、色コードが主キーになっている可能性があるということがわかる。
このように「候補キー」であることを示す文章はほぼ定型的に記述されているので、それを学習することが重要。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***独特の言い回しを暗記する
言い回しにはもう一つある。それは解答時の言い回しだ。
例えば「第三正規形である理由を述べよ」みたいな問題がよくあるが、解答時の言い回しはほとんど定型で使い回せるものだ。第三正規形ならば「全ての属性が単一値で、候補キーからの部分関数従属がなく候補キーからの推移的関数従属性もないから」などが定型文にあたる。第一正規形~ボイスコッド正規形まで、すべてに定型文があるが、これらは情報処理教科書に記載されているので暗記すること。
また正規化していないことで発生する問題についても定型文が存在する。例えば第二正規形で終わっているテーブルは「属性○○が重複して登録される」「事前に属性○○を登録しておくことができない」「属性○○の更新時に整合性がとれなくなる」などだ。これも午後1では頻出ワードになるので覚えておくこと。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***概念データモデル
概念データモデルで必須なのはリレーションシップの「矢印」の記述で、これは絶対に間違えないで記述できるようにしておくこと。一般的にはリレーションシップは1対多の設計になっていることがほとんどなのでほとんど片側矢印で対応できると考えていい。矢印の向きはテーブルに主キーを外部キーとして取り込んでいるかどうかで判別できるので、必ず矢印の方向も間違えずに記述できるようにしておこう。
ただし、まれに1対1のリレーションシップが存在することがある。例えば注文があって、ごく一部の商品だけ外部の協力工場からの出荷になるので、その注文だけ出荷依頼テーブルが作られるというような場合だ。1対1だから同じテーブルにしてもかまわないわけだが、設計や運用、保守の関係でこのようなテーブル構造にしなければならないこともあるし、試験では実際に1対1のリレーションシップになるモデルが解答として出題されているので、そのあたりだけ気をつけるようにしよう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***サブタイプ
サブタイプも必ず理解しなければ概念の一つ。結構出題されるのでこれも理解できるようにしておく。
サブタイプは基本的にマスタ系に使われることが多い。例えば商品があって自社製造商品か仕入れた商品かなどの違いで一部属性が異なるような場合である。
同じ商品やサービスなのに属性の異なる商品などの説明があるとサブタイプになっている可能性が高いので検討してみよう。
***実際にデータベースをインストールして利用してみる
主に概念データモデリング系の設問のみ選択すればSQLをしらなくても合格できるかもしれないが、やはり確度を高めるためにSQLにある程度、慣れておくことは重要だと思う。最近はSQLに関する出題も多くなっており、計算に関するロジックなどの知識も必要になるケースがあることから勉強して損はない。
具体的には[[応用情報技術者試験向けデータベース入門 > 情報処理試験まとめ/応用情報技術者試験の勉強法まとめ/応用情報技術者試験向けデータベース入門]]などを参考に自分でSQLを学習してみるといいと思う。
もちろん時間が無く勉強する時間が足りない場合は一か八かで概念データモデリングのみで対処してしまうのもいいと思うが、これは資格試験で知識を身につけることが目的だと思うので、あまりお勧めしない。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***印字する
午後1と午後2の学習をするにあたって、必ず問題文と解答用紙を印刷しておくようにしよう。この試験の場合、パソコンでPDFを閲覧し解答するのは非常に難しい。なぜなら時間がほんとうに足りないからだ。自分の解答ペースが時間無いに間に合うかどうかはPDFではわからない(たぶん間に合わないと思う)。なので印字して時計を用意して計測して時間無いに解答できるかどうか確かめる必要がある。
なお、公開されている解答用紙には一部、解答スペースが足りないなどの問題がある解答用紙である可能性がある。例えば回答欄が5行しかないのに実は8行の記述を求められることもあるので注意しよう。これは回答欄を作成した人のミスだと思われる。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
**解答のコツ、解答テクニック
***データベーススペシャリスト試験の解答テクニック
&color(red){容量が大きくなったため別ページにしました。解答時に考えるべきこと。解答の定石パターン。データベースについての考え方などのテクニックを記述しています}
[[データベーススペシャリスト試験の解答テクニック>情報処理試験まとめ/データベーススペシャリスト試験の勉強法まとめ/午後1&2対策]]
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
**あると便利な文房具
***シャープペン
シャープペンシルは製図用のシャープペンと、好みのシャープペンの2種類をもっていくことが望ましい。またシャープペンシルの芯もBとHBなどというように二種類持っていったほうがいいと思う。
シャープペンは0.5mmで問題ない。最近のシャープペンは自動繰り出し式だったり、回転式だったりして定規で線を引くのが苦手な製品も多い。製図用のシャープペンはペン先で数mm飛び出しており定規で線を引くのがしやすい。またIPAの試験は午前と午後で紙質がかなり違うので、同じシャープペンの芯だと堅すぎたり柔らかすぎたり好みに合わないことがある。そのため、堅さの違う芯を2種類もっていくと対処がしやすい。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***テンプレート定規
テンプレート定規とは、簡単に四角形や円を記述できる定規の総称だ。文房具屋などで販売されている。
この定規のメリットは、簡単に直角や四角形を描けることだ。例えば概念データモデリングなどで線を引くことがあるが、このとき直角に曲がる線や四角形を書かなければならないことがある。普通の定規だと上下左右の線を4回定規を動かし記述する必要があるが、四角形を書けるテンプレート定規だと、左上の角、右下の角のように2回動かすだけ四角形を記述できるので非常に楽だ。
またテンプレート定規は薄いものなら、消したい場所の上に定規の穴をあてて、その上から消しゴムで消すことで特定範囲だけをまるごと消せるという使い方もできる。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
***ノック式消しゴム
この試験では図形を記述することがあるので、ほんとうに少しだけ、細かな場所を消したくなる場合がある。例えば直線を少し長く書きすぎて、他の線と重なってしまったというような場合だ。このとき普通の消しゴムだと消える範囲が広すぎて、全体をけしてから再度消してしまった場所を上書きするなど面倒になってしまうことがある。
そこで便利なのがノック式の消しゴムだ。これなら数mmの場所でもらくらく消せるので余分な場所を消してしまう心配がない。ただし、広い範囲をまとめて消すには不向きなので普通の消しゴムも必ず持っていくようにしよう。
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
**コメント
#comment()
#right(){&link_anchor(top){▲}&link_anchor(bottom){▼}}
----
#right(){&lastmod()&aname(bottom)}
#right(){&trackback()}
表示オプション
横に並べて表示:
変化行の前後のみ表示: