【初学者必見!】データベース トランザクション処理について【基本情報技術者試験範囲】

1.はじめに

今回は基本情報技術者の出題範囲にも含まれる分野でもある、データベース、トランザクション処理について書きたいと思います。これから勉強しようという方や、IT業界未経験の方でも分かりやすく書いてあるのでぜひ読んでみてください。

2.データベースについて

   データベースとは、複数の整理、構造化したデータの集まりのことを言い、データを管理するのに利用されていて、私たちの周りでも使われています。身近な例をこれから説明します。

2-1.データベースの身近な例について

例えば普段、私たちがネットで買い物をするのに利用しているECサイトでは、顧客情報や商品の在庫情報などを管理するのにデータベースが使われています。銀行でもデータベースは活用されていて、預貯金や送金などの取引を記録するのに利用されています。

3.トランザクション処理について

データベースでは日々情報を追加、更新する処理を行っています。こういった処理のまとまりのことをトランザクションと呼び、トランザクションが全て成功しているか、失敗しているかのどちらかであることを保証するのがトランザクション処理です。このように説明すると分かりにくいので、先ほど身近な例で出た、銀行での例を使って説明します。

3-1.トランザクション処理の例

例えばあなたの口座からAさんの口座に1万円を振り込んだ時、データベースでは次のことが行なわれます。

  1. あなたの口座残高を確認
  2. あなたの口座から1万円減らす
  3. Aさんの口座残高を確認
  4. Aさんの口座残高を1万円増やす

 この1から4までの処理をまとめてトランザクションと呼び、この処理が全て完了もしくは全てキャンセルされることを保証することをトランザクション処理といいます。

ATMにお金を入れようとしている画像

4.データベース トランザクション処理について学ぶ上で覚えておきたい3つのこと

4-1 排他制御

データベースの情報を複数の人が同時に変更、更新してしまうと情報に不整合が発生してしまう可能性があります。こういったことが起きないよう、処理中の情報を他の人が読み書きしたり出来ないようにする機能のことを排他制御といいます。

4-2 障害回復について

データベースでの障害には主に2種類あり、1つはトランザクション処理中に何らかの問題により処理が最後まで完了しなかった場合、もう1つがトランザクション処理中ではなく、ハードウェアの故障などでデータベースが故障する場合です。

データベースはこういった障害の発生に備え、定期的にバックアップを取っていますが、バックアップから次回のバックアップの間に更新されたデータは、ジャーナルというファイルに更新前と更新後のデータを保存しています。

ジャーナルとは分かりやすく言うと日記のようなもので、バックアップから次のバックアップまでの間にデータベース上で起きたことを記録していて、障害が発生した時にはこの2つのデータを使いデータベースを元の状態に復元します。

パソコンの画面を見て、予想外のことが起きてびっくりしている画像

この障害回復についてはデータベースについて学ぶ上で非常に大事なことなので、これからさらに詳しく説明していきます。
障害回復には障害の種類によって障害回復の方法が異なり、ロールバックとロールフォワードの2パターンがあります。

トランザクション処理中に障害が発生し、処理が最後まで完了しなかった場合にはロールバックといって更新前ジャーナルからデータベースをトランザクション処理が開始される直前の状態に戻す方法があります。
ハードウェアの故障などが原因でデータベースが故障した場合は、ロールフォワードといってバックアップとバックアップ以降の更新後ジャーナルを使ってデータベースを障害が起こる直前の状態に復元します。

4-3 トランザクション管理

データベースは複数の人で共有し、閲覧、変更、更新を行なえるので便利な反面、同時に複数の人が同じデータを変更できたり、作業中のデータが他の人に削除できてしまうなどといった問題が発生してしまいます。

例えば、2人の従業員がそれぞれ違うお客様にりんごを1個ずつ売ったので、データベースの在庫情報を同時に変更しようとした場合、元々のりんごの在庫が3個なら、本来1個にならないといけないのに、この場合2個と更新されてしまいます。このような可能性があるので、先ほど説明した排他制御を使ってこのような問題を防ぐのがトランザクション管理です。

5.まとめ

いかがでしたでしょうか。データベースが私たちの身近で使われていることを初めて知った方もいたのではないでしょうか。障害の種類によって障害回復の方法が変わることや、障害回復には更新前ジャーナル、更新後ジャーナルどちらを使うのかというのは、基本情報技術者の午前試験においてよく出題されるのでしっかりと覚えておきましょう。

今回の記事が、これから基本情報技術者の資格取得を目指している方、データベースについて興味のある方のお役に立てたなら幸いです。
今回、記事を作成するにあたって参考にした文献やサイトを記載しましたので、興味のある方はご参照ください。

文献

キタミ式イラストIT塾 基本情報技術者 令和3年
※2023年1月6日時点でキタミ式イラストIT塾は令和5年のものが最新のものとなります。

サイト

作者情報

音楽好きのIT業界未経験者です。現在は応用情報技術者取得に向け勉強中。