[情報セキュリティマネジメント試験]データベース[無料講座・例題付き!]

2021年5月25日

セキュリティ

今回は情報セキュリティマネジメント試験におけるデータベースについて学習します。

くろん
くろん
SQLと関係があるとか何とか聞いたにゃ
モナ
モナ
それはデータベースの中でもリレーショナルデータベースってやつだニャ

データベース

データベースは多くの情報システムで用いられています。

情報セキュリティマネジメント試験では障害を予防するための制御や処理を学習していくことなります。

リレーショナルデータベース

リレーショナルデータベース(関連データベース)では、データを2次元の表に格納して表のデータと別の表のデータを列の値を用いて相互に関連付ける方式のデータベースです。

例えば以下の3つの表をご覧ください。

<受注表>

受注番号 受注日
SH001 2月6日
SH002 2月8日
SH004 2月16日

<受注明細表>

受注番号 商品ID 数量
SH001 00001 40
SH001 00002 30
SH002 00003 20
SH004 00003 30
SH004 00004 20

<商品表>

商品ID 商品名 単価
00001 りんご 100
00002 みかん 50
00003 ぶどう 200
00004 バナナ 80
キュー
キュー
それぞれの表の赤文字同士青文字同士が対応してるで

この表を見ることで、

  1. 受注表の受注番号SH002は、受注明細表に関連付けられている
  2. 受注明細表でその番号をたどると、注文した商品は00003だとわかる
  3. 商品表の商品IDから、00003はぶどうだとわかる

といったように、それぞれのデータを関連付けていくことでデータを無駄なく管理できます。

DBMS

DBMS(Data Base Management System)はデータベースを管理するためのソフトウェアです。

トランザクション制御や障害発生時の復旧・バックアップ・セキュリティ対策などを一元管理します。

トランザクション

トランザクションはどこまで処理を進めたか把握するために、処理が全て成功したのか、または全く進んでいないのかを明確化します。

例えばAさんが銀行のATMからお金を引き出す場合を考えます。

  1. ATMのAさん残高から引き下ろし金額を差し引く
  2. ATMの取り出し口に引き下ろし金額を用意する

もし、1の処理と2の処理の間で障害が発生した場合を考えましょう。

Aさんの残高から金額が引かれた時点で障害が発生してしまうと、残高は減ったにもかかわらず手元にお金が来ないと言った不具合が生じます。

そこで1の処理と2の処理をひとまとめ(トランザクション)にし、障害発生時に2つの処理が途中で分離しないようにします。

万が一途中で不具合が起きた場合巻き戻し(ロールバック)を起こしてデータ矛盾を防ぎます。

ロールバック

ロールバックはトランザクションの処理中に発生した障害に対して行う復旧処理です。

具体的な流れとしては

  1. 障害発生時に白紙に戻すため。元のデータを事前に記録しておく(更新前ログ)
  2. トランザクションを処理し、データファイルへ書き込んでデータを更新する(更新後ログ)
  3. 障害発生時に更新後ログの値を取り出して更新前ログの値に書き戻す(ロールバック)

ロールバックではデータが元の状態に戻るため、障害復旧後にトランザクションを改めて行う再処理の必要があります。

ロールフォワード

ロールフォワードではトランザクションの処理が終わった後に、データファイルへデータの書き込み処理を行う途中で発生した障害に対する復旧処理です。

トランザクションの処理をした後に全てのデータを、障害なくデータファイルへ書き込むことが理想ですがこのタイミングは障害が起きやすいです。

そのため、データファイル以外にもログファイルが用意されています。

  • データファイル・・・データが保存される。この書き込み処理では時間や負荷がかかるため、途中で障害を引き起こしがちである。
  • ログファイル・・・書き込みの処理内容が保存され、データは含まれない。サイズが小さく一瞬で書き込みが完了するため障害が起きにくい

もし仮に、データファイルへデータの書き込み処理を行う途中で障害が発生してしまった場合はログファイルの変更履歴を再現します。

排他制御

複数のトランザクションを同時に実行すると、データベースを同時に更新しようとして衝突してしまうことがあります。

処理の途中で他の処理に割込みされてデータの更新・読み取りをされた結果、データに不整合が生じないように事前にデータをロックします。

ロックには以下の2種類があります。

  • 共有ロック・・・他の処理からはデータを更新不可能とする。一方で読み取りは可能である。
  • 占有ロック・・・他の処理からはデータを更新不可能とする。併せて読み取りも不可能である。
キュー
キュー
ちなみにお互いがお互いの資源を占有して次のトランザクションに進めない状態をデッドロックって言うで

バックアップ

バックアップは障害が発生した際にデータを復元できるよう、データを複製しておくことです。

バックアップには以下の3種類があります。

フルバックアップ

フルバックアップでは全てのデータをバックアップします。

  • 障害発生時の復元ではフルバックアップが必要
  • バックアップファイルのサイズが大きいため、バックアップに時間がかかる
日数 バックアップの箇所
1日目
2日目
3日目
差分バックアップ

差分バックアップでは、前回のフルバックアップ以降に作成・変更されたデータのみをバックアップします。

3日目の差分バックアップでは2日目と3日目のデータがバックアップの対象となります。

  • 復元ではフルバックアップと直前の差分バックアップを用いる
  • フルバックアップに比べるとサイズが小さく時間がかからない
日数 バックアップの箇所
1日目
2日目
3日目
増分バックアップ

増分バックアップは前回のバックアップ以降に作成されたデータのみをバックアップします。

3日目の増分バックアップでは、前日2日目の増分バックアップ以降である3日目のデータのみがバックアップの対象となります。

日数 バックアップの箇所
1日目
2日目
3日目

データ分析

蓄積したデータは分析をし、有効に活用します。

関連する用語として以下の物を押さえておきましょう。

  • データウェアハウス・・・時系列のデータを大量に整理・統合して蓄積し、意思決定の際に利用する。
  • データディクショナリ・・・システムの複雑化に伴い、同じデータ項目を重複して設計しないようにシステム全体で扱うデータ項目をすべて定義下データベースや書類。
  • データマート・・・利用者の利用目的に合わせて、部門別のデータベースを作成する技術。
  • データマイニング・・・大量のデータを統計的・数学的に分析し、法則因果関係を見つけ出す技術。
  • ビッグデータ・・・今まで埋もれてしまっていたような巨大なデータを収集し解析することでこれまでにない新しい仕組みやビジネスを生み出す。
スポンサーリンク

データベース・例題

実際に例題を解いて問題に慣れていきましょう。

問題

問1

データベースのトランザクションに関する記述のうち,適切なものはどれか。(R.1/秋)

ア 他のトランザクションにデータを更新されないようにするために,テーブルに対するロックをアプリケーションプログラムが解放した。
イ トランザクション障害が発生したので,異常終了したトランザクションをDBMSがロールフォワードした。
ウ トランザクションの更新結果を確定するために,トランザクションをアプリケーションプログラムがロールバックした。
エ 複数のトランザクション間でデッドロックが発生したので,トランザクションをDBMSがロールバックした。

問2

DBMSにおいて,複数のトランザクション処理プログラムが同一データベースを同時に更新する場合,論理的な矛盾を生じさせないために用いる技法はどれか。(H.30/春)

ア 再編成
イ 正規化
ウ 整合性制約
エ 排他制御

問3

メールサーバのディスクに障害が発生して多数の電子メールが消失した。消失した電子メールの復旧を試みたが,2週間ごとに行っている磁気テープへのフルバックアップしかなかったので,最後のフルバックアップ以降1週間分の電子メールが回復できなかった。そこで,今後は前日の状態までには復旧できるようにしたい。対応策として,適切なものはどれか。(初級シスアド H.20/秋)

ア 2週間ごとの磁気テープへのフルバックアップに加え,毎日,磁気テープへの差分バックアップを行う。
イ 電子メールを複数のディスクに分散して蓄積する。
ウ バックアップ方法は今のままとして,メールサーバのディスクをミラーリングするようにし,信頼性を高める。
エ 毎日,メールサーバのディスクにフルバックアップを行い,2週間ごとに,バックアップしたデータを磁気テープにコピーして保管する。

解説(クリックで展開)

データベース・まとめ

今回はデータベースについて学習しました。

セキュリティマネジメント試験ではそこまで深い内容は出題されませんが、最低限の知識は押さえておきましょう。

カズ
カズ
特にバックアップ関係はセキュリティと関連性があるしね!

次回はネットワークについて学習します。


スポンサーリンク









メールアドレスを登録することで、学習状況を保存したりメモが書き込めたりします!