erwinでの属性の役割は何ですか。 ERwinでモデルを構築する。 データベースの同期
最新の情報システムの作成は非常に困難な作業であり、その解決には特別な技術とツールの使用が必要です。 最近、システムアナリストや開発者の間で、CASE(Computer-Aided Software / System Engineering)(ソフトウェア開発のすべての段階を体系化および自動化することを可能にするテクノロジーおよびCASEツール)への関心が大幅に高まっていることは驚くべきことではありません。できるだけ。
読者に提供される本は、PLATINUMテクノロジー(BPwinおよびERwin)からの分析、設計、およびコード生成のための効果的なツールを使用して情報システムを作成するための実用的なガイドです。 また、実際の作業に必要な範囲で、構造解析の方法とデータモデルの設計についても説明します。 メソッドの適用は例によって示されます。
この本は、情報システムの開発、「Interface Ltd.」のトレーニングセンターでのCASEテクノロジーとCASEツールに関する実践的な演習の講義と実施で得られた著者の個人的な経験に基づいて書かれています。 これは、情報技術の分野の専門家(システムアナリスト、プロジェクトマネージャー、開発者)を対象としており、システム分析と情報システム設計の基礎を学ぶ学部生と大学院生にも役立ちます。
本:
関係は、エンティティ間の論理的な関係です。 各関係には、動詞または動詞句(Relationship Verb Phrases)という名前を付ける必要があります(図2.20)。 関係の名前は、ある種の制限またはビジネスルールを表し、図を読みやすくします。次に例を示します。
すべてのクライアント <размещает> 注文;
すべての注文 <выполняется> 従業員。
図。 2.20。 関係名-関係動詞句
リンクには、顧客が行った注文と注文を実行している従業員が正確に表示されます。 デフォルトでは、リンク名は図に表示されていません。 名前を表示するには、モデルオブジェクトで占められていないダイアグラム内の任意の場所を左クリックした場合に表示されるコンテキストメニューに従い、[表示オプション] / [関係]項目を選択して、[動詞句]オプションを有効にします。
論理レベルでは、識別可能な1対多の関係、多対多の関係、および識別できない1対多の関係を確立できます(それぞれ、これらはツールパレットの左から右へのボタンです。 )。
IDEF1Xは、従属エンティティと独立エンティティを区別します。 エンティティのタイプは、他のエンティティとの関係によって決定されます。 識別関係は、独立した(関係の親の端)エンティティと依存した(関係の子の端)エンティティの間に確立されます。 識別関係が描画されると、ERwinは自動的に子を扶養家族に変換します。 依存エンティティは、角が丸い長方形として表されます(エンティティ 注文 図の 2.21)。 依存エンティティのインスタンスは、親エンティティとの関係を介してのみ定義されます。つまり、図1の構造になります。 2.21注文情報は入力できず、注文した顧客に関する情報がないと意味がありません。 識別関係が確立されると、親エンティティの主キー属性が子エンティティの主キーに自動的に転送されます。 リレーションシップを作成するときに子エンティティの属性を拡張するこの操作は、属性の移行と呼ばれます。 子エンティティでは、新しい属性は外部キー-(FK)としてマークされます。
図。 2.21。 独立テーブルと従属テーブルの関係を特定する
後でデータベーススキーマを生成するときに、主キーの属性はNOT NULL記号を受け取ります。これは、顧客番号に関する情報がないと、注文テーブルにエントリを作成できないことを意味します。
非識別関係が確立されると(図2.22)、子エンティティは独立したままになり、親エンティティの主キーの属性が親エンティティの非キーコンポーネントに移行されます。 非識別関係は、独立したエンティティをリンクするために使用されます。
図。 2.22。 非識別関係
エンティティインスタンス 従業員 エンティティのインスタンスに関係なく存在できます デパート、 つまり、従業員はどの部門にもリストされていなくても組織で働くことができます。
識別リンクは、リンクの子端に太字の点が付いた実線(図2.21を参照)、非識別リンク(図2.22)として図に示されています。
新しいリンクを作成するには、次のことを行う必要があります。
ツールパレットの必要なボタン(識別リンクまたは非識別リンク)にカーソルを置き、マウスの左ボタンを押します(図2.2)。
最初に親をクリックし、次に子をクリックします。
通信回線の形状を変更することができます。 これを行うには、マウスで目的の通信回線をつかみ、回線が見栄えが良くなるまで場所を移動する必要があります。
ツールパレットのボタン
識別リンク、ボタンに対応します
多対多の関係とボタン
非識別関係に一致します。
関係のプロパティを編集するには、関係を右クリックして、コンテキストメニューの[関係エディター]項目を選択します。
表示されるダイアログの[全般]タブで、カーディナリティ、名前、接続の種類を設定できます(図2.23)。
コミュニケーション力(カーディナリティ)-子のインスタンスの数に対する親エンティティのインスタンスの数の比率を示すのに役立ちます。
パワーには4つのタイプがあります(図2.24):
親エンティティの1つのインスタンスが0、1に対応する場合、または子エンティティの多くのインスタンスが記号でマークされていない場合の一般的なケース。
Pは、親エンティティの1つのインスタンスが子エンティティの1つまたは複数のインスタンスに対応する場合を示します(ゼロ値は除外されます)。
記号Zは、親エンティティの1つのインスタンスが子エンティティの0または1つのインスタンスに対応する場合を示します(複数の値は除外されます)。
子エンティティのインスタンスの所定の数が親エンティティの1つのインスタンスに対応する場合、数字は完全一致のケースを示します。
図。 2.23。 リレーションシップエディターダイアログ
デフォルトでは、通信電力の記号は図に示されていません。 名前を表示するには、モデルオブジェクトで占められていない図の任意の場所を左クリックした場合に表示されるコンテキストメニューに従い、[表示オプション] / [関係]項目を選択して、[カーディナリティ]オプションを有効にします。
リンク名(動詞句)-親エンティティと子エンティティ間の関係を特徴付けるフレーズ。 識別または非識別の1対多の関係の場合、親から子(親から子)への関係を特徴付ける名前を指定するだけで十分です。 多対多の関係では、親から子への名前と子から親への名前の両方を指定する必要があります。
図。 2.24。 電力指定
リンクタイプ(識別/非識別)。非識別関係の場合、必須(Null)を指定できます。 必須の関係(Nullなし)の場合、データベーススキーマを生成するときに、外部キーが子エンティティの主キーに含まれないにもかかわらず、外部キー属性はNOTNULL記号を受け取ります。 オプションの関係(NULLを許可)の場合、外部キーはNULLにすることができます。 オプションの非識別関係は、親エンティティの側面に透明なひし形でマークされています(図2.22を参照)。
図。 2.25。 リレーションシップエディタダイアログのロール名/ RIアクションタブ
[定義]タブでは、将来参照できるように、関係のより完全な定義を指定できます。
[役割名/ RIアクション]タブで、役割名と参照整合性ルールを設定できます。
ロール名(機能名)-これは、子エンティティでの属性の役割を示す外部キー属性の同義語です。
図。 2.26。 外部キーの役割名
図に示す例では、 2.26、本質的に 従業員 外部キー 部門番号 この属性がエンティティで果たす役割を示す機能名「WhereWorks」があります。 デフォルトでは、ロール名のみが属性リストに表示されます。 属性のフルネーム(機能名とロール名の両方)を表示するには、モデルオブジェクトで占められていないダイアグラム内の任意の場所を左クリックした場合に表示されるコンテキストメニューで、[表示オプション/エンティティ]項目を選択し、次に、ロール名/属性を有効にします(図2.25)。 フルネームは、機能名とベース名としてドットで区切られて表示されます(図2.26を参照)。
1つのエンティティの2つ以上の属性が同じスコープで定義されている場合、つまり、スコープが同じで意味が異なる場合は、ロール名を使用する必要があります。 図では 2.27エッセンス 通貨の販売 販売と購入の2つの通貨が関係する外貨両替の行為に関する情報が含まれています。 通貨に関する情報はエンティティに含まれています 通貨。 したがって、エンティティ 通貨の販売 そして 通貨 2回リンクする必要があり、主キーは 通貨番号 エンティティに2回移行する必要があります 通貨 外部キーとして。 これらの属性を区別する必要があります。これらの属性には、販売通貨と購入通貨の数に関する情報が含まれていますが(意味は異なります)、同じエンティティを参照しています。 通貨 (値の共通範囲があります)。 図の例では。 2.27属性にロール名が付けられました 販売済み そして 購入した。
図。 2.27。 必須の役割名
必須の役割の命名の別の例は 再帰リンク(「フィッシュフック」と呼ばれることもあります)同じエンティティが同時に親と子の両方である場合。 再帰的関係を定義する場合、属性は外部キーとして同じエンティティの非キー属性に移行する必要があります。 属性は、同じエンティティに同じ名前で2回表示することはできないため、必ずロールの名前を取得する必要があります。 図では 2.26エッセンス 従業員 主キー属性が含まれています 人員番号。 上司は同じ組織で働いているため、従業員の上司情報は同じエンティティに含まれています。 従業員のマネージャーを参照するには、再帰的な関係を作成し(図2.26では、マネージャーとレポートの関係)、ロールに名前を付けます(「マネージャー」)。 再帰リンクは非識別のみである可能性があることに注意してください。 それ以外の場合、外部キーは主キーの一部であり、スキーマの生成時にNOTNULL記号を受け取る必要があります。 これにより、階層を構築できなくなります(従属ツリーにはルートが必要です)。組織内の誰にも報告しない従業員です。
リンクは図のリード/従います。 2.26を使用すると、従業員の従属のツリーのような階層を格納できます。 この種の再帰リンクは 階層再帰また、マネージャー(親エンティティのインスタンス)が多くの部下(子エンティティのインスタンス)を持つことができるが、部下には1人のマネージャーしかない場合の関係を定義します(図2.28)。
階層再帰ネットワーク再帰
図。 2.28。 階層的およびネットワーク再帰におけるエンティティインスタンスの従属
別の種類の再帰は ネットワーク再帰、リーダーが多くの部下を持つことができ、逆に、部下が多くのリーダーを持つことができる場合。 ネットワーク再帰は、親インスタンスと子インスタンスの間の関係のウェブを定義します。 これは、エンティティがそれ自体と多対多の関係にある場合です。 多対多の関係を解決するには、新しいエンティティを作成する必要があります(多対多の関係については、以下で詳しく説明します)。
図。 2.29。 ネットワーク再帰の実装例
図では 2.29は、ネットワーク再帰の実装の例です。 この構造は、複雑な家族間の関係をモデル化しています。 属性 関係タイプ 「父の息子」、「母の娘」、「祖父の孫」、「義母の義理の娘」、「義父」などの意味をとることができます。関係は常に本質から二人をつなぐ Phの親戚。 エンティティ 関係 役割名「Senior」と「Junior」で2つの識別関係が確立されています。 各家族は他の家族と親族関係にある可能性があり、さらに、同じ親戚のペアが異なるタイプの親族関係に関連付けられる可能性があります。
属性が外部キーとして複数のレベルに移行される場合、最初のレベルには完全修飾外部キー名(ロール名+属性のベース名)が表示され、2番目以上のレベルにはロール名のみが表示されます。 図では 2.30は、エンティティを含むデータ構造を示しています チーム、 エッセンス プレーヤー、 各チームのプレーヤーとエンティティに関する情報を格納します ゴール、 各プレーヤーが得点する情報と目標が含まれています。 外部キー属性 チーム番号 エンティティ プレーヤー 「彼はどのチームでプレーするか」という役割名を持っています。
図。 2.30。 役割名の移行
次のレベルでは、本質的に ゴール、 対応する外部キー属性のロール名のみが表示されます (彼がプレーするチーム)。
参照整合性(RI)ルールは、データを使用するためのビジネスルールを表し、挿入、置換、および削除のルールを表す論理構造です。 [役割名/ RIアクション]タブで指定された論理モデルオプションに基づいてデータベーススキーマを生成すると、宣言的な参照整合性ルールが生成されます。これは、関係ごとに規定する必要があり、参照整合性を保証するトリガーです。 トリガーは、挿入、置換、または削除コマンド(INSERT、UPDATE、またはDELETE)が実行されるたびに実行されるプログラムです。 図では 2.30エンティティ間に識別関係があります チーム そして プレーヤー。 コマンドを削除するとどうなりますか? エンティティインスタンス プレーヤー コマンドなしでは存在できません(主キー属性 彼はどのチームでプレーしますか。 チーム番号 NULLにすることはできません)。したがって、チームに少なくとも1人のプレーヤーがいる限り、チームの削除を禁止するか(チームを削除するには、最初にすべてのプレーヤーを削除する必要があります)、すぐにすべてのプレーヤーを一緒に削除する必要があります。チームと。 これらの削除ルールは「制約」および「カスケード」と呼ばれます(親RESTRICTおよび親CASCADE、図2.25を参照)。 エンティティに注意してください プレーヤー そして ゴール、 次に、それらは識別リンクによってもリンクされ、チームがカスケードによって削除されると、すべてのチームプレーヤーと彼らが獲得したすべてのゴールが削除されます。 1つの行を削除するコマンドを実行すると、実際にはデータベース内の数千の行が削除される可能性があるため、カスケード削除ルールの使用には注意が必要です。 削除制限ルールが設定されている場合、少なくとも1人のプレーヤーがいるコマンドを削除しようとすると、リレーショナルDBMSサーバーはエラーを返します。
図では 2.26エンティティ間にオプションの非識別関係を確立しました デパート そして 従業員。 エンティティインスタンス 従業員 部門参照なしで存在できます(外部キー属性 それはどこで機能しますか。 部門番号 NULLにすることができます)。 この場合、ゼロに設定するためのルールを設定することが可能です-SETNULL。 部門を削除する場合、エンティティの外部キー属性 従業員-彼が働いている場所。 部門番号 NULLになります。 つまり、部門が削除されても、従業員はどの部門にも割り当てられずに組織で作業を続け、自分に関する情報が保存されます。
さらに2つの削除ルールを設定することができます(DBMSでサポートされている場合)。
SET DEFAULT-削除すると、外部キー属性にデフォルト値が割り当てられます。 たとえば、チームが削除された場合、プレーヤーは別のチームに移される可能性があります。
NONE —外部キー属性の値は削除しても変更されません。 プレーヤーに関する記録は「宙に浮いた」、つまり、まだ存在していないチームを指します。 この状況は、「フラット」テーブルでは一般的です。 たとえば、プレーヤーとチームに関する情報がdbfファイルに保存されている場合、チームレコードを削除すると、プレーヤーファイルは、対応するチームが存在しないことを「何も知りません」。 したがって、デスクトップまたはファイルサーバーシステムでは、参照整合性ルールを適用する機能がクライアントアプリケーションに実装されます。
削除ルールは、行が削除されたときにデータベースで何が行われるかを制御します。 同様に、挿入ルールと更新ルールは、行が変更または追加された場合にデータベースに何が起こるかを制御します。 たとえば、少なくとも1人のプレーヤーが登録されている場合にのみ、新しいチームを追加できるルールを設定できます。 目的の動作は、次のアクションで実現できます。
エンティティ間の関係のカーディナリティを設定します チーム そして プレーヤー、 「1つ以上」に等しい-1つ以上(タイプP)。 識別リンクが確立されていると見なされます。
テーブルに新しい行を作成するときに、RIトリガー「ParentInsert-CASCADE」のアクションを割り当てます。 チーム 子テーブルに少なくとも1つの行が自動的に作成されました プレーヤー。
RIトリガー「ParentDelete-CASCADE」のアクションをリンクに割り当てて、行がテーブルから削除されたときに チーム テーブルの対応する1つまたは複数の行 プレーヤー も削除されました。
ERwinは、ダイアグラムに追加する前に、デフォルトの参照整合性値を各関係に自動的に割り当てます。 ERwinのデフォルトのRIモード(表2.4に表示)は、[ターゲットサーバー]ダイアログ([サーバー] / [ターゲットサーバー]メニュー)の[RIのデフォルト]ボタンをクリックすると呼び出される[参照整合性のデフォルト]エディターで変更できます。
表2.4。 ERwinのデフォルトのRI値と各通信タイプの可能なモード
関係の特定 | 許可されるヌル | 非識別関係(ヌルなし) | カテゴリリンク | |
子削除可能なモード | 制限、カスケード、なし | RESTRICT、CASCADE、NONE、SET NULL、SET DEFAULT | RESTRICT、CASCADE、 | |
無し | ||||
子のデフォルトモードの削除 | 無し | 無し | 無し | 無し |
子挿入可能なモード | RESTRICT、CASCADE、 | RESTRICT、CASCADE、NONE、SET DEFAULT | RESTRICT、CASCADE、 | |
無し | 無し | |||
子挿入のデフォルトモード | 制限 | SET NULL | 制限 | 制限 |
子の更新可能なモード | 制限、カスケード、なし | RESTRICT、CASCADE、NONE、SET NULL、SET DEFAULT | RESTRICT、CASCADE、NONE、SET DEFAULT | 制限、カスケード、なし |
子更新のデフォルトモード | 制限 | SET NULL | 制限 | 制限 |
親削除可能なモード | 制限、カスケード、なし | RESTRICT、CASCADE、NONE、SET NULL、SET DEFAULT | RESTRICT、CASCADE、NONE、SET DEFAULT | RESTRICT、CASCADE、 |
無し | ||||
親削除デフォルトモード | 制限 | SET NULL | 制限 | カスケード |
親挿入可能なモード | 制限、カスケード、なし | RESTRICT、CASCADE、NONE、SET NULL、SET DEFAULT | RESTRICT、CASCADE、NONE、SET DEFAULT | 制限、カスケード、なし |
親挿入デフォルトモード | 無し | 無し | 無し | 無し |
親の更新可能なモード | 制限、カスケード、なし | RESTRICT、CASCADE、NONE、SET NULL、SET DEFAULT | RESTRICT、CASCADE、NONE、SET DEFAULT | 制限、カスケード、なし |
親の更新のデフォルトモード | 制限 | SET NULL | 制限 | カスケード |
多対多の関係論理データモデルのレベルでのみ可能です。 図では 上記の2.31は、多対多の関係の例です。 医者は多くの患者を見ることができます、患者は何人かの医者によって治療されることができます。 この接続は、両端に2つの点がある実線で示されます。
エンティティとそれらに関する情報の作成は、全体像の一部にすぎません。 リンクは、2つのエンティティ間の論理的な接続または関連付けです。 ERでサポートされているリンクの種類に精通していない場合
勝つ、ERメソッドガイドを参照してくださいウィンメソッドガイド.この章では、次の方法を学習します。
新しいリンクを作成する 従属エンティティへの外部キーの転送 関係エディターに入る 関係定義エディターに入る リンクの「曲がり」の位置を修正しますリンクの描画を開始する前に知っておく必要のある基本的な情報がいくつかあります。
債券とは正しいエディターを入力する方法 ツールボックスのどのツールが必要ですか接続の構造
コミュニケーションデータは非常に重要であり、日常業務で使用する重要なデータであることがよくあります。 たとえば、特定の種類の楽器について知ることは重要ですが、特定の楽器が誰に属しているか(人と楽器の関係)を知ることは重要な場合があります。 コミュニケーション-これは、2つのエンティティ間、またはエンティティと同じエンティティ間の関係です。 リンクは、1つ以上の属性(外部キー)で表される「論理」オブジェクトです。 ERコミュニケーション
勝つ通常、5種類の情報が含まれています。リンクの種類、リンクの親の端、リンクの子の端、リンクの「必須」記号、およびリンクのカーディナリティです。画面にエディタメニューを表示する方法
エディタメニューがないメニューバーが付属しています。 右クリックすると、いつでも[表示]メニューと[エディタ]メニューに入ることができます。 矢印カーソルで図をポイントすると、画面の[表示]メニューが呼び出され、オブジェクトをポイントすると、このオブジェクトに関連付けられているすべてのエディターを含むメニューが呼び出されます。 ただし、メニューバーに[エディタ]メニューを表示したり、そこから削除したりすることはできます。1.オプションメニューの[エディタメニューの表示]ラジオボタンを選択して、メニューバーにエディタメニューを表示します。
2.メニューバーからエディタメニューを削除するには、このコマンドを繰り返します。
ツールボックスリンクのサポート
勝つツールボックスには、識別、非識別、完全なサブタイプクラスター、不完全なサブタイプクラスター、未定義(多対多の関係)の5種類の関係があります。 本物のリンク-子エンティティのインスタンスが親エンティティとの関連付けを通じて識別される関係。 親エンティティの主キー属性は、子の主キー属性になります。 非識別関係-これは、子エンティティのインスタンスが親エンティティとの関連付けによって識別されないような関係です。 親エンティティの主キー属性は、子の非キー属性になります。 章も参照してください。 ナイン、 接続:複雑さのレベルが上がる機会、宗派。 「非識別関係の設定」および「サブタイプ関係の作成」。1.必要なツールにカーソルを置き、マウスの左ボタンを押します。
識別リンク 非識別関係2.親をクリックしてから子をクリックして、関係を作成します。
リンクのエディタポップアップメニューの使用
リンク用のエディタメニューの特別な短縮バージョンが含まれています。 ダイアグラムウィンドウのリンクを右クリックすると、ER勝つリンク指向のエディターのみを含む、短縮された状況依存バージョンのエディターメニューが表示されます。章を参照してください。 3、 のエンティティと属性 ER 勝つ 、宗派。 「ERエディターの使用勝つ".
リンク行にカーソルを置き、Shiftキーを押しながらマウスの左ボタンでダブルクリックすると、ダイアログボックスが表示され、親エンティティまたは子エンティティのアクティブなエディタを開くかどうかをERwinが尋ねます。 マウスボタンをクリックして親エンティティまたは子エンティティを選択し、[OK]をクリックします。
絆を築く
ERでリンクを作成する
勝つ簡単に。 このセクションでは、リレーションシップを作成し、それに必要な情報を入力する方法について説明します。リンクを作成する方法
1.ツールボックスで、必要なリンクのタイプに対応するツールを選択します(識別リンクは、末尾に1つのポイントがある単純な線であり、非識別リンクは破線です。これは可能です(ただし、そうする必要はありません)。 )一方の端にひし形があり、もう一方の端にドットがあります)。
2.関係を描きます。最初に親をクリックし、次に子をクリックします。
関係を作成すると、親エンティティキーは、子キーの一部(識別関係の場合)または子エンティティの非キー属性(非識別関係の場合)として自動的に表示され、その横に表示されます。 be(FK)、つまり外部キー、外部キー。 関係の作成によって子エンティティを変更するこの操作は、 キーの移行
.ERwinは自動的にキーを移行するため、外部キーを入力する必要はありません。 これを行うと、属性と列が重複し、プロジェクトで競合状況が発生します。
リレーションシップエディターでの作業
エンティティと同様に、関係には名前とラベルを付けることができます。 これらのラベルは動詞句と呼ばれ、親が子とどのように関連しているかを説明する必要があります。 関係エディターを使用すると、動詞句、カーディナリティ、および関係のnull値との関係を定義できます。
リレーションシップエディタで外部キー属性のロール名を指定することもできます。 章も参照してください。 8、 エンティティと属性:高度なレベルの機能、宗派。 「属性ロール名の使用」。
リレーションシップエディタを開く方法
1.エディタメニューでコマンド「Relationship」を実行します。
2.編集するリンクをダブルクリックします。 Relatioエディターに入ります
nship。リンク行の上にカーソルを置き、右クリックします。 エディタのポップアップメニューに入ります。 その中にコマンド「Relationship」を与えます。
リレーションシップエディタの使用方法
1.「動詞句」ウィンドウにリンクを識別する名前を入力します。
通常、接続の名前は動詞句です。 リンクの名前は、説明するためにできるだけ完全なものにしてください。リレーションシップエディタには、動詞句の最初の4行が表示され、さらに多くの行を入力して表示できます。
キャリッジリターンキーを使用して、新しい行に移動します。 ER
勝つエディターに入力すると同時に、図に動詞句を描画します。2.動詞句を入力する領域の隣には、「外部キー」リストがあります。このリストには、現在の関係を設定するときに移行の結果として発生したすべての外部キーが含まれています。
3.通信タイプがまだ定義されていない場合は、選択ボタン「識別」または「非識別」を押して設定します。
4. [カーディナリティ]ウィンドウと[ヌル]ウィンドウで目的の選択ボタンを押して、現在の関係のカーディナリティとヌルモードを設定します。
5.ロール名を外部キーに関連付ける場合は、[外部キー]リストボックスの属性をクリックし、[ロール名]テキストボックスにロール名を入力します。
章を参照してください。 8、エンティティと属性:高度な機能、秒。 「属性ロール名の使用」。
動詞句ウィンドウの表示方法
動詞句ウィンドウのスクロール矢印を使用して、長い動詞句のテキスト全体を表示できます。
接続のカーディナリティを設定する
コミュニケーションカーディナリティ
子のインスタンスの数に対する親エンティティのインスタンスの数の比率を示すのに役立ちます。 親エンティティは、4つの方法のいずれかで子エンティティと通信できます。 IDEF1Xでは、バイナリ関係のカーディナリティは1:nです。ここで、nは次の値を取ることができます。0、1、またはそれ以上-「空白」で示されます各親エンティティは、子の0、1、またはそれ以上のインスタンスに関連付けられています。 1つ以上-文字「P」で示されます
各親エンティティは、子の1つ以上のインスタンスに関連付けられています。 0または1-文字「Z」で示されます
各親エンティティは、0または1つの子インスタンスに関連付けられています。 正確にn、ここで「n」はいくつかの数です
各親エンティティは、子の正確にn個のインスタンスに関連付けられています。
リレーションシップエディタでは、リレーションシップのカーディナリティを定義することもできます。
1.リレーションシップエディタで、必要なカーディナリティの選択ボタンをクリックします。
2.「正確に」ボタンを押した場合は、番号を入力する必要があります。
このモードを設定し、番号を入力しなかった場合、ER
勝つダイアログボックスを終了することはできません。接続のカーディナリティを表示する方法
関係のカーディナリティを図で示すことができます。接続のカーディナリティを表示または削除する方法
1. [表示]メニューで[カーディナリティ]コマンドを実行します。
2.カーディナリティ情報を削除するには、このコマンドを繰り返します。
章も参照してください。 十一、 ルールの文書化(ビジネスルール)、宗派。 「カーディナリティを使用してルールを表現します。」
ヌルモードの設定
リレーションシップエディタで「null値」モードを設定することもできます。 これは、値がない場合を指します。つまり、空のセットまたは「列なし」です。 ゼロ値をとることができる属性は「オプション」と見なされ、リンクの親端にひし形として図に示されています。 このモードは他の場所でも設定できますが、一般的に言って、このような最初の機会はこのエディターで提供されます。
「必須」の設定方法または
「オプション」リンク
1.リレーションシップエディタで、[ヌルなし]ボタンをクリックして「必須」リレーションシップ(親側にひし形なし)を設定するか、[ヌル許可]ボタンをクリックして「オプション」リレーションシップ(親端にひし形付き)を設定します。 )。
関係定義エディターでの作業
後で参照できるように、関係をより完全に定義することもできます。 これは、Relanship DefinitionEditorで実行されます。
1.まだ行っていない場合は、[エディター]メニューの[関係の定義]コマンドを実行します。
2.編集するリンクをダブルクリックします。
編集するリンクにカーソルを置き、マウスの右ボタンを押します。 エディタメニューでコマンド「関係の定義」を実行します。
リンクをダブルクリックしようとしたときに「最初にオブジェクトを選択してください」というメッセージが表示された場合は、リンクを正確にクリックしなかったことを意味します。 メッセージボックスの[OK]ボタンをクリックして画面から削除し、再試行してください。 線に沿って正確にクリックしてみてください。
関係定義エディターの使用方法
1.リンク名がある場合は、「動詞句」ウィンドウに表示されます。 必要に応じて編集できます。
2.必要に応じてリレーションシップの物理名を編集します。
3.「Rel」に定義を入力します
ationshipの定義」。4.終了したら、[OK]ボタンをクリックして情報を保存し、エディターを終了します。 変更を保存せずにエディタを終了するには、[キャンセル]ボタンをクリックします。
リンクの修正
通信回線の形状が気に入らない場合は、変更することができます。 これを行うには、マウスでリンクの角をつかみ、線が見栄えが良くなるまで場所から場所へドラッグする必要があります。
リンクを修正する方法
1.編集するリンクをクリックします。 リンク「レバー」(暗い四角)が画面に表示されます。 転送できる通信回線上の場所を定義します。
2.レバーが描かれているリンクセグメントの任意の場所をクリックします。
3.マウスの左ボタンを離さずに、好みに応じて通信回線の位置を変更してから、マウスボタンを離します。
ダイアグラムに加えた変更を定期的に保存することを忘れないでください。
第4章の簡単なレビュー
エディタメニューを表示または非表示
オプションメニューの[エディタメニューの表示]コマンドを実行して、メニューバーにエディタメニューを表示します。 メニューバーからエディタメニューを削除するには、このコマンドを繰り返します。
コミュニケーション指向のツールの使い方
必要なツールにカーソルを置き、マウスの左ボタンをクリックします。
新しい関係を作成する方法
ツールボックスの関係アイコンの1つをクリックしてから、最初に親をクリックし、次に子をクリックします。
外部キーを依存エンティティに移行する方法
何もしないでください。 ERwinは、関係を作成するときに外部キーを自動的に移行します。 自分で外部キーを挿入しないでください。
リレーションシップエディタの入力方法
[エディター]メニューで[関係]モードがアクティブになっていることを確認してから、編集する関係をダブルクリックします。
接続のカーディナリティを設定する方法
リレーションシップエディタで、[カーディナリティ]ウィンドウの選択ボタンの1つをクリックして、リレーションシップのカーディナリティを設定します。 [正確に]ボタンをクリックした場合は、ボタン名の横のテキストボックスに正確なカーディナリティ値を入力する必要があります。
関係定義エディターの入力方法
「エディター」メニューで「関係定義」モードがアクティブになっていることを確認してから、編集する関係をダブルクリックします。
通信回線の形態を修正する方法
線の角の1つをクリックして、線がより美しくなるまで移動します。
労働作業№3。 Erwinを使用したデータベースモデリング
仕事の目的-CASEを使用して論理的および物理的データモデルを作成するための実践的なスキルの学生による習得-情報システム開発ツール。
基本情報
ERwinは、データベースのフォワードモデリングとバックワードモデリングをサポートしています。 直接モデリングでは、データベーススキーマは実体関連図を使用して直接記述されます。 図のエンティティは長方形で表されます。 各長方形は、異なる視覚的属性を持つことができます。 各エンティティには一意の名前を割り当てる必要があります。 エンティティ名は単数である必要があります。 これは、システムが常にエンティティの個別のインスタンスで動作するという事実によって決定されます。 この場合、エンティティの個々のインスタンスはオブジェクトと見なされ、エンティティはオブジェクトのクラスと見なされます。 エンティティがBPwinでのモデリング中に記述された場合、それらは単にERwinにインポートできます。 エンティティが作成された図の例を図に示します。
図4-エンティティが作成された図の例
ERwinでのモデル構築
情報モデルには2つの可能な視点があり、したがって、モデルには2つのレベルがあります。 1つ目は、論理レベル(ユーザーの視点)は、実生活からの事実を直接表示することを意味します。 たとえば、人、テーブル、部門、犬、コンピューターは実際のオブジェクトです。 それらは自然言語で名前が付けられ、単語の区切り文字(スペース、コンマなど)が付いています。 モデルの物理レベルでは、特定のDBMSの使用が考慮され、データ型(整数や実数など)、テーブルのインデックスが決定されます。
ERwinは、単一の図(モデル)のこれら2つの異なるレベルのプレゼンテーションを作成および管理する機能を提供し、各レベルで多くの表示オプションを備えています。 ERwinの「ロジックレイヤー」という用語は、概念モデルに従います。
情報モデルを構築する段階。
- エンティティの定義;
- エンティティ間の依存関係を定義する。
- 主キーと代替キーの設定。
- エンティティ属性の定義。
- モデルを必要なレベルの正規形にする。
- モデルの物理的記述への移行:通信の割り当てエンティティ名-テーブル名、エンティティ属性-テーブル属性。
- トリガー、手順、および制約を設定します。
- データベースの生成。
アーウィンは、解決されている問題の視覚的表現(データモデル)を作成します。 このビューは、開発サイクル中に必要なドキュメントの詳細な分析、改良、および配布に使用できます。 ただし、ERwinは単なる描画ツールではありません。 ERwinは、データベース(テーブル、インデックス、ストアドプロシージャ、参照整合性のトリガー、およびデータの管理に必要なその他のオブジェクト)を自動的に作成します。
エンティティの作成。
モデルにエンティティを追加するには、ツールバー(Erwin Toolbox)のエンティティボタンをクリックしてから、ダイアグラム上の新しいエンティティを配置する場所をクリックする必要があります。 エンティティを右クリックし、ポップアップメニューから[エンティティエディタ]を選択すると、エンティティの名前、説明、およびコメントを定義する[エンティティエディタ]ダイアログを開くことができます。
各エンティティは、[定義]タブのテキストによる説明を使用して完全に定義する必要があります。 これらの定義は、オブジェクトの種類を理解できるため論理レベルでも、スキーマの一部としてエクスポートして実際のデータベースで使用できるため物理レベルでも役立ちます( entity_nameのCREATECOMMENT)。 注、注2、注3、UDP(ユーザー定義プロパティ)タブは、エンティティにコメントと定義を追加するために使用されます。
各エンティティの[アイコン]タブで、モデルビューモードでアイコンレベルで表示される画像と、他のすべてのレベルで表示される画像を関連付けることができます。
[エンティティエディタ]ダイアログの[UDP]タブは、ユーザー定義のプロパティを定義するために使用されます([ユーザー]-[定義済みのプロパティ])。 このタブのボタンをクリックすると、[ユーザー定義プロパティエディター]ダイアログが呼び出されます([編集] / [UDP]メニューからも呼び出されます)。 UDPを起動するオブジェクトの種類(図全体、エンティティ、属性など)とデータ型を指定する必要があります。 新しいプロパティを追加するには、テーブルのボタンをクリックして、名前、データ型、デフォルト値、および定義を入力します。
属性の作成。
モデル作成の次のステップは、各エンティティの属性を設定することです。 属性タイプを指定する場合、ドメインを使用することができます。 ドメインは、任意の物理データ型に割り当てられる抽象的なユーザー定義型です。 さらに、各ドメインには、入力データを検証するための独自のデフォルト値とルールを設定できます。 ERwinは、独自のデータ型の作成に関連するすべてのステップを文書化する機能を提供します。 ドメインの概念を使用して、データベースはさまざまなハードウェアプラットフォーム間で移植可能です。
![]() | ![]() |
図7-新しいドメインのデフォルト値
図8-ドメインを使用して属性のデータ型を指定する。
属性を説明するには、エンティティを右クリックして、表示されるメニューから[属性エディタ]を選択します。 [属性エディタ]ダイアログが表示されます。
[新規]ボタンをクリックすると、表示される[新しい属性]ダイアログで、属性の名前、物理モデルでそれに対応する列の名前、およびドメインを指定できます。 属性のドメインは、物理モデルレベルで列タイプを定義するときに使用されます。
属性エディタの[全般]タブの主キー属性については、[主キー]選択ボックスでチェックマークを付ける必要があります。
[定義]、[メモ]、および[UDP]タブには、エンティティを定義するときと同じ機能がありますが、属性レベルです。
図をわかりやすくするために、各属性をアイコンに関連付けることができます。 これは、[全般]タブのアイコン選択リストを使用して実行できます。
属性に正しい名前を付けることが非常に重要です。 属性は単数で名前を付け、明確な意味を持っている必要があります。
IDEF1X構文によれば、属性名は(エンティティ内だけでなく)モデル内で一意である必要があります。 デフォルトでは、既存の属性名を入力しようとすると、ERwinはその名前を変更します。 たとえば、Comment属性がモデルにすでに存在する場合、(別のエンティティ内の)別の属性にはComment / 2、次にComment / 3という名前が付けられます。
エンティティ内およびエンティティ間で属性を転送する場合、ツールパレットのボタンを選択することでドラッグアンドドロップ手法を使用できます。
新しい関係を作成するには、ツールボックス(ERwin Toolbox)で識別関係または非識別関係を選択し、最初に親をクリックしてから、子エンティティをクリックします。
ツールパレットでは、ボタンは識別関係に対応し、多対多関係ボタンに対応し、ボタンは非識別関係に対応します。 リレーションシップのプロパティを編集するには、リレーションシップを右クリックし、コンテキストメニューから[リレーションシップエディター]を選択します。
表示されるダイアログの[全般]タブで、カーディナリティ、名前、接続の種類を設定できます。
通信力(カーディナリティ)-子のインスタンスの数に対する親エンティティのインスタンスの数の比率を示すのに役立ちます。
力には4つのタイプがあります:
・親エンティティの1つのインスタンスが子エンティティの0、1、または多数のインスタンスに対応する一般的なケースでは、記号でマークされていません。
・記号Pは、親エンティティの1つのインスタンスが子エンティティの1つまたは複数のインスタンスに対応する場合を示します(ゼロ値は除外されます)。
・記号Zは、親エンティティの1つのインスタンスが子エンティティの0または1つのインスタンスに対応する場合を示します(複数の値は除外されます)。
・数字は、親エンティティの1つのインスタンスが子エンティティの所定の数のインスタンスに対応する場合を示します。
デフォルトでは、通信電力の記号は図に示されていません。 名前を表示するには、モデルオブジェクトで占められていないダイアグラム内の任意の場所を右クリックした場合に表示されるコンテキストメニューに従い、[表示オプション/関係]項目を選択して、[カーディナリティ]オプションを有効にします。
リンクタイプ(識別/非識別)。
IDEF1Xは、従属エンティティと独立エンティティを区別します。 エンティティのタイプは、他のエンティティとの関係によって決定されます。 識別関係は、独立した(関係の親の端)エンティティと依存した(関係の子の端)エンティティの間に確立されます。 識別関係が描画されると、ERwinは子関係を依存関係に自動的に変換します。 依存エンティティは、角の丸い長方形で描画されます。
依存エンティティのインスタンスは、親エンティティとの関係を通じてのみ定義されます。 識別関係が確立されると、親エンティティの主キー属性が子エンティティの主キーに自動的に転送されます。 リレーションシップを作成するときに子エンティティの属性を拡張するこの操作は、属性の移行と呼ばれます。 子エンティティでは、新しい属性は外部キーとしてマークされます-(FK)。
非識別関係が確立されると、子は独立したままになりますが、親の主キー属性は子の非キーコンポーネントに移行されます。 非識別関係は、独立したエンティティをリンクするために使用されます。
識別リンクは、リンクの子端に太字の点が付いた実線と、非識別リンクが破線で示されています。
識別できない関係の場合は、必須を指定できます([関係エディター]ダイアログの[全般]タブの[NULL])。 必須の関係(Nullなし)の場合、データベーススキーマを生成するときに、外部キーが子エンティティの主キーに含まれないにもかかわらず、外部キー属性はNOTNULL記号を受け取ります。 オプションの関係(NULLを許可)の場合、外部キーはNULLにすることができます。 オプションの非識別関係は、親エンティティの側面に透明なひし形でマークされています
リンク名(動詞句)-親エンティティと子エンティティ間の関係を特徴付けるフレーズ。 識別または非識別の1対多の関係の場合、親から子(親から子)への関係を特徴付ける名前を指定するだけで十分です。 多対多の関係では、親から子への名前と子から親への名前の両方を指定する必要があります。 名前を表示するには、モデルオブジェクトで占められていない図の任意の場所を右クリックした場合に表示されるコンテキストメニューに従い、[表示オプション] / [関係]項目を選択して、[動詞句]オプションを有効にします。
ロール名または機能名(ロール名)子エンティティでの属性の役割を示す外部キー属性の同義語です。 ロール名は、[リレーションシップエディタ]ダイアログの[ロール名/ RIアクション]タブで設定できます。
キーの作成。
各エンティティインスタンスは一意であり、他の属性とは異なる必要があります。
主キーエンティティインスタンスを一意に識別する属性または属性のグループです。 図の主キー属性は特別な指定を必要としません-これらは水平線の上の属性リストにある属性です。 [属性エディタ]ダイアログで新しい属性を追加する場合、それを主キー属性にするには、[全般]タブの下部にある[主キー]チェックボックスを有効にする必要があります。 図では、属性転送モード(ツールパレットのボタン)を使用して、キー属性を主キーに追加できます。
1つのエンティティには、主キーであると主張する複数の属性または属性のセットが含まれる場合があります。 そのような申請者は呼ばれます 潜在的なキー(候補キー)。
キーは複雑になる可能性があります。 複数の属性を含みます。 複雑な主キーは特別な表記を必要としません-それらは水平線より上の属性のリストです。 主キーを選択するときは、より単純なキーを優先する必要があります。 属性の少ないキー。
多くのエンティティには、潜在的なキーが1つしかありません。 このキーがプライマリになります。 一部のエンティティには、複数の可能なキーがある場合があります。 次に、そのうちの1つがプライマリになり、残りは代替キーになります。
代替キープライマリキーになっていない潜在的なキーです。
各キーにはインデックスが関連付けられており、その名前も自動的に割り当てられます。 キー名とインデックス名は、必要に応じて手動で変更できます。
この図では、代替キー属性は(Akn.m.)として示されています。ここで、nはキーの序数、mはキーの属性の序数です。 代替キーに複数の属性が含まれている場合、(Akn.m。)はそれぞれの後に配置されます。
外部キー関係がエンティティを接続すると、自動的に作成されます。関係は子エンティティの主キー属性への参照を形成し、これらの属性は子エンティティの外部キーを形成します(キーの移行)。 外部キー属性は、名前の後に(FK)で示されます。
依存エンティティは、複数の親エンティティからの同じキーを持つことができます。 エンティティは、いくつかの異なる関係を通じて、同じ親から同じ外部キーを複数回受け取ることもできます。 ERwinは、これらのイベントの1つを検出すると、2つの属性が同じであることを認識し、外部キー属性を依存エンティティに1回だけ配置します。 同一の属性のこの組み合わせまたは融合は、統合と呼ばれます。
統一が望ましくない場合があります。 たとえば、2つの属性の名前が同じであるが、実際には意味が異なる場合、この違いを図に反映させる必要があります。 この場合、外部キーロール名を使用する必要があります。
図の関係は、あるエンティティ(テーブル)から別のエンティティ(テーブル)に向かう線で表されます。 各リンクには一意の名前が割り当てられます。 リンクされたテーブルは、親テーブルと子テーブルに分けられます。 親テーブルは角が四角い長方形で表示され、子テーブルは角が丸い長方形で表示されます。
データ形式のすべての属性を指定した後、作成した論理モデルを物理モデルに変換する必要があります。 このためにあなたはする必要があります ツール選択 新しいモデルを導き出す、ここで、ターゲットデータベースは ODBC /ジェネリック(MySQL DBMSで使用する場合)図9を参照してください。モデル(図4を参照)は、図11を参照する形式に変換されます。
図9-論理モデルから物理モデルへの変換
図10-データ形式を示す物理モデル。
図11-SQLコードの生成
タスク
1.特定のサブジェクトエリアの特定のエンティティ(直接モデリング)を使用して図を作成します。
2.特定のエンティティごとに属性を設定します。 属性を設定するときにドメインを使用します。
3.エンティティ間の関係を入力します。 リンクに一意の名前を付けます。
4. MYSQL DBMSを使用して、投影された情報データベースのデータベースを直接生成することを決定します。
5.レポートには、MYSQLDBMSの概念モデルと物理データベースが含まれている必要があります。
質問を制御する
1. ERwinを使用したデータモデルの表示の論理レベルと物理レベルの違いは何ですか?
2.実体関連図の形式で、キーに基づいて、および完全な属性モデルの形式で表されるデータモデルの違いは何ですか?
3. IDEF1X方法論に従って提示されたデータモデルの主なコンポーネントは何ですか?
DBMSでサポートされているデータ型のリストは、製造元に確認する必要があります
関係は、エンティティ間の論理的な関係です。 各接続には、動詞または動詞句で名前を付ける必要があります。 関係の名前は、ある種の制限またはビジネスルールを表し、図を読みやすくします。 デフォルトでは、リンク名は図に表示されていません。 論理レベルでは、識別可能な1対多の関係、多対多の関係、および識別できない1対多の関係を確立できます。 リンクは、物理層の外部キーに対応する論理層の概念です。 ERwinでは、関係は5つの基本的な情報によって表されます。
●関係のタイプ(識別、非識別、完全/不完全なカテゴリ、非特定の関係)。
●親エンティティ。
●子(依存)エンティティ。
●コミュニケーション能力(カーディナリティ)。
●空(null)値の許容性。
IDEFIXは、従属エンティティと独立エンティティを区別します。 エンティティのタイプは、他のエンティティとの関係によって決定されます。 識別関係は、独立した(親)エンティティと依存した(子)エンティティの間に確立されます。 依存エンティティは、角の丸い長方形で描画されます。 識別関係が確立されると、親エンティティの主キー属性が子エンティティの主キーに自動的に転送されます。 リレーションシップを作成するときに子エンティティの属性を拡張するこの操作は、属性の移行と呼ばれます。 子エンティティでは、新しい属性は外部キー(FK)としてマークされます。
非識別関係が確立されると、子エンティティは独立したままになり、親エンティティの主キー属性は子エンティティの非キー属性に含まれます。 非識別関係は、独立したエンティティをリンクするために使用されます。 ERwin関係を定義するには、関係タイプを選択してから、マウスを使用して親エンティティと子エンティティを指定します。 識別リンクは実線で示されています。 非識別-点線付き。 線は、子エンティティの側面からのドットで終わります。
カーディナリティ-子のインスタンスの数に対する親エンティティのインスタンスの数の比率を示すために使用されます。
エンティティには次の4つのタイプがあります。
・親エンティティの1つのインスタンスが子エンティティの0、1、または多数のインスタンスに対応する一般的なケース。 記号は付いていません。
・記号Pは、親エンティティの1つのインスタンスが子エンティティの1つまたは複数のインスタンスに対応する場合を示します(ゼロ値は除外されます)。
・記号Zは、親エンティティの1つのインスタンスが子エンティティの0または1つのインスタンスに対応する場合を示します(複数の値は除外されます)。
・番号は、親エンティティの1つのインスタンスが子エンティティの所定の数のインスタンスに対応する場合に、完全に一致する場合を示します。
・非識別関係での空(NULL)値の許容性は、親エンティティの側からの関係の弧上の空のひし形としてERwinによって示されます。
論理レベルでの関係の名前は、エンティティを接続する動詞です。 ERWinのリンクの物理名(論理名とは異なる場合があります)は、制約またはインデックスの名前を意味します。 関係の名前を表示するには、メニューからオプションを選択します:フォーマット/関係の表示/動詞句。
一部のエンティティは、同じタイプのオブジェクトのカテゴリ全体を定義します。 ERwinでは、この場合、カテゴリを定義するエンティティが作成され、カテゴリ内の各アイテムに対して、カテゴリ化関係が導入されます。 カテゴリの親エンティティはスーパータイプと呼ばれ、子はサブタイプと呼ばれます。
たとえば、「受信ドキュメント」エンティティは、リクエストまたはオーダーのいずれかです。 1番目と2番目には、部分的に重複する異なる属性セットがあります(サブタイプの最小共通部分が主キーです)。 主キーを含むこれらの属性の共通部分は、インバウンドドキュメントスーパータイプエンティティに配置されます。 さまざまな部分(たとえば、コンテンツ、送信者に関するデータ)は、エンティティサブタイプに配置されます。
スーパータイプエンティティでは、サブタイプエンティティの特定のインスタンスを区別するために識別子属性が導入されています。
考えられるすべてのサブタイプエンティティがモデルに含まれているかどうかに応じて、カテゴリの関係は完全または不完全です。
図1.4-不完全なカテゴリセットの例
図1.5-カテゴリの完全なセットの例
3.エンティティは、任意の数の分類関係の共通エンティティにすることができます。
4.カテゴリエンティティの主キーの属性は、一般エンティティの主キーの属性と一致する必要があります。
5.エンティティカテゴリのすべてのインスタンスは同じディスクリミネーター値を持ち、他のカテゴリのすべてのインスタンスは異なるディスクリミネーター値を持っている必要があります(図4および図5を参照)。
役割。
ロール名(機能名)は、子エンティティで属性が果たす役割を示す外部キー属性の同義語です。 デフォルトでは、ロール名のみが属性リストに表示されます。 属性のフルネーム(機能名とロール名の両方)を表示するには、コンテキストメニューで[フォーマット] / [エンティティの表示]を選択し、[ロール名/属性]オプションを有効にします。 フルネームは、ドットで区切られた機能名とベース名として表示されます。 ロール名は、[リレーションシップ]ダイアログボックスの[ロール名]タブで設定します。 このウィンドウは、リンクをダブルクリックすると呼び出されます。
1つのエンティティの2つ以上の属性が同じスコープで定義されている場合、つまり、ロール名を使用する必要があります。 それらの値の範囲は同じですが、意味が異なります。
表現。
ビュー、または一時テーブルまたは派生テーブルと呼ばれることもあるビューは、データがテーブルのように永続的に保存されないデータベースオブジェクトですが、ビューにアクセスすると動的に生成されます。 ビューはそれ自体で存在することはできませんが、1つ以上のテーブルに関してのみ定義されます。 ビューを使用すると、データベース設計者は各ユーザーまたはユーザーのグループにデータの異なるビューを提供できます。これにより、使いやすさとデータセキュリティの問題が解決されます。
契約
後続のプレゼンテーションを簡潔にするために、いくつかの規則を受け入れましょう。
・クリック-マウスの左ボタンを押します。
・右クリック-マウスの右ボタンを押します。
ダブルクリック-マウスボタンを2回連続してクリック
・選択-カーソルを対応するオブジェクト(図要素、メニュー項目、アイコン)に移動し、マウスの左ボタンをクリックします。
ドラッグ-オブジェクトを選択し、マウスボタンを離さずにカーソルを移動します に別の位置。
・ファイル/開くタイプのレコードは、[ファイル]メニュー項目を選択してから、開いたメニューから[開く]項目を選択する必要があることを意味します。
ERwinデスクトップ
図では 図1は、LogicWorksによるERwinソフトウェアのデスクトップを示しています。
|
|
|
|
|
図1-Erwinデスクトップ。
図1では、数字は次のことを示しています。
1-メインメニュー;
2-ツールバー;
3-特別なツールのセット。
4フォントと色のパネル。
5-チャートフィールド。
デスクトップのコンポーネントを詳しく見てみましょう。
メインメニューには一般的なコマンドが含まれています。 これらのコマンドのほとんどは、ツールバーアイコンまたは右クリックでポップアップするメニュー項目のいずれかによって複製されることに注意してください。 したがって、ここでは、デスクトップの一般的なビューに関連するコマンドに焦点を当てます。 ウィンドウアイテムには、次のサブアイテムがあります。
ツールバー-ツールバー;
フォントとカラーツールバー - フォントと色のパネル。
ステータスバー-ステータスバー;
ERwin Toolboxは、特別なツールのセットです。
リストされた項目のいずれかがチェックされていない場合、対応する項目はデスクトップに表示されません。 アイテムオプション/表示メニューの表示とオプション/エディターメニューの表示は、メインメニューに1gushを追加します。あなた:ディスプレイとエディター。
ツールバーには、次のアイコンのグループが含まれています。
ファイルの操作:
新しい図を作成します。
既存の図を開きます。
印刷用の図を送信します。
これらのアイコンは、[ファイル]メインメニュー項目のコマンドによって複製されることに注意してください。
モデルの提示レベル:
エンティティレベル;
属性レベル;
説明レベル;
物理層(このアイコンをクリックすると、デモンストレーション中に、それらのタイプが属性レベルで示されます)。
これらのツールは、[表示]メニュー項目によって複製されます。 これには、追加の表示レベルが含まれています。主キーレベル-主キーのみが表示され、物理順序レベル-属性はキーと非キーに分けられません。
スケーリング:
減らす;
拡大;
倍率なし。
最小(さらに縮小すると、図が読みにくくなります)。
パーツを表示します(このツールを選択した後、作業フィールドで表示するフラグメントを選択します)。
このグループのすべてのアクションは、[表示] // [ズーム]アイテムによって複製されます。
サーバーの操作:
サーバーのスクリプトを生成します。
サーバーに接続します。
サーバーを選択します。
一連の特別なツールには、データスキーマをグラフィカルに構築するために必要なすべてのアイコンが含まれています。 次のツールで構成されています。
オブジェクトの選択;
属性の操作;
独立したエンティティ;
依存エンティティ;
完全な分類;
不完全な分類;
1対多の識別関係。
非識別関係は「多くの人に頌歌」します。
多対多の関係;
テキストラベル。
コンセプチュアルデザイン
エンティティの作成
概念図のエンティティは、依存および独立することができます。 ダイアグラムでは、エンティティは長方形で表されます。 その上にエンティティの名前があります。 長方形は2つの部分に分割されています。上の部分が主キー領域です。 下-他の属性の領域。 エンティティを作成するとき、長方形は最初は空であり、名前の形式はE / nです(たとえば、E / 1、E / 2など)。
独立したエンティティを作成するには、一連の特別なツールから対応するアイコンをクリックしてから、作成したエンティティを配置する場所の図フィールドをクリックする必要があります。 依存エンティティを作成するには、依存エンティティツールを選択し、グラフフィールドをクリックします。 このようなエンティティを表す長方形の角は丸みを帯びていることに注意してください。 ERwinは、関係を編成したりカテゴリに分割したりするときに通常のエンティティを依存エンティティに変換するため、ダイアグラムを作成するときに、依存エンティティを直接指定する必要はほとんどありません。
設計者がフィールド上のエンティティの位置に満足できない場合は、一連の特別なツールから[オブジェクトをポイント]アイコンを選択し、エンティティを新しい場所にドラッグする必要があります。 選択したエンティティを削除するには、キーボードのDeleteキーを使用します。 オプション/エンティティサイズのメインメニュー項目を選択して、エンティティを表す長方形のサイズを変更できます。 オプション/レイアウトメニュー項目は、フィールド上のエンティティの位置を配置するために使用されます。
次に、エンティティの名前とその特性属性を定義しましょう。 これを行うには、右クリックメニューのEntity-Attributeアイテムを使用します。 開いたエディタの[エンティティ名]フィールドに、エンティティの名前を入力します。 スイッチを使用して、エンティティの依存関係を変更できます。 主キー編集フィールドは、主キーを構成する属性の名前を入力するためのものです。 「非キー属性」フィールドには、非キー属性が含まれています。 どちらの場合も、キーボードのEnterキーを使用して属性を相互に分離していることに注意してください。 図では 図2は、独立した実体の例を示している。
図。 2-独立したエンティティ
エンティティの詳細な説明(定義)とすべてのエンティティの一般的なビューを追加するには、レポート/エンティティブラウザを使用します。
ERwinには、個々の属性を操作する機能があります。 これを行うには、[操作属性]アイコンを選択します。 このモードでは、次のことができます。
・属性を削除します。 これを行うには、個々の属性を選択し、キーボードのDeleteキーを押します。
・属性をエンティティ内に移動します。 これを行うには、属性を選択し、マウスボタンを離さずに目的の場所に移動します。 このようにして、キー領域と非キー領域の両方内、およびそれらの間で属性を移動できることに注意してください。
・エンティティ間で属性を移動します。 このアクションの手法は、前の手法と同様です。 属性の移動中にCtrlキーを押すと、別のエンティティにコピーされます。
リンクの構築
1対多の関係の構築について考えてみましょう。 これを行うには、一連の特別なツールから適切なアイコンを選択し、親と子を続けてクリックします。 識別リンクは、子を表す長方形に実線と黒い点で示されます。 この関係は、親の主キーが子の識別子に転送されることを特徴としています。 図では 図3は、1対多の識別関係を示している。
図3。 -識別リンク
非識別関係は、同様の方法で構築されます。 これは、親の長方形の横にある点線とひし形で表されます。 このようなひし形は、親の存在がオプションであることを意味します。 外部キーフィールドはnulにすることができます。 ERwinで非識別関係を構築することは、親の主キーを非キーの子属性に転送することを特徴としています。 図4は、識別できない関係を示しています。
図。 4.-非識別接続
前述のように、多対多の関係を設計すると、新しいエンティティが作成されます。 1番目と2番目のエンティティ間にこのタイプの関係を構築する例を図に示します。 五。
図。 5.-多対多の関係
リレーションシップの右クリックメニューから[リレーションシップ]アイテムを使用して、リレーションシップの説明を表示および変更できます。 開いたウィンドウは次のことを示しています。
・リンク名(動詞句フィールド)。
・関係タイプ:識別または非識別。
・カーディナリティ。 ERwinでは、次のタイプのリンクを定義できます。
1.ゼロ、1つ以上。 このようなカーディナリティの存在は、図に追加の指定を導入しません。
2.1つ以上。 このような関係は、子を表す長方形の横にある文字Pで示されます。
3.ゼロまたは1。 カーディナリティは文字Zで示されます。
4.与えられた。 この場合、Exactlyフィールドにはカーディナリティ番号が含まれている必要があります。 このような関係は、子を表す長方形の数字で示されます。
・Nullの存在の可能性-値(Nullの切り替え)。
・外部キーの役割。 この場合、役割名は「役割名」フィールドに記録されます。 この場合、エディターの外部キーフィールドには構造が含まれています<имя роли>.<имя первичного ключа родителя>.
ダイアグラムに接続の名前またはカーディナリティーが示されていない場合は、「表示/動詞句」および「表示/カーディナリティー」の項目の反対側にポインターを置く必要があります。
リンクを削除するには、[オブジェクトを指す]アイコンを選択し、対応するリンクをクリックして、キーボードの[削除]を押します。
ERwinでのエンティティのカテゴリへの分割は、図と同様の方法で示されます。 6.6。
図。 6-完全な分類
カテゴリを作成するには、次の手順を実行する必要があります。
主要なエンティティを完全に説明します。
カテゴリエンティティを構築します。
一連の特別なツールから、完全または不完全な分類のアイコンを選択します。
本体をクリックします。
カテゴリの1つをクリックします。
後続の各カテゴリを作成するには、カテゴリ記号をクリックしてから、対応するエンティティをクリックします。
カテゴリの1つとメインエンティティの関係を削除するには、対応するブランチを選択し、キーボードのDeleteキーを押します。 分類全体を削除する場合は、カテゴリ記号をポイントして[削除]を押します。
論理設計
論理設計は、データモデルの選択から始まります。 ERwinが動作するすべてのDBMSはリレーショナルであり、これによりデータモデルの選択が決まります。
特定のDBMSを選択するには、[サーバーの選択]アイコンをクリックします。 開いたウィンドウで、選択したDBMSの反対側にポインタを置き、必要に応じてバージョンを設定します。 さらに、デフォルトでテーブル項目の特性(ゼロ値のタイプと可能性)を選択する必要があります。
論理設計の重要なステップは、情報の整合性を維持するための戦略を定義することです。 さまざまなタイプのリンクのデフォルト戦略を設定するには、DBMS選択ウィンドウの[参照整合性のデフォルト]ボタンをクリックします。 ERwinは、次の3種類の戦略を提供します。
1.制限-禁止。 これは、関連するエンティティとのアクションの禁止が特徴です。
2.カスケード-カスケード。 このような戦略は、関連するエンティティに対してカスケード操作を実行することです。
3.Null-ゼロを設定します。 この戦略は、フィールド値をNullに設定することです。
DBMSを選択したら、データをその用語で説明し始めましょう。 これを行うには、エンティティであるアイテムを右クリックしてポップアップするメニューから選択します。<имя выбранной СУБД>データベーススキーマ。 開いたウィンドウで、テーブルの名前とそのフィールド、およびこれらのフィールドの特性を指定できます。
実際には、整合性制約を維持するための同じ戦略によって、どのタイプのすべての関係も決定されるわけではないことがよくあります。 特定のリンクの戦略を変更するには、リンクの右クリックポップアップメニューから[参照整合性]項目を使用します。 ダイアグラムで選択した戦略に関する情報がない場合は、[表示/国民投票の整合性]の横にポインターを置きます。
選択したDBMSのスクリプトを作成するには、[サーバーのスクリプトを生成]アイコンをクリックします。 同時に、ERwinは特定のテーブルに従ってデータベーススキーマを構築します。 選択したDBMSがトリガーの書き込みをサポートしている場合、整合性制約をサポートするために選択した戦略に応じてトリガーが作成されます。
物理的設計
設計のこの段階で、結果の回路にインデックスを追加します。 これを行うには、アイテムを使用します<имя СУБД>エンティティを右クリックしてポップアップするメニューのインデックス。 開いたウィンドウで、[新規]ボタンをクリックして新しいインデックスを作成し、この属性のビジュアルイメージをクリックしてその属性を指定します。 一般的な図では、インデックスの作成に使用される属性が文字AKでマークされていることに注意してください。 これは、それらが代替キーであることを意味します。
タスク
1. ERwinを使用して、認証機関の概念的なデータベーススキーマを構築します。 サブジェクトエリアの説明を以下に示します。
認証機関は、特定の種類の製品の証明書を発行することを認定されています。 製品の各タイプは、コード(分類子による)、タイプ名(乳製品など)、およびタイプ(ミルクなど)によって記述されます。 製品の種類ごとに複数の規制文書が存在する場合があり、各規制文書の効果は製品の種類ごとに適用されます。 規制文書は、そのレベル(GOST、OSTなど)、番号、および名前によって特徴付けられます。
証明書は、1つのタイプの製品と1つのクライアントに対してのみ発行されます。 同じクライアントが認証機関に何度も連絡できるため、クライアントに関する情報(組織コード、名前、住所、電話番号)を保存する必要があります。
クライアントは、2種類の認証申請(申請または宣言)のいずれかを使用して、認証機関に申請できます。 これに応じて、さまざまな種類の内部文書が作成され、さまざまな情報が保存されます(表1)。
表1
この場合、アプリケーションと宣言の番号付けはエンドツーエンドです。 これは、番号のあるアプリケーションがある場合、この番号の下に宣言があってはならないことを意味します。
認証機関は、従業員に関する情報(個人コード、名前、役職、住所)を保存します。 さらに、従業員がどのような種類の作業をどのようなアプリケーションで実行したかを知る必要があります。 アプリケーションで実行される作業には、アプリケーションへの記入、アプリケーションの決定、証明書の発行の決定、証明書の発行の4つのタイプがあります。 同じアプリケーションに対して、さまざまなタイプの作業をさまざまな従業員が実行できます。 概念図では、カテゴリへの分割が必要です。 さらに、外部キーの役割を使用する必要があります。
2. ERwinを使用して、概念スキーマを選択したDBMSのテーブルに変換します。 ビルドトリガー。
3.次の権限を持つデータベースの3人のユーザーを作成します。
1)「レポート」-すべての情報を読む権利(他の権利はありません)。
2)「ディレクトリ」-従業員、顧客、製品、規制文書に関する情報に対するすべての権利。
3)「文書化」-認証機関およびクライアントの内部文書化に関する情報に対するすべての権利。 製品および規制データを読む権利。
レポートには次のものが含まれている必要があります。
ERwinからの概念図のプリントアウト。
ベースの完全性の制約をサポートするための戦略の選択の正当化。
テーブルとトリガーの構造。
データベースユーザーを作成する方法の説明。
制御の質問
1.サブジェクトエリアにはどのようなタイプの関係が存在する可能性がありますか?
2.データベーススキーマから多対多の関係を削除するにはどうすればよいですか?
3.識別リンクと非識別リンクの違いは何ですか?
4.外部キーの役割を説明する必要があるのはいつですか。
5.カテゴリの選択をどのように正当化できますか?
6.完全な分類と不完全な分類の違いは何ですか?
7.ラボでは、整合性制約を維持するためにどのような戦略が使用されていますか?
参考文献
1.日付K.J. データベースシステム入門-教科書。 アローワンス:英語からの翻訳。 -第6版 -M。他:Williams、2000 .-- 846p。
2. Robinson S. Microsoft Access 2000:教科書。 コース:あたり。 英語から -SPB。:Peter、2001 .-- 511p。
3.クズネツォフS.D. データベースの基礎:講義コース:教科書。 マニュアル)、モスクワ:インターネットun-t通知。 テクノロジー、2005年。-484ページ。
4. Hoffman V.E.、Khomonenko A.D. Delphiでデータベースを操作する。 サンクトペテルブルク:Dhv、2002年。-656ページ。
5.マクラコフS.V. BpwinとErwin。 情報システム開発のためのケースツール-M .: Dialogue-Mifi、2003.-254p。
6.マリキナM.P. データベース:基本、設計、使用:教科書。 大学向けマニュアル-第2版-SPB .: BHV-Petersburg、2006.-517p。