基本情報技術者試験 -7ページ目

デッドロック 【 deadlock 】


複数のプロセスが、同時に相手の必要とする資源に排他ロックをかけてしまい、

互いに相手の占有している資源の解放を待ってしまう状態で、

処理が進まなくなってしまう状態のこと。


処理中に、いったんデッドロックに陥ってしまったトランザクションは
永久に待ち状態になってしまい、
外部からの介入なしには抜け出すことができません。


そこで多くのRDBMS(関係データベース管理システム)では、
デッドロックを自動的に検出して解決する仕組みをあらかじめ備えるようにしています。

例えば、ロックを待機しているプロセスのリストを調べて

ループ状態になっていないかどうかをチェックしたり、
タイムアウト(時間切れ)を利用してデッドロックを検出させるようにです。


デッドロックに陥っているトランザクションがわかれば、
その一方に対して待機中のSQL文を強制的に失敗(異常終了)させて、
待機状態から抜け出させ、
残ったプロセスがトランザクションをロールバックしてロックを解放すれば、
もう一方のプロセスは 改めてロックを取得し、処理を再開することできるというわけです。


基本情報技術者 平成25年秋期


午前問31


"商品"表に対して,更新SQL文を実行するトランザクションが,

デッドロックの発生によって異常終了した。

異常終了後の"商品"表はどれか。

ここで,"商品"表に対する他のトランザクションは,参照は行うが更新はしないものとする。




〔更新SQL文〕
DELETE FROM 商品 WHERE 商品コード='BO2O'


ア.

イ.

ウ.


エ.





【解説】

デッドロックが起こった状態というのは、[更新SQL文]を実行しようとした時

「“商品”表に対して、参照のみの別のトランザクション」が 存在したということです。


 この場合、[更新SQL文](削除するトランザクション)は削除を実行しないで、

待ちの状態になったままでした。

よって、異常終了後の“商品”表が、ロールバックされても、表に変化はありません。


【正答】イ


主キー 【 primary key 】プライマリキー


関係データベーステーブル(表)において、

行(レコード)を一意に(ただ一つに)特定できる列(フィールド)

または列の組み合わせのことです。

(複数の列で主キーを構成することを「複合キー」と言います。)


主キーに設定された項目は、

複数のレコード間で重複することは許されず

主キーを持たないレコード(主キーの値が、空値・NULL値)が存在することも許されません



主キーに、数値型の列を指定することもでき、その場合、演算にも使用可能となりますが、

一般的には、そのような項目を 主キーに設定することはありません。


また、テーブル内の要素を検索する場合、

主キー以外の列(NULL値が許される)でも、検索条件を指定して行の検索をすることは可能です。


基本情報技術者 平成25年秋期

午前問30


関係データベースの主キー制約の条件として,キー値が重複していないことの他に,

主キーを構成する列に必要な条件はどれか。


イ. 構成する列が一つであること

ウ. 表の先頭に定義されている列であること

エ. 別の表の候補キーとキー値が一致していること



【解説】

関係データベースにおける主キーは、

空値を持つことと、重複する値を持つことは 許されていませんが、

表の中で定義される位置は、自由であり、

複数の項目(フィールド・列)を組み合わせて主キーを構成することも可能です。

また、別の表とのリレーションがあるかないかも 関係ありません。


【正答】ア



ア. キー値が空でないこと

関係データベース/リレーショナルデータベース

relational database


1件のデータは、複数の項目(フィールド)の集合として表現され、

同じ項目群をもつデータの集合を、

テーブルと呼ばれるで表す方式です。


その複数のを関連付け

データを自由に取り出せる仕組み(結合演算)をもつデータベース

リレーショナルデータベースといえるでしょう。


中小規模のデータベースでは最も一般的な方法。



基本情報技術者 平成25年秋期

午前問29

関係データベースのデータ構造の説明として,適切なものはどれか。

ア.親レコードと子レコードをポインタで結合する。

イ.タグを用いてデータの構造と意味を表す。

ウ.データと手続を一体化(カプセル化)してもつ。

エ.データを2次元の表によって表現する。


【解説】

各選択肢の説明

ア.親レコードと子レコードをポインタで結合する。
階層型


イ.タグを用いてデータの構造と意味を表す。
XML によるデータベース


ウ.データと手続を一体化(カプセル化)してもつ。
オブジェクト指向型


エ.データを2次元の表によって表現する。
⇒関係データベース

注)
関係(リレーショナル)データベースデータを表形式で表す」しますが、
「データを表で表すもの」すべてが、関係(リレーショナル)データベースではありません。


【正答】エ