ITパスポート 過去問
令和7年度
問61 (テクノロジ系 問6)

このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。

問題

ITパスポート試験 令和7年度 問61(テクノロジ系 問6) (訂正依頼・報告はこちら)

DBMSのトランザクションに関する記述として、適切なものはどれか。
  • あるデータベースの内容を他のデータベースに複製し、内容の同期をとる。
  • データベースに対して行った操作を、順次記録する。
  • データベースに対する一連の処理が全て成功したら変更結果を確定し、途中で失敗したら処理前の状態に戻す。
  • データベースの表の索引を作成し、検索時には索引を使用する。

次の問題へ

正解!素晴らしいです

残念...

この過去問の解説 (3件)

01

DBMS(データベース管理システム)のトランザクションとは、データベースの整合性と信頼性を保つための機能です。

各選択肢をみていきます。


 

選択肢1. あるデータベースの内容を他のデータベースに複製し、内容の同期をとる。

本選択肢に該当する機能は、複製や同期に関する機能であり、トランザクションについての直接な説明ではありません

これらは可用性向上や負荷分散などを目的とした機能です。

そのため本選択肢は不正解です。

選択肢2. データベースに対して行った操作を、順次記録する。

データベースのログ機能に関するものです。

トランザクションの処理中に障害が発生した場合に、元の状態に戻したり、処理を回復させたりするために、データベースに対する操作を記録することです。

トランザクションについてのものではないため、本選択肢は不正解です。

選択肢3. データベースに対する一連の処理が全て成功したら変更結果を確定し、途中で失敗したら処理前の状態に戻す。

トランザクションは、一連の処理をすべて実行されるか、何も実行されないかとして扱い、データベースの整合性を保ちます。

選択肢のとおりの処理を行うため、本選択肢が正解です。

選択肢4. データベースの表の索引を作成し、検索時には索引を使用する。

索引(インデックス)は、データベースのテーブルから特定のデータを高速に検索するために作成されるものです。

トランザクションとは直接関係ないため、本選択肢は不正解です。

まとめ

データベースのトランザクションにはACID特性という概念があります。

 

・原子性 Atomicity

・一貫性 Consistency

・独立性 Isolation

・永続性 Durability

 

本問ではこの中の原子性について理解できているかがポイントでしたが、他の特性も重要です。

参考になった数10

02

DBMSのトランザクションとは、データに対する複数の処理を一つのまとまった単位とすることで、完全性と一貫性を保つための手法です。

選択肢1. あるデータベースの内容を他のデータベースに複製し、内容の同期をとる。

不正解。レプリケーションのことです。

選択肢2. データベースに対して行った操作を、順次記録する。

不正解。ログのことです。

選択肢3. データベースに対する一連の処理が全て成功したら変更結果を確定し、途中で失敗したら処理前の状態に戻す。

これが正解です。

選択肢4. データベースの表の索引を作成し、検索時には索引を使用する。

不正解。インデックスのことです。

参考になった数2

03

データベースには様々な情報が大量に格納されており、大勢の人が常にアクセスしています。

なかにはデータを閲覧するだけではなく、状況に応じて編集する方もいるはずです。

 

もしもデータベースの編集中に

 

・データを途中までしか書き換えていないのに、保存してしまった

・データを編集中に、別の箇所が消えてしまった

 

このようなことがあると、どうなるでしょうか?

 

当然、データベースの中身は矛盾した内容となってしまいます。

 

このようなことを防ぐため、データベースにはトランザクションと呼ばれる処理の方法があります。

トランザクションとは、あるデータベースの編集に必要となる操作をひとまとめにしたものです。

 

例えば、次のようなテーブル「在庫表」があるとします。

商品名型番価格在庫数
スマホASP-0A30,00014
スマホBSP-0B45,00017
パソコンXPC-0X98,00016
タブレットZTAB-Z62,00021

 

今日はスマホAとスマホBが1台ずつ、パソコンXが2台売れたとします。

なので、次のSQL文を実行して在庫表を更新します。

 

update 在庫表 set 在庫数=”13” where 商品名=“スマホA”

update 在庫表 set 在庫数=”16” where 商品名=“スマホB”

update 在庫表 set 在庫数=”14” where 商品名=“パソコンX”

 

これら全ての操作が「トランザクション」であり、「update」などの操作がまとまったものとなります。

 

データベースを管理するにあたり、このトランザクションごとに処理をしていくことで、

データベース内の情報に矛盾が生じるのを防ぎ、整合性を保つことができるのです。

選択肢1. あるデータベースの内容を他のデータベースに複製し、内容の同期をとる。

常に同じ内容の記憶媒体を用意しておくことで、万一のときにはそこから復元したり、切り替えたりことで業務を続行できるようにするしくみです。

例えばRAIDと呼ばれる記憶媒体の管理方式には「ミラーリング」というものがあり、これはシステムの稼働率をあげて信頼性向上を図るための基本的な手法とされています。

 

データベースの保守運用でも重要な概念ですが、問題で問われているトランザクションとは全く別の概念です。

選択肢2. データベースに対して行った操作を、順次記録する。

ロギングと呼ばれるもので、データベースサーバーに備わっている管理機能の一つです。

得られた操作記録は障害発生時のデータ復元に役立つ他、悪意のある第三者にSQLインジェクション攻撃などによってデータベースを破壊された際の証拠にもなります。

選択肢3. データベースに対する一連の処理が全て成功したら変更結果を確定し、途中で失敗したら処理前の状態に戻す。

データベースを、生合成を保ちつつ運用するには、次の4つのポイントを押さえておく必要があります。

 

1.原子性(Atomicity)・・・トランザクションは全部行われるか、全く行われないか → 問題で問われているポイント

2.一貫性(Consistency)・・・閲覧した際、全てのユーザーが同じ内容を確認できるか

3.独立性(Isolation)・・・行った操作が、無関係な箇所にまで影響していないか

4.永続性(Durability)・・・行われた処理結果が保たれている

 

例えば、同じ時刻に2人の従業員が在庫表を見ているのに、ある人は「スマホAの在庫は14台」またある人は「在庫は13台」などといったことはあってはなりません。

 

これは、データに対して中途半端な操作を行うことで起きてしまう事故で、原因は「トランザクションを途中でやめてしまうということです。

なので一度開始したトランザクションは全て実行され、それが不可能であれば開始前の状態を維持しておくべきです。(正解)

 

なお、上記の4つのポイントをACID特性(アシッドトクセイ)といいます。

選択肢4. データベースの表の索引を作成し、検索時には索引を使用する。

インデックスとよばれるもので、データベース内のデータを瞬時に見つけやすくするために、そのデータがどこにあるかを予め把握して作っておく「データの場所一覧のデータベース」です。

各データを識別できるようにするため、重複しない値に設定する主キーとは別物ですので混合しないよう注意しましょう!

まとめ

データベース内の情報は、社内やネット上のユーザーなど多くの人と共有されるケースがほとんどです。

よって、その内容がリアルタイムで矛盾なく整合性が保たれていることは必要不可欠であり、ACID特性はデータベース運用において重要視されているのです。

参考になった数0