SI Object Browser ERを初めて使う方向けのチュートリアルを作成しました。ER図を作成する方法からデータベース連携を行う方法までを画面入りで解説します。
なお、以下よりSI Object Browser ER トライアル版が申し込みいただけます。トライアル版ではインストールから30日間機能制限なしでご利用いただけます。お申込みいただくとすぐにダウンロードができますので、製品版をお持ちでない方は実際にトライアル版を触りながらお読みいただければと思います。
SI Object Browser ER トライアル版
また、前提条件として、ER図の基本的な書き方や「エンティティ」「リレーションシップ」「カーディナリティ」などの用語は理解しているものとします。以下にER図の概要や用語の説明をまとめていますのであわせてご覧ください。
ER図とは?書き方やテクニックをわかりやすく解説
ER図の作成
それでは、早速SI Object Browser ERでER図を作ってみましょう。まずSI Object Browser ERを起動してください。(はじめて起動する場合のみ、SI Object Browser ERのアイコンを右クリックして「管理者として実行」をクリックしてください。)以下のようにライセンスキーを入れる画面が表示されますが、トライアルとして利用する場合は「スキップ」を押してください。30日間はこの方法で利用することができます。なお、もし購入後の場合はライセンスキーを入れることで製品版となり、このダイアログが出なくなります。
画面1.SI Object Browser ER 起動後の画面(トライアル版の場合)
SI Object Browser ERが白紙の状態で表示されますので、エンティティから作成しましょう。ツールバーの中にある「エンティティ」のアイコンをクリックします。続けて、白紙のところでクリックしてください。
画面2.SI Object Browser ERの新規作成画面
これで空のエンティティが作成されました。続けてエンティティをダブルクリックしましょう。
画面3.エンティティ配置後
エンティティの詳細画面が表示されますので、エンティティ名や属性などの詳細を入力します。またエンティティの下にある「テーブル名」や属性名の右にある「カラム名」は物理名となります。SI Object Browser ERではER図上だけで管理する「論理名」と物理データベース上の名前である「物理名」が両方管理できるようになっています。既定ではテーブル名、属性と同じ名前がテーブル名、カラム名にもセットされますが、詳細設計の段階で(物理モデルを作成する段階で)テーブル名、カラム名に書き換えます。
画面4.エンティティ詳細画面
また、SI Object Browser ERには直接Oracleなどにテーブルを作成する「フォワードエンジニアリング」機能があります(詳しくは後述します)。「主キー」「データ型」「長さ」も入れておくとこの機能を使うことができますので、物理モデル作成時は同時に設定しておきましょう。最後に「登録」ボタンで保存します。
データベースの設定を変更する 「データ型」はプルダウン選択式となっていますが、既定では「VARCHAR2」などOracle用の設定となっています。もし他のデータベースで構築したい場合は、「モデル」メニュー>モデルのプロパティを選択し、「データベース」タブでデータベースタイプを他のデータベースに変更してください。
画面5.モデルのプロパティ画面 |
エンティティを配置後は、続けてリレーションシップを設定しましょう。ツールバーに「依存」、「非依存」、「多対多」のリレーション設定用のアイコンが用意されています。今回の例では依存関係となるテーブル間でリレーションシップを設定するので、赤枠の「依存型リレーションシップ」を選択しましょう。
画面6.エンティティ作成後の画面
親となるエンティティでクリック後、マウスを押したまま子エンティティまでドラッグするとエンティティ間にリレーションシップが引かれます。画面9の例では「顧客マスタ」が親エンティティ、「取引先マスタ」が子エンティティとなっています。子エンティティには自動で外部キーも作成されます。
画面7.リレーション配置後の画面
また、リレーションシップの配置後、そのリレーションリップの線上でダブルクリックすることで動詞句やカーディナリティの設定が可能です。また「使用キー」タブで子エンティティの外部キー列を別の列に変更することも可能です。
画面8.リレーションの詳細画面
表記法を切り替える 既定ではIDEF1X表記となっていますが表示メニュー→表記法よりIE表記に切り替えることも可能です。画面9の左がIDEF1X、右がIE表記の例です。(リレーションシップの表記方法が異なります。) 画面9.表記法の切り替え |
概念/論理/物理モデルに切り替える ER図は一般的には概念モデルから論理モデル、物理モデルと段階的に作成しますが、概念モデルから作成したい場合は、エンティティ名のみの入力します。表示メニュー→表示レベルよりエンティティレベルとすることで、エンティティ名のみの表示にすることも可能です。
また、論理モデルとして作成したい場合はいったんテーブル名、カラム名はエンティティ名、属性名とと同じにしておき、物理モデルの段階でエンティティ、属性名を書き換えます。物理モデルを作成後もツールバーにあるプルダウンより論理モデルと物理モデルの表示を切り替えることができます。 画面11.論理モデル、物理モデルの切り替えエンティティレベルでER図を表示した場合 |
ER図を分割する
このようなかたちでどんどんとエンティティとリレーションシップを配置していきますが、エンティティが多くなり見づらくなる場合があります。その場合は、サブモデルという機能でシート分割しましょう。分割したいエンティティをマウスで範囲選択して右クリックします。
画面12.エンティティの右クリックメニュー(サブモデル選択時)
サブモデル名を入力するダイアログが表示されますので、サブモデル名を入力します。今回は「商品マスタ系」といれてみました。その後、「OK」ボタンをクリックします。
画面13.サブモデルの作成画面
これで「商品マスタ系」という別シートが追加されました。分割後は、エンティティのレイアウトなどの情報は各シートごとに変えることができますが、エンティティの属性追加や削除といった定義情報の変更については全シートで同期がとられますので、分割後もシート間で不整合を起こすことはありません。
画面14.シート分割後の画面
属性をテンプレート化する
また、属性の中には「最終更新日付」など、複数のエンティティ共通で利用したい属性もあります。そのような場合は「ドメイン」という機能でテンプレート化することができます。左側のツリーにある「ドメイン」を右クリックし、「新規作成」をクリックします。
画面15.ドメインのポップアップメニュー
新規作成画面が表示されますので、属性名や列名、データ型等の情報を入力し、「作成」ボタンをクリックします。
画面16.ドメインの新規作成画面
これで、ドメインが作成されました。作成後は、エンティティをダブルクリックした後の詳細画面のドメイン列にて、作成したドメインを指定するだけで属性の追加できます。ドメインで登録した属性名やカラム名やデータ型などの情報がすぐにセットされます。
画面17.エンティティ画面でドメイン割当時
また、ER図からドメインをドラッグ&ドロップすることでもエンティティに追加ができます。
画面18.ドラッグ&ドロップによるドメインの割当
ドメインのメリットは、属性の定義変更時の修正が1ヶ所で済む点です。エンティティにいくつかドメインを登録した後、ドメイン画面でデータ型を編集してみましょう。
画面19.ドメイン編集画面(修正時)
これでエンティティのドメイン参照列も同時に修正されます。
画面20.ドメイン変更後のエンティティ詳細画面
後でドメイン化する このように便利なドメイン機能ですが、新規システムのER図を設計する際は、共通列(ドメインにすべき属性)を考えながら作ることは難しいと思います。SI Object Browser ERでは、新規システム設計向けにある程度ER図ができあがった後で共通列をドメイン化する運用も可能です。 「モデル」メニューの「属性リスト」を選択すると、ER図内のすべての属性一覧が表示されます。「属性名」でソートすると重複する属性がわかります。さらに右クリックから「ドメインの作成」と選択することでドメインが自動作成され、選択した属性がドメインと関連付けられますので、この方法で共通列を探してドメイン化ができます。 画面21.属性一覧からのドメイン作成 さらに、簡単に共通列をドメイン化する方法もあります。属性リストでCtrl+Aキーで属性を全選択後、右クリック→ドメイン作成を行えば、重複のある定義のみドメインが作成できます。 |
ER図から物理データベースを構築する
ER図の作成後は、SQL文(DDL)を発行し、物理データベース上にテーブルを作成することができます。「データベース」メニューの「フォワードエンジニアリング」を選択するか、ツールバーにあるのアイコンをクリックします。以下の画面が表示されますので対象のエンティティを選択して「SQL生成」ボタンをクリックします。
画面22.フォワードエンジニアリング画面
続けてデータベース接続ダイアログが表示されますので、対象のデータベースを選択しましょう。Oracle、SQL Server、HiRDB、PostgreSQL、MySQLのいずれかから選択できます。また、あわせて接続先のユーザー(スキーマ)、パスワード、データベース名などの情報を入力します。(Oracleの場合、データベース名はサービス名となります。)「接続先リストに登録する」のチェックボックスをONにしておくと、次回から接続情報が記憶されますので、簡単に接続できるようになります。入力後、「接続」ボタンをクリックします。
画面23.ログイン画面
データベース接続に成功した場合は、データべースにDDL文が発行され、テーブルが作成されます。
画面24.フォワードエンジニアリング実行中の画面
論理名や備考情報をデータベースに埋め込む また、エンティティ名や属性名または定義列に書いた備考内容を物理データベースに埋め込むことも可能です。画面22のフォワードエンジニアリグ画面でオプションタブに切り替え、「テーブルコメント設定方法」および「カラムコメントの設定方法」を指定します。論理名を埋め込みたい場合は「論理名をセット」、定義欄に書いた情報をセットしたい場合は「定義情報をセット」を選択します。 画面25.フォワードエンジニアリング画面のオプションタブ この状態で実行すると、「COMMENT ON TABLE」または「COMMENT ON COLUMN」というSQL文が追加され、物理データベース情報にコメント情報が追加されます。(このSQLはOracle Databaseの場合となりますが、他のデータベースでも同様の機能が用意されているため、埋め込むことが可能です。) |
物理データベースからER図を逆生成する
フォワードエンジニアリング機能は新規でシステムを作る想定の機能でしたが、既存システムで導入する場合向けに、データベースからER図の逆生成するリバースエンジニアリング機能も用意されています。「データベース」メニューの「リバースエンジニアリング」を選択するかツールバーにあるのアイコンをクリックします。画面23と同じログイン画面が表示されますので、対象のデータベースおよびユーザー(スキーマ)、パスワードなどを入力して接続します。対象のテーブル選択する画面が表示されますのでER図にしたいテーブルを選択します。(既定ではすべてのテーブルが選択されています。)設定後、「開始」ボタンをクリックしましょう。
画面26.リバースエンジニアリング画面
これでデータベースに接続および情報解析され、ER図が逆生成されます。エンティティだけでなく、データベース側で外部キー制約を定義していた場合は、リレーションも自動生成されます。
画面27.リバースエンジニアリング実行後の画面
論理モデルを同時生成する 通常は上記のように物理モデルとしてER図が逆生成されますが、備考情報をもとに論理モデル(日本語モデル)を同時生成するオプションもあります。画面26のリバースエンジニアリング画面でオプションタブに切り替え、「エンティティ名の取得方法」および「属性名の取得方法」を指定します。 画面28.リバースエンジニアリング画面のオプションタブ もし、フォワードエンジニアリングのオプションで属性名をコメント情報として物理データべースに追加していた場合は「テーブルコメントを使用」「属性コメントを使用」のオプションをを選択することで論理モデルを復元することが可能です。 また、専用の変換テーブルを使って論理名を自動設定するオプションもあります。2番目の「テーブル名(カラム名)を論理名変換テーブルで変換」のオプションを選択後、右上の「論理名変換テーブル編集」をクリックします。以下の画面が表示されますので、物理名と対応する論理名を設定しましょう。 画面29.論理名変換テーブルの設定 上記設定後、リバースエンジニアリングを実行することで、以下のように論理モデル(日本語モデル)が自動生成されます。ツールバーにあるプルダウンより、物理モデルの切り替えも可能です。 画面30.論理モデルの自動生成 |
ER図と物理データベースの同期を行う
また、前述のフォワードエンジニアリング機能またはリバースエンジニアリング機能を使った後で、仕様変更があった場合は、ER図と物理データベースを簡単に同期することができます。同期したい場合は「データベース」メニューの「データベース同期」を選択するかツールバーにあるのアイコンをクリックします。フォワードエンジニアリング、リバースエンジニアリングと同様にログイン画面が出るので対象データベースにログインします。
次に以下の画面が表示されますので、ER図と物理データベースのどちらを正とするのかを選択します。例えば、仕様変更によりER図を修正していた場合は、ER図が最新の内容となりますので、「(データベースを変更)モデル優先」を選択します。その後「開始」ボタンをクリックします。
画面31.データベース同期画面
相違点のチェックが行われ、比較結果の画面が表示されます。部分的に反映しない等の微調整が可能です。設定後、「開始」ボタンをクリックします。
画面32.データベース同期実行後の画面(相違点の比較)
もし「データベースを変更(モデル優先)」を設定していた場合は、続けて同期を実行するためのSQLがプレビューが表示されます。問題なければ「開始」ボタンをクリックします。これでSQLが実行され、ER図とデータベースが同期されます。
画面33.データベース同期で生成されたSQLプレビュー画面
データベース同期時のSQLについて データベース変更用のSQLに関しては、ALTER TABLE文で修正できる場合はALTER TABLE文を発行しますが、属性の順番を変更した場合はALTER TABLE文で対応できないケースもあります。その場合はDROP TABLE→CREATE TABLE文の発行となりますが、その場合も同時にデータのバックアップテーブルを作成の上、再作成後にバックアップテーブルからデータを復旧するSQLを生成するため、レコードが消えることなく同期できるようになっています。 |
テーブル定義書を出力する
また、SI Object Browser ERではER図情報を元にエンティティ定義書(テーブル定義書)などのドキュメントが出力できます。「ファイル」メニューの「レポート出力」>「エンティティ定義書」を選択するか、ER図上で対象のエンティティを選択して右クリック、「レポート出力」>「エンティティ定義書」を選択しましょう。
画面34.エンティティの右クリックメニュー(エンティティ定義書選択時)
レポート出力ダイアログが表示されます。ここから出力したい対象のエンティティ一を選択しましょう。SHIFTキーを押しながらクリックすることで対象の増減ができます。すべてを出力したい場合は、CTRL+Aキーで全選択もできます。(なお、右クリックメニューからレポート出力ダイアログを呼び出した場合は、選択したエンティティがセットされています。)エンティティ選択後は「出力」ボタンをクリックしましょう。
画面35.レポート出力ダイアログ
これでExcelが出力されます。もし、複数のエンティティを出力した場合はシート分割されて表示されます。
画面36.出力したエンティティ定義書
同様の方法で、エンティティ一覧や属性一覧などのExcelも作成可能です。
以上がSI Object Browser ERのチュートリアルでした。今回ご紹介した機能をお使いいただくことで、本格的なデータベース設計ができますのでぜひ実際の案件でお試しいただければ幸いです。
また、SI Ob ject Browser ERではテストデータ(レコード)を生成する機能や、データ容量を見積もる機能など、多くの機能が用意されています。当ブログでご紹介していますのでぜひあわせてご覧ください。
- カテゴリ:
- キーワード: