ログイン
検索
メインメニュー
フォーラム一覧   -   トピック一覧
   astah*への改善アイデア
     ER図の記述について
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
okamura
投稿日時: 2008-11-4 15:49
開発者
登録日: 2006-5-2
居住地:
投稿: 157
Re: ER図の記述について
Pro5.4のご試用とコメントありがとうございます。
β版でコメントいただいていながら、ご期待に添えなかったとのことで残念に思います。再度仕様について、確認と改善検討をしていきたいと思います。

引用:

p.s INDEX作成時に表示を物理モードにしていても属性候補の
カラムが論理名で表示されます。不具合かと思います。


この件不具合であることを確認いたしました。次の不具合修正版にて修正いたします。ご迷惑をおかけいたします。
kangol
投稿日時: 2009-2-2 14:29
新米
登録日: 2008-6-16
居住地:
投稿: 7
Re: ER図の記述について
kangolです。

5.5βを楽しみにしていました。
ですが、ER図の「索引」「一意」「外部参照」
の概念の整理(分離)はされていないようで
す。

対応は次回以降になるでしょうか?ER図関係の
トピックは閲覧数の高さからもユーザの関心は
高いと思います・・・

「索引」も「一意」もこの際諦めます。
なので、どうか「外部参照」を主キー以外に
対して作れるようにしてもらえませんか?

「索引」と「一意」はDDLに書き加えることで
逃げられますが、「外部参照」は図として書け
ないことには回避方法がないのです。

検討よろしくお願いします。
joba
投稿日時: 2009-2-3 14:25
開発者
登録日: 2006-4-27
居住地: Fukui
投稿: 597
Re: ER図の記述について
kangolさん、こんにちは。

早々の5.5βのご試用、誠にありがとうございます。

引用:
どうか「外部参照」を主キー以外に対して作れるようにしてもらえませんか? 「索引」と「一意」はDDLに書き加えることで逃げられますが、「外部参照」は図として書けないことには回避方法がないのです。

Kangolさんの意図する方法ではないかと存じますが、JUDEで「外部参照」を主キー以外に対して作成する方法をご連絡します。

【画像1】























【画像1】の下段のように、一意キーに対して外部参照を作成する手順は以下の通りです。

(1) エンティティAを選択し、プロパティビューの[インデックス]タブで追加ボタンを選択します


















(2) [インデックスの編集]ダイアログが開きます。適当な名前のインデックスを作成して、[一意]にチェックを入れ、属性Xを[インデックス属性]一覧に移動します。("代替キーとして表示"のオプションは任意です)


























(3) 図上で、エンティティAーエンティティC間のリレーションシップを選択し、プロパティビューの[キー]タブを開きます。種類で、作成した一意インデックス(ときに制約)を選択します。












これで、エンティティCに、外部キーが追加されます。
kangol
投稿日時: 2009-2-3 18:38
新米
登録日: 2008-6-16
居住地:
投稿: 7
Re: ER図の記述について
kangolです。

この方法は理解しています。ですがINDEXを対象とする
外部参照はモデルとしておかしくないですかということ
を言いたいのです。(3)で「主キー」か「INDEX名」が
選択できるところを「主キー」を含む関連先の全カラム
を選択肢としてもらえないでしょうか?

また、この方法では正しく作成した複合INDEXが候補に
なりません。カラムが絞れないことによるモデル管理の
都合だと思いますがINDEXではなくカラムをリストする
ことで解決できると思います。
okamura
投稿日時: 2009-2-4 18:16
開発者
登録日: 2006-5-2
居住地:
投稿: 157
Re: ER図の記述について
引用:

また、この方法では正しく作成した複合INDEXが候補に
なりません。カラムが絞れないことによるモデル管理の
都合だと思いますがINDEXではなくカラムをリストする
ことで解決できると思います。


この後半部分ですが、これは複合INDEXを「一意」に設定いただくと
候補に表示される仕様としておりますが、問題があるという
ご指摘でしょうか?
ゲスト
投稿日時: 2009-2-13 2:32
Re: ER図の記述について
ゲストの「F」さんからの投稿です。
---

このトピックをとても注目しています。

複合インデックスに外部参照を設定すると
外部キーが複数作成されてしまいます。

外部参照を主キー以外に設定するために
インデックスを使用することに対する
弊害ではないのでしょうか?

設計を支援するためのツールなはずが、
ツールの制限により設計を制限して
しまっていると感じます。
okamura
投稿日時: 2009-2-18 18:23
開発者
登録日: 2006-5-2
居住地:
投稿: 157
Re: ER図の記述について
引用:

kangolさんは書きました:
この方法は理解しています。ですがINDEXを対象とする
外部参照はモデルとしておかしくないですかということ
を言いたいのです。(3)で「主キー」か「INDEX名」が
選択できるところを「主キー」を含む関連先の全カラム
を選択肢としてもらえないでしょうか?


こちらの理解不足があるようですので、すいませんが、もう少しお教えいただければと思います。

外部参照を設定する場合に、通常その先が一意であるべきである、と認識しておりますが、この認識は同じでしょうか?

たとえばOracleでは一意と設定されていない属性に対して、外部参照を作成しようとするとエラーになりますよね。
その認識の下、現在のように一意と設定した属性(または属性のグループ)に対してリレーションをはれるようにしています。
一意である場合、主なDBで考えると、一意なインデックスか、一意制約をもつものになるかと思います。
JUDEではそれらをひっくるめてインデックスと呼んでしまっている点、わかりにくいとは思っていますが、ここが問題ということでしょうか?

それとも、次のような使い勝手やGUIを中心としたご指摘でしょうか?
主キー以外を選択したら、ツール側で勝手に一意と認識して扱うようにする。

または、DBでは外部参照が張られていないが、JUDEでの表記上はエンティティのリレーションとして表現したいということでしょうか?たとえば、DDLに影響を与えない、図上だけの線を引けるイメージでしょうか?
kangol
投稿日時: 2009-2-19 18:07
新米
登録日: 2008-6-16
居住地:
投稿: 7
Re: ER図の記述について
kangolです。

引用:
okamuraさんは書きました:外部参照を設定する場合に、通常その先が一意であるべきである、と認識しておりますが、この認識は同じでしょうか?

同じです。

引用:
okamuraさんは書きました:一意である場合、主なDBで考えると、一意なインデックスか、一意制約をもつものになるかと思います。
JUDEではそれらをひっくるめてインデックスと呼んでしまっている点、わかりにくいとは思っていますが、ここが問題ということでしょうか?

一意制約や参照制約は論理設計の中で考え、INDEXはそのテーブルに対するQUERYから物理設計の中で考えると思うので、「一意になった=INDEX」にも「INDEXを作ってから参照制約」にも違和感があるのです。

引用:
kangolさんは書きました:(例:update_time:timestamp型のような場合に秒まで一致した Queryは行わずにdate(update_time)=current_dateのように 関数で指定することが多いです。この場合update_timeに対する INDEXは効果がなくdate(update_time)にINDEXを貼る必要が あります。

以前の投稿で上記のように書いていますが、INDEXはQUERYによって変わると思います。JUDE出力のDDLに対してここまでは求めてはいませんが、手書きするか作らないケースではINDEXの生成は不要ではないですか?

引用:
okamuraさんは書きました:または、DBでは外部参照が張られていないが、JUDEでの表記上はエンティティのリレーションとして表現したいということでしょうか?たとえば、DDLに影響を与えない、図上だけの線を引けるイメージでしょうか?

DDLを生成する契機で「一意制約がありません」と警告してくれるのが親切かと思います。図のみ表示や知らないうちに一意にしてくれることは望んでいません。

Aqua Data StudioがER図を書けるようになっていました。試用したところ論理名が書けないことを除くと使い勝手は良さそうです。参考になるかもしれません。
Aqua Fold
okamura
投稿日時: 2009-3-3 15:52
開発者
登録日: 2006-5-2
居住地:
投稿: 157
Re: ER図の記述について
回答ありがとうございました。こちらの回答遅くなり、すいません。

引用:

kangolさんは書きました:
引用:
okamuraさんは書きました:一意である場合、主なDBで考えると、一意なインデックスか、一意制約をもつものになるかと思います。
JUDEではそれらをひっくるめてインデックスと呼んでしまっている点、わかりにくいとは思っていますが、ここが問題ということでしょうか?

一意制約や参照制約は論理設計の中で考え、INDEXはそのテーブルに対するQUERYから物理設計の中で考えると思うので、「一意になった=INDEX」にも「INDEXを作ってから参照制約」にも違和感があるのです。


ここの違和感、確かにあると思います。
現状、やや無理があることは認識しているのですが、JUDEでインデックスと呼んでいるものは、論理設計ではキーのグループと認識いただく必要があります。実際には、INDEXとして実装されずに、一意制約になることもあります。
kangolさんは、INDEXに対応しているのも違和感があるし、このグループの作成も意識したくない、ということですね。
JUDEの現仕様は、「外部参照がある=一意な属性のグループが必要」ということをもとにしています。そういう意味では問題がない、と認識しています。ただ、インデックスと呼んでいる点で問題があるのと、使い勝手が改善できるかもしれない、と認識しました。

引用:

以前の投稿で上記のように書いていますが、INDEXはQUERYによって変わると思います。JUDE出力のDDLに対してここまでは求めてはいませんが、手書きするか作らないケースではINDEXの生成は不要ではないですか?


そうですね。INDEXの生成が不要なケースはあると思います。
ただ、今のところ、JUDEでそのようなケースをサポートする優先度は低く考えています。

引用:

Aqua Data StudioがER図を書けるようになっていました。試用したところ論理名が書けないことを除くと使い勝手は良さそうです。参考になるかもしれません。
Aqua Fold



参考情報ありがとうございました。
kangolさんの説明と合わせて、試用してみて、kangol様の言われている状況が理解できてきました。

JUDEは、モデリングツールとして、全体的になるべく整合性の保たれたモデルが作成されるようなスタンスの仕様としています。そういう意味で、kangolさんのご期待にお応えできず申し訳ございませんが、「一意な属性のグループが必要」という現仕様から大きく変えることは、今のところなさそうです。ただ、使い勝手も重要ですので、グループを簡単に作成できるようにするなど改めて改善を検討させていただきます。

今のところは、一意なインデックス(キーのグループ)を作成して、外部参照を作成していただければと思います。
« 1 (2)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を