情報処理技術者試験(今のところは基本情報技術者試験)の過去問(データベース-トランザクション処理,その他)を集めて,シンプルにまとめています。トランザクション(ACID特性,原子性(atomicity),アクティブ,コミット処理中,コミット済,アボート処理中,アボート済),同時実行制御(排他制御)(ロック(共有ロック,専有ロック),ロックの粒度,デッドロック,2相ロッキングプロトコル),ログファイル(更新前ログ,更新後ログ),障害回復(媒体障害,システム障害(ウォームスタート方式,コールドスタート方式),トランザクション障害,ロールフォワード(前進復帰),ロールバック(後退復帰),チェックポイント,コミット),再編成,インデックス(B+木インデックス,ハッシュインデックス),分散データベース(透過性,2相コミットメント制御),データウェアハウス,データマイニング,ビッグデータ(データレイク),キーバリューストアについて,理解度を確認することができます。解けなかった問題や,完全に理解できていない問題については,【参考】にあるリンク先ページを読んで,もう一度,解いてみてください。難しい問題もあると思いますが,繰り返し解くことにより,だんだんと身に付いてきますので,根気よく頑張りましょう。
- 平成29年度 基本情報技術者試験 秋期 午前 問29
- 令和5年度 基本情報技術者試験 公開問題 科目A 問7
- 平成28年度 基本情報技術者試験 春期 午前 問28
- 平成26年度 基本情報技術者試験 春期 午前 問29
- 平成24年度 基本情報技術者試験 秋期 午前 問30
- 令和元年度 基本情報技術者試験 秋期 午前 問28
- 平成28年度 基本情報技術者試験 春期 午前 問30
- 平成22年度 基本情報技術者試験 春期 午前 問32
- 平成24年度 基本情報技術者試験 春期 午前 問33
- 平成26年度 基本情報技術者試験 秋期 午前 問30
- (類似)平成25年度 基本情報技術者試験 春期 午前 問30
- 平成27年度 基本情報技術者試験 秋期 午前 問29
- 平成25年度 基本情報技術者試験 秋期 午前 問32
- 平成30年度 基本情報技術者試験 秋期 午前 問29
- 平成30年度 基本情報技術者試験 春期 午前 問30
- 平成23年度 基本情報技術者試験 秋期 午前 問34
- 令和元年度 基本情報技術者試験 秋期 午前 問29
- 平成30年度 基本情報技術者試験 春期 午前 問29
- 平成23年度 基本情報技術者試験 特別 午前 問33
- 平成24年度 基本情報技術者試験 春期 午前 問32
- 平成21年度 基本情報技術者試験 秋期 午前 問34
- 平成23年度 基本情報技術者試験 秋期 午前 問36
- 平成30年度 基本情報技術者試験 秋期 午前 問30
- 平成31年度 基本情報技術者試験 春期 午前 問57
- 平成28年度 基本情報技術者試験 秋期 午前 問30
- 平成21年度 基本情報技術者試験 春期 午前 問35
- 平成30年度 基本情報技術者試験 秋期 午前 問56
- 平成29年度 基本情報技術者試験 秋期 午前 問30
- 平成22年度 基本情報技術者試験 秋期 午前 問56
- 平成25年度 基本情報技術者試験 秋期 午前 問31
- 平成26年度 基本情報技術者試験 秋期 午前 問29
- 平成22年度 基本情報技術者試験 秋期 午前 問32
- 平成24年度 基本情報技術者試験 秋期 午前 問27
- 平成27年度 基本情報技術者試験 秋期 午前 問26
- 平成26年度 基本情報技術者試験 秋期 午前 問27
- 平成21年度 基本情報技術者試験 秋期 午前 問35
- 平成29年度 基本情報技術者試験 春期 午前 問28
- 平成22年度 基本情報技術者試験 春期 午前 問33
- 平成29年度 基本情報技術者試験 春期 午前 問29
- (令和4年度) 基本情報技術者試験 サンプル問題 科目A 問23
- 平成31年度 基本情報技術者試験 春期 午前 問30
- まとめ
平成29年度 基本情報技術者試験 秋期 午前 問29
問 RDBMSの機能によって実現されるトランザクションの性質はどれか。
ア ACID特性 | イ 関数従属性 |
ウ 候補キーの一意性 | エ データ独立性 |
【解答】ア
【解説】
■ トランザクション
データベースにおける処理の最小単位をいう。
トランザクションについては,データベース管理システムがACID特性を保持しながら処理を実行する。
原子性 (Atomicity) | すべての処理を完全に実行するか,あるいは,まったく実行しない(処理をなかったことにする)かのどちらかで終了すること |
一貫性 (Consistency) | 常に,データに矛盾が生じない(整合性が保たれている)こと |
隔離性 (Isolation) | 複数のトランザクションを同時に実行した場合と,順に実行した場合の結果が一致すること |
耐久性 (Durability) | トランザクションのコミット(正常終了)後は,障害が発生してもデータが消えたり,内容が変わったりしないこと |
令和5年度 基本情報技術者試験 公開問題 科目A 問7
平成28年度 基本情報技術者試験 春期 午前 問28
平成26年度 基本情報技術者試験 春期 午前 問29
問 トランザクションが,データベースに対する更新処理を完全に行うか,全く処理しなかったかのように取り消すか,のどちらかの結果になることを保証する特性はどれか。
ア 一貫性(consistency) | イ 原子性(atomicity) |
ウ 耐久性(durability) | エ 独立性(isolation) |
【解答】イ
【解説】
■ トランザクション
データベースにおける処理の最小単位をいう。
トランザクションについては,データベース管理システムがACID特性を保持しながら処理を実行する。
原子性 (Atomicity) | すべての処理を完全に実行するか,あるいは,まったく実行しない(処理をなかったことにする)かのどちらかで終了すること |
一貫性 (Consistency) | 常に,データに矛盾が生じない(整合性が保たれている)こと |
隔離性 (Isolation) | 複数のトランザクションを同時に実行した場合と,順に実行した場合の結果が一致すること |
耐久性 (Durability) | トランザクションのコミット(正常終了)後は,障害が発生してもデータが消えたり,内容が変わったりしないこと |
平成24年度 基本情報技術者試験 秋期 午前 問30
問 DBMSが,データベースの更新に対して保証すべき原子性(atomicity)の単位はどれか。
ア DBMSの起動から停止まで
イ チェックポイントから次のチェックポイントまで
ウ データベースのバックアップ取得から媒体障害の発生時点まで
エ トランザクションの開始からコミット又はロールバックまで
【解答】エ
【解説】
■ 原子性(Atomicity)
すべての処理を完全に実行するか,あるいは,まったく実行しない(処理をなかったことにする)かのどちらかで終了すること
エ 原子性を保証するためには,トランザクションがコミット又はロールバックで終了しなければならない。
令和元年度 基本情報技術者試験 秋期 午前 問28
問 一つのトランザクションはトランザクションを開始した後,五つの状態(アクティブ,アボート処理中,アボート済,コミット処理中,コミット済)を取り得るものとする。このとき,取ることのない状態遷移はどれか。
遷移前の状態 | 遷移後の状態 | |
ア | アボート処理中 | アボート済 |
イ | アボート処理中 | コミット処理中 |
ウ | コミット処理中 | アボート処理中 |
エ | コミット処理中 | コミット済 |
【解答】イ
【解説】
トランザクションの流れは,次のようになる。
開始 ⇒ アクティブ ⇒ コミット処理中 ⇒ コミット済 ⇒ 終了
※ 処理に失敗した場合は,アクティブ,または,コミット処理中 ⇒ アボート処理中 ⇒ アボート済 ⇒ 終了 となる
平成28年度 基本情報技術者試験 春期 午前 問30
問 DBMSにおいて,複数のトランザクション処理プログラムが同一データベースを同時に更新する場合,論理的な矛盾を生じさせないために用いる技法はどれか。
ア 再編成 | イ 正規化 |
ウ 整合性制約 | エ 排他制御 |
【解答】エ
【解説】
■ 同時実行制御(排他制御)
複数のトランザクションを同時に実行した場合でも,データの整合性を保つ機能をいう。同時実行制御が行われない場合は,変更の消失(ロストアップデート)や不整合(整合性が保てなくなる)といった問題が発生する。
平成22年度 基本情報技術者試験 春期 午前 問32
問 DBMSにおいて,同じデータを複数のプログラムが同時に更新しようとしたときに,データの矛盾が起きないようにするための仕組みはどれか。
ア アクセス権限 | イ 機密保護 |
ウ 排他制御 | エ リカバリ制御 |
【解答】ウ
【解説】
■ 同時実行制御(排他制御)
複数のトランザクションを同時に実行した場合でも,データの整合性を保つ機能をいう。同時実行制御が行われない場合は,変更の消失(ロストアップデート)や不整合(整合性が保てなくなる)といった問題が発生する。
平成24年度 基本情報技術者試験 春期 午前 問33
問 DBMSの排他制御に関する記述のうち,適切なものはどれか。
ア アクセス頻度の高いデータの処理速度を上げるためには,排他制御が必要である。
イ 処理速度を上げるため,排他制御を行うデータの範囲は極力大きくすべきである。
ウ データアクセス時のデッドロックを防止するために,排他制御が必要である。
エ 複数の人が同時に更新する可能性のあるデータには,排他制御が必要である。
【解答】エ
【解説】
■ 同時実行制御(排他制御)
複数のトランザクションを同時に実行した場合でも,データの整合性を保つ機能をいう。同時実行制御が行われない場合は,変更の消失(ロストアップデート)や不整合(整合性が保てなくなる)といった問題が発生する。
ア,イ 排他制御は処理速度を上げるために行われるわけではない
ウ 排他制御はデッドロックの発生原因になる
平成26年度 基本情報技術者試験 秋期 午前 問30
(類似)平成25年度 基本情報技術者試験 春期 午前 問30
問 トランザクションの同時実行制御に用いられるロックの動作に関する記述のうち,適切なものはどれか。
ア 共有ロック獲得済の資源に対して,別のトランザクションからの新たな共有ロックの獲得を認める。
イ 共有ロック獲得済の資源に対して,別のトランザクションからの新たな専有ロックの獲得を認める。
ウ 専有ロック獲得済の資源に対して,別のトランザクションからの新たな共有ロックの獲得を認める。
エ 専有ロック獲得済の資源に対して,別のトランザクションからの新たな専有ロックの獲得を認める。
【解答】ア
【解説】
■ ロック方式
表単位や行単位にロックをかけ,トランザクションが終了するか,または,ロックを解除するまで,他のトランザクションを待たせる方式である。
■ 専有ロックと共有ロック
データベース管理システムは,トランザクションの並行実行度を高めるために,次の2つのロックモードを提供している。
専有ロック | データ更新時に使用されるロック。他のトランザクションからのアクセスは,すべて禁止される |
共有ロック | データ読取時に使用されるロック。他のトランザクションは参照のみ許可される |
2つのロックモードの組み合わせによる並行実行の可否は次のとおりである。
先行トランザクション | 後続トランザクション |
---|---|
専有ロック | 専有ロックも共有ロックもかけることができない |
共有ロック | 共有ロックのみかけることができる |
平成27年度 基本情報技術者試験 秋期 午前 問29
問 ロックの両立性に関する記述のうち,適切なものはどれか。
ア トランザクションT1が共有ロックを獲得している資源に対して,トランザクションT2は共有ロックと専有ロックのどちらも獲得することができる。
イ トランザクションT1が共有ロックを獲得している資源に対して,トランザクションT2は共有ロックを獲得することはできるが,専有ロックを獲得することはできない。
ウ トランザクションT1が専有ロックを獲得している資源に対して,トランザクションT2は専有ロックと共有ロックのどちらも獲得することができる。
エ トランザクションT1が専有ロックを獲得している資源に対して,トランザクションT2は専有ロックを獲得することはできるが,共有ロックを獲得することはできない。
【解答】イ
【解説】
■ ロック方式
表単位や行単位にロックをかけ,トランザクションが終了するか,または,ロックを解除するまで,他のトランザクションを待たせる方式である。
■ 専有ロックと共有ロック
データベース管理システムは,トランザクションの並行実行度を高めるために,次の2つのロックモードを提供している。
専有ロック | データ更新時に使用されるロック。他のトランザクションからのアクセスは,すべて禁止される |
共有ロック | データ読取時に使用されるロック。他のトランザクションは参照のみ許可される |
2つのロックモードの組み合わせによる並行実行の可否は次のとおりである。
先行トランザクション | 後続トランザクション |
---|---|
専有ロック | 専有ロックも共有ロックもかけることができない |
共有ロック | 共有ロックのみかけることができる |
平成25年度 基本情報技術者試験 秋期 午前 問32
問 表は,トランザクション1~3が資源A~Cにかけるロックの種別を表す。また,資源へのロックはトランザクションの開始と同時にかけられる。トランザクション1~3のうち二つのトランザクションをほぼ同時に開始した場合の動きについて,適切な記述はどれか。ここで,表中の “-” はロックなし,“S” は共有ロック,“X” は専有ロックを示す。
ア トランザクション1の後にトランザクション3を開始したとき,トランザクション3の資源待ちはない。
イ トランザクション2の後にトランザクション1を開始したとき,トランザクション1の資源待ちはない。
ウ トランザクション2の後にトランザクション3を開始したとき,トランザクション3の資源待ちはない。
エ トランザクション3の後にトランザクション1を開始したとき,トランザクション1の資源待ちはない。
【解答】イ
【解説】
■ ロック方式
表単位や行単位にロックをかけ,トランザクションが終了するか,または,ロックを解除するまで,他のトランザクションを待たせる方式である。
■ 専有ロックと共有ロック
データベース管理システムは,トランザクションの並行実行度を高めるために,次の2つのロックモードを提供している。
専有ロック | データ更新時に使用されるロック。他のトランザクションからのアクセスは,すべて禁止される |
共有ロック | データ読取時に使用されるロック。他のトランザクションは参照のみ許可される |
2つのロックモードの組み合わせによる並行実行の可否は次のとおりである。
先行トランザクション | 後続トランザクション |
---|---|
専有ロック | 専有ロックも共有ロックもかけることができない |
共有ロック | 共有ロックのみかけることができる |
ア トランザクション1:資源Aを共有ロック,資源Cを専有ロック
⇒ トランザクション3:資源Aを専有ロックしたいが,トランザクション1がロックを解除するまで待たなければならない。資源Bを共有ロック(資源待ちは発生しない)
イ トランザクション2:資源Aを共有ロック,資源Bを専有ロック
⇒ トランザクション1:資源Aを共有ロック,資源Cを専有ロック(資源待ちは発生しない)
ウ トランザクション2:資源Aを共有ロック,資源Bを専有ロック
⇒ トランザクション3:資源Aを専有ロック,資源Bを共有ロックしたいが,トランザクション2がロックを解除するまで待たなければならない
エ トランザクション3:資源Aを専有ロック,資源Bを共有ロック
⇒ トランザクション1:資源Aを共有ロックしたいが,トランザクション3がロックを解除するまで待たなければならない。資源Cを専有ロック(資源待ちは発生しない)
平成30年度 基本情報技術者試験 秋期 午前 問29
問 ロックの粒度に関する説明のうち,適切なものはどれか。
ア データを更新するときに,粒度を大きくすると,他のトランザクションの待ちが多くなり,全体のスループットが低下する。
イ 同一のデータを更新するトランザクション数が多いときに,粒度を大きくすると,同時実行できるトランザクション数が増える。
ウ 表の全データを参照するときに,粒度を大きくすると,他のトランザクションのデータ参照を防げないようにできる。
エ 粒度を大きくすると,含まれるデータ数が多くなるので,一つのトランザクションでかけるロックの個数が多くなる。
【解答】ア
【解説】
■ ロックの粒度
ロックをかける範囲(表単位や行単位など)のことをいう。ロックの粒度が小さい場合(行単位など)は,ロック解除待ちが短くなり並行実行度を高めることができるが,ロックの回数が多くなりオーバーヘッドは増大する。ロックの粒度が大きい場合(表単位など)は,ロックの解除待ちが長くなりスループットが低下する。
イ 粒度を大きくすると,同時実行できるトランザクション数は減る
ウ 表の全データを参照 ⇒ 共有ロック ⇒ 粒度の大小によらず他のトランザクションから参照可能(更新はできない)
エ 粒度を大きくすると,ロックの個数は減る
平成30年度 基本情報技術者試験 春期 午前 問30
問 RDBMSのロックの粒度に関する次の記述において,a,bの組合せとして適切なものはどれか。
並行に処理される二つのトランザクションがそれぞれ一つの表内の複数の行を更新する。行単位のロックを使用する場合と表単位のロックを使用する場合とを比べると,ロックの競合がより起こりやすいのは a 単位のロックを使用する場合である。また,トランザクション実行中にロックを管理するためのRDBMSのメモリ使用領域がより多く必要になるのは b 単位のロックを使用する場合である。
a | b | |
ア | 行 | 行 |
イ | 行 | 表 |
ウ | 表 | 行 |
エ | 表 | 表 |
【解答】ウ
【解説】
■ ロックの粒度
ロックをかける範囲(表単位や行単位など)のことをいう。ロックの粒度が小さい場合(行単位など)は,ロック解除待ちが短くなり並行実行度を高めることができるが,ロックの回数が多くなりオーバーヘッドは増大する。ロックの粒度が大きい場合(表単位など)は,ロックの解除待ちが長くなりスループットが低下する。
a ロックの競合が起こりやすいのは,表単位である。
b ロックを管理するためのRDBMSのメモリ使用領域がより多く必要になるのは,行単位である。
平成23年度 基本情報技術者試験 秋期 午前 問34
問 DBMSにおけるデッドロックの説明として,適切なものはどれか。
ア 2相ロックにおいて,第1相目でロックを行ってから第2相目でロックを解除するまでの状態のこと
イ ある資源に対して専有ロックと専有ロックが競合し,片方のトランザクションが待ち状態になること
ウ あるトランザクションがアクセス中の資源に対して,他のトランザクションからアクセスできないようにすること
エ 複数のトランザクションが,互いに相手のロックしている資源を要求して待ち状態となり,実行できなくなること
【解答】エ
【解説】
■ デッドロック
複数のトランザクションが互いにロック解除待ち状態となり実行できなくなることをいう。複数のトランザクションが複数のデータに対してロックを行う場合に発生する可能性がある。デッドロックが発生した場合,1つのトランザクションを強制的に終了(アボート)させることによりデッドロックを解除する。
なお,複数のトランザクションが1つのデータに対してロックをかける場合や,複数のデータに対してロックをかける場合でもデータを専有する順序が同じ場合,デッドロックは発生しない。
ア 2相コミットメント制御のセキュア(中間)状態
イ,ウ 排他制御
令和元年度 基本情報技術者試験 秋期 午前 問29
問 2相ロッキングプロトコルに従ってロックを獲得するトランザクションA,Bを図のように同時実行した場合に,デッドロックが発生しないデータ処理順序はどれか。ここで,readとupdateの位置は,アプリケーションプログラムでの命令発行時点を表す。また,データWへのreadは共有ロックを要求し,データX,Y,Zへのupdateは各データへの専有ロックを要求する。
① | ② | ③ | ④ | |
ア | read W | update Y | update X | update Z |
イ | read W | update Y | update Z | update X |
ウ | update X | read W | update Y | update Z |
エ | update Y | update Z | update X | read W |
【解答】ウ
【解説】
専有ロックを要求するupdate X,update Y,update ZをトランザクションAと同じ順に実行する場合は,デッドロックが発生しない。
平成30年度 基本情報技術者試験 春期 午前 問29
平成23年度 基本情報技術者試験 特別 午前 問33
問 データベースの更新前や更新後の値を書き出して,データベースの更新記録として保存するファイルはどれか。
ア ダンプファイル | イ チェックポイントファイル |
ウ バックアップファイル | エ ログファイル |
【解答】エ
【解説】
■ ログファイル(ジャーナルファイル)
データベースに対する変更を時系列に記録したファイルのことをいう。次の値を記録する。
更新前ログ | データの更新前の値 |
更新後ログ | データの更新後の値 |
※ ログファイルへの記録(書き込み)は,コミット(または,チェックポイント)のタイミングで行う
※ ログファイルのバックアップは,ログファイルが一杯になって次のログファイルに切り替えるタイミングで行う
平成24年度 基本情報技術者試験 春期 午前 問32
問 DBMSにおけるログファイルの説明として,適切なものはどれか。
ア システムダウンが発生したときにデータベースの回復処理時間を短縮するため,主記憶上の更新データを定期的にディスクに書き出したものである。
イ ディスク障害があってもシステムをすぐに復旧させるため,常に同一データのコピーを別ディスクや別サイトのデータベースに書き出したものである。
ウ ディスク障害からデータベースを回復するため,データベースの内容をディスク単位で複写したものである。
エ データベースの回復処理のため,データの更新前後の値を書き出してデータベースの更新記録を取ったものである。
【解答】エ
【解説】
■ ログファイル(ジャーナルファイル)
データベースに対する変更を時系列に記録したファイルのことをいう。次の値を記録する。
更新前ログ | データの更新前の値 |
更新後ログ | データの更新後の値 |
※ ログファイルへの記録(書き込み)は,コミット(または,チェックポイント)のタイミングで行う
※ ログファイルのバックアップは,ログファイルが一杯になって次のログファイルに切り替えるタイミングで行う
ア チェックポイント
ウ バックアップ
平成21年度 基本情報技術者試験 秋期 午前 問34
問 媒体障害発生時にデータベースを復旧するために使用するファイルは主に二つある。一つはバックアップファイルであるが,あと一つはどれか。
ア トランザクションファイル | イ マスタファイル |
ウ ロールバックファイル | エ ログファイル |
【解答】エ
【解説】
■ ログファイル(ジャーナルファイル)
データベースに対する変更を時系列に記録したファイルのことをいう。次の値を記録する。
更新前ログ | データの更新前の値 |
更新後ログ | データの更新後の値 |
※ ログファイルへの記録(書き込み)は,コミット(または,チェックポイント)のタイミングで行う
※ ログファイルのバックアップは,ログファイルが一杯になって次のログファイルに切り替えるタイミングで行う
平成23年度 基本情報技術者試験 秋期 午前 問36
問 媒体障害時のデータベース回復に備え,あるバックアップ時点から次のバックアップ時点までの間のデータとして,稼働中のデータベースとは別の媒体に保存しておく必要のあるものはどれか。
ア インデックスデータ | イ チェックポイントデータ |
ウ ディクショナリデータ | エ ログデータ |
【解答】エ
【解説】
■ ログファイル(ジャーナルファイル)
データベースに対する変更を時系列に記録したファイルのことをいう。次の値を記録する。
更新前ログ | データの更新前の値 |
更新後ログ | データの更新後の値 |
※ ログファイルへの記録(書き込み)は,コミット(または,チェックポイント)のタイミングで行う
※ ログファイルのバックアップは,ログファイルが一杯になって次のログファイルに切り替えるタイミングで行う
平成30年度 基本情報技術者試験 秋期 午前 問30
問 データベースが格納されている記憶媒体に故障が発生した場合,バックアップファイルとログを用いてデータベースを回復する操作はどれか。
ア アーカイブ | イ コミット |
ウ チェックポイントダンプ | エ ロールフォワード |
【解答】エ
【解説】
■ 媒体障害からの回復
媒体障害が発生した場合,次のような回復処理を行う。
まず,バックアップファイルを別の媒体にリストア(復元)する。次に,バックアップファイル作成後から媒体障害発生時点までの間に作成された更新後ログを用いて回復処理を行う(ロールフォワード(前進復帰))。
平成31年度 基本情報技術者試験 春期 午前 問57
問 ディスク障害時に,フルバックアップを取得してあるテープからディスクにデータを復元した後,フルバックアップ取得時以降の更新後コピーをログから反映させてデータベースを回復する方法はどれか。
ア チェックポイントリスタート | イ リブート |
ウ ロールバック | エ ロールフォワード |
【解答】エ
【解説】
■ 媒体障害からの回復
媒体障害が発生した場合,次のような回復処理を行う。
まず,バックアップファイルを別の媒体にリストア(復元)する。次に,バックアップファイル作成後から媒体障害発生時点までの間に作成された更新後ログを用いて回復処理を行う(ロールフォワード(前進復帰))。
平成28年度 基本情報技術者試験 秋期 午前 問30
平成21年度 基本情報技術者試験 春期 午前 問35
問 トランザクションTはチェックポイント取得後に完了したが,その後にシステム障害が発生した。トランザクションTの更新内容をその終了直後の状態にするために用いられる復旧技法はどれか。ここで,チェックポイントの他に,トランザクションログを利用する。
ア 2相ロック | イ シャドウページ |
ウ ロールバック | エ ロールフォワード |
【解答】エ
【解説】
■ システム障害からの回復
システム障害が発生した場合,トランザクションの開始やコミットのタイミングが,チェックポイントの前にあるか後にあるかによって処理が分かれる。
● チェックポイント
主記憶装置にある更新データをデータベースに書き出すタイミングのことをいう。回復処理の起点になる。
※ データの更新をコミットする場合,主記憶装置にあるデータを更新するだけで,データベースへの書き込みは行わない
● データの更新
コミットのタイミングで主記憶装置のデータを更新し,チェックポイントのタイミングでデータベースに書き出す。
※ コミットのタイミングでは,データベースへの書き出しはしない
● ログの更新
コミットのタイミングで主記憶装置のログを更新し,ログファイルにも書き出す(チェックポイントのタイミングでも書き出す)。
■ ウォームスタート方式による回復処理
ウォームスタート方式とは,一旦,チェックポイントまで戻り,更新ログを使用してデータベースを回復(ロールバックとロールフォワード)し,再始動する方式である。
T1 | チェックポイントまでにコミットされているため,回復の対象外 |
T2 | システム障害発生前にコミットされているため,チェックポイントから更新後ログを使用してロールフォワードで回復する |
T3 | 障害発生時にはコミットされていないため,チェックポイントから更新前ログを使用してロールバックし,トランザクション開始時点に戻す |
T4 | システム障害発生前にコミットされているため,更新後ログを使用してロールフォワードで回復する |
T5 | 主記憶装置上のデータが消えただけなので,回復の対象外。再処理すればよい |
■ コールドスタート方式による回復処理
コールドスタート方式とは,コンピューターの電源を切ることにより主記憶装置などをリセットして復旧させ,再始動する方式である。バックアップからの復元を行い,その後トランザクションを再実行する(ログは使用しない)。
平成30年度 基本情報技術者試験 秋期 午前 問56
問 システム障害が発生したときにシステムを初期状態に戻して再開する方法であり,更新前コピー又は更新後コピーの前処理を伴わないシステム開始のことであって,初期プログラムロードとも呼ばれるものはどれか。
ア ウォームスタート | イ コールドスタート |
ウ ロールバック | エ ロールフォワード |
【解答】イ
【解説】
■ システム障害からの回復
システム障害が発生した場合,トランザクションの開始やコミットのタイミングが,チェックポイントの前にあるか後にあるかによって処理が分かれる。
● チェックポイント
主記憶装置にある更新データをデータベースに書き出すタイミングのことをいう。回復処理の起点になる。
※ データの更新をコミットする場合,主記憶装置にあるデータを更新するだけで,データベースへの書き込みは行わない
● データの更新
コミットのタイミングで主記憶装置のデータを更新し,チェックポイントのタイミングでデータベースに書き出す。
※ コミットのタイミングでは,データベースへの書き出しはしない
● ログの更新
コミットのタイミングで主記憶装置のログを更新し,ログファイルにも書き出す(チェックポイントのタイミングでも書き出す)。
■ ウォームスタート方式による回復処理
ウォームスタート方式とは,一旦,チェックポイントまで戻り,更新ログを使用してデータベースを回復(ロールバックとロールフォワード)し,再始動する方式である。
T1 | チェックポイントまでにコミットされているため,回復の対象外 |
T2 | システム障害発生前にコミットされているため,チェックポイントから更新後ログを使用してロールフォワードで回復する |
T3 | 障害発生時にはコミットされていないため,チェックポイントから更新前ログを使用してロールバックし,トランザクション開始時点に戻す |
T4 | システム障害発生前にコミットされているため,更新後ログを使用してロールフォワードで回復する |
T5 | 主記憶装置上のデータが消えただけなので,回復の対象外。再処理すればよい |
■ コールドスタート方式による回復処理
コールドスタート方式とは,コンピューターの電源を切ることにより主記憶装置などをリセットして復旧させ,再始動する方式である。バックアップからの復元を行い,その後トランザクションを再実行する(ログは使用しない)。
平成29年度 基本情報技術者試験 秋期 午前 問30
問 トランザクション処理プログラムが,データベース更新の途中で異常終了した場合,ロールバック処理によってデータベースを復元する。このとき使用する情報はどれか。
ア 最新のスナップショット情報
イ 最新のバックアップファイル情報
ウ ログファイルの更新後情報
エ ログファイルの更新前情報
【解答】エ
【解説】
■ トランザクション障害からの回復
トランザクション障害が発生した場合,次のような回復処理を行う。
※ チェックポイントより前にトランザクションを開始した場合は,更新前ログを使用してロールバックし,トランザクション開始時点に戻す
平成22年度 基本情報技術者試験 秋期 午前 問56
問 データベースのロールバック処理の説明はどれか。
ア 更新後ジャーナルを用いて,トランザクション開始後の障害直前の状態にまでデータを復旧させる。
イ 更新後ジャーナルを用いて,トランザクション開始直前の状態にまでデータを復旧させる。
ウ 更新前ジャーナルを用いて,トランザクション開始後の障害直前の状態にまでデータを復旧させる。
エ 更新前ジャーナルを用いて,トランザクション開始直前の状態にまでデータを復旧させる。
【解答】エ
【解説】
■ トランザクション障害からの回復
トランザクション障害が発生した場合,次のような回復処理を行う。
※ チェックポイントより前にトランザクションを開始した場合は,更新前ログを使用してロールバックし,トランザクション開始時点に戻す
平成25年度 基本情報技術者試験 秋期 午前 問31
問 “商品” 表に対して,更新SQL文を実行するトランザクションが,デッドロックの発生によって異常終了した。異常終了後の “商品” 表はどれか。ここで,“商品” 表に対する他のトランザクションは,参照は行うが更新はしないものとする。
〔更新SQL文〕
DELETE FROM 商品 WHERE 商品コード = ‘B020’
ア | イ |
ウ | エ |
【解答】イ
【解説】
■ トランザクション障害からの回復
トランザクション障害が発生した場合,次のような回復処理を行う。
※ チェックポイントより前にトランザクションを開始した場合は,更新前ログを使用してロールバックし,トランザクション開始時点に戻す
イ トランザクション異常終了後の “商品” 表は,更新SQL実行前と同じ(原子性)
平成26年度 基本情報技術者試験 秋期 午前 問29
平成22年度 基本情報技術者試験 秋期 午前 問32
問 データベースのアクセス効率を低下させないために,定期的に実施する処理はどれか。
ア 再編成 | イ データベースダンプ |
ウ バックアップ | エ ロールバック |
【解答】ア
【解説】
■ 再編成
データベースの応答性能などを回復するために行う作業で,不要なデータ領域の解放や,断片化を解消したりする。定期的に行うことで性能を維持することができる。
【参考】 |
平成24年度 基本情報技術者試験 秋期 午前 問27
問 関係データベースの表の列に利用者がインデックスを設定する目的はどれか。
ア 外部キーの列の値を別の表の主キーの値に一致させる。
イ データの格納位置への効率的なアクセスが可能となり,検索速度の向上が期待できる。
ウ 一つの大きなテーブルを複数のディスクに分散格納する場合,ディスク容量が節約できる。
エ 列内に重複する値がないようにする。
【解答】イ
【解説】
■ インデックス
データベースへのアクセス効率を向上させるために設定するもの。
【参考】 |
平成27年度 基本情報技術者試験 秋期 午前 問26
問 インデックス方式のうち,キー値を基にして格納位置を算出するとき,異なったキー値でも同一の算出結果となる可能性があるものはどれか。
ア B+木インデックス | イ 転置インデックス |
ウ ハッシュインデックス | エ ビットマップインデックス |
【解答】ウ
【解説】
■ ハッシュインデックス
ハッシュ関数により格納位置を算出する手法である。
■ ハッシュ法
直接探索が可能なアルゴリズムである。データのキー値をハッシュ関数に通して得られるハッシュ値によりデータの格納位置が決まるので,探索時には同じ計算により格納位置を見つけることができる。ただし,異なるキー値から同じハッシュ値が得られる場合がある(衝突(シノニム))。
● データの追加
● データの探索
平成26年度 基本情報技術者試験 秋期 午前 問27
問 “売上” 表への次の検索処理のうち,B+木インデックスよりもハッシュインデックスを設定した方が適切なものはどれか。ここで,インデックスを設定する列を< >内に示す。
売上(伝票番号,売上年月日,商品名,利用者ID,店舗番号,売上金額)
ア 売上金額が1万円以上の売上を検索する。<売上金額>
イ 売上年月日が今月の売上を検索する。<売上年月日>
ウ 商品名が ‘DB’ で始まる売上を検索する。<商品名>
エ 利用者IDが ‘1001’ の売上を検索する。<利用者ID>
【解答】エ
【解説】
■ ハッシュインデックス
ハッシュ関数により格納位置を算出する手法である。
■ ハッシュ法
直接探索が可能なアルゴリズムである。データのキー値をハッシュ関数に通して得られるハッシュ値によりデータの格納位置が決まるので,探索時には同じ計算により格納位置を見つけることができる。ただし,異なるキー値から同じハッシュ値が得られる場合がある(衝突(シノニム))。
● データの追加
● データの探索
エ 単一レコードを検索するので,ハッシュインデックスに向いている。
平成21年度 基本情報技術者試験 秋期 午前 問35
問 分散データベースの透過性の説明として,適切なものはどれか。
ア クライアントのアプリケーションプログラムは,複数のサーバ上のデータベースをアクセスする。アプリケーションプログラムは,データベースがあたかも一つのサーバ上で稼働しているかのようにアクセスできる。
イ クライアントのアプリケーションプログラムは,複数のサーバ上のデータベースをアクセスする。アプリケーションプログラムはどのサーバ上のデータベースをアクセスするのかを知っている必要がある。
ウ 複数のクライアントのアプリケーションプログラムが,一つのサーバ上のデータベースを共有してアクセスする。
エ 複数のクライアントのアプリケーションプログラムは,一つのサーバ上のデータベースを,サーバ上のアプリケーションプログラムを介してアクセスする。
【解答】ア
【解説】
■ 分散データベース
データベースを分散配置したものを,1つのデータベースとしてアクセスできるようにしたものをいう。
※ 複数のコンピューターでデータベースを管理するので,可用性を高めることができる
平成29年度 基本情報技術者試験 春期 午前 問28
問 分散データベースシステムにおいて,一連のトランザクション処理を行う複数サイトに更新処理が確定可能かどうかを問い合わせ,全てのサイトが確定可能である場合,更新処理を確定する方式はどれか。
ア 2相コミット | イ 排他制御 |
ウ ロールバック | エ ロールフォワード |
【解答】ア
【解説】
■ 2相コミットメント制御
分散トランザクションにおいて整合性が保たれるよう,2段階に分けてコミットを行う手法である。(第1フェーズでは)分散トランザクションを行う複数のサイトにコミットが可能であるかを問い合わせ,すべてのサイトがコミット可である場合に,(第2フェーズで)すべてのサイトにコミット指示を出す。
※ 第1フェーズで,1つでもコミット不可のサイトがある場合や,一定時間が経過しても応答のないサイトがある場合は,すべてのサイトにロールバックの指示を出す
平成22年度 基本情報技術者試験 春期 午前 問33
問 企業の様々な活動を介して得られた大量のデータを整理・統合して蓄積しておき,意思決定支援などに利用するものはどれか。
ア データアドミニストレーション | イ データウェアハウス |
ウ データディクショナリ | エ データマッピング |
【解答】イ
【解説】
■ データウェアハウス
企業活動により得られた大量のデータを保管したデータベース(あるいはデータベース管理システム)のことをいう。意思決定支援などに利用する。
※ データウェアハウスを構築するために,さまざまなシステムからデータを集めるが,データの属性などはシステムごとに異なることが多いため統一しなければならない(データクレンジング)
※ データマート…データウェアハウスに保管されたデータの一部を,特定の用途や利用部門用などに取り出したもの
平成29年度 基本情報技術者試験 春期 午前 問29
問 ビッグデータの活用例として,大量のデータから統計学的手法などを用いて新たな知識(傾向やパターン)を見つけ出すプロセスはどれか。
ア データウェアハウス | イ データディクショナリ |
ウ データマイニング | エ メタデータ |
【解答】ウ
【解説】
■ データマイニング
データベースに保管された大量のデータに対して統計処理などによる分析を行い,これまでに知られていなかった規則性や因果関係を見つけ出すことをいう。
(令和4年度) 基本情報技術者試験 サンプル問題 科目A 問23
問 ビッグデータのデータ貯蔵場所であるデータレイクの特徴として,適切なものはどれか。
ア あらゆるデータをそのままの形式や構造で格納しておく。
イ データ量を抑えるために,データの記述情報であるメタデータは格納しない。
ウ データを格納する前にデータ利用方法を設計し,それに沿ってスキーマをあらかじめ定義しておく。
エ テキストファイルやバイナリデータなど,格納するデータの形式に応じてリポジトリを使い分ける。
【解答】ア
【解説】
■ データレイク
ビッグデータの貯蔵場所のことをいう。あらゆるデータを元のままの形式で保管する。
※ 業務システムが扱うデータや,文書ファイル,SNSの書き込みなど,多種多様なデータを保管する
平成31年度 基本情報技術者試験 春期 午前 問30
問 ビッグデータの処理で使われるキーバリューストアの説明として,適切なものはどれか。
ア “ノード”,“リレーションシップ”,“プロパティ” の3要素によってノード間の関係性を表現する。
イ 1件分のデータを “ドキュメント” と呼び,個々のドキュメントのデータ構造は自由であって,データを追加する都度変えることができる。
ウ 集合論に基づいて,行と列から成る2次元の表で表現する。
エ 任意の保存したいデータと,そのデータを一意に識別できる値を組みとして保存する。
【解答】エ
【解説】
■ キーバリューストア
キー(key)と値(value)を1対1に対応付けて管理するデータモデルである。
ア グラフ指向型
イ ドキュメント指向型
ウ 関係データベース
まとめ
今回は,情報処理技術者試験の過去問(データベース-トランザクション処理,その他)を集めて,シンプルにまとめてみました。みなさん,どのくらい解けましたか?はじめは難しく感じると思いますが,繰り返し解くことにより,少しずつ理解できるようになると思います(8割以上(できれば9割以上)解けるようになるまで頑張りましょう)。また,解けるようになっても時間が経つと忘れることもありますので,たとえば,1週間後とか,1か月後とかに,また,やってみてください。