データ項目の命名規約に関する質問【DB設計】

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
要因Aさん  
(No.1)
平成27年春  午前  問29
データベース設計に関する質問です。

以下、問題文です。
----------------------------------

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

〔命名規約〕
1.データ項目名の末尾には必ず"名","コード","数","金額","年月日"などの区分語を付与し,区分語ごとに定めたデータ型にする。
2.データ項目名と意味を登録した辞書を作成し,異音同義語や同音異義語が発生しないようにする。

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

-----------------------------------

以下、質問内容です。

この問題の答えは、(イ)であり、解説には以下のように書かれています。
解説:「データ型については規約に定義されていますが、値の範囲については定義されていないため、この命名規約では回避できません。」

自分の考えとしては、データ型を定義すれば、値の範囲も決定すると考えているのですが、DBの場合は異なるのでしょうか?
解説を頂けたら幸いです。よろしくお願いいたします。
2021.09.17 14:51
社会人さん 
(No.2)
解説にある通り、この問題文中にデータ型のとる値の範囲が定義されていないからです。

問題文には、

次の命名規約だけでは回避できない問題はどれか。

という記載があります。この問題文中に登場する命名規則には値の範囲が定義されていません。

したがって正答は(イ)になります。

小学校・中学校の「国語」、高校の「現代文」の読解問題と同様に、問題文に登場していない内容を解答する人が勝手に登場させると×と判断されるみたいですね。
2021.09.17 16:52
GinSanaさん 
FE・シルバーエキスパート
(No.3)
>自分の考えとしては、データ型を定義すれば、値の範囲も決定すると考えているのですが、DBの場合は異なるのでしょうか?
数値型ならOracleはNUMBER型がありますけど、デフォルト(MAX)が38桁で、ふつうはNUMBER(2,0)とか桁と小数点以下を絞るわけですけど、その時点で値の範囲はわからんわけですよね。じゃあPostgresのNumericだったらとかいろいろ数値型は派生してややこしいのでもう少しシンプルに行きましょう。
文字列型です。

varchar2(n)とかchar(n)とか世の中には文字列型はいろいろあるにはありますが《n》、つまりバイト数が決まらないと値の範囲は決まらないわけです。そのあたりは命名規約に書いてないから、そういう答えになるわけですが、実際問題書いてないからどうかでなく実装的にどうかで考えても、値の範囲は決まらないわけです。
ただし、実際に試験を受けるときは
問題に書いてあるかどうか  で判断してください。

2021.09.17 23:45

返信投稿用フォーム

スパム防止のためにスレッド作成から30日以上経過したスレッドへの書き込みは禁止しています。

その他のスレッド


Pagetop