令和7年度 ITパスポート試験 公開問題 問82 解説 DBMSのレプリケーション
あるコンピュータのデータベースの内容を他のコンピュータのデータベースに複製 して,両者の内容が一致するように同期させるDBMSの機能はどれか。
- ア アーカイブ
- イ バックアップ
- ウ レプリケーション ✓ 正答
- エ ロールバック
解説
データベースの複製と同期:レプリケーションを理解する
この問題は、データベースの内容を他のデータベースに複製し、常に一致させるDBMS(データベース管理システム)の機能を問うています。選択肢の中から、この「複製して同期させる」という目的に合致する機能を選ぶ必要があります。
判断のポイント: 「複製して両者の内容が一致するように同期させる」というキーワードに注目します。これは、あるデータベースの変更を、別のデータベースにも自動的に反映させて、常に同じ状態を保つ機能を示唆しています。
- ア アーカイブ: 過去のデータを保存する機能であり、リアルタイムでの同期とは異なります。
- イ バックアップ: データの消失に備えてコピーを作成する機能ですが、これもリアルタイムな同期ではなく、定期的に行われることが多いです。
- ウ レプリケーション: データベースの内容を別の場所に複製し、更新を自動的に反映させて同期させる機能です。まさに問題文の記述に合致します。
- エ ロールバック: トランザクション処理で、エラー発生時に処理前の状態に戻す機能です。データの複製や同期とは目的が異なります。
したがって、正解は「ウ レプリケーション」です。
レプリケーションとは何か?
レプリケーションは、データベースのデータを複数の場所にコピーし、それらのコピー間でデータの整合性を維持する技術です。具体的には、あるマスターデータベースで行われた変更(データの追加、更新、削除など)が、自動的に他のスレーブデータベースにも伝達され、反映されます。これにより、複数のデータベースが常に同じ内容を持つ状態になります。
レプリケーションの活用場面と教育的意図
レプリケーションがなぜ重要で、どのような場面で活用されるのかを理解することは、ITパスポート試験の学習において非常に有益です。この問題は、データベースの可用性やパフォーマンス向上といった、より実践的な側面を理解するための入り口となります。
1. 可用性の向上
レプリケーションの最も重要な目的の一つが、システムの可用性向上です。 もしマスターデータベースが稼働できなくなった場合でも、スレーブデータベースがあれば、それをマスターとして切り替える(フェイルオーバー)ことで、サービスを継続できます。これにより、システム停止時間を最小限に抑え、ユーザーへの影響を軽減することができます。
2. 負荷分散
読み取り処理が多いデータベースシステムでは、マスターデータベースに負荷が集中し、パフォーマンスが低下する可能性があります。レプリケーションにより、読み取り専用のスレーブデータベースを複数用意し、読み取りリクエストを分散させることができます。これにより、マスターデータベースの負荷を軽減し、システム全体の応答速度を向上させることが可能になります。
3. バックアップと災害対策
レプリケーションは、バックアップや災害対策としても機能します。物理的に離れた場所にレプリカ(複製されたデータベース)を配置することで、災害発生時にもデータの損失を防ぎ、迅速な復旧につなげることができます。ただし、レプリケーションはバックアップの完全な代替となるわけではありません。バックアップは特定の時点のデータスナップショットを取得するのに対し、レプリケーションはリアルタイムに近い同期を行うため、それぞれの役割を理解しておくことが重要です。
archiv (アーカイブ), backup (バックアップ), rollback (ロールバック) との違い
レプリケーションを正しく理解するためには、他の選択肢との違いを明確にしておくことが大切です。
アーカイブ: アーカイブは、現在アクティブには使用されていないが、将来的に参照される可能性のあるデータを、長期保存のために別のストレージに移動・保存するプロセスです。データの検索性は重視されない場合が多く、ディスク容量の節約などを目的とします。レプリケーションのようにリアルタイムでデータを同期する機能はありません。
バックアップ: バックアップは、データの損失や破損に備えて、データのコピーを定期的に作成するプロセスです。障害発生時に、バックアップされた時点のデータに復旧するために使用されます。バックアップは通常、特定の時点のスナップショットであり、リアルタイムな変更を追跡・反映するものではありません。
ロールバック: ロールバックは、トランザクション処理において、一連の操作が完了する前にエラーが発生した場合などに、データベースを処理開始前の状態に戻す機能です。これは、データの一貫性を保つための機能であり、データの複製や同期とは根本的に異なります。