![]() ![]() ![]() | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | トピック |
---|---|
h_inoue | 投稿日時: 2007-2-28 19:59 |
新米 ![]() ![]() 登録日: 2007-2-28 居住地: 投稿: 1 |
JUDE/Professional3.2のER図を書いてみました はじめまして
早速JUDE/Professional3.2のER図を書いてみました. それで以下のことが気になりました。 現象としては依存でリレーションシップを結び、参照キーを 主キーからはずすと非依存のリレーションシップに変わります。 これは、リレーションシップは依存のままにしておいて欲しいです。 例えば、顧客エンティティの主キーに顧客番号があり、 受注エンティティには受注番号が主キーとしてあります。 受注エンティティは顧客が必須なので依存のリレーション シップを結びます。すると顧客番号が主キーのひとつとして 参照されます。受注エンティティの主キーは受注番号だけで よいので、受注エンティティの顧客番号の主キーチェックを はずすと、非依存のリレーションシップとなり、顧客エンティティ に対するカーディナリティが「1」から「0,1」になって しまいます。 設定がないかいじってみたところ、受注の顧客番号のNOT NULLの チェックボックスのチェック状態から一旦チェックをはずし、 再びチェック状態にすると、顧客エンティティのカーディナリティ が「0,1」から「1」に変わりますが、非依存のリレーション シップのままです。 このような操作をしても依存のリレーションシップのままに する設定はありますでしょうか? |
mashiro | 投稿日時: 2007-3-1 10:17 |
新米 ![]() ![]() 登録日: 2006-6-27 居住地: 投稿: 11 |
Re: JUDE/Professional3.2のER図を書いてみました 以下の三つの状態があるようですね。
依存<->非依存 NOT NULL 親は必須 で、いろいろ操作していると、 命題:「NOT NULL」がtrueなら「親は必須」もtrue。 は真のようで、さらに、この命題の逆も真のようです。 対偶、逆、裏ともすべて真。 つまり、FKの「NOT NULL」と「親は必須」は同じ状態を表すものではないでしょうか。 h_inoueさんの質問は、主キーのチェックをはずすと、「依存」から「非依存」に変わってしまうことがモデル規則として正しいのかということですが、 それとは別にエディタの処理で、「依存」から「非依存」に切り替える際に FKの「NOT NULL」がtrueで、「親は必須」がfalseという命題に反した状態にしてしまっていることが問題でしょう。 |
umeda | 投稿日時: 2007-3-1 11:46 |
開発者 ![]() ![]() 登録日: 2006-5-9 居住地: 投稿: 50 |
Re: JUDE/Professional3.2のER図を書いてみました h_inoueさん、ご質問ありがとうございます。
申し訳ございませんが、現状、この振る舞いがJUDEの仕様ですので、 ご希望の状態を設定する方法はございません。 他のお客様からも同じようなご指摘をいただいておりますので、 ER図の作法として色々あり、解釈の異なる点があるのが現状なの でしょうか。 参考情報になりますが、JUDEの仕様を決めるにあたり、 こちらのIDEF1Xの仕様書を参考にしました。 http://www.itl.nist.gov/fipspubs/idef1x.doc ==================================================== Federal Information Processing Standards Publication 184 1993 December 21 Announcing the Standard for INTEGRATION DEFINITION FOR INFORMATION MODELING (IDEF1X) ==================================================== というものです。 この仕様書によると、親必須(Not Null)と依存型リレーションという概念は 別のものになります。 親子間の依存型リレーションの意味するところは、親のインスタンスとの 関連によって、子のインスタンスが識別される(依存する)、ということ ですので、親の主キーが、外部キーとして子の主キーになる必要があります。 反対に、子の一意性が親のインスタンスと独立して得られるのであれば、 非依存型リレーションを使うという仕様になっております。 非依存のリレーションシップの説明が、ご質問いただいたケースと一緒だと 思いますので、紹介した仕様書から一部抜粋します。 ======================================================== 3.5.1.2 Non-Identifying Relationship Semantics If every instance of the child entity can be uniquely identified without knowing the associated instance of the parent entity, then the relationship is referred to as a “non-identifying relationship.” For example, although an existence-dependency relationship may exist between the entities BUYER and PURCHASE-ORDER, purchase orders may be uniquely identified by a purchase order number without identifying the associated buyer. ======================================================== 今後もJUDEをよろしくお願いいたします。 |
umeda | 投稿日時: 2007-3-1 11:49 |
開発者 ![]() ![]() 登録日: 2006-5-9 居住地: 投稿: 50 |
Re: JUDE/Professional3.2のER図を書いてみました mashiroさん、ご指摘ありがとうございます。
引用: つまり、FKの「NOT NULL」と「親は必須」は同じ状態を表すものではないでしょうか。 はい。その通りです。 引用: それとは別にエディタの処理で、「依存」から「非依存」に切り替える際にFKの「NOT NULL」がtrueで、「親は必須」がfalseという命題に反した状態にしてしまっていることが問題でしょう。 こちらもその通りです。次のリリースにて修正したいと思います。 今後もJUDEをよろしくお願いいたします。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |