メモ > 技術 > データベース: MySQL > A5:SQL Mk-2
A5:SQL Mk-2
※Windows用のデータベース管理ツール。
また、テーブル定義をもとにER図の雛形を作成することもできる。
A5:SQL Mk-2 - フリーの汎用SQL開発ツール/ER図ツール .. 松原正和
https://a5m2.mmatsubara.com/
A5:SQL Mk-2に回帰した話 | フューチャー技術ブログ
https://future-architect.github.io/articles/20220225a/
■接続先の追加
初回起動時に接続先を確認されるので設定できる。
その後はメニューの「データベース → データベースの追加と削除」から追加できる。
■接続先の追加(トンネル接続の場合)
接続設定画面の「SSH2トンネル」タブで、サーバの接続情報を入力する。
「基本」タブでは、そのサーバ内からデータベースへ接続する際の情報を入力する。
■接続先の追加(Docker環境の場合)
・XAMPPをインストールしている。
・WSL2に手動でDockerをインストールしている。
・DockerのMySQLコンテナを起動させている。
という環境で確認。
通常どおりA5:SQLのメニューから。
データベース → データベースの追加と削除 → 追加 → MySQL/MariaDB直接接続
として接続設定を行う。
「基本」タブで以下のとおり設定。
ホスト名: localhost
ポート番号: 3306
ユーザ名: root
パスワード: (docker-compose.yml の MYSQL_ROOT_PASSWORD で設定した値。)
データベース: (docker-compose.yml の MYSQL_DATABASE で設定した値。)
これで接続ができた。
なおXAMPPとコンテナの両方を起動させている場合、
「コンテナが起動されていると、コンテナのMySQLに接続できるがXAMPPのMySQLには接続できない」
「コンテナが起動されていなければ、コンテナのMySQLに接続できないがXAMPPのMySQLには接続できる」
となった。
【Docker】DockerコンテナのDBに外部のA5:SQL Mk-2から接続する方法 | とんプログラミング
https://programming.sincoston.com/docker-db-connect-pg-external/
環境によっては接続先は localhost(127.0.0.1)で無いことがあるらしい。
その場合、以下などが参考になるかもしれない。(未検証。)
Windows 10 Home(WSL2)のDockerでMySQL立ち上げてWindows側からA5:SQL Mk2で接続してみる | Snow System
https://snowsystem.net/container/docker/docker-mysql-wsl-a5sql/
■ER図を書く
以下でツールの基本操作が紹介されている。
ERエディタ - ER図ツール
https://a5m2.mmatsubara.com/help/ER/
ER図を作成したいデータベースを選択し、メニューから「データベース → ER図 → ER図のリバース生成」を実行。
テーブル一覧が表示されるので、すべてのテーブルを選択して「リバースER生成」ボタンを押す。
しばらく待つとER図が表示される。ただしテーブル間の関連は反映されていない。
以下を参考にする限り、関連は手動での設定が必要みたい
描ける!ER図
https://www.slideshare.net/nekoruri/er-14127685
メニューの「ER図 → 表示レベル」は「属性」がデフォルトとなっているが、
これを例えば「属性とデータ型」にすると、列名も一緒に表示される。
この設定は「属性(論理名と物理名)」もしくは「属性(論理名と物理名)とデータ型(位置揃え)」にしておくのが判りやすいかもしれない。
メニューの「ER図 → ER図プロパティ」から、プロジェクト名や著作者などを登録できる。
何に使われているかは不明だが、単純にドキュメントの情報として持っているだけかもしれない。
「プロジェクト名」と「RDBMS種類」は、適切なものにしておくと後々混乱しなくて良さそう。
メニューの「設定 → オプション → ER図」から、ER図に関するオプションを調整できる。
基本的にデフォルトのままで問題なさそうだが、「オブジェクトをスナップする」の間隔など、必要に応じて調整する。
メニューの「ER図 → オブジェクトの追加 → リレーションシップ」から、テーブル間の関連を設定できる。
「親エンティティをクリック(主キーがある方) → 子エンティティをクリック(xxx_id がある方)」
とクリックすると線が引かれる。
この線をダブルクリックするとリレーションの詳細を設定できる。
基本的に
・「カーディナリティ」は「1」対「0以上」。
・「依存」にチェックしない。
・「リレーション」は「代理キー」と設定したい「xxx_id」の列。
として「適用」をクリックする。
…でいいはずだが、先の引かれる位置がおかしい?また調査する。
メニューの「設定 → オブジェクトの追加 → エンティティ」から、テーブルを追加できる。
追加されたエンティティをダブルクリックすると、列の追加ができる。
作成済みのエンティティをダブルクリックすると、列の追加編集削除などができる。
メニューの「ER図 → DDLを作成する」から、ER図をもとにSQLを作成できる。
必要に応じて設定を変更してから「DDL生成」ボタンを押す。
ER図に修正を加える場合、基本的にはデータベース定義を見ながらA5:SQL上で作業することになる…はず。
ただし新規にテーブルを追加する場合、いったん対象テーブルをリバース生成し、それをコピー&ペーストで持ってくると早い…はず。
メニューの「ファイル → 名前をつけて保存」から、拡張子「a5er」のファイルとしてER図を保存できる。
次回このファイルを開けば、ER図が再現される。
その他、以下などを参考にすると良さそう。
若手プログラマー必読!5分で理解できるER図の書き方5ステップ
https://it-koala.com/entity-relationship-diagram-1897
ひととおり基本が紹介されている。
ER図とは?書き方や用語・テクニックを徹底解説
https://products.sint.co.jp/ober/blog/create-er-diagram
「ER図を見やすくするテクニック」部分などを参考にする。
「親エンティティは左上から書く」は、常に意識しておくと良さそう。
若手プログラマー必読!5分で理解できるER図の書き方5ステップ
https://it-koala.com/entity-relationship-diagram-1897