データベースの作成と管理
SQLスクリプトの出力
DBDesiginer4は他のモデリングツールと同様に、モデルに対応したSQLスクリプトが作成できます。
作成したSQLスクリプトはDBの維持管理ツールで実行できます。例えばMySQLのコマンドラインのようにすべてのCreate TABLE文とStandard Insert文はユーザーの設定に従ってSQLスクリプトに出力します。
これは、DROP TABLEステートメントについても同様です。
DBシンクロナイセーションとは何か?
DBDesigner 4を使うことで、DBの作成とメンテナンスが簡単になります。
DBDesigner 4はMySQLデータベースサーバに接続することができます。そして、デザインモードからDBの作成とシンクロナイズが行えます。
シンクロナイズとはDBDesigner 4がDB上の全テーブルをチェックしてモデルとの差異を検出します。モデル上にあってDB上にないテーブルについてはcreate tableステートメントを発行してテーブルを作成します。
DB上にはあるがモデルにはないテーブルがある場合はテーブルを削除します。ただしユーザー設定によって削除しないようにすることもできます。
モデルとDBの双方に存在するテーブルはテーブル上の項目を比較し、差異があればalter TableステートメントによってDB上の項目をモデルの項目に合わせます。
Reverse Engineeringとは何か?
データベースのリバースエンジニアリングとは、データベースサーバに接続して存在するデータベースから自動的にデータベースモデルを作成することをいいます。
DBDesigner 4では、DB上のすべての情報(DBのメタ情報、テーブル上のフィールド。およびテーブル間のリレーション)取得します。作成されたDBモデルでは、テーブルはグリッド上にアルファベット順に配置されます。
リバースエンジニアリングプロセスは、MySQL,OracleおよびODBCで接続できるさまざまなテーブルで試用できます。
テーブルの全情報の取得はMySQLデータベースのみで行えます。ほかのすべてのデータベースでは、ODBCの機能に制限されます。
テーブル作成SQLの出力
テーブル作成SQLスクリプトの出力は、現在のDBモデルでFile-Export-SQLメニューを実行します。 すると、SQL出力ダイアログが開きます。
![[Export SQL Creates dialog]](images/docs/db/exportsqlscript.gif)
Export SQL Creates dialog
テーブル作成SQLをファイルに出力するには、[Save script to file]ボタンをクリックします。ファイル名と保存先を指定するダイアログが表示されるので、ファイル名を入力してから[Save]をクリックします。
SQLシェルが開いているときは、SQLスクリプトをクリップボードにコピーできます、また、シェル上でSQLを実行することもできます。
SQLスクリプトをクリップボードにコピーするには[Copy Script to Clipboard]ボタンをクリックします。
SQL作成オプション
SQL出力は一般オプションとSQL作成オプションで指定できます。
選択したテーブルを出力する
このフラグをチェックすると選択したテーブルだけが出力されます。選択されていないテーブルは作成されたSQLスクリプトファイルでは作成されません。
外部キー順でテーブルを作成する
このフラグをチェックするとテーブルの作成順を変更します。チェックしない場合はアルファベット順でテーブルを作成します。
このフラグをチェックした場合、リレーションが張られていないテーブルが最初に作成されます。他のテーブルは自身のリレーション先のテーブルがある場合に作成されます。
テーブルが循環参照している場合は、テーブルは作成されまず、エラーメッセージが表示されます。
この場合は、チェックを外してテーブルをアルファベット順に出力してください。
Primary Key作成
Primary Keyを作成できるようにする場合は、このフラグをチェックします。
インデックス作成
インデックスを作成できるようにしたい場合、このフラグをチェックします。このフラグにはPrimary Keyは含まれません。
Primary Keyを作成する場合はPrimary Key作成をチェックしてください。
外部キー参照の設定
テーブル作成SQLに外部キー設定を追加します。この場合、外部キー順にテーブルを作成するフラグをチェックしておく必要があります。
テーブル出力オプション
このオプションを設定するとSQLのCREATE TABLE文でテーブルオプションを使えるようになります。このオプションは、モデル内のテーブルでのみ設定できます。
出力時、共通Insert
このオプションを設定すると、SQL作成スクリプトに標準のInsertが追加されます。このオプションはモデル内のテーブルを出力するときにのみ参照されます。
テーブル廃棄SQL出力
テーブル廃棄スクリプトを出力するには、現在のモデルで[File]-[Export]-[SQL Drop Script]を使用します。 SQL出力ダイアログが表示されます。
![[Export SQL Drops dialog]](images/docs/db/exportsqlscriptdrops.gif)
Export SQL Drops dialog
Drop SQLをファイルに出力するには、[ファイルに出力する]ボタンをクリックします。ファイル名と出力先を設定するダイアログが表示されるので、[Save]をクリックするとファイルが保存されます。
SQLシェルが開いている場合、スクリプトをクリップボードにコピーすることでSQLを直接実行できます。
SQLスクリプトをクリップボードにコピーするには[Copy Script to Clipboard]ボタンをクリックします。
テーブル廃棄SQLオプション
General SettingsとSQL Creates Settingsを設定することで、出力するSQLをカスタマイズできます。
選択テーブルのみ出力
このフラグをチェックすると選択したテーブルのみ出力します。その他のテーブルはスクリプトによって消去されます。
Foreign Keyでテーブルをソートする
このフラグを使うとテーブルの作成順を変更します。通常では、アルファベット順にテーブルを消去しますが、このフラグをチェックするとForeign Keyをチェックしたときのテーブル作成順とは逆の順番でテーブルを消去します。
リレーションが循環している場合はテーブルは作成されまず、エラーメッセージが表示されます。
この場合でも、アルファベット順でテーブルを消去するスクリプトが作成できます。
Database接続
DBDesigner 4の機能にはDBへの接続が必要なものがあります。これらの機能はあらかじめ設定されたサーバーとデータベースを使用します。
DB接続を新たに作成する
データベース接続ダイアログで新たなDB接続を作成できます。
DB接続を新たに作成するには、[New Database Connection]ボタンをクリックします。接続パラメータダイアログが表示されるので、パラメータを入力し[OK]をクリックします。
新たにDB接続が接続リストに追加されます。
DBに接続する
DB接続ダイアログは、DB接続作成ダイアログに似ています。
接続リスト中のDB接続を選択し、ユーザー名とパスワードを入力してConnectボタンをクリックします。
注意事項
データベースのメタ情報を変更するには、メタ情報を変更できるユーザーで接続することが必要です。
MySQLデータベースでの管理者であるrootの場合、DBのすべての権限と新規DB作成および既存のDBの変更が行えます。そのほかのユーザーでは、テーブルの作成・変更のみが行えます。
シンクロナイズやクエリーでDBに問題が発生する場合は、権限を持ったユーザーで接続する必要があります。
DB接続ダイアログ
![[Database Connection Dialog]](images/docs/db/dbconndlg.gif)
Database Connection Dialog
DB接続ダイアログは3つのエリアで構成されます。ホストツリー、接続リスト、ユーザー・パスワードセクションの3つです。
ホストツリー
ホストツリーは入力されたホストとホスト内のデータベースの一覧を表示します。ホストツリーは、指定ホストの接続を表示したり新たにDB接続を作成するために使用されます。
最初のノード[All Connections]を選択すると、接続リスト内のすべてのDB接続の一覧が表示されます。
例えば、現PC上のMySQLの接続を表示するには、ホストで[MySQL]-[Local Host]を実行します。
ネットワーク上のすべてのMySQLホストの接続リストを表示するには、[MySQL]-[Network Hosts]を実行します。
指定ホスト上のMySQLの接続を表示するには、[MySQL]-[Network Hosts]ノードからホストを選択します。
OracleやODBCでの接続もMySQLの場合と同様です。
HOSTのDB一覧
指定したホストのデータベースを表示するには、ホスト名の左の[+]アイコンをクリックします。ユーザー名とパスワードを入力するダイアログが表示されるので、入力してログインします。
このとき、SHOW DATABASEコマンドが実行できるユーザーでログインする必要があります。
ホストの追加
DBDesigner 4をインストールした直後では、ローカルのMySQLホストのみ接続できます。
ネットワーク上のDBに接続するには次のようにします。
ホストを追加するには、追加したいDBの[Network Hosts]上の[...]ノードをクリックします。
ホスト追加ダイアログが表示されます。
![[Add new Host Dialog]](images/docs/db/dbconnaddnewhost.gif)
Add new Host Dialog
ノード名'/'IPアドレスのかたちでノード名を入力します。IPアドレスの変わりにホスト名を使うこともできます。
例えば、webserverやwww.theserver.comのように入力してReturnキーを押すと、新しいホストがホストツリーに追加されます。
ホストパラメータの変更
ホスト名やIPアドレスを変更する場合は、ホスト名を右クリックします。HOSTのポップアップメニューが表示されます。
![[Host popup menu]](images/docs/db/dbconnhostpopup.gif)
Host popup menu
メニューから実行する機能を選択します
ホストの削除
ホストを削除するにはポップアップメニューから[Delete Host]を実行します。
新規データベースの作成
DB接続ダイアログから新規データベースを作成できます。
新規にデータベースを作成するには、指定したホストのDBの一覧を表示します。ホスト中の[...]ノードをクリックすると新規データベースダイアログが表示されます。DB名を入力してReturnキーをおすと、データベースが作成されます。
データベース削除
DB接続ダイアログからデータベースの削除ができます。データベースを削除するには、指定ホストのDB接続の一覧を表示します。削除したいDBのノードを右クリックしてポップアップメニューを表示し、[Drop Database]を削除します。
DBを削除した場合には復帰できないことに注意してください。DBバックアップソフトウェアをインストールしておくべきです。
接続リスト
接続リストでは、ホストツリーで選択したホストでのDB接続を表示します。指定した接続でユーザー名を入力することでDB接続を設定します。
DB接続の追加
DB接続を追加するには、ホストツリーで接続するホストを選択します。指定ホストのDB一覧が表示されるので、接続したいDBを接続リスト上にドラッグすると新たなDB接続が作成されます。
ドラッグの代わりにマウスの左ボタンでDBを選択後、[New Connection to selected Database]ボタンをクリックすることでも作成できます。
リストの列
接続リストには6個の列があります。connection nameはコネクションの名前を表示します。ここをダブルクリックすることで名前を変更できます。
type列には接続する参照されるデータベースの種類が表示されます。ダブルクリックすることで、データベースの種類を変更できます。
[...]ボタンをクリックすると、接続パラメータダイアログが表示されます。
ユーザー / The User Section
接続リストから接続するDB接続を選択すると、User Sectionに接続名が表示されます。
DBDesinger4がパスワードを入力するプロンプトを表示するのでパスワードを入力します。
セキュリティの関係からDB接続はパスワードを保存しません。
Enterキーを押すか[Connect]ボタンをクリックするとデータベースに接続します。DB接続に成功するとダイアログが閉じます。接続に失敗した場合(パスワードが違う場合など)は、エラーメッセージが表示されます。
接続パラメータダイアログ / Connection Parameter Dialog
接続パラメータダイアログでパラメータを変更します。
![[Connection Parameter Dialog]](images/docs/db/dbconnparams.gif)
Connection Parameter Dialog
接続名 / Connection Name
DB接続を区別するために、それぞれに別の名前をつける必要があります。
ホストの説明 / Host Caption
DBサーバーの説明をつけます。MySQLで接続する場合だけ必要です。
ホストIP / Host IP
DBサーバのIPアドレスか、ホスト名を入力します。MySQLで接続する場合だけ必要です。
DB名 / Database name
DB名を入力します。MySQLの場合は、CREATE DATABASE文で指定される名前を入力します。
ODBCで接続する場合は、ODBCのデータソース名(DSN)を入力します。
Oracleドライバーの場合は、Oracleでの接続名を入力します。
ドライバー / Driver
一覧ら接続するDBドライバーを選択します。DBドライバーを選択すると、全てのパラメータが初期値に変更されます。
ユーザー名 / Username
DBに接続するためのユーザー名を入力します。
パスワード / Password
DBに接続するためのパスワードを入力します。
説明 / Description
DB接続に関する簡単な説明を入力します。
拡張タブ / Advanced Tab
注意してください。拡張接続パラメータを変更するためには、自分が何をしているのかを把握する必要があります。[Reset the Defaults]ボタンは接続パラメータをデフォルトの設定に戻します。
パラメータを追加・削除するには[Add Parameter]・[Del Parameter]ボタンを使用します。
デフォルトのパラメータを変更するには、DB Designer4のデータディレクトリ上のDBDesigner_DBDefaultSettings.iniファイルを該当部分を変更します。
HostパラメータはIPアドレスまたはネットワーク上のホスト名を表示します。ダブルクリックすることで、IPアドレス/ホスト名を変更できます。
Databaseパラメータは、接続するデータベースを表示します。ダブルクリックすることでデータベースを変更できます。
description パラメータは接続に関する説明を表示します。ダブルクリックすることで変更できます。
データベース・シンクロナイゼーション / Database Synchronisation
モデルと選択したデータベースをシンクロナイズするには、メインメニューから[Database]->[Database Syncronsiation]を実行します。
シンクロナイズはToolパレットの[Sync]ボタンを押すことでも可能です。なお、空のモデルはシンクロ出来ません。
シンクロナイズをするとデータベース接続ダイアログが表示されます。シンクロするデータベースの接続を選択してください。
その後、パスワードを入力して[Connect]ボタンを押すことで、データベースに接続します。
新規データベースにシンクロする / Synchronise with a new database
データベースのシンクロナイズを空のデータベースに対して実行することが出来ます。
このときモデル上の全てのテーブルが作成され、Standard Insertsに指定されたデータがテーブルに入力されます。
データベースシンクロナイズで新規データベースにシンクロすると、データベース接続ダイアログが表示されます。
新しくデータベースを作成するには、Hostのデータベース名の[...]をクリックし、前に説明したのと同様にして作成します。新規にデータベースに接続するには、一覧上のデータベースをConnection Listにドラッグします。
これで、新しいデータベースに接続します。
![[Database Synchronisation]](images/docs/db/dbsync.gif)
Database Synchronisation
シンクロナイズ・オプション / Synchronisation options
データベースの接続に成功すると、データベース・シンクロナイズ ダイアログが表示されます。
データベース接続 / Database Connection
ダイアログのTOPにデータベース接続が表示されます。別のデータベースに接続するには、接続名の右のボタンをクリックします。データベース接続ダイアログが表示されるので、別の接続を選択します。
データベースを変更する / Apply changes to Database
デフォルトでこのオプションが設定されています。このときはモデルに従ってデータベースが変更されます。この時、シンクロナイズ機能によってモデルは変更されません。
モデルを変更する / Apply changes to Model
データベースに従ったモデルを変更する時には、このオプションを選択します。この時、シンクロナイズ機能によってデータベースは変更されません。
テーブルを削除しない / Don't delete exisiting Tables
このオプションをチェックすると、データベース上に存在してモデルに存在しないテーブルを削除しません。このオプションがチェックされない場合は上記のテーブルが削除されます。
Standard Insertを実行する / Execute Standard Inserts when Creating New Tables
このオプションをチェックすると、新規にテーブルを作成した時にStandard Insertが実行されます。このオプションはデフォルトでOnにされています。
Standard Insertをシンクロする / Synchronise Standard Inserts
作成済みのテーブルに対してのStandard Insertが変更された時にこのオプションをチェックします。
このとき各行はプライマリーキーを基準に比較されます。データベース上にStandard Insertで指定された行がマッチする場合は、Standard Insert上のデータとデータベース上のデータを比較します。Standard Insertに指定されていない値は無視され、指定されている値はデータベース上の値を変更します。
データベース上の各行がStandard Insertの各行とマッチしないばあは、値は変更されません。なぜなら、このオプションを実行してもマニュアル入力した行が残るからです。もし、モデルからStandard Insertを削除した場合は、データベース上の行は手作業で削除する必要があります。
シンクロナイズを実行する / Executing the synchronisation
シンクロナイズは上記のオプションの処理が成功するまでは実行しません。Progress Listに接続情報とモデルとデー手ベース上のテーブル数が表示されます。
接続情報は、[ユーザー名@データベース名]の形で表示されます。たとえば、[root@webshop]となります。
シンクロナイズを実行するには、ダイアログの下部にある[Execute]ボタンを押します。
実行結果は、Progress Listで見ることが出来ます。全てのチェックと変更が表示されます。
リバース・エンジニアリング / Reverse Engineering
リバース/エンジニアリングを実行するには、メインメニューから[Database]->[Reverse Engineering] を選択します。
また、ツールパレットの[Rev.]ボタンをクリックしても同様です。
通常は、リバースエンジニアリングは空のモデルから呼び出します。しかし、現状のモデルにテーブルを追加するために使用することもできます。新しいモデルでリバースエンジニアリングをしたいときは、[File]->[New]として空のモデルを作成します。
リバースエンジニアリングを実行すると、データベース接続ダイアログが表示されます。
既存の接続を選択するか新しい接続を作成するかしてデータベースに接続すると、接続したデータベースのリバース・エンジニアリングが行われます。
![[Reverse Engineering Dialog]](images/docs/db/reverseeng.gif)
Reverse Engineering Dialog
データベースに接続すると、リバース・エンジニアダイアログが表示されます。
データベース接続 / Database Connection
データベース接続は最上部に表示されます。違うデータベースに接続したい場合は、接続名の右のボタンをクリックします。再びデータベース接続ダイアログが表示されるので、接続したいデータベースのデータベース接続を選択します。
テーブル / Tables
モデルにしたいテーブルの全てを選択します。デフォルトでは全てのテーブルが選択されています。
[Select all Tables]ボタンを押すと全てのテーブルが選択されます。[Deselect all Tables]ボタンを押すとすべてのテーブルの選択が外れます。
MS Access Databaseのリバースエンジニアリングをする場合はMS Accessのシステムテーブルは自動的に選択から外れます。
一般オプション / General Options
Use MySQL specific functions
MySQLデータベースをリバースエンジニアする時にチェックすることができます。チェックをすると、リバースエンジニアリングをする時に"DESCRIBE TABLE"のようなMySQLでのみ使える機能を使用して、テーブル構造を取得します。
MySQL以外のデータベースの時にはチェックしてはいけません。
Use general functions
通常の機能を使ってリバースエンジニアリングをします。MySQL以外のデータベースの場合は、こっちをチェックしてください。
Number of tabels in a row
データベースをリバースエンジニアリングする時は、選択したテーブルをモデルキャンバス上のグリッドに配置します。
このオプションで指定した数のテーブルを1行に配置します。
リレーション作成 / Build Relations
このオプションをチェックすると、DBDesigner 4は自動的にリレーションを作成します。
テーブルがない場合には期待した動作をしませんので、データベースを一度リバースエンジニアリングした後で実行してください。
Build Relations based on Primary Keys
このオプションをチェックすると、テーブルのPKが他のテーブルと1:n関係にある場合に自動的にリレーションを作成します。
Build Relations based on Tablenames
このオプションをチェックすると自動的にリレーションを作成します。
リレーションはテーブル名とPK名を参照し、以下のルールに従って作成されます。
・テーブル上のPKはID+テーブル名とする
・PK名と同一のフィールドが他のテーブルに存在する
データ型変更 / Use Datatype substitution
このオプションは指定したデータ型の名前を変更したい時にチェックします。このとき、別のデータベースの違うデータ型を参照します。
デフォルトでは、[MySQL Standard]が選択されています。このとき、MySQL上の省略形であるintとdecをINTEGERとCDECIMALに変換します。
このオプションをチェックすると[ユーザー指定]が選択され、Datatype Substitution Listに変換したい型を追加できるようになります。
変換したい型は[元の型=変換する型]のようにします。
たとえば、[int=INTEGER]と指定していると[int]型が[INTEGER]型に変換されます。
リバースエンジニアリング実行 / Executing the function
ダイアログの下部にある[Execute]ボタンを押すと、リバースエンジニアリングを実行します。
スタンダードインサートを作成する / Create Standard Inserts from table data
このオプションをチェックすると、作成したテーブルにStandard Insertを作成します。このとき、データベース上のテーブルのデータを登録するようにStandard Insertを作成します。
Limit number of records to...
ここで指定した数がStandard Insertで登録できる最大行数となります。これはDB上のテーブルに多数のデータが登録されていますが、必要な行数が数行である場合などに使用します。