データベース(SQL)の問題を解くためのコツと勉強、問題の特徴について

データベース選択問題
スポンサーリンク

 

データベースのSQLって、
ゴチャゴチャしていてよく分からない・・・

正規化とか難しそう・・・

もしかしたらデータベースのSQLに苦手意識を持っている人は、
上記のような考えを持っているのではないでしょうか?

確かにデータベースのSQLは、
覚えるべきポイントが多く、情報処理初心者にとっては、
苦手意識を持ちやすい分野と言えるでしょう。

 

しかし、データベースのSQLは、
基礎を覚えただけで答えられる問題が多い問題を解く時間が短くなりやすい
といった特長もあります。

だからこそ苦手意識だけで、SQLの勉強に取り組まないのは、
非常に損をしていると言えるでしょう。

 

そこで今回は、そんな初心者でもデータベースの問題を解くための助力になる、
問題を解くためのコツや勉強法、問題の特徴について解説します。

 

データベースという分野は、正直言って点数が取りやすい分野です。

勉強するべき範囲も定まっており、
問題も難しい問題が出題されることが少ないといった点から、
SQLの基礎的な構文を覚えるだけで、かなりの得点が稼げる分野となっています。

 

またデータベースの問題は、SQLがメインとなっているためか、
他の選択問題と比べて文量が少なく、
問題を解くのに時間が掛からないという特長もあります。

そのためデータベースの問題を素早く解けるようになれば、
他の問題に試験時間を割けるようになるため、
試験全体の得点を押し上げる要因にもなるでしょう。

※今回の記事は作成にあたり、
 IPA(情報処理推進機構)から配布されている
 基本情報技術者試験の過去問題を参考・引用・抜粋・編集しております。

 

シロ
シロ

データベースにおけるSQLっていう分野は、
配点の12点という点数以上に、得る物が大きい分野だと思うよ

チョコ
チョコ

試験時間が節約できて、勉強するべき内容も定まっている。
こういった分野は少ないからな

シロ
シロ

加えて情報処理を業務としている会社では、
SQLを使わされることがあるから、
覚えておいて損はないと思うよ

スポンサーリンク

 

・最低限覚えておくべき内容

覚えておくべき内容のチェック

まずはデータベースの問題を解く上で、最低限覚えておきたい要素を挙げておきます。

・SQLの基礎的な構文
・正規化のやり方と内容
・SQLの制約内容

以上となります。

 

ちなみにSQLの基礎的な構文については、

・SELECT
・FROM
・WEHRE
・ORDER BY
・SUMなどの関数
・BETWEEN
・LIKE
・GROUP BY
・HAVING
・DISTINCT
・INSERT,UPDATE,DELETEといったレコードの操作
・+や-といった演算子
・=や<といった比較演算子
・AND,OR,NOTといった論理演算子

といった内容は、最低限覚えておくようにしましょう。

 

また試験で出題される可能性が高い、

・複数表への問い合わせにおいて必要な条件結合
・エイリアス(別名)
・括弧を使った副問い合わせ

も合わせて覚えておく必要があります。

 

チョコ
チョコ

なあ、データベースで覚えるべき内容ってこんなに多いのか?
見ているだけで気が滅入りそうになるんだが・・・

シロ
シロ

確かに量が多く感じるかも知れないね。
けど、試験に直結する内容だから覚えて損をするってことは無いよ

チョコ
チョコ

そうなのか。

シロ
シロ

ちなみにSQLの勉強が上手く進まないという人は、
以下の参考書を元に勉強をしてみてね。
初心者にも分かりやすいように丁寧に説明をしているから、
SQLが苦手に感じている人にもおススメできる参考書になっているよ

レビュー『スッキリわかるSQL入門』
『スッキリわかるSQL入門』は、練習問題をメインに学習が進められる参考書です。初心者から未経験者、SQLに苦手意識を持っている人にピッタリな参考書となっています。
チョコ
チョコ

SQLは、とにかく慣れるまでが難しい。
だから上記のような参考書に頼るのも一つの方法だぞ

スポンサーリンク

 

・基本はSQL文の穴埋め 出題される問題の割合について

穴埋め

基本情報技術者試験で出題されるデータベースの問題は、
大半がSQLの穴埋めとなっています。

また分かりやすいように、
平成21年春期から平成31年春期までに出題された問題の種類を集計してみました。

SQL文の穴埋め52
制約の当てはめ6
正規化に関する問題8
その他40
合計106

集計結果としては、やはりSQL文の穴埋めが大多数。

実に全問題の半数程度がSQL文の穴埋めとなっています。

 

ちなみにその他となっている問題の中には、

・SQLの実行により作成されるレコードの数は?
・特定のデータ項目を管理する場合に対して適した表を選ぶ
・データの追加についての理由は?

といった問題が出題されています。

上記のようなその他の問題を解くためには、
問題文を正しく読み取る能力データベースの問題を解いたという経験が必要です。

だからこそデータベースの勉強を進める際には、
過去問題の復習も重要な勉強法として、スケジュールに加えておいてください。

 

シロ
シロ

SQL文の穴埋めについて少し補足しておくと、
SQL文の穴埋めは、1つの構文を選ぶ問題もあれば、
まとまったSQL文を選ぶ問題もあるよ

チョコ
チョコ

問題によって、出題されるSQL文は色々だから、
過去に出題された問題をよく復習しておく必要があるな

スポンサーリンク

 

・データベースは文章量が少ないため、問題を解く時間が少なくて済む

時間を節約する

基本情報技術者試験に出題されるデータベースの問題は、
他の選択問題と違って、文章の量が少ないといった特長があります。

 

例えば、平成30年春期に出題されたデータベースの問題は、
問題文を文字数に直せば、1,000文字に満たない程度。

今回の集計には選択肢のSQL文を文字数に含めていませんが、
これだけ文章量が少ない分野は他にありません。

もちろん表の内容を読み取る時間を考慮に入れる必要がありますが、
それでも他の選択問題の文章量に比べれば、おつりが出るくらいです。

 

そのためデータベースの勉強が辛くなったら、

データベースは、点数が稼げるだけでなく、
試験時間も節約できる!

と考えて勉強を進めてください。

 

チョコ
チョコ

データベースは、勉強すべき内容が定まっている。
問題も難しい問題が少なくて、解く時間も少なくて済む。
じゃあなんで苦手とする人が多いんだ?

シロ
シロ

恐らく敷居の高さがネックになっているんだろうね。
例えば、情報処理の初心者がSQL文を見て、どんな印象を持つかな?

チョコ
チョコ

なるほど。・・・

シロ
シロ

でもSQLって、
ひとつひとつの内容を分解するとそんなに難しくはないから、
根気よく勉強を進められれば、
高得点が狙える分野とも覚えておくと良いよ

 

・SQLにエラーが発生しているか? といった問題も出題される

SQLのエラー

基本情報技術者試験に出題されるデータベースの問題の中には、
SQLにエラーが発生しているか? という問題も出題されます。

 

例えば、平成28年秋期に出題されたデータベース問題の設問3。

平成28年秋期試験 問3-1

平成28年秋期試験 問3-2

出典:平成28年秋期 午後試験 問3より抜粋

この問題は、
選択肢の中にSQLの構文エラーが紛れ込んでいる問題となっています。

ちなみに問題の正解は「エ」

選択肢「ア」は、副問い合わせの指定によるエラー
選択肢「ウ」は、”従業員番号”をグループ化していないためエラーが発生します。
選択肢「イ」に関しては、
グループ化をしていないため従業員番号が重複してしまいます。

 

以上のような問題が出題されるため、データベースのSQL問題を解く際には、
SQLの構文を記述する上で正しい書き方がされているか?
というポイントにも気をつける必要があります。

意外に出題率が高い内容であるため、データベースの勉強をする際には、
必ずSQLの正しい書き方という点を意識するようにしましょう。

 

チョコ
チョコ

SQLのエラーについては、
SQLの構文を正しく覚えるというポイントを雑にしていると、
躓きやすい内容と言えるかもな

シロ
シロ

過去問題の復習を重視しすぎると、
エラーの選択肢に惑わされる、
なんて状況が発生するから気をつけてね

スポンサーリンク

 

・知らない構文が出てきたら、その都度調べて構文をまとめておく

チェックとメモ

基本情報技術者試験に出題されるデータベースの問題を解いていると、

SQLで知らない構文がある・・・

なんて状況が有ります。

そんな時は一度冷静になって、
分からなかったSQLの構文と問題をメモしておきましょう。

そして問題を解き終わったら、その分からなかった構文を調べて、
1つずつノートに書いていくようにしてください。(単語帳でもOK)

あとは1日~2日ほど時間を置いたら、もう一度分からなかった問題を解いて、
構文を覚えなおしてみましょう。

 

上記の勉強法は単純ですが、
データベースのSQLにとっては効果的で重要な勉強法であるため、
必ず頭に入れておいてください。

また試験においては、
SQLの構文をどれだけ知っているかというポイントも、
とても重要になります。

 

シロ
シロ

ちなみにSQLの構文や制約が覚えにくいといった場合は、
以下のページをチェックしてみてね

用語や単語を効率よく暗記するには? 基本情報技術者試験の暗記法!
基本情報技術者試験の用語や単語を効率よく暗記するには? 関連した用語、用語のイラスト、過去問題といった様々な要素を活用しましょう。
チョコ
チョコ

基本情報技術者試験において欠かせない、
暗記に関してまとめてあるから是非とも勉強の参考にしてくれ

スポンサーリンク

 

・長いSQL文を解く際の基本は、文の違いに着目する

文章の違いをチェック

基本情報技術者試験に出題されるSQL文は、
シロウトから見ると、
まるで間違え探しをしているような同じような内容が並んでいます。

 

例えば、平成24年春期に出題されたデータベース問題の設問4。

平成24年春期 午後 問3-1

出典:平成24年春期 午後試験 問3より抜粋

選択肢を見てみると長いSQL文になっており、
違いを見つけるだけで一苦労してしまいそうな内容になっています。

しかし、この選択肢において着目すべきは、
アンダーラインが引いてあるたったの2か所。

販売皿数を表すSUM表を結合しているWHEREに気がつけば、
瞬時に問題が解けるでしょう。

ちなみに正解は「ウ」です。

 

基本情報技術者試験では、上記のような長いSQL文を選択肢にして、
受験生が勘違いしやすいような問題が出題されます。

ですがそんな時でも、今回みたいにSQL文の違う部分だけに着目して、
問題を解いてください。

長いSQL文でも、違うポイントだけに着目してみると、
ほとんどが同じ内容でSQL文を読み込まなくて済むといったパターンがよくあります。

SQL文に関する問題を効率的に解くためには、
文の違いに着目するという方法が必要不可欠であるため、
是非とも普段の勉強から意識するようにしてください。

 

シロ
シロ

長いSQL文が選択肢に並んでいると、
問題を解くのが面倒に感じるかも知れないけど・・・

チョコ
チョコ

意外にふたを開けてみたら、
今回紹介した問題みたいに簡単に解けるかも知れないぞ

シロ
シロ

だからこそSQL文が複雑そうだからと考えて、
データベースの問題をやらないのは、
かなり損をしていると言えるよ

スポンサーリンク

 

・文章をSQLに結び付けるだけと考える

結びつける

SQL文の違いに着目しても、まだ難しい・・・

そんな時は、SQL文を文章と結びつけるだけと考えてください。

 

例えば、平成25年春期に出題された問題を見てみましょう。

平成25年春期 午後試験 問3-1

平成25年春期 午後試験 問3-2

出典:平成25年春期 午後試験 問3より抜粋

選択肢を見てみると、ALLやらDISTINCTといった構文によって惑わされそうになりますが、
実際のところは問題文にも書かれているように
「店舗ごとの売上金額」「延べ来客数」「会計レコード単位の平均会計額」
を求めるだけとなっています。

つまりSUM(合計)、COUNT(数える)、AVG(平均)の内容にだけに着目すれば、
とても単純で簡単な問題だと言えるでしょう。

ちなみに問題の正解は「エ」です。

選択肢「ア」と「イ」に関しては、
延べ来客数を求めているのに”MAX”で抽出をしているため不正解です。

選択肢「ウ」に関しては、
平均会計額を求める際に他の集計関数を利用しているため違います。

 

基本情報技術者試験における午後試験では、
上記のようなデータベースの問題に限らず、他の問題でも、
文章を選択肢や解答に結びつけるだけで簡単に解ける問題がよくあります。

また問題を効率的に解くためにも重要な方法であるため
必ず覚えておくようにしてください。

 

シロ
シロ

問題文を選択肢や解答に結びつけるっていう方法は、
単純だけど問題を素早く解くために欠かせない方法だと言えるね

チョコ
チョコ

午後試験は手さぐりで問題を解いていくと、
どうしても試験時間が足りなくなる。
もちろんSQLでも同じことが言えるな

シロ
シロ

午後試験は、試験時間が足りなくなりやすいからね。
こういった問題を素早く解く方法の積み重ねこそが重要だよ

スポンサーリンク

 

・SQLは正しい選択肢を見つける方が楽

正解

データベースのSQL問題を解く際には、間違っている選択肢を削るのではなく、
正しい選択肢を見つける
といったポイントを第一に考えて勉強を進めてください。

 

なぜ間違っている選択肢を削るのではなく、正しい選択肢を見つけるのか?

その理由はズバリ、長いSQL文において間違っている選択肢を見つけようとするより、
正しい選択肢を見つける方が断然時間が掛からないからです。

 

例えば、以下の平成30年秋期試験で出題された設問4の選択肢をご覧ください。

平成30年秋期 午後試験 問3-1

出典:平成30年秋期 午後試験 問3より抜粋

この問題の選択肢は、IFやCASEといった条件文が絡み合っていて、
とても難しそうに思える問題ですが、
実はCASEの書き方さえ知っていれば瞬間的に解けてしまえる問題です。

ちなみにこの問題の正解は「ウ」となっています。

 

もし上記の問題を解こうと思い、
CASEの書き方を知らずにこの選択肢を一つ一つ精査していくと
どのくらいの時間が掛かるでしょうか?

恐らくこの問題だけで、
最低でも10分程度は試験時間を消費してしまいます。

だからこそ普段の勉強から、間違った選択肢を削るといった方法ではなく、
正しい選択肢を選ぶといった方法を意識するようにしてください。

 

シロ
シロ

間違った選択肢を削るという方法は、
問題によっては有効だけど・・・

チョコ
チョコ

それは一目見て、
明らかに選択肢が浮いているという状況か、
問題がどうしても分からないといった状況に限るよな

シロ
シロ

SQLの場合、選択肢に似たような内容が多いから、
間違った問題を精査すると
逆に時間が掛かりすぎる場合があるから気をつけてね

スポンサーリンク

 

・午後試験におけるデータベースの出題率について

基本情報技術者試験では、
2020年の試験から午後試験における問題割合が、以下のように改正されます。

問題番号分野選択方法配点
出題数回答数
問1情報セキュリティ解答必須20点
問2~問4

ソフトウェア・ハードウェア、データベース
ネットワーク、ソフトウェア設計

3問2問各15点
問5プロジェクトマネジメント、サービスマネジメント、システム戦略、経営戦略・企業と法務1問
問6データ構造とアルゴリズム解答必須25点
問7~問11ソフトウェア開発(C言語、Java、Python、
アセンブラ言語、表計算ソフト)
5問1問25点
合計11問5問100点

今回解説しているデータベースに関していえば、
テクノロジ系の一種として、高い確率での出題が予想されるため注意してください。

 

シロ
シロ

2020年からの改正によって、
テクノロジ系と他の分野が明確に分けられるようになったんだね

チョコ
チョコ

加えてテクノロジ系は出題率が高く設定されている。
だからデータベースを含むテクノロジ系を勉強する際には、
穴がないように勉強した方が良いだろうな

 

・午前試験のデータベース対策について

データベース 午前試験 対策

午後試験のデータベースについては分かったけど、
午前試験のデータベースはどうしたら良いの?

コチラでは上記のような考えを持っている人のために、
午前試験に出題されるデータベースの問題をまとめてみました。

 

平成21年春期から平成31年春期の問題を調べてみると、
データベースという分野では、

・関係データベースについての問題
 ・関係データベースの説明
 ・関係データベースにおける定義の組み合わせ
 ・主キーや外部キーの定義や制約
 ・関係データベースの操作

・SQL文についての問題
 ・SQL文の穴埋め
 ・SQL文の実行結果を求める
 ・実行結果の元になっているSQL文は?

・関係演算についての問題
 ・選択(selection)について
 ・射影(projection) について
 ・結合(join)について

・UML図についての問題
 ・UML図の穴埋め
 ・UML図に書かれている内容の読み取り

といった問題が多く出題されているようです。

そのため午前試験のデータベースを詰めるのであれば、
上記の内容を暗記するところから勉強を進めると良いでしょう。

 

また午前試験のデータベース問題では、
午後試験の問題と違い、経験より知識が問われる問題が多く出題されます。

例えば、関係演算の「選択」「射影」「結合」について。

他にもログファイルやロールフォワード、ACID特性といった内容は、
出題率の高い用語問題であるため、内容をキッチリ把握しておくようにしましょう。

 

ちなみに午前試験におけるデータベースの出題率は、
平均で5問程度。

午前試験において出題される問題としては、
セキュリティに次ぐレベルで出題率が高い分野であるため注意が必要です。

 

シロ
シロ

午前試験で出題されるデータベースって
地味だけど午前試験の点数を左右する分野だよね

チョコ
チョコ

問題数が地味に多いからな。

シロ
シロ

しかもしっかりと勉強を進めていないと、
点数が取れない分野っていうのもポイントだね

チョコ
チョコ

もしかしたらデータベースの問題が出来ているかどうかで、
試験の合否がある程度分かるかもな

スポンサーリンク

 

まとめ

今回はデータベースの問題を解くためのコツや勉強法、
問題の傾向について解説しました。

・最低限覚えておくべき内容は
 -SQLの基礎的な構文
 -正規化のやり方と内容
 -SQLの制約について

・基本はSQL文の穴埋め 出題される問題の割合について
・データベースは文章量が少ないため、問題を解く時間が少なくて済む
・SQLにエラーが発生しているか? といった問題も出題される
・知らない構文が出てきたら、その都度調べて構文をまとめておく
・長いSQL文を解く際の基本は、文の違いに着目する
・文章をSQLに結び付けるだけと考える
・SQLは正しい選択肢を見つける方が楽
・午後試験のデータベースは、高い確率で出題されると考えて勉強する

・午前試験の対策は、データベースの単語を覚えるところから

 

基本情報技術者試験のデータベース問題は、
主にSQLの穴埋めが出題されるため、
SQLの内容を知っているというポイントが大前提になります。

だからこそSQLの勉強を欠かさないようにして、
データベースでの高得点を目指しましょう。

 

ちなみに以下のページでは、
初心者にも分かりやすくSQLを解説している参考書を紹介しています。

レビュー『スッキリわかるSQL入門』
『スッキリわかるSQL入門』は、練習問題をメインに学習が進められる参考書です。初心者から未経験者、SQLに苦手意識を持っている人にピッタリな参考書となっています。

SQLの過去問題を解いている時に、

持っている参考書だけではSQLの解説が足りないな・・・

と思ったら是非ともこの参考書の存在を思い出してください。

SQLの問題を解く上で大きな力となってくれるでしょう。

コメント