連関エンティティと関連クラス
データモデリングの連関エンティティとUMLのクラス図の関連クラスの関係がようやく分かったのでメモ。
ラフなメモ書き。
【元ネタ】
「関連クラス」をデータモデルで解き明かす(前編): 設計者の発言
「関連クラス」をデータモデルで解き明かす(後編): 設計者の発言
UMLによるオブジェクト指向モデリングでは、関連クラスが分かりにくい。
普通の多対多の関係とどう違うのかが分かりにくいからだ。
渡辺さんのBlogによれば、データモデリングで実装すれば一目瞭然。
OOAの関連クラスは、DOAの連関エンティティ(対照表)と同等。
つまり、連関エンティティの場合、複合キーを持つ。
OOAの普通の多対多の関係は、DOAでは外部キーで参照制約を持っているだけ。
二つの実装は、仕様の意味が異なる。
連関エンティティの場合、複合キーになるので、二つのエンティティの主キーの組合せが一意というのが重要な意味を持つ。
連関エンティティはイベントになる可能性があり、イベントであるからには何らかの日付を持つ。
つまり、連関エンティティは履歴系テーブル(トランザクション)になりやすい。
DOAの外部キーは、二つのエンティティにおいて、関連する業務が存在することを意味する。
普通は参照制約(reference)が存在するが、更新したり削除したりする時の業務ロジックを考慮しないと、変なデータが残ってしまう。
だから、更新や削除を制限するならno action制約、共に削除するならcascade制約などを追加する時もあるだろう。
データモデリングについては今後も少しずつまとめていく。
| 固定リンク
「モデリング」カテゴリの記事
- 組込みソフトウェア開発でUMLを使う手法を説明した書籍のリンク(2022.06.17)
- 超高速開発でアジャイル開発を実現する話に違和感がある(2022.05.06)
- 事業活動のシステム化は非差別化しない汎用ドメインや支援ドメインに注力すべき(2022.04.13)
- 「大国政治の悲劇」の感想~現代はパワーポリティクスの歴史に戻ったみたいだ(2022.03.25)
- マイクロサービスはアトミックな操作で閉じるべきシステム分割論に基づいたアーキテクチャなのか(2022.03.20)
コメント