今度はSQL Server
こんにちは、皆さん頑張って設計していますか?
SI Object Browser ER(以下OBER)は複数のデータベースに対応しており、前回はMySQLで設計をする場合の固有機能についてご紹介しました。今回はSQL Serverがお題です。前回のまとめで触れた機能(マルチDB)の他に、はたしてOBERではどのようなものが使用できるのでしょうか。
SQL Serverでデータベース設計 基本
では、前回同様、区切り文字と囲み引用符の違いから。SQL Serverでは区切り文字は「go」、囲み引用符は「[」と「]」で囲む形になります。前回のMySQLもそうでしたが、メニューバー「モデル」→「モデルのプロパティ」→「データベース」タブにある、「データベースタイプ」にSQL Serverを選択しておくと自動で設定してくれます。
|
Oracle |
SQL Server |
PostgreSQL |
MySQL |
囲み引用符 |
”Test” |
[Test] |
”Test” |
`Test` |
区切り文字 |
/ |
go |
/ |
; |
DBごとの囲み引用符と区切り文字
モデルのプロパティ
SQL Serverでデータベース設計 IDENTITY
では早速機能の説明に入りましょう。最初は「IDENTITY」です。こちらは、数値型のカラムに自動で連番をふってくれる機能です・・・と、なんだかデジャヴ感がありますが、前回ご紹介したMySQLの「AUTO INCREMENT」とよく似た動きをします。構文的には IDENTITY(<初期値>,<増分値>) と記述でき、初回に投入される数値と、それがいくつずつ増えていくかを指定することができます。
OBERでの設定方法もAUTO INCREMENTと同じで、データ型に数値系が指定されていれば、デフォルト値列でIDENTITYを選択することができます。同じような機能なので、同じ操作で設定できてわかりやすいですね。
IDENTITYの設定
CREATE文の該当列にIDENTITY(1,1)の記述がされています。初期値が1で、その後1ずつ値が増加して行く、といった感じです。
作成されたCREATE文
[RELATED_POSTS]
SQL Serverでデータベース設計 VARCHAR(MAX)、NVARCHAR(MAX)
SQL Serverの代表的な文字データ型にはCHAR、VARCHAR、NCHAR、NVARCHARがあり、「VARCHAR(30)」のようにデータ型に続いて格納できるサイズを指定します。通常1~8000(N系は1~4000)の数値を指定します。各RDBMSで指定できる数値の最大はそれぞれですが、SQL Serverはそれに加えて可変長データ型のVARCHAR、NVARCHARに「MAX」という文字を指定することができます。
MAXを指定した場合、最大サイズが2GBとなり、非常に沢山の文字を格納する事ができるようになります。格納サイズがレコードによってまちまちで、場合によっては8000バイト(4000文字)を超える可能性がある場合の使用を想定しています。
OBERでもMAX指定が可能です。エンティティエディタのデータ型の一覧でそのまま選択できます。
とても簡単ですね。
データ型の一覧上で選択可能
作成されたCREATE文
SQL Serverでデータベース設計 マルチDB機能
最後は、マルチDB機能のご紹介です。SQL Serverを普段から使用している方はご存知かと思いますが、SQL Serverはひとつのインスタンス内に複数のデータベースを持つことができ、「SELECT * FROM <データベース名>.<スキーマ名>.<テーブル名>」のようにフルネームで指定するだけで、異なるデータベース間のデータ参照なども簡単に行なえます。このように複数のデータベースをまたいだ設計を容易にできるのがSQL Serverの特徴でもあります。OBERでもこの特徴に対応するために、冒頭のマルチDB機能を使用します。
使用するためには、まずモデルのプロパティのデータベースタブで、「マルチDB」を選択します。
※この項目はデータベースタイプにSQL Serverを指定した場合のみ選択可能です。
マルチDBを選択
すると、メニューバー → モデル → DBマッピングリスト が選択できるようになり、マッピングリスト画面に遷移できます。
(ツールバー上にも アイコンから移動可能)
ここで、このER図に登場するデータベースを定義します。ここではモデル上の名称となるDBマッピング名称、モデル上で便利な背景色、実際のデータベース名を設定します。
定義画面
リスト画面
作成した情報は、各オブジェクトで定義可能です。下記画面はエンティティエディタですが、プロシージャやファンクションにも情報を付加することができます。
マッピング情報を付加
マッピング情報が付加されたエンティティは、モデル上で名称部分が設定した背景色に変更されます。データベースをまたいだER図を作成した場合でも、どのデータベースに所属するエンティティなのかひと目で分かります。また、エンティティリスト上にもマッピング情報が出力されるようになります。
名称の背景色で視認可能
エンティティリストの状態
なお、このDBマッピング機能は現状ER図上だけの情報となり、フォワードエンジニアリング、リバースエンジニアリングなどの直接的なDB連携には対応しておりませんが、皆様のご要望の大きさによっては追加機能として実装されるかもしれません・・・
まずはモデリング上の機能としてご利用いただき、使い勝手などご意見・感想などいただけると嬉しいです。
SQL Serverでデータベース設計 まとめ
いかがでしたか。今回はSQL Serverの固有機能をご紹介いたしました。SQL Serverを使用してシステム開発する場合エンジニアにとってはどれも必要なものであり、内容を理解して設計作業を行うことが重要です。これらを駆使してより良いデータベース設計をしていただければ幸いです。ご要望があればOracleなど他のDBについても続けて解説していきたいと思いますので、ご意見・ご感想お待ちしております。
- カテゴリ:
- キーワード: