メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。
Visio でデータベース モデル (エンティティ関係図とも呼ぶ) を作成する

Visio では、データベース モデル図のテンプレートを使用して、新しいモデルを作成したり、既存のデータベースをモデルにリバース エンジニアリングしたりできます。

データベース アイコン、矢印、データベースを表す Visio 図面

この記事では、データベース モデルを作成する方法、および作成後にモデルを使って実行できる内容について説明します。

注: データベース モデル図は、特定のバージョンの Visio でのみ使用できます。 詳細については、「データベース モデリング機能が見つかりません」を参照してください。

1: データベース モデル図を開始する

開始点として使用する既存のデータベースがない場合は、空のデータベース モデルで開始して、独自のテーブルとリレーションシップを追加することができます。

  1. [ファイル]、[新規] の順に選択します。

  2. [検索] ボックスに データベース モデル を入力し、Enter キーを押します。

  3. 検索結果で、データベース モデル図をダブルクリックします。

    データベース モデル図のテンプレート。
  4. [メートル法] または [米国単位] のいずれかを選択し、[作成] を選択します。

    通常、リバース エンジニアリング ウィザードが自動的に開きます。

  5. [キャンセル] を選択してウィザードを閉じます。

  6. [データベース] タブの [管理] グループで [表示オプション] を選択します。

  7. [データベース図面オプション] ダイアログ ボックスで、使用する記号セット、およびその他のテーブルとリレーションシップのオプションを選択して、[OK] を選択します。 ダイアログ ボックスの [ヘルプ] ボタンをクリックすると、さまざまなオプションの詳細が表示されます。

理解を深めたり、新しいモデルの開始点として使用したりすることができるように、モデルにするデータベースがある場合、リバース エンジニアリング ウィザードを使って、データベースのスキーマ (構造) を展開し、新しいモデルを構築します。

ウィザードを開始する準備

  • Excel ブックをリバース エンジニアリングする場合は、最初にブックを開き、列見出しを含むセルのグループ (または範囲) に名前を付けます。 複数のワークシートを使用する場合、各ワークシートの列セルのグループに名前を付けるだけです。 リバース エンジニアリング ウィザードでは、この範囲がテーブルとして扱われます。 セル範囲に名前を付ける方法の詳細については、「数式で名前を定義し使用する」を参照してください。

  • 最良の結果を得るために、リバース ​​エンジニアリング ウィザードを実行する前にリバース エンジニアリングを行うターゲット データベースに既定のドライバーを設定してください。 この手順により、ウィザードでネイティブのデータ型を正しくマッピングでき、ウィザードにより抽出されるコードはすべて [コード] ウィンドウに正しく表示されます。

ウィザードを開始する:

  1. [ファイル]、[新規] の順に選択します。

  2. [検索] ボックスに データベース モデル を入力し、Enter キーを押します。

  3. 検索結果で、データベース モデル図をダブルクリックします。 [作成] を選びます。

    リバースエンジニアリングウィザードが自動的に開きます。

    ウィザードが開かない場合:ツールバー リボンの [データベース] タブの [モデル] グループで、[リバース ​​エンジニアリング] を選択します。

  4. リバース エンジニアリング ウィザードの最初の画面で、次の操作を行います。

    1. 使用しているデータベース管理システム (DBMS) に合わせてデータベース ドライバーを選択します。 Visio データベース ドライバーを特定の ODBC データ ソースにまだ関連付けていない場合、[セットアップ] をクリックします。

      注:  Excel ワークシートのリバース エンジニアリングを行っている場合は、ODBC 汎用ドライバーを選択します。

    2. 更新するデータベースのデータ ソースを選択します。 既存のデータベースにデータ ソースをまだ作成していない場合、[新規作成] をクリックし、作成します。

      新しいソースを作成すると、その名前が [データ ソース] リストに追加されます。

    3. 設定に問題がなければ、[次へ] をクリックします。

  5. ドライバー固有のダイアログ ボックスがあれば、その指示に従います。

    たとえば、[データ ソースに接続] ダイアログ ボックスにユーザー名とパスワードを入力し、[OK] をクリックします。

    注: ODBC 汎用ドライバーを使用する場合、リバース エンジニアリングした情報が不完全であることを示すエラー メッセージが表示されることがあります。 ほとんどの場合、これは問題ではありません。[OK] をクリックし、ウィザードを続行してください。

  6. 抽出する情報の種類のチェック ボックスをオンにして、[次へ] をクリックします。

    注: ウィザードで抽出できる要素はデータベース管理システムによって異なるため、一部のアイテムが利用できない (淡色表示される) 場合があります。

  7. 抽出するテーブル (とビュー) のチェック ボックスを選択するか、すべて抽出する場合は [すべて選択] をクリックし、[次へ] をクリックします。

    注:  Excel ワークシートのリバース エンジニアリングを行うときに、このリストに何も表示されない場合、ワークシートの列見出しを含むセル範囲に名前を付けることが必要である可能性が高くなります。 詳細については、「数式で名前を定義し使用する」を参照してください。

  8. [ストアド プロシージャ] チェック ボックスをオンにした場合、抽出するプロシージャを選択するか、すべて抽出する場合は [すべて選択] をクリックし、[次へ] をクリックします。

  9. リバース エンジニアリングを行ったアイテムを現在のページに自動追加するかどうかを選択します。

    注: ウィザードでは、リバース エンジニアリングを行ったアイテムを [テーブルとビュー] ウィンドウに一覧表示する以外に、図を自動的に作成するように選択できます。 図を自動作成しない場合、[テーブルとビュー] ウィンドウからアイテムを図面ページにドラッグし、データベース モデルを手動で組み立てることができます。

  10. 選択内容を確認し、必要な情報が抽出されていることを確認し、[完了] をクリックします。

    ウィザードでは選択した情報が抽出され、抽出プロセスに関する注意が [出力] ウィンドウに表示されます。

既存の VisioModeler または PLATINUM ERwin モデルがある場合は、モデルをインポートして Visio データベース モデル図を作成できます。 この機能は、VisioModeler 2.0 以降の辞書モデル (.imd) ファイルおよび PLATINUM ERwin 2.6、3.0、3.52 の .erx ファイルのみに制限されます。

  1. [ファイル]、[新規] の順に選択します。

  2. [検索] ボックスに データベース モデル を入力し、Enter キーを押します。

  3. 検索結果で、データベース モデル図をダブルクリックします。 [作成] を選びます。

    リバースエンジニアリング ウィザードが自動的に開きます。 [キャンセル] を選択してウィザードを閉じます。

  4. [データベース] タブの [モデル] グループで [インポート] を選択し、モデルの種類を選択します。

  5. インポートするモデルのパスとファイル名を入力するか、[参照] ボタンを選択してモデル ファイルを検索し、[開く] を選択します。

  6. [インポート] ダイアログ ボックスで、[OK] を選択します。

    Visio によってファイルがインポートされ、その進行状況が [出力] ウィンドウに表示されます。 インポートされたテーブルは、[テーブルとビュー] ウィンドウに表示されます。

  7. [テーブルとビュー] ウィンドウで、モデルにするテーブルを選択して図面ページにドラッグします。

2:図の構造を調整する

データベース モデル図を作成した後、図の洗練化を開始します。 モデルの 3 つの主要なコンポーネントを追加してカスタマイズできます。

  • エンティティ (またはテーブル)、

  • (テーブルについての事実を示す)、および

  • リレーションシップ (テーブル間の関連付け)。 リレーションシップには、一対一、一対多、多対多があります。

モデルに機能を追加する手順を開くには、以下の見出しを選択してください。

データベース モデル図のテンプレートには 2 つのステンシルが用意されています。 図の構造を調整し始めたら、適切なステンシルから作業します。

  • エンティティ関係ステンシルを使用して、SQL92 以前の標準に基づくデータベース モデルを作成します。

  • 種類を使用するために追加の図形がある、オブジェクト リレーショナル ステンシルを使用して、SQL99 以降の標準に基づくデータベース モデルを作成します。

[エンティティ] 図形を使用して、図にテーブルを作成します。

  1. [エンティティ関係] または [オブジェクト リレーショナル] ステンシルのいずれかから [エンティティ] 図形を図面にドラッグします。

  2. 図形をダブルクリックして、[データベース プロパティ] ウィンドウを開きます。

  3. [カテゴリ] の下で [定義] をクリックし、テーブルの名前を入力します。

  4. [カテゴリ] の下で [] をクリックし、名前を入力してデータ型を選択します。

  5. Null 値にすることができない列の [必須] チェック ボックスをオンにします。

  6. データベース テーブルの各行を一意に識別する列の [PK] (主キー) チェック ボックスをオンにします。

  7. [カテゴリ] の下で [インデックス]、[トリガー]、[チェック]、または [拡張] をクリックして、これらの要素のオプションを作成します。

[データベース プロパティ] ウィンドウを使用して、データ型や主キーなどの列のプロパティを追加または変更します。

  1. 図のテーブルをダブルクリックします。

  2. [データベース プロパティ] ウィンドウの [カテゴリ] の下で [] をクリックします。

  3. 最初の空の [物理名] セルをクリックして、名前を入力します。

  4. 列のデータ型を変更するには、列の [データ型] フィールドをクリックして、リストからデータ型を選択するか、リストにデータ型を入力します。 たとえば、「decimal(8,2)」や「char(30)」と入力できます。

  5. Null 値を回避するには、[必須] チェック ボックスをオンにします。

  6. 列が主キーであることを指定するには、[PK] チェック ボックスをオンにします。

  7. [] カテゴリのクリック時に表示される内容に加え、その他の列のプロパティを表示するには、列を選択して [編集] をクリックします。

リレーションシップでは、データベースで 1 つのテーブルの行と関連テーブルの行を一致させることができるように、主キーと外部キーを使用します。 そのようなリレーションシップは図に表示できます。 また、カーディナリティ (例: 一対多) を設定し、クロウズ フット、リレーショナル、または IDEF1X のいずれかの表記を使用して、カーディナリティを表示することもできます。 データベース モデル図テンプレート内にこれらの表記のいずれかを使用して、多対多リレーションシップを表示することはできません。

2 つのテーブル間にリレーションシップを作成する

  1. どちらのテーブルも図に表示されていることを確認します。 既存のデータベースからモデルのリバース エンジニアリングを行った場合、[テーブルとビュー] ウィンドウから 1 つまたは両方のテーブルを図面ページにドラッグすることが必要なことがあります。

  2. リレーションシップの主キー側に必要なテーブルをダブルクリックします。

  3. [データベース プロパティ] ウィンドウの [カテゴリ] の下で [] をクリックします。

  4. グリッド内で、テーブルの各行を一意に識別するために使用する列をクリックし、[PK] チェック ボックスをオンにしてその列を主キーとして設定します。

  5. [オブジェクト リレーショナル] または [エンティティ関係] ステンシルから、[リレーションシップ] 図形をドラッグしてページ上の空白スペースにドロップします。

  6. 高い方の終端と親テーブルを含むテーブルを接続します。

  7. もう一方の終端と子テーブルを接続します。

    2 つ目のテーブルに主キーと同じ名前の列がまだ含まれていない場合は、モデラーによって 2 つ目のテーブルに外部キーとして追加されます。

    注: リレーションシップ行が非表示になる場合、[データベース] タブの [管理] グループで [表示オプション] をクリックします。 [リレーションシップ] タブの [表示] で、[リレーションシップ] チェック ボックスをオンにします。

リレーションシップのカーディナリティを次のように設定します。

  1. リレーションシップをダブルクリックします。

  2. [データベース プロパティ] ウィンドウの [カテゴリ] の下で [その他] をクリックします。

  3. [カーディナリティ] の下で、リレーションシップに最適なカーディナリティを選択します。 一対多リレーションシップの場合、[0 またはそれ以上] または [1 またはそれ以上] のいずれかを選択するのが最適です。 一対一リレーションシップの場合、[0 または 1] または [1] のいずれかを選択するのが最適です。

3:データの検索と更新の機能を追加する

図に他の調整 (インデックス、チェック句、トリガーの作成など) を行うには、以下の見出しを選択して、次のいずれかを実行する追加に関する指示を開きます。

インデックスでは、クエリを実行するときのデータベースにおけるパフォーマンス (速度) を向上します。

  1. データベース モデル図を開きます。

  2. インデックスを追加するテーブルをダブルクリックして、[データベース プロパティ] ウィンドウの [カテゴリ] リストで [インデックス] をクリックします。

  3. [新規作成] をクリックします。

  4. [インデックスの作成] ダイアログ ボックスにインデックスの名前を入力して、[OK] をクリックします。

  5. [インデックスの種類] リストで、一意または非一意のインデックスを作成するオプションを選択します。

  6. [使用可能な列] リストで、このインデックス内に含める各列の名前を選択して、[追加 >] をクリックします。

  7. [インデックス付きの列] リストで、[昇順] チェック ボックスをオンにして、昇順の並べ替え順序のインデックスを作成するか、チェック ボックスをオフにして、降順の並べ替え順序のインデックスを作成します。

    データベース モデル図が更新されます。

ビューは保存したクエリとして考えることができます。 複数のテーブルから同じ情報に繰り返しアクセスする必要がある場合、または実際のテーブルを変更することなく、ユーザーにデータを公開する必要がある場合、ビューは特に便利です。

[エンティティ関係] または [オブジェクト リレーショナル] ステンシルから [ビュー] 図形を図面ページにドラッグします。

データベース管理システム (DBMS) によって、保存される場所を判断するためにテーブルやビューの拡張プロパティを設定できる場合があります。

設定する拡張プロパティがあるテーブルまたはビューをダブルクリックして、[データベース プロパティ] ウィンドウの [カテゴリ] リストで [拡張] をクリックします。

チェック句を使用して、列に入力されたデータが特定の値の範囲内にあることを確認します。 たとえば、"年齢" と呼ばれる列のデータが 65 以上である必要があるチェック句を作成できます。

  1. テーブルをダブルクリックして、[データベース プロパティ] ウィンドウを開きます。

  2. [カテゴリ] の下で [] をクリックして、チェック句を追加する列をクリックします。

  3. [編集] をクリックします。

  4. [列のプロパティ] ダイアログ ボックスの [チェック] タブで、必要な制約を入力します。 選択した内容の詳細については、「Column and Field Properties dialog box (Check tab)」 ([列のプロパティ] と [フィールドのプロパティ] ダイアログ ボックス ([チェック] タブ)) を参照してください。

    チェック句が [ローカル コード] の下の [コード] ウィンドウに追加されます。

ストアド プロシージャとユーザー定義の関数を使用して、同じアクションを繰り返し実行するために再利用できるコードのパケットを作成します。 この 2 つには、ユーザー定義の関数では値を返すのに対して、ストアド プロシージャでは値を返すことなくコードを実行するという大きな違いがあります。

  1. [データベース] タブの [表示/非表示] グループで、[コード] チェック ボックスをオンにして [コード] ウィンドウを開きます。

  2. [グローバル コード]、[新規作成] の順にクリックします。

  3. [コード エディター] の [プロパティ] タブ上で、作成するコードの種類をクリックして、コードの名前を入力します。

  4. [本文] タブでコードを入力して、[OK] をクリックします。

トリガーにより、特定のイベントがデータベースで発生すると、トリガー内で指定した SQL コードが実行されます。

  1. テーブルをダブルクリックして、[データベース プロパティ] ウィンドウを開きます。

  2. [カテゴリ] の下で [トリガー] をクリックし、[追加] をクリックします。

  3. [プロパティ] タブで、トリガーの名前を入力します。

  4. [本文] タブでコードを入力して、[OK] をクリックします。

    トリガーが [ローカル コード] の下の [コード] ウィンドウに追加されます。

データベース モデリング機能が見つかりません

Visio の一部のエディションには、データベース モデリング機能の一部またはすべてがありません。

  • Visio Standard には、データベース モデル図テンプレートがありません。

  • Visio Professional エディションおよび Premium エディションの場合、データベース モデル図テンプレートのリバース エンジニアリング (つまり、既存のデータベースを利用し、Visio でモデルを作成する) 機能はサポートしていますが、フォワード エンジニアリング (つまり、Visio データベース モデルを利用し、SQL コードを生成すること) はサポートしていません。

  • Visio for Enterprise Architects には、リバース エンジニアリングとフォワード エンジニアリングの両方が含まれており、完全なデータベース モデリング機能をご利用いただけます。 Visio for Enterprise Architects は MSDN Premium Subscription に含まれています。このサブスクリプションは Visual Studio Professional エディションと Visual Studio Team System ロールベース エディションでご利用いただけます。

ご利用中のVisio のエディションを確認するには、[ヘルプ] メニューの [Microsoft Office Visio バージョン情報] をクリックしてください。 ダイアログ ボックスの一番上のテキスト行にエディションの名前が表示されます。

Visio プラン 2 で既存のデータベースを基にデータベース モデルを設計する方法については、「既存のデータベースにリバース エンジニアリングを行う」を参照してください。 Visio では、SQL Server 2016 以前のバージョンのリバース エンジニアリングがサポートされています。 Visio では、SQL Server 2019 以降のバージョンのリバース エンジニアリングはサポートされていません

関連項目

データベース モデル図でリレーションシップを定義する

データベース モデル図でビューを作成または編集する

データベース モデル図に表と列を追加する

データベース モデル図でデータ型を設定および編集する

データベース モデル図にクロウズ フット表記を表示する

データベース モデル図でインデックスを作成または編集する

データベース モデル図で参照整合性を保持する

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×