※当サイトの記事には、広告・プロモーションが含まれます。

MySQL WorkbenchでDDLからER図を作成できるがエンティティの配置とリレーションシップの描画に難あり

enterprisezine.jp

2027年4月より「ホ方式」廃止、公的個人認証へ一本化

 犯収法改正の背景には、オンライン本人確認(eKYC)を用いた「不正利用」の深刻化がある。2027年4月施行という具体的な期日が設けられたことからも、政府がこの問題への迅速な対策を不可欠と見なしていることがわかるだろう。

2027年eKYC一本化、「犯収法改正」で変わる本人確認 厳格化を前に事業者はどう備える (1/3)|EnterpriseZine(エンタープライズジン)

 現在のeKYCには、「ホ」「へ」「ト」「ワ」「チ」の5つの方式がある。今回の犯収法改正は、これを原則としてマイナンバーカードなどを用いた公的個人認証に一本化するもので、「ホ方式」(自身の容貌と本人確認書類画像の送信)の廃止を意味する。

2027年eKYC一本化、「犯収法改正」で変わる本人確認 厳格化を前に事業者はどう備える (1/3)|EnterpriseZine(エンタープライズジン)

⇧ そもそも、方式が多岐に渡り過ぎなんよね...

「認証」周りの「セキュリティ」を担保するのが、年々困難になってきている気がしますな...

エンジニアの負担も右肩上がりで止まることが無いと言った感じですな...

MySQL WorkbenchでDDLからER図を作成できるがエンティティの配置とリレーションシップの描画に難あり

前回、

ts0818.hatenablog.com

⇧ 上記の記事の時に、「GitHub」で公開されていた「Zabbix」の「Gitリポジトリ」から、「Zabbix」で利用される「データベース」の内、「MySQL」に関しての「テーブル」一覧を確認したい目的で、「データ定義言語(DDL:Data Definition Language)」のsqlファイルを作成しました。

今回は、「データ定義言語(DDL:Data Definition Language)」のsqlファイルを元に、「ER図(ERD:Entity Relationship Diagram)」を作成する、所謂、「リバースエンジニアリング(reverse engineering)」ってものを実現したい。

そのために、「MySQL Workbench」を利用していくので、「Windows 10 Home」にインストールしときます。

MySQL Workbench」を利用して「ER図(ERD:Entity Relationship Diagram)」を作成する場合、

  1. データ定義言語(DDL:Data Definition Language)のsqlファイルを元にする
  2. 既存のデータベースを元にする

の2種類の方法が選べるらしい。

ネットの情報を漁ってみたのだが、「ER図(ERD:Entity Relationship Diagram)」を作成するツールについて、

「1. データ定義言語(DDL:Data Definition Language)のsqlファイルを元にする」

に対応していて、且つ、無料で利用できるのものが「MySQL Workbench」以外で見当たらない...

今のところ、消去法で「MySQL Workbench」を利用するしかない感になるんかな...

まぁ、「データベース」を作成できる準備ができている環境であるならば、「MySQL Workbench」以外を利用する選択肢もあるとは思いますが...

 

話が脱線しましたが、「MySQL Workbench」をインストールします。

自分は「Windows 10 Home」の環境で「MySQL Workbench」を使用するので、「winget」を利用してインストールしていますが、お好きな方法でインストールしてもらって問題ないかと。

左下の「Windowsアイコン」をクリックすると、「最近追加されたもの」で「MySQL Workbench 8.0 CE」が表示されていれば、インストールが成功してます。

「タスク バーにピン留め」しておきます。

「タスクバー」で「MySQL Workbench 8.0 CE」のアイコンをクリックして「MySQL Workbench」を起動します。

「File」>「New Model」を選択。

「File」>「Import」>「Reverse Enginner MySQL Create Script...」を選択。

前回、作成していた「データ定義言語(DDL:Data Definition Language)」のsqlファイルを選択。

「Place imported objects on a diagram」のチェックボックスにチェックを入れて、「Excute >」ボタン押下。

「Next」ボタン押下。

「Finish」ボタン押下。

「ER図(ERD:Entity Relationship Diagram)」が描画されました。

「リレーションシップ」も描画されたのですが、各々のテーブルの配置が微妙で、重なり合っていたりして、微妙な感じではある...

テーブル数は、207個なのだけど、関係性の高いエンティティが近場に固まっていないのと、エンティティが重なり合っていたりと、なかなか厳しいものがあるが、無料で利用させていただいている以上、文句は言えないよね...

こういう領域でこそ、「AI」に頑張ってもらいたいのですけどね...

ちなみに、各テーブルのカラムがどんな役割を持っているのかについては、一切の説明が無いので、「Zabbix」を開発・メンテナンスしている中の人しか真意を把握していないと思われる...

「我々は雰囲気でZabbixを使っている」という状態から脱却することは厳しそうね...

毎度モヤモヤ感が半端ない…

今回はこのへんで。

 

NG集

ここからは、「MySQL Workbench」で「ER図(ERD:Entity Relationship Diagram)」の描画が上手くいかずにハマった話を備忘録として残しておく。

skrum.co.jp

⇧ 上記サイト様を参考にしていたのだが、結論としては、「MySQL Workbench」のバージョンによっては「バグ」が存在しているということらしい。

 

■NGだった方法

左サイドバーの赤枠で囲っているアイコンをクリック後、画面に表示されたアイコンをクリックし、「Create EER Model from Script」を選択。

前回、作成していた「データ定義言語(DDL:Data Definition Language)」のsqlファイルを選択。

「Place imported objects on a diagram」のチェックボックスにチェックを入れて、「Excute >」ボタン押下。

「Next」ボタン押下。

「Finish」ボタン押下。

「ER図(ERD:Entity Relationship Diagram)」の「エンティティ」間の「リレーションシップ」が表示されない...

ネットの情報を漁っていたところ、

stackoverflow.com

bugs.mysql.com

⇧ 上記の情報で同様の事象が起きているという話があり、

bugs.mysql.com

⇧ 上記にあるように、「MySQL Workbench」の操作方法によっては上手く動作しない「バグ」が存在するらしい...

ちなみに、

dev.mysql.com

9.4.2.1 Reverse Engineering Using a Create Script

To reverse-engineer a database using a create script, do one of the following:

  • On the home screen, select the model view from the sidebar, click (>) next to Models, and then click Reverse Engineer MySQL Create Script.

  • With a model selected and its model tab open click FileImport, and then Reverse Engineer MySQL Create Script from the menu.

https://dev.mysql.com/doc/workbench/en/wb-reverse-engineer-create-script.html

Tables, views, routines, routine groups, indexes, keys, and constraints can be imported from an SQL script file. Objects imported using an SQL script can be manipulated within MySQL Workbench the same as other objects. The following figure shows an example of the input and options available for this action.

https://dev.mysql.com/doc/workbench/en/wb-reverse-engineer-create-script.html

⇧ 公式のドキュメントでは、「バグ」については言及されていない...