linuxBean14.04(66)サンプルデータベースemployee dataのER図を作成するまで

2015-09-18

旧ブログ

t f B! P L

前の関連記事:linuxBean14.04(65)MySQL WorkbenchでMySQLユーザーを追加


MySQL :: MySQL Documentation: Other MySQL Documentationには4つのサンプルデータベースが用意されているのでそれをMySQL Workbench6.3を使ってMySQL5.6にインストールします。まずは従業員に関する400万件のデータが含まれているemployee dataのインストールをします。

employee dataのインストール


Sample database with test suite in Launchpadの右にあるリンクからemployees_db-full-1.0.6.tar.bz2をダウンロードしました。

解凍するとemployees_dbフォルダがでてきます。

Terminalではemployees_dbフォルダでmysqlにログインしたあとSOURCE employees.sqlとするとemployees.sql書いてあるSQLでテーブルを作成しそこに同じフォルダにあるdumpファイルからデータを取り込んでくれます。

ところがWorkbenchではemployees.sqlと同じフォルダにあるdumpファイルを取り込んでくれません。

employees.sqlの中にhostコマンドでディレクトリの変更ができないかやってみましたがうまくいきませんでした。

ということでemployees.sqlのdumpファイルのパスをすべて絶対パスに書き換えてからWorkbenchでとりこむことにします。

employees.sqlファイルの編集にはWorkbenchのSQLエディタを使うことにします。

Workbenchを起動してlinuxBean14.04(65)MySQL WorkbenchでMySQLユーザーを追加で作った接続アイコンでMySQLサーバに接続します。


インスタンスタブのメニュー下の左から2番目のアイコンをクリックします。

employees.sqlファイルを選択します。


employeesタブができてemployees.sqlファイルの内容が表示されました。

エディタ内のSLQをクリックするとエディタウィンドウの右側にヘルプが表示されます。

Workbenchウィンドウの横幅を900pxぐらいに広げないとヘルプタブを表示できませんでした。

絶対パスに変更するのは108行目以降のdumpファイルを指定している部分です。


エラーがでていますがこれはsourceに対するエラーであってdumpファイルのパスとは関係ありません。


dumpファイルをすべて絶対パスに変更しました。


左から3つ目のアイコンをクリックするとsqlファイルの内容を実行できそうですが、SQLエディタでエラーが出ている通り108行目でエラーで止まってしまいます。

MySQLのSOURCEでSQLファイルを扱う | Whimsical Kitteeeeen

これを読んで理由がわかりました。

sourceコマンドはSQLではなくてmysql-clientのコマンドだからだそうです。

ということでSQLエディタから実行することはあきらめて、employeesタブを閉じてSaveします。


左の枠にあるData Import/Restoreをクリック。


Import from Self-Contained Fileをチェックしてemployees.sqlファイルを選択します。

右下のStart Importボタンをクリック。


取り込みに2分弱かかりました。


左下のSCHEMASにemployeesが取り込まれていることがわかります。

表示されないときはSCHEMASの右にある更新アイコンをクリックします。

ビュー、ストアドプロシージャ、関数のインストール


ビュー、ストアドプロシージャ、関数はemployees.sqlと同じフォルダにあるobjects.sqlにあります。

employees.sqlと同様にData Import/Restoreでobjects.sqlを取り込みます。


employeesスキーマにビュー、ストアドプロシージャ、関数が取り込まれていることがわかります。

これでempoyeesスキーマのインストールは完了です。

テーブルの内容を見る



MySQL :: MySQL Workbench :: 8.2.1 Object Browser and Editor Navigator

SCHEMASのテーブルにマウスカーソルを持ってくるとテーブル名の右側の3つのアイコンが出現します。

左からInfo(情報)アイコン、Wrench(レンチ)アイコン、Selectアイコンになります。


Selectアイコンをクリックするとテーブル名のタブが出現して下の枠にテーブルの内容が出力されます。

デフォルトでは出力行数は1000行に制限されていますが「Limit to 1000 rows」を変更すると出力行数を変更できます。


View→Panels→Show Output Areaで出力パネルを表示しAction Outputを選択すると実際に実行されたSQLを確認できます。

Infoアイコンをクリックするとテーブルの設定を見ることができます。

各項目を選択する入れ子のタブが上にでてきます。

Wrenchアイコンをクリックするとテーブルの設定を変更できます。

各項目を選択する入れ子のタブが下にでてきます。
(MySQL :: MySQL Workbench :: 8.1.11.1 The Main Editor Window)

Columnsタブではテーブルの列名とデータ型、制約が見れます。

sql - What do column flags mean in MySQL Workbench? - Stack Overflow

制約についてはこのQ&AがわかりやすかったですがUNの範囲が間違っている?

PK: Primary Key 主キー 重複禁止、NULL値禁止。

NN: Not Null       NULL値禁止。

UQ: Unique        重複禁止。

BIN: Binary        バイナリデータ。

UN: Unsigned    符号なし整数値。MySQL :: MySQL 5.6 リファレンスマニュアル :: 11.2.1 整数型 (真数値) - INTEGER、INT、SMALLINT、TINYINT、MEDIUMINT、BIGINT

ZF: Zero-Filled 固定長表示。

AI: Auto Increment 自動連番。

ビューを見る


ビューもテーブルとアイコンが表示されSelectアイコンをクリックするとビューの結果が表示されます。


ビューが出力されている枠の右端のアイコンをResult GridからExecution Planに変更するとVisual Explainが表示されます。

MySQL :: MySQL Workbench :: 7.5 Tutorial: Using Visual Explain to improve query performance

Visual Explainはパフォーマンス向上の参考にするようなもののようです。

ビューだけでなく関数でもVisual Explainの表示ができましたが、ストアドプロシージャでは表示されませんでした。

MySQL :: MySQL Workbench :: 7.3 Visual Explain Plan

Infoアイコンをクリックするとテーブルのときと同様に出力されるビューの設定を見ることができます。

Wrenchアイコンをクリックするとテーブルのときと違ってビューのSQLが表示されます。


MySQL :: MySQL 5.6 リファレンスマニュアル :: 20.5.1 ビューの構文

ストアドプロシージャの実行結果を見る


ストアドプロシージャについてはWrenchアイコンとSQL実行アイコンが表示されます。

SQL実行アイコンをクリックするとストアドプロシージャの実行結果が表示されます。

Wrenchアイコンをクリックするとビューのときと同様にSQLが表示されます。

MySQL :: MySQL 5.6 リファレンスマニュアル :: 20.1 ストアドプログラムの定義

関数を実行する


関数についてもストアドプロシージャと同様にWrenchアイコンとSQL実行アイコンが表示されます。

SQL実行アイコンをクリックすると関数が実行されますが、関数の引数の入力を要求されます。


current_manager関数のSQL実行アイコンをクリックするとdept_idの入力を求められます。

current_manager関数のSQLを見るとdept_idとはdept_noのことのようですので、上記のテーブルの内容を見る、でみたdepartmentsテーブルにでてきたdept_noの「d009」を入力して「Execute」をクリック。


current_manager関数の戻り値である現在のマネージャの名前がでてきました。

取り込んだemployee dataのER図を作成する


ER図はMySQLモデルの一部として生成されるのでスキーマからMySQLモデルを作ることになります。

メニューのDatabase→Reverse Engineer。


すでにサーバとの接続は済んでいるのでそのまま「Next」。


データベースからSchemaリストを得ました。「Next」。


employeesスキーマにチェックをつけて「Next」。


選択したスキーマからオブジェクトを取得しました。



左下にあるShow Logsボタンをクリックすると6つのテーブルと2つのビュー、5つのルーチン(ストアドプロシージャと関数)が取り込まれたことがわかります。


各項目の右にあるShow Filterボタンをクリックすると取り込むオブジェクトを取捨選択できます。

「Execute」をクリック。


あとは「Next」、「Close」とクリックしていって完了です。


EER DiagramsにあるEER DiagramアイコンをダブルクリックするとERR Diagramタブが選択されてER図を見ることができます。


ERR diagramタブにER図ができています。

ER図はIE (Information Engineering)記法で書かれています。

MySQL ModelタブのPhysical Schemasのemployeesタブのテーブル、ビュー、ルーチンの各項目にあるAddアイコンで新しいオブジェクトを追加できます。

MySQL Modelを保存する


MySQL ModelタブのツールバーにあるSave Model to Current Fileアイコンをクリックするとmwbファイルを保存するダイアログがでてきます。


ホームタブの下部のModelsのところに保存したmwbファイル名のアイコンができます。


Modelのアイコンをクリックすることでmwvファイルを開けますが、同時には一つしか開けないようで、既に開いているモデルを閉じていいか、と聞かれます。

一つのスキーマに対して複数のモデルと作成することは可能ですが、Database→Synchronize Modelするときは慎重に実行しないと思わぬデータ損失をする可能性があります。

参考にしたサイト


MySQLのSOURCEでSQLファイルを扱う | Whimsical Kitteeeeen
SOURCEコマンドはSQLではないのでMySQL WorkbenchのSQL実行ボタンでは実行できません。

MySQL :: MySQL 5.6 リファレンスマニュアル
MySQL5.6の日本語マニュアル。

MySQL :: MySQL Documentation: Other MySQL Documentation
サンプルデータベースのダウンロードサイト。

Sample database with test suite in Launchpad
employee dataは上記のダウンロードサイトをたどってここからダウンロードしました。

MySQL :: Employees Sample Database :: 2 Installation
employee dataのCUIでのインストール方法。

漢(オトコ)のコンピュータ道: MySQLでVisual Explain
Visual Explainの活用の仕方が解説されています。

ER図 (Entity Relationship Diagram)
ER図の種類について解説されています。

次の関連記事:linuxBean14.04(67)サンプルデータベースsakila databaseのインストール

ブログ検索 by Blogger

Translate

最近のコメント

Created by Calendar Gadget

QooQ