午前Ⅱ試験対策:その他のデータベース技術に関する問題の解き方

2017年3月29日(水)
玉木 学

はじめに

今回は、午前Ⅱ試験対策として、これまでに紹介してきた内容を除いたデータベース技術の学習内容を紹介します。第1回でも解説した通り、午前Ⅱ試験は25問中15問以上正解すれば合格ですが、過去3年間でデータベース技術に関する出題は19問でした。そこで、今回の目標は「データベース技術の問題だけで午前Ⅱ試験に合格する」とします。なお、午後Ⅱ試験の出題内容に含まれるコンピュータシステムとその開発技術、およびセキュリティについては、最終回の午後Ⅰ試験対策で紹介します。

データベース方式

データベース方式に関する出題内容は、データモデルとANSI/SPARC 3層スキーマです。

データモデル

以下の3種類のデータモデルを理解しておきましょう。

  • 概念データモデル:実世界で扱うべきデータをモデル化したもの
  • 論理データモデル:概念データモデルを階層モデル、ネットワークモデル、関係モデルのようなDBMSの種類で実現できる形にしたモデル
  • 物理データモデル:論理データモデルを性能や実装面を考慮し、データベースに実装できる形にしたモデル

【過去問題にチャレンジ!】(問題文は平成26年度春期DB試験 午前Ⅱ問題 問1(P.3) を参照)

【解説】
ア:論理データモデルの説明である
イ:データモデルでは業務プロセスは表現しない
ウ:物理データモデルの説明である
エ:概念データモデルの説明である(正解)

ANSI/SPARC 3層スキーマ

データ構造を以下の3つのスキーマ(枠組み)に分けることで、データの独立性を実現することを定義しています。

  • 概念スキーマ:概念データモデルを冗長性なく定義したスキーマ。関係モデルではテーブルに相当する
  • 外部スキーマ:概念スキーマを外部に必要な項目を定義したスキーマ。関係モデルではビューに相当する
  • 内部スキーマ:概念スキーマを物理ファイルに対応させるためのスキーマ。概念スキーマと外部スキーマのうち、一方を変更してももう一方に影響を与えないことを論理データ独立、概念スキーマと内部スキーマのうち、一方に変更を加えてももう一方に影響を与えないことを物理データ独立という

【過去問題にチャレンジ!】(問題文は平成27年度春期DB試験 午前Ⅱ問題 問1(P.3) を参照)

【解説】
ア:概念スキーマに関する記述である(正解)
イ:内部スキーマに関する記述である
ウ:サブスキーマは外部スキーマの一部に相当する
エ:外部スキーマに関する記述である

データベース設計

データベース設計に関する問題の解き方については第2回で紹介しましたが、1~3以外の正規形に関する問題が出題されています。

  • 第1正規形:繰り返し項目を排除した関係
  • 第2正規形:第1正規形においてすべての非キー属性がすべての候補キーに対し完全関数従属している関係
  • 第3正規形:第2正規形においてすべての非キー属性がすべての候補キーに対し推移的関数従属していない関係
  • ボイスコッド正規形:第1正規形において候補キーの属性または属性の組にすべての属性が完全関数従属している関係
  • 第4正規形:第1正規形で、自明でない多値従属性を持たない関係
  • 第5正規形:結合従属性がない関係

【過去問題にチャレンジ!】(問題文は平成28年度春期DB試験 午前Ⅱ問題 問8(P.7) を参照)

【解説】
ア:関数従属性が保存されるのは第3正規形までである
イ:情報無損失の分解は第3正規形までである
ウ:(正解)
エ:第4正規形で自明な多値従属性は失われている

データベース操作

データベース操作に関する問題の解き方のうち、SQLについては第3回で紹介しました。それ以外には、関係代数演算に関する問題が出題されています。

関係代数演算

関係代数演算には、以下の8種類があります。SQLでの表現方法を含め理解しておきましょう。

【過去問題にチャレンジ!】(問題文は平成28年度春期DB試験 午前Ⅱ問題 問15(P.10) を参照)

【解説】
和集合が成立するためには、以下の条件を満たす必要があります。

  • 属性の数(次数)が等しいこと
  • 対応する属性のドメイン(定義域:取りうる値の範囲)が等しいこと

上記条件を満たしているのはイだけです。ア、ウ、エは一部の属性のドメインが等しいことしか述べていないため、十分条件を満たしていません。

【過去問題にチャレンジ!】(問題文は平成24年度春期DB試験 午前Ⅱ問題 問10(P.9) を参照)

【解説】
R×S÷T-Uを順番に求めます。
1. R×S(RとSの直積)、つまり、RとSの組み合わせを総当たりで定義します。

2. R×S÷T(R×SとTの商)、つまり、R×SのA列の値がTのA列の値のすべてと一致する列BとCの組み合わせを求めます。

3. R×S÷T-U(R×S÷TとUの差)、つまり、R×S÷Tの行からUに含まれる行を除きます。

以上のことから、正解はアとなります。

この問題を(解答を丸暗記せずに)解ければ、関係代数演算の導出問題は解けるでしょう。

トランザクション処理

トランザクション処理に関する出題は、排他制御と障害回復、ACID特性、分離レベルおよびデータベースの性能向上についてです。

排他制御

デッドロックの仕組みについては第3回で紹介済みのため、ここでは以下の排他制御に関して解説します。

  • 2相ロック:必要な資源にロックをかけ(第1相)、すべてのロックをかけたあとでロックを解除する(第2相)
  • 待ちグラフ:トランザクションとロック対象となる資源の関係を図で表し、閉路になる場合はデッドロックと判断できる

【過去問題にチャレンジ!】(問題文は平成28年度春期DB試験 午前Ⅱ問題 問13(P.9) を参照)

【解説】
ア:2相ロックはロックをかける仕組みであり、デッドロックを検出するものではない
イ:対象資源を更新した時刻印から更新可能か判断するアルゴリズムである
ウ:データベースバッファ上のデータをデータファイルに書き込むタイミングである
エ:(正解)

障害回復

障害回復の問題を解くために必要な知識は以下の通りです。

  • バックアップ:データファイルのコピーのこと
  • ログファイル:データベースに実行した処理を記録するファイルで、更新前情報と更新後情報を保持する
  • チェックポイント:データベースバッファ上のデータをデータファイルに書き込むタイミング
  • ロールバック:ログファイルの更新前情報を用いてトランザクションを取り消す処理
  • ロールフォワード:ログファイルの更新後情報を用いてトランザクションを再実行する処理
  • WALプロトコル:データを更新する前にログを書き込むプロトコルのこと

【過去問題にチャレンジ!】(問題文は平成27年度春期DB試験 午前Ⅱ問題 問14(P.13) を参照。

【解説】
T1:チェックポイント前にコミット済みのため処理不要
T2:チェックポイント後にコミット実行のためロールフォワードが必要
T3,T4:Readのみのため処理不要
T5:チェックポイント後にコミット実行のためロールフォワードが必要
T6:障害発生時にトランザクション実行中のためロールバックが必要
以上より、正解はアです。

トランザクションのACID特性

以下のACID特性を理解しておきましょう。

  • 原子性(Atomicity):トランザクションは「すべて完了」か「何もしていない」かのいずれかで終了する
  • 一貫性(Consistency):トランザクションの終了状態にかかわらず、データベースに矛盾がない
  • 独立性(Isolation):複数のトランザクションを同時実行した場合と順番に実行した場合の結果が同じである
  • 耐久性(Durability):完了したトランザクションは障害などで損なわれない

【過去問題にチャレンジ!】(問題文は平成28年度春期DB試験 午前Ⅱ問題 問17(P.10) を参照)

【解説】
ア:透過性に関する内容である
イ:原子性の内容である(正解)
ウ:一貫性の内容である
エ:独立性の内容である

トランザクションの分離レベル

以下の分離レベルを理解しておきましょう。

【過去問題にチャレンジ!】(問題文は平成27年度春期DB試験 午前Ⅱ問題 問16(P.14) を参照)

【解説】
ア:READ COMMITTEDに関する記述である
イ:REPEATABLE READに関する記述である
ウ:デッドロックに関する記述である
エ:ダーティーリード(READ UNCOMMITTED)に関する記述である(正解)

データベースの性能向上

データベースの性能向上に使用するインデックスの特徴を理解しましょう。

【過去問題にチャレンジ!】(問題文は平成27年度春期DB試験 午前Ⅱ問題 問15(P.14) を参照)

【解説】
ア:ビットマップインデックスが有効である
イ:B+木インデックスが有効である
ウ:ビットマップインデックスが有効である
エ:ビットマップインデックスが有効である(正解)

データベース応用

データベース応用に関する出題は、データウェアハウスとNoSQL、2相コミットについてです。

データウェアハウス

ビットマップインデックスについては紹介済みなので、それ以外に必要な知識を理解しておきましょう。

  • スタースキーマ:データウェアハウスで用いるデータモデルで、分析対象のトランザクションデータを保持するファクトテーブルの周りに、分析軸となるディメンジョンテーブルをスター状に配置する
  • データマイニング:データウェアハウスに格納されている大量データから、統計学をはじめとした解析技法を用いて意味のある情報を抽出する
  • データクレンジング:データを移行する際に整合されたデータ属性やコード体系になるようにデータを変換する

【過去問題にチャレンジ!】(問題文は平成26年度春期DB試験 午前Ⅱ問題 問18(P.10) を参照)

【解説】
ア、イ、ウ:データウェアハウスの説明
エ:データマイニングの説明(正解)

NoSQL

NoSQL(Not only SQL)はRDBMS以外のDBMSの総称です。いわゆるビッグデータを活用するもので、今後の出題が見込まれています。

代表的なNoSQLには以下のものがあります。

  • KVS(Key-Value Store)型:キーと値という単純な構造でデータを格納する
  • カラム型(列指向):行ごとに複数の列と値をまとめてデータを格納する
  • ドキュメント型:ドキュメントという、データ構造を決めない柔軟な形でデータを格納する

NoSQLの特徴として、一時的にデータの整合性が取れなくても、結果として整合性が取れれば良いいう結果整合性があります。この結果整合性によっては、以下の特徴を実現できます。

  • 高速に処理できる
  • 拡張性が高い
  • データを分散して扱える

【過去問題にチャレンジ!】(問題文は平成27年度春期DB試験 午前Ⅱ問題 問18(P.15) を参照)

【解説】
ア:コンシステントハッシング手法はノードの追加や削除の際の再編成を最小化する手法であり、結果整合性とは関係ない
イ:ロック機構では常に整合性を保つため、結果整合性の説明ではない
ウ:結果整合性の説明である(正解)
エ:2相ロック方式では常に整合性を保つため、結果整合性の説明ではない

2相コミット

分散トランザクションのACID特性を確保する手法として、コミットを以下の2段階で実施する2相コミットが用いられます。この仕組みを理解しておきましょう。

  • 1相目で主サイトからすべての副サイトにコミット可否を通知する
  • 1相目の通知に対してすべての副サイトから主サイトにコミット可能の通知が届いたら、2相目で主サイトからすべての副サイトにコミット実行を指示し、すべての副サイトでコミットを実行する
  • 1相目で1か所でも副サイトから主サイトにコミット不可の通知が届いたら、2相目で主サイトからすべての副サイトにロールバックの実行を指示し、すべての副サイトでロールバックを実行する

【過去問題にチャレンジ!】(問題文は平成26年度春期DB試験 午前Ⅱ問題 問12(P.7) を参照)

【解説】
①コミット可否問合せ
②コミット可否回答受信
③コミット実行指示(=ウが正解)
④コミット実行結果受信

おわりに

今回は、午前Ⅱ試験の合格に必要な知識を紹介しました。第1~4回の記事と合わせると、15問の正解は目指せると思います。「まだ不安だ」と感じる場合は、過去問題を解いて出題内容を確認してください。次回はいよいよ最終回です。午前Ⅰ試験の出題傾向と直前の学習方法を紹介します。

NECマネジメントパートナー株式会社 人材開発サービス事業部
1993年日本電気株式会社入社。教育部門に所属し、データベース領域の教育(特にOracleデータベース)を担当。現在は情報システムの開発技術教育を担当し、要件定義や設計担当者を育成している。受講者が主体的に考え、楽しく学べる研修の提供により、高い評価をいただいている。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています