
武蔵野個別指導塾の特徴
高校情報I データの一貫性—表の分割と更新の手順から食い違いを防ぐ方法を考える|武蔵野個別指導塾

機器台帳と利用記録を番号で結び、名称変更や失敗時の照会で保つのは一貫性です。
よくあるのは、高校生が同じ機器名を利用記録の複数行で書き換え、一部だけ古い名前のまま残すという場面です。利用記録の件数が正しくても、同じ機器の現在名が行によって違えば、読む人は別の機器だと判断しかねません。機器の現在名を台帳の1か所に置き、記録には機器番号を残して照会すれば、この食い違いを減らせます。
出方には、更新前後の表を完成する型、番号から表示名をたどる型、登録や更新が途中で失敗した場合の処理を説明する型があります。どの型でも、表の見た目だけでなく、どの値を正として参照するかを決めてから確かめます。
名前を置く場所と番号の役割
データの一貫性とは、決めた規則に照らして、関連するデータの間に矛盾がない状態です。ここでは「機器番号ごとに現在の名称を台帳に1つ定め、利用記録は存在する番号を参照し、現在名の照会には台帳の名称を使う」という規則を採用します。一貫していることは、台帳に入力された名称自体が現実と必ず一致することまで保証しません。誤った名称を台帳に登録すれば、同じ誤りが照会に現れます。
図1のように、機器台帳の1行は1台の機器、利用記録の1行は1回の利用を表します。台帳の機器番号は空欄にせず、同じ番号を重ねません。利用記録には利用を区別する記録番号と機器番号を置き、番号が一致する台帳行から現在名を読み取ります。

図1では複数の利用記録が同じ台帳行を指します。利用が増えるたびに名称を複写する必要はなく、名称が変われば台帳の該当行を更新します。表示を作るときに参照するので、更新後に改めて照会した各行には同じ現在名が出ます。すでに印刷した紙や、以前取得した表示が自動で書き換わるとは限りません。
登録から照会までを順に考えます。まず機器番号と名称を台帳に登録し、番号が未使用で空欄でないことを確かめます。次に利用の記録番号と機器番号を受け取り、記録番号の重複がなく、その機器番号が台帳にあることを確かめて記録します。照会では利用記録の番号に対応する台帳行を探して名称を表示します。各段階で規則を確認する理由は、参照先がなければ現在名を決められないからです。
番号は機器を識別する値で、名称とは役割が違います。同じ名称を持つ別の機器があっても番号が別なら区別できます。逆に番号を使い回すと、古い利用が別の機器の記録として見えてしまいます。この教材では、登録済みの番号は別の機器に使い回さない条件にします。
現在名の表示と、利用当時の名称を保存する目的も区別します。過去の名称が必要なら、いつからいつまでの名前かを区別できる履歴を別に管理する設計が必要です。現在名を1か所に置く今回の規則では、過去の名前は復元できません。表を分けただけで入力の正しさや履歴が自動的に得られるわけではないのです。
失敗時の扱いも設計に含めます。存在しない番号や重複した記録番号が来たら、利用を登録せず理由を示します。照会時に参照先が見つからなければ、名前を推測せず「参照先なし」と表示し、記録を点検します。処理が時間切れになったときは完了と決めつけず、記録番号で登録済みか確かめてから再実行します。外の道具が応答しないときも、古い表示を現在名と断定せず、取得できなかったと伝えます。
基本例題:名称変更を照会に反映する
次は学習用に作った台帳と利用記録です。機器番号は変えず、台帳の K1 の現在名を「小型投影機」から「映写機A」に変更します。更新後の台帳と、記録番号順の照会結果を示してください。照会結果の列は記録番号、機器番号、現在名です。
機器台帳:
| 機器番号 | 現在名 |
|---|---|
| K1 | 小型投影機 |
| K2 | 書画装置 |
利用記録:
| 記録番号 | 機器番号 |
|---|---|
| R1 | K1 |
| R2 | K2 |
| R3 | K1 |
1行ずつたどります。まず台帳で K1 を探すと1行です。その名称を「映写機A」に変更し、K2 は変更しません。利用記録の3行は番号を含めて変更しません。
次に R1 の K1 を台帳に照らすと「映写機A」です。R2 の K2 は「書画装置」です。R3 の K1 は R1 と同じ台帳行を参照するので「映写機A」です。図2のように、更新箇所は1行でも照会でその名称を使う記録は2行あります。

更新後の台帳は K1 が「映写機A」、K2 が「書画装置」です。結果を元の記録番号順に戻して並べると次の表です。
| 記録番号 | 機器番号 | 現在名 |
|---|---|---|
| R1 | K1 | 映写機A |
| R2 | K2 | 書画装置 |
| R3 | K1 | 映写機A |
図2の矢印は名前を利用記録に保存し直す操作ではなく、照会時の参照です。3件の記録が更新前後で残り、K1 が2件、K2 が1件という対応も変わっていません。台帳の名称変更だけで利用の事実まで書き換わったと考えないことがポイントです。
変更が正常に終わったかの試験では、K1 を照会して新しい名前が得られることに加え、R1 と R3 の両方、変更対象でない R2 も照会します。記録が3件のままであることも確認します。1件だけ見ると、参照する番号や表示を作る場所が違う誤りを見逃すからです。
変更が失敗した場合の試験も同じ範囲で行います。例えば更新の受付前に入力確認が失敗し、変更が保存されなかったという条件なら、K1 は「小型投影機」のままです。R1 と R3 は旧名、R2 は「書画装置」で、記録は3件のままです。保存途中に例外が生じた場合は結果が不明なまま成功と表示せず、台帳を再照会して確定状態を確認します。保存されていなければ、原因を直して再度変更します。
標準例題:登録の可否を順に判定する
台帳に M1「録音機」と M2「照明器」があり、利用記録には U1・M1 と U2・M2 があるとします。新たに U3・M1、U4・M3、U2・M1 をこの順で受け付けます。登録には、記録番号が既存と重ならず、機器番号が台帳に存在するという両条件が必要です。それぞれの可否と理由、最後に残る記録を受付順に示してください。
U3 は未使用で、M1 は台帳にあります。2条件を満たすので登録し、記録は U1・M1、U2・M2、U3・M1 の3件です。次の U4 は未使用ですが、M3 は台帳にありません。参照先を特定できないため登録しません。最後の U2 は M1 が存在しても、U2 がすでにあるので登録しません。
元の受付へ戻すと、受け付けた3候補のうち登録されたのは U3 の1件です。最初の2件と合わせた最終件数は3件で、M1 を参照する U1 と U3 はどちらも「録音機」、M2 を参照する U2 は「照明器」と表示されます。番号だけで判定せず、対応する名称までたどって照合します。
正常な登録の試験では、U3 の受理後に3件を読み出し、U3 が1回だけ存在し M1 につながることを調べます。台帳の M1 と M2 の名称も変化していないことを調べます。受理の表示だけでは保存や参照の成否を区別できません。
失敗の試験では、U4 と重複した U2 のそれぞれについて、拒否理由と拒否後の3件を確かめます。さらに、登録の応答が時間切れになった U5 については、登録できたか不明という条件で考えます。U5 を照会できれば二重に追加せず、存在しなければ再登録します。照会にも失敗すれば未確定と伝え、勝手に再送し続けません。外の道具が不調で照合できない場合も、番号の存在を推測して受理しないことが必要です。
発展例題:同時に名前を変更する
台帳の P1 は初め「移動端末」です。担当者 A は「端末北」、担当者 B は「端末南」へ変更しようとし、両者とも最初の値を読んだ後に保存します。仮に A の保存が成功し、その後 B の保存が成功する仕組みだとします。最後の現在名と、A の変更について言えることを答えてください。
最初に両者が読んだ値は「移動端末」です。A が保存すると台帳は「端末北」になります。その後 B が保存すると台帳は「端末南」になります。最後の照会は P1 に対応する利用を「端末南」と表示します。A の変更は一度保存されましたが、最後の値には残っていません。これは後の書き込みによって前の変更が失われる例です。
表示がどれも「端末南」でそろっていても、A の意図した変更が残っているとは限りません。参照間の食い違いと、変更の競合は別の観点です。対策の考え方として、保存前に読んだ後で台帳が変わっていないか調べ、変わっていれば保存を保留して再確認します。また、同時に編集しないよう順番を調整する方法もあります。実際にどの方法が使えるかは仕組みの条件によります。
正常な順序の試験では、A の保存後に B が最新の「端末北」を読み、変更を確認してから「端末南」を保存します。2回の保存後の値と、P1 を参照する記録の表示をそれぞれ照会します。変更が意図された順序で受け入れられたことも確認します。
競合の試験では、B が古い「移動端末」を読んだまま保存しようとします。上記の事前確認を設けた条件なら、A の保存で値が変わったことを検出し、B の保存を保留します。この時点の台帳と照会は「端末北」です。B が最新値を見て改めて変更するまで「端末南」とは表示しません。事前確認そのものが例外や時間切れで完了しない試験では、変更を確定せず、状態を再取得してから判断します。
誤答をたどり、規則から直す
ある利用一覧に、同じ機器番号 T1 と旧名「音響器」が2行ありました。名称を「音声装置」に変える際、片方だけ直して「2行あるので別の機器が2台ある」と答えたとします。この答えは名称の違いから機器の数を決めていますが、同一番号 T1 という条件を見落としています。
図3のように、複写された名称を別々に直すと、新旧の名前が同居します。まず台帳で T1 の正しい現在名を確認します。現在名を「音声装置」と決める条件なら台帳の T1 を更新し、2件の利用からその行を参照する形に直します。両方の照会結果は「音声装置」で、機器は T1 の1台、利用は2件です。

図3で直したのは現在名の扱いです。片方の行が過去の名称を意図して記録したものなら、単に現在名で上書きすると当時の情報を失います。どの時点の名前を表示する表かを決め、必要なら履歴を設計するところまで考えます。
修正が成功した試験では、T1 の2件を照会して同じ現在名になること、利用2件が残ることを確認します。別の番号を参照する記録があれば、そちらの名称が意図せず変わらないことも確認します。対象の2行だけを見て、他の機器への影響を見落とさないためです。
修正が失敗した試験では、台帳の変更を保存できなかった条件で旧名のままであることと、2件の利用が残ることを確認します。照会に使う外の道具が停止した条件では、空欄を正式な名称とせず、照会失敗を示します。どちらも「表示がそろったか」だけでなく、更新結果と参照の状態を分けて検証します。
練習:表と手順を自分で確かめる
次の5問はそれぞれ独立しています。名前は現在名、番号は空欄でなく、台帳内で重複しないものとします。表の答えは問題で指定した順序に並べてください。
問1
台帳は A1「温度計」、A2「計時器」です。利用記録は順に V1・A2、V2・A1、V3・A2 です。A2 の名前を「時計B」に変更した後、記録番号順に記録番号と表示名を並べ、変更した台帳行と利用件数を答えてください。
問2
台帳は B1「測定器」、B2「読取器」です。既存記録は W1・B1 です。W2・B2、W3・B9、W1・B2 を順に登録しようとします。記録番号の重複と存在しない機器番号を拒否する条件で、各候補の可否と最終記録を受付順に答えてください。
問3
台帳の C1 は「記録機」です。2件の利用 X1・C1 と X2・C1 があります。名称を「記録機C」に変えようとしましたが、保存前の入力確認で拒否され、台帳は変更されませんでした。両方の照会結果と利用件数、次に行う確認を答えてください。
問4
台帳の D1 は「音源機」です。担当者が同じ旧名を読んだ後、先に「音源東」が保存され、次に「音源西」が保存されました。後の保存を拒否する仕組みはないものとします。最後の名前と、変更が失われることを防ぐための確認を答えてください。
問5
台帳の E1 は「読書灯」で、利用記録 Y1・E1 が登録されているかどうか、登録要求の時間切れにより不明です。照会を試みても外の道具が故障して応答しません。Y1 を重複させずに扱うため、その場の判断と復旧後の手順を答えてください。照会できた場合と、記録が存在しない場合の両方を示してください。
練習の答えと解き方
問1の答え
変更するのは A2 の1行です。照会は V1 が「時計B」、V2 が「温度計」、V3 が「時計B」です。利用件数は3件です。元の3行へ戻ると A2 は V1 と V3、A1 は V2 なので、名前を変える前後で機器の対応や件数は変わりません。
問2の答え
W2・B2 は両条件を満たすので可、W3・B9 は B9 が台帳にないので不可、W1・B2 は W1 が重複するので不可です。最終記録は W1・B1、W2・B2 の2件です。元の候補に戻しても、追加されたのは最初の1件で、B1 と B2 はそれぞれ台帳の「測定器」と「読取器」に対応します。
問3の答え
X1 と X2 はどちらも「記録機」、利用は2件です。保存前に拒否されたので台帳の旧名が残り、両記録の C1 はその行を参照します。入力内容と拒否理由を確認して修正し、再度変更した後に2件を照会します。変更できなかったことを、2件が消えたことと取り違えないようにします。
問4の答え
最後の名前は「音源西」です。先の「音源東」は後の保存で上書きされています。保存前に自分が読んだ後の変更の有無を確認し、変化があれば保留して最新の名前を見直す方法があります。D1 を参照する記録があれば、最後の照会では「音源西」となることも元の条件から確かめられます。
問5の答え
その場では結果を未確定とし、登録済みと決めつけることも、再送を繰り返すこともしません。外の道具が復旧したら Y1 を照会します。Y1・E1 が存在すれば再登録せず「読書灯」を参照できるか確かめ、存在しなければ登録を再実行して1件だけ保存されたか照会します。別の内容の Y1 が存在すれば重複として内容を点検し、勝手に置き換えません。
覚えておくこと
- 現在名は台帳に置き、利用記録は機器番号を参照します。
- 登録時に番号の重複と参照先の有無を確かめます。
- 更新後は対象と対象外の照会、件数を確かめます。
- 失敗や時間切れでは結果を推測せず保存状態を確認します。
- 同時更新の競合と、過去の名称の保存は別に考えます。
どこでつまずいたかを見分ける
名前が変わると利用記録の番号も変わると答えたら、1行が機器を表す表と利用を表す表を指でたどり直します。記録が何件残るか、各番号が台帳のどの行につながるかを順に説明できるかが確認点です。個別指導では、成功した更新と保存されなかった更新を並べ、照会結果をそれぞれ元の表へ戻して確かめます。参照先と時点を決めることで、表の食い違いを具体的に見つけられます。
読んで終わりにするか、ここから変えるか。
武蔵境駅徒歩30秒、講師1人に生徒1人の完全1対1。授業のあいだ、先生は隣を離れません。いまの詰まりを、無料相談でそのまま話してください。
まず15分だけ電話で話したい方は、無料電話相談(15分)から。塾からお電話を差し上げます。
本気になった日が、入塾の日。
お子様の教育、迷ったら「丸投げ」してください。必ず、期待以上の結果で返します。武蔵野で育む、武蔵境で学ぶ。
電話は年中無休。365日、24時間、お電話可能。



