基本情報技術者の実務クエスト

【基本情報の実務】表を分ける──「これは何に付いている情報か」で1列ずつ見る

冒険者ギルドの受付担当から、管理表の作り方について相談が届く。

「依頼の管理表を1枚に作っていて、1行に依頼内容・依頼者名・依頼者の連絡先・担当冒険者名・担当のランクを全部入れています。同じ依頼者が何度も依頼すると、連絡先を毎回書くことになり、修正のたびに全部直すのが大変です。表の分け方を相談したいです」

相談の中に、分けるべき理由がそのまま書かれている。「連絡先を毎回書くことになる」——同じことが繰り返し書かれているのが、分けるサインである。基本情報の知識がここで力になるのは、どこで切るかを、迷わず決められたときだ。この記事では、その基準から整理する。

この記事は、学習アプリ「シカクエ」の実務クエスト「管理表の分け方を相談する」を読み物として再構成したもの。人物・組織はすべて架空です。実際の設計は、扱うデータの量や運用に応じてご検討ください。

まず結論:1列ずつ「何に付いている情報か」を問う

何に付いている情報か
依頼内容依頼
依頼者名依頼者
依頼者の連絡先依頼者
担当冒険者名冒険者
担当のランク冒険者

この問いを1列ずつ当てると3つのまとまりに分かれる依頼・依頼者・冒険者である。

そしてまとまりが、そのまま表になる

ここで大事なのは「連絡先は依頼に付いている情報ではない」ということである。依頼が10件あっても、連絡先は依頼者のもので、1つである。

依頼者のものを、依頼の表に書いているから、依頼の数だけ繰り返される

だから繰り返しは、原因ではなく結果である。置き場所が違うことの、現れ方である。

本当の理由は、手間ではなく食い違い

相談では「修正のたびに全部直すのが大変」と書かれている。手間の話である。

分ける理由として、より大きいのはその先にある。

全部直そうとして、一部だけ直ることである。

連絡先が10か所に書いてあって、9か所だけ直したとする。1か所は古いまま残る

このときどちらが正しいかは、表からは分からない同じ依頼者に、2つの連絡先がある状態になる。

手間なら、時間をかければ済む食い違いは、時間をかけても解けない

分けておくと連絡先は1か所にしかないので、この状態が起こりようがない

直すのが楽になるのは、おまけである。本当の値打ちは、食い違う場所を無くすことにある。

提案ではここを書く手間の話だけだと、「そこまでしなくても」となる

名前では、区別できない

分けると新しく必要になるものがある。どの依頼者かを指す方法である。

いままでは同じ行に書いてあったので、指す必要が無かった。分けた瞬間に、つなぐ手立てが要る

ここで依頼者名で結ぶと、問題が出る。

3つ目は実際にいちばん多い空白の有無や、漢字の違いで、別人として扱われる

だから依頼者に、番号を振る依頼の表には、その番号を書く

番号は意味を持たせないほうがよい。地区や種別を番号に埋め込むと、その人が引っ越したときに番号を変えることになる番号が変わると、つながりが切れる

番号は、ただの番号にしておく意味は、列に書く

分けすぎない

分ける基準が分かるともっと分けたくなるそこで止まる基準も要る

基準は一緒に変わるものは、一緒に置くである。

たとえば担当のランク冒険者に付いているので、冒険者の表に入れる。ここまでは同じ考え方である。

ではランクの名前や、ランクごとの報酬率はどうか。これはランクに付いている情報なので、さらに分けられる

分けるかどうかはそれが変わるかどうかで決める。

そして表が増えるほど、一覧を作るときにつなぐ数が増える見るだけの運用が多いなら、そこも重さになる

繰り返しが起きているかそれが変わるか——両方が当てはまるときに分ける片方だけなら、そのままでよいことが多い。

提案の例

依頼管理表の分け方(ご提案)

いまの表を、3つに分けます

列を1つずつ見て、「これは何に付いている情報か」で分けました。

入れる列
依頼依頼番号、依頼内容、依頼者番号、担当冒険者番号、状態
依頼者依頼者番号、氏名、連絡先
冒険者冒険者番号、氏名、ランク

連絡先は、依頼者の情報です。依頼が10件あっても、連絡先は1つです。それを依頼の表に書いていたので、依頼の数だけ繰り返されていました。

いちばん大きな変化

直すのが楽になるのは、実はおまけです。

本当に変わるのは、食い違いが起きなくなることです。

いまは連絡先が10か所にあるので、9か所だけ直してしまうことが起こりえます。そうなると同じ依頼者に2つの連絡先がある状態になり、どちらが正しいかは表からは分かりません。

手間は時間をかければ済みますが、食い違いは時間をかけても解けません。

分けておくと連絡先は1か所にしかないので、この状態が起こりようがなくなります。

番号を振らせてください

表を分けると、どの依頼者かを指す方法が必要になります。

お名前では結べません。同姓同名の方がいると混ざりますし、書き間違いや表記のゆれでも別人として扱われてしまいます。

ですので依頼者と冒険者に、それぞれ番号を振ります。

この番号はただの通し番号にします。地区や種別を埋め込むと、その方の状況が変わったときに番号を変えることになり、つながりが切れてしまうためです。

いまはここまでにします

ランクの区分や報酬の決まりも、さらに別の表に分けられます。ただしいまは分けないことをご提案します。

分けるかどうかはそれが変わるかどうかで決めます。ランクの区分が見直されることが増えてきましたら、そのときに分けましょう。

表が増えるほど、一覧を作るときにつなぐ手間が増えます。必要になってからで間に合います。

移し替えについて

いまの表から3つに移すとき、同じ依頼者が別人として登録されていないかの確認が要ります。表記のゆれがあると、そこで分かれてしまいます。

この確認は、こちらで一覧をお出しします。同じ方かどうかの判断だけ、お願いできますでしょうか。

分け方の基準を、先に書いた結果の表だけ渡すと、次に列が増えたときに判断できない

「直すのが楽になるのはおまけ」と書いた。相談者が言った理由より、大きい理由があると示している。

番号の話を、独立させた分けると新しく必要になるものなので、見落とされやすい。

「いまはここまで」を入れた。分けられることと、分けるべきことは違う

最後に移し替えの確認を書いた。設計だけ渡すと、この作業が抜けるそして判断は相手にしかできない

作り方の手順

  1. 繰り返し書かれている列を探す。
  2. 1列ずつ「何に付いている情報か」を問う。
  3. まとまりを、そのまま表にする
  4. 基準を先に書く。結果の表だけ渡さない。
  5. 手間ではなく、食い違いを理由にする。
  6. 一部だけ直る例を具体的に書く。
  7. 指す方法を用意する。
  8. 名前で結ばない。表記のゆれで別人になる。
  9. 番号に意味を持たせない
  10. 分けすぎない。変わるものだけ分ける。

この場面で効いている基本情報の知識

知識そのものより、繰り返しを「結果」として見て、置き場所の問題に戻せることが、この場面で効いている。

設計で外したくないポイント

  1. 繰り返しは、分けるサイン
  2. 繰り返しは原因ではなく結果。置き場所が違う。
  3. 1列ずつ「何に付いているか」を問う。
  4. 本当の理由は、食い違いの防止
  5. 手間は時間で済むが、食い違いは解けない
  6. 分けると、指す方法が要る
  7. 名前では結べない。表記のゆれで別人になる。
  8. 番号に意味を埋め込まない。変えることになる。
  9. 一緒に変わるものは、一緒に置く
  10. 移し替えのときの確認まで、提案に含める。
この記事は表の分け方の考え方を整理したものです。実際の設計は、扱うデータの量・使い方・お使いの仕組みによって適した形が異なります。

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る
架空の実務場面をもとにした学習用の解説記事です。実在の会社・物件・取引ではありません。制度は改正されることがあるため、受験年度の最新情報もあわせてご確認ください。