基本情報技術者試験 -24ページ目
 関係データベースの説明として,適切なものはどれか。
 
ア 親レコードと子レコードをポインタで結合する。
イ タグを用いてデータの構造と意味付けを行う。
ウ データと手続を一体化(カプセル化)してもつ。
エ データを2次元の表によって表現する。


【解説】
関係データベース(リレーショナルデータベース)は、
データを表の形式で表現した、現在もっともよく使われるデータベースです。

関係データベースでは、
各表をテーブルとし,各列をカラムまたはフィールドと呼び、各行が1レコードとなります。

複数の表の関連づけを、主キー同士または主キーと外部キーによって行います。

各選択肢の説明をみていきましょう。
ア × ⇒ 「親レコードと子レコードをポインタで結合する。」
       木構造で代表される階層型データベースの説明
イ × ⇒ 「タグを用いてデータの構造と意味付けを行う。」
       タグで特徴づけられる構造は、XMLなどのマークアップ言語の説明です
ウ × ⇒ 「データと手続一体化(カプセル化)してもつ。」
      データと手続の関係を、一体化(カプセル化)として説明されるのは、オブジェクト指向型の説明です。
エ 〇 ⇒ 「データを2次元の表によって表現する。」

【解答】 エ
DBMSにおけるデッドロックの説明として、適切なものはどれか。
ア 2相ロックにおいて、第1相目でロックを行ってから第2相目でロックを解除するまでの状態のこと
 イ ある資源に対して専有ロックと専有ロックが競合し、片方のトランザクションが待ち状態になること
 ウ あるトランザクションがアクセス中の資源に対して、他のトランザクションからアクセスできないようにすること
 エ  複数のトランザクションが、互いに相手のロックしている資源を要求して待ち状態となり、実行できなくなること

【解説】
ロック(排他制御)というのは、
複数の処理が同時に同じ資源(データ)の書換え処理を行うと、データに不整合が生じるので、
書き換えを行う前に他の処理からのアクセスを制限する処理のことを言います。

デッドロックとは、
同じ資源を使用する2つ以上のプロセスが、
互いに相手プロセスが必要とする資源を排他的に使用してしまい、
互いに相手が使用している資源の解放を待っている状態

です。

デッドロックが発生すると、プロセスは永遠に待ち状態になってしまうため
プロセスの続行ができなくなってしまうので、
どちらかの強制終了等の処理が必要になります。

完全に回避することはできませんが、
コーディング上に一定の規則を設けて従うなど、システム上でのデッドロックをできるだけ回避するための努力はできます。

選択肢

ア ×⇒「2相ロックにおいて、第1相目でロックを行ってから第2相目でロックを解除するまでの状態」
    中間状態の事。ロック中かもしれないが、デッドロックの説明ではありません。
イ ×⇒「ある資源に対して専有ロックと専有ロックが競合し、片方のトランザクションが待ち状態になること」
    排他制御の説明。(通常の処理)
 ウ ×⇒「あるトランザクションがアクセス中の資源に対して、他のトランザクションからアクセスできないようにすること」
    排他制御の説明。
 エ  〇⇒「複数のトランザクションが、互いに相手のロックしている資源を要求して待ち状態となり、実行できなくなること」

【解答】 エ

新たにデータ項目の命令規約を設ける場合,次の命名規約だけでは回避できない問題はどれか。

〔命名規約〕

(1) データ項目名の末尾には必ず“名”,“コード”,“数”,“金額”,“年月日”などの 区分語を付与し,区分語ごとに定めたデータ型にする。

(2) データ項目名と意味を登録した辞書を作成し,異音同義語や同音異義語が発生しないようにする。


ア データ項目“受信年月日”のデータ型として,日付型と文字列型が混在する。
イ データ項目“受注金額”の取り得る値の範囲がテーブルによって異なる。
ウ データ項目“賞与金額”と同じ意味で“ボーナス金額”というデータ項目がある。
エ データ項目“取引先”が,“取引先コード”か“取引先名”か,判断できない


【解説】
システム開発を行う場合、複数のチームもしくは人で行うことも多いので、
名前が重なるのを防ぐ意味で「命名規約」を定めることが多いです。

しかし、「命名規約」を定める一番の意義は、
メンテナンスをできるだけ、容易にするためでしょう。

データベースのデータ項目の名前やプログラムの変数の名前は、
名前からその内容や、使われている箇所をある程度推測できるように
名前の付け方を統一することが行われます。

選択肢の中から、上記2点で「命名規約だけでは回避できない問題」を選択します。
ア ×⇒ 「〔命名規約〕 (1)~ 区分語を付与し,区分語ごとに定めたデータ型」とあるので、データ型の混在は区別できます。
イ 〇⇒ 「データ項目“受注金額”の取り得る値の範囲がテーブルによって異なる。」
             範囲の規定は、命名規約に入っていません。
ウ ×⇒ 「〔命名規約〕 (2)~ 項目名と意味を登録した辞書を作成し,異音同義語や同音異義語が発生しないようにする」とあるので、混乱は避けられます。
エ ×⇒ 「「命名規約〕 (1)~データ項目名の末尾には必ず"名","コード","数","金額","年月日"などの区分語を付与する」のと、、「〔命名規約〕 (2)~ 項目名と意味を登録した辞書を作成」すれば、問題は解消できます。

【解答】イ