システム監査技術者 2017年 午前2 問23
問題文
CRUDマトリックスを用いてエンティティのライフサイクル分析を行った。このマトリックスから分かることはどれか。

選択肢
ア:削除する機能が用意されていないエンティティがあるので、誤登録や多重登録したエンティティを削除できないおそれがある。(正解)
イ:どの機能からも参照されないエンティティがあるので、必要な機能が漏れているおそれがある。
ウ:複数の機能が同一のエンティティを更新するので、デッドロックが発生するおそれがある。
エ:複数の機能から生成されるエンティティがあるので、機能が重複しているおそれがある。
🔒 解説は解答すると表示されます
CRUDマトリックス分析【午前2解説】
正解の理由
CRUDマトリックスは、機能が各エンティティに対して行う操作を整理した表です。CRUDは、生成(Create)、参照(Read)、更新(Update)、削除(Delete)を表します。
表を見ると、「顧客」にはC・R・U・Dが記載されていますが、「製品」「受注」「受注明細」にはDがありません。つまり、これらのエンティティを削除する機能が表に示されていません。
そのため、誤登録や重複登録があった場合に削除できないおそれがあるとするアが適切です。
解法ステップ
- CRUDの各文字が示す操作を確認します。
- C:生成
- R:参照
- U:更新
- D:削除
- エンティティごとに、C・R・U・Dの有無を確認します。
- 「顧客」にはDがありますが、「製品」「受注」「受注明細」にはDがありません。
- 削除機能が用意されていない場合の問題を述べている選択肢を選びます。
選択肢別の誤答解説
- ア:適切です。削除(D)が記載されていないエンティティがあるため、誤登録や重複登録を削除できないおそれがあります。
- イ:不適切です。どのエンティティにも、少なくとも一つの機能から参照(R)されています。表から「どの機能からも参照されないエンティティがある」とは判断できません。
- ウ:不適切です。CRUDマトリックスから分かるのは、機能とエンティティの操作上の対応関係です。複数機能による更新がデッドロックを引き起こすかどうかは、処理の実行順序やトランザクションなども確認しないと判断できません。
- エ:不適切です。表では、同じエンティティを生成(C)する複数の機能は確認できません。また、生成機能が複数あることだけで、機能が重複しているとは判断できません。
よくある誤解
- 「登録・更新」という機能名に削除も含まれると考えてしまうことがあります。CRUDマトリックスでは、機能名ではなく、セルに記載された操作記号で判断します。
- 「Rがあるから削除もできる」と考えるのは誤りです。参照(R)と削除(D)は別の操作です。
- Dがないから必ず不具合がある、と断定するのも避けましょう。業務上削除を禁止する設計もあり得ますが、この設問では削除できない場合のリスクに着目します。
補足コラム
CRUDマトリックスは、機能とエンティティの対応を一覧で確認し、操作の漏れや偏りを見つけるために使います。たとえば、どの機能からも参照されないエンティティや、どの機能でも生成されないエンティティがないかを確認できます。
ただし、表から分かるのは操作の対応関係です。処理の競合やデッドロックの発生可能性などは、実行タイミングやトランザクション設計を別途確認する必要があります。
FAQ
Q. Dがないエンティティは、必ず削除機能を追加すべきですか?
A. 必ずしもそうではありません。削除を禁止する業務ルールがある場合もあります。設計上の意図を確認し、誤登録時の訂正方法なども検討します。
A. 必ずしもそうではありません。削除を禁止する業務ルールがある場合もあります。設計上の意図を確認し、誤登録時の訂正方法なども検討します。
Q. CRUDマトリックスでデッドロックも判定できますか?
A. 直接は判定できません。複数機能が同じデータを更新することは把握できますが、デッドロックの判定には処理順序やトランザクションの詳細が必要です。
A. 直接は判定できません。複数機能が同じデータを更新することは把握できますが、デッドロックの判定には処理順序やトランザクションの詳細が必要です。
関連キーワード: CRUD、CRUDマトリックス、エンティティ、ライフサイクル分析、機能分析

\ せっかくなら /
システム監査技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

