スマートスタイル TECH BLOG

データベース&クラウド技術情報

NavicatでMySQLのテストデータを作成する

NavicatでMySQLのテストデータを作成する

はじめに

弊社で取り扱っているデータベース管理ツールの Navicat の新メジャーバージョンとなる Ver.16 がリリースされました。
(現時点では英語版のみのリリースとなりますが、近々日本語版でもリリースされると思います。)

今回のバージョンアップで、Navicat に Data Generation 機能が追加されたので、この機能について確認したいと思います。

Data Generation 機能については、文字通りデータ生成機能となりますが、リファレンスによると、40種類を超えるジェネレーターがあります。
Navicat には 14日間の Free Trial があるので、Navicat Premium Download Trial よりダウンロードして実際にテストデータを生成してみたいと思います。

Data Generation 機能 を使ってみる

MySQL Server 8.0 をインストールした環境を用意し、以下のような2テーブルを作成しておきます。

  • 部署テーブル(department)
項目物理名 項目論理名
department_id 部署ID
department_name 部署名
  • 社員テーブル(employee)
項目物理名 項目論理名
employee_id 社員ID
last_name 名前(姓)
first_name 名前(名)
mail メールアドレス
birthday 生年月日
address 住所
department_id 部署ID(外部キー)

Navicat Premium の Trial版をインストールして、用意した MySQL Server 8.0 をインストールしたサーバに接続しました。
接続設定については、こちらのリファレンスをご参照下さい。

接続後の画面左側のオブジェクトから、作成した2テーブルが存在することが確認できます。

まずは、department テーブルの右クリックメニューから Data Generation をクリックします。

表示された画面の Number of Rows to Generate にはこのテーブルに作成するデータ件数を設定します。
また、画面左の列項目名をクリックすると、各列項目に対して、ジェネレータの設定する事ができます。

department_id は部署IDを表し、連番を割り当てたい為、Generator には、Sequence を指定しました。
開始番号や、終了番号の指定も可能ですが、デフォルト設定としました。

department_name は部署名を表し、これに適した Department Generator が用意されていた為、これを使用します。
日本語のテストデータを作成したい為、Languages には、Japanese(日本語) のみにチェックを入れます。

その後、Nextボタンをクリックすると、プレビュー画面が表示されます。
Department Generator には、値の重複を排除するオプションがないので、同じ名前の部門が複数設定されたりしますが、それなりにテストデータとして分かり易いデータが生成されるようです。

Start ボタンをクリックすると、テストデータがロードされ、完了すれば以下のような画面が表示されます。

実際に登録されたテーブルデータを見ると、このようになっています。

次は employee テーブルのデータを作成します。
employee テーブルの右クリックメニューから Data Generation をクリックします。

まずはレコード数を 1,000 件で設定します。

employee_id は社員IDを表し、連番を割り当てたい為、Generator には部署ID同様に、Sequence を指定します。

last_name は、名前(姓)を格納するので、Name Generator を指定します。
また、Format Type には Last Name、日本人の名前にしたいので、Languages には、Japanese(日本語) のみにチェックを入れます。

first_name は、名前(名)を格納するので、last_name と同じくName Generator を指定します。
Format Type には First NameLanguages には、Japanese(日本語) のみにチェックを入れます。

mail は、メールアドレスを格納するので、Email Generator を指定します。
Domains にはメールアドレスのドメインに使用する情報を複数設定できますが、デフォルトだと "gmail.com" 等の実際に存在するドメインが存在したりするので、適宜変更するようにしましょう。

birthday は、生年月日を格納するので、Date Generator を指定します。
また、オプションで日付の範囲指定や、曜日指定をする事も可能となっています。

addressは、住所を格納するので、Address Generator を指定します。
Format Type には Addless Line 1Languages には、Japanese(日本語) のみにチェックを入れます。
また、実在するような住所が生成されているようですので、ご使用の場合は注意が必要です。

department_idは、department.department_id を親キーとする外部キーとなるので、Foreign Key Generator を指定します。
SchemaTableField には それぞれ親キーの情報を設定します。
また、ランダムに設定されるよう、Generation ModeRandom とします。

その後、Nextボタンをクリックすると、プレビュー画面が表示されます。

Start ボタンをクリックし、テストデータのロードが完了すれば以下のような画面が表示されます。
1,000件のデータを作成しましたが、2、3秒程度で完了し、特にNavicatを起動している端末への負荷もありませんでした。

それでは、テストデータを作成した2つのテーブルからSQLでレコードを抽出してみます。

いい感じのテストデータが作成されている事が分かるかと思います。

まとめ

今回使用したジェネレーター以外にも正規表現等でもデータ生成ができる為、テストデータを作成する機能としては、非常に使い勝手はよいのではないでしょうか。
項目数が多い場合には、各項目に対して一つ一つ設定していくのは、少し大変かと思いますが、一度作成してしまえばプロファイルとして保存できる為、次回以降、作成した情報に手を入れたりする事もできます。

現時点では、Navicatの日本語版の最新バージョンとなる Ver.15 には、Data Generation 機能 はありませんが、Navicatを使用してみたいという方は、是非、14日間の Free Trial を試してみて下さい!

 

Return Top