ログイン
検索
メインメニュー
開発者ブログ
ChangeVisionメンバーズ分布マップ
フォーラム一覧   -   トピック一覧
   astah*の使い方
     JUDE/Professional3.2のER図を書いてみました
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
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をよろしくお願いいたします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を