基本情報技術者試験 令和元年度 秋季 午前 問23
コード体系についての問題。
--------------------------
令和元年度 秋期 午前 問23
コードから商品の内容が容易に分かるようにしたいとき、どのコード体系を選択するのが適切か。
ア 区分コード
イ 桁別コード
ウ 表意コード
エ 連番コード
--------------------------
解説
コード:code
名詞としては記号、符号、規範、規約、など。
他動詞としてはプログラムする、暗号にする、など。
自動詞としては死亡するという意味があるらしい。急な変化。ほんと?
各選択肢のコードを解説する。
選択肢ア:区分コード(分類コード)
似ている項目毎に区別をつけるようにしたコードのこと。
例えばスーパーマーケットで、
- A0001 ~ A9999 は野菜のコード
- B0001 ~ B9999 は魚のコード
とするようなもの。
A で始まるものは野菜、B で始まるものは魚と区別がつく。
一方で、前提知識なしで番号(例えば A0226)だけ見てもそこから内容を推測することはできないので、問題が聞いているように商品の内容を推測することはできない。
Linux のユーザ ID(uid) でこの考え方を使うことをよく目にする。
- uid=2000 番台はシステム管理者向け。
- uid=4000 番台は通常利用者向け。
通常利用者が 1000 人以上いると 4000 番台だけでは足りなくなるので考慮が必要。
それを気にしないで安易に 5000 番台を使いだすと管理ツールで不具合が起きたりする。
選択肢イ:桁別コード
コードの各桁の位置ごとに意味があるコードのこと。
学生番号や社員番号でよく使われている。
2021 年度の情報学科(08)の名前順で 26 番目の学生番号は 2021080026 とか。
※ "2021" "08" "0026" をつなげたもの。
申込の受付番号とかにもよく利用されている。
e-Tax で確定申告すると、受付番号が 2021-0218-1632-1621-1230 のようになる。
先頭から 2021年、2月 18日、16時 32分、あとは秒と、追加の情報かな。
全て時間だけにすると全く同時の申請に同じ受付番号が振られて誤動作を起こすことがあり得るので、それを回避するような仕組みは必要。
選択肢ウ:表意コード
表意の名前の通り、"意" 味を "表" すコードということ。
コードを見ればなんとなく意味(内容)がわかるようなコードのこと。
問題文の「コードから商品の内容が容易に分かるようにしたいとき」ともあっているので、問題の正解は選択肢ウの表意コードになる。
表意コードでよくみかけるのは国名を表すコード。
- 3桁のもの JPN、USA、ITA(ISO 3166-1 alpha-3)
- 2桁のもの JP、US、IT(ISO 3166-1 alpha-2)
何も前情報がなくても、JPN、USA 、ITA と書いてあれば国のことだろうとわかる。
選択肢エ:連番コード(順番コード)
データに対して順番に連続した番号を割り当てるコードのこと。
当然、コードの番号から内容を推測することはできない。
データベースにデータを格納するときに主キーにできる属性が無い場合に、追加で連番コードを振って主キーとすることがある。
前後の問題はこちら。