春期試験の押さえどころを総ざらい!:データベースエキスパート試験攻略のツボ(3/5 ページ)
本連載では、テクニカルエンジニア(データベース)試験に対応できる知識を確認していきます。多岐にわたる知識が問われる試験ですので、受験する方はもちろん、日常業務ではあまり使うことのない技術知識の確認にも役立ててください。
午前問題 (2)作業問題
SQL文の穴埋めや演算結果を求める作業問題は、データベースの基礎知識があれば試験対策か否かに関係なく解けるはずですが、以下の頻出パターンでピンとこない個所は必要に応じて過去問や参考書を参照してください。
作業問題の頻出パターン
- 正規化(各正規形の理解度を問う)
各正規形の特徴(19年-問24)や、第何正規形まで正規化されているか(17年-問25)、第3正規形ではない表はどれか(16年-問23)などが出題される。午後?問題でも出題されるので、少なくとも第1正規形から第3正規形までの特徴と違いは確認しておくこと
- 各正規形の特徴を問う問題
第1正規形――すべての属性が単一値
第2正規形――第1正規形を満たし、候補キーからの部分関数従属がない
第3正規形――第2正規形を満たし、候補キーからの推移的関数従属がない
- 第3正規形まで分割するといくつの表に分割されるかを問う問題
単純な正規化の問題ですが、同じ問題が定期的に出題される(19年-問25)
- 関係代数演算の問題
「R÷S」(19年-問28)や「R×S÷T?U」(18年-23問)という演算がよく出題されます。特に商演算「÷」に注意
- 表を結合した結果を問う問題
2つの表を自然結合した結果(19年-問27)、等結合した結果(18年-問25)を求める問題が出題されています。同じ属性で結合した等結合から、属性の重複を削除したものが自然結合。直積とは何かを問う選択問題(18年-問24)も出されており、「2つの関係から、任意のタプルを1個ずつ取り出し連結したタプルの集合」が答え
- データモデル解釈の問題
多対多のリレーションシップの多重度(18年-問29)や、0を含む対応関係(17年-問32)、エンティティタイプの制約(17年-問28)などを解釈する問題が出題される
- SQL文穴埋め問題
特にカーソル関係に注意。とくにカーソル宣言(17年-問33)や「CURRENT OF カーソル名」(18年-問30、16年-問31)の穴埋め。カーソル関係のSQL文は、午前問題、午後?問題ともに出題される
- SQL文の実行結果や正しいSQL文を選択する問題
データベースの基礎知識で対応可能。以下の出題パターンに心配がある場合は確認を(17年-問36)
SQL文の実行結果に関する問題のパターン
- LEFT OUTER JOINの実行結果(16年-問32、18年-問32 → ほぼ同じ問題)
- 自己結合の実行結果(17年-問34)
- GROUP BY〜HAVINGの実行結果(17年-問35)
- 相関サブクエリの実行結果(17年-問36 → 頻出につき要チェック)
- 条件を満たす社員を取得するSQL文(17年-問38)
- 「注文」と同時に「注文明細」を削除するための制約(16年-問43)
- 重複値の入力を許可しない制約(16年-問45)
- 更新可能なビューを作成するSQL文を問う問題
選択肢に示されたCREATE VIEW文から、集計、重複削除、複数テーブルからの選択、グループ化などを行っている選択肢を除外し、「シンプルな」CREATE VIEW文を正解として選択(16年-問33)
- M/M/1の待ち行列に関する問題
待ち時間との関係から利用率を求めたり(19年-問9)、自動支払機の平均待ち時間を求める式を問う(18年-問8)問題など、毎回のように出題されている
- WAL(ログ先行書き込み)の処理ステップを正しい順に並べる問題
次のWALの処理ステップのうち、「3」と「4」を逆にしないように注意(18年-問37)
WALの処理ステップ(18年-問37の場合のステップ例)
- begin transactionレコードの書き出し
- ログに更新前レコードの書き出し
- ログに更新後レコードの書き出し
- データベースを実際に更新
- commitレコードの書き出し
- end transactionレコードの書き出し
- アローダイアグラムを読ませる問題
作業の所要日数(18年-問19)、結合点を通過するのは何日後か(17年-問19)などが出題された。難しい問題ではありませんが、アローダイアグラムについて自信がない場合は復習を
- 直列可能性が保証できるトランザクションを問う問題
実行される2つのトランザクションから、直列可能性が保証できる組み合わせを選択する問題。同じ問題が何度も出題されているので、過去の問で対応できる(19年-問42)
- 障害発生時にロールフォワードするかロールバックするかを問う問題
チェックポイントと障害発生のタイミングから、ロールフォワードで障害回復するトランザクションを選ぶ問題(17年-問40)や、データベースからのread、write処理の有無を考慮してロールフォワードするかロールバックするかを選ぶ問題(18年-問36)が出題される
- ページフォールトに関する計算問題
ページアウトを伴う場合の処理時間と、伴わない場合の処理時間から、実行する処理の合計時間の式を組み立てたり(19年-問8)、ページアウトを伴わない処理の割合を求める(18年-問7)問題が出題される。ページアウトを伴わない場合、ページインの処理で20ミリ秒かかること、ページアウトを伴う場合、置き換えページの選択・ページアウト・ページインの処理で合計60ミリ秒かかることを確認。次の問題でピンとこない場合は過去の問題で復習を
【問】 ページング方式の仮想記憶において、あるプログラムを実行したとき、1回のページフォールトの平均処理時間は30ミリ秒であった。ページフォールト発生時の処理時間が次の条件であったとすると、ページアウトを伴わないページインだけの処理の割合は幾らか。(18年-問7)
【答】 0.75。ページインだけの処理の割合をxとして、全体の処理時間を式で表すと「20x+60(1?x)=30」になります。この方程式を解くと「x=0.75」になります。
- 共通鍵暗号方式に関する問題
出題された場合にサッと解けるように念のためマークしておきたい計算問題
【問】 100人の送受信者が共通かぎ暗号方式で、それぞれ秘密に通信を行うときに必要な暗号かぎの総数は幾つか。(17年-問46)
【答】 4950個。100人から2人を選ぶ組み合わせ、つまり、100×99÷2です。
Copyright © ITmedia, Inc. All Rights Reserved.