連関エンティティと関連クラス
データモデリングの連関エンティティとUMLのクラス図の関連クラスの関係がようやく分かったのでメモ。
ラフなメモ書き。
【元ネタ】
「関連クラス」をデータモデルで解き明かす(前編): 設計者の発言
「関連クラス」をデータモデルで解き明かす(後編): 設計者の発言
UMLによるオブジェクト指向モデリングでは、関連クラスが分かりにくい。
普通の多対多の関係とどう違うのかが分かりにくいからだ。
渡辺さんのBlogによれば、データモデリングで実装すれば一目瞭然。
OOAの関連クラスは、DOAの連関エンティティ(対照表)と同等。
つまり、連関エンティティの場合、複合キーを持つ。
OOAの普通の多対多の関係は、DOAでは外部キーで参照制約を持っているだけ。
二つの実装は、仕様の意味が異なる。
連関エンティティの場合、複合キーになるので、二つのエンティティの主キーの組合せが一意というのが重要な意味を持つ。
連関エンティティはイベントになる可能性があり、イベントであるからには何らかの日付を持つ。
つまり、連関エンティティは履歴系テーブル(トランザクション)になりやすい。
DOAの外部キーは、二つのエンティティにおいて、関連する業務が存在することを意味する。
普通は参照制約(reference)が存在するが、更新したり削除したりする時の業務ロジックを考慮しないと、変なデータが残ってしまう。
だから、更新や削除を制限するならno action制約、共に削除するならcascade制約などを追加する時もあるだろう。
データモデリングについては今後も少しずつまとめていく。
| 固定リンク
「モデリング」カテゴリの記事
- JSTQBのテストプロセスの概念モデルを描いてみた(2023.05.26)
- 第85回IT勉強宴会の感想~概念データモデルからビジネスモデルを構築すべきという考え方(2023.05.13)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart2~プロセスのレイヤと達成目標のレイヤが異なる(2023.02.18)
- UMTPモデリングフォーラムのパネル討論の感想(2022.11.29)
- Go言語でできることは何なのか(2022.11.06)
コメント