メモ > 技術 > データベース: 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図に関するオプションを調整できる
基本的にデフォルトのままで問題なさそうだが、「オブジェクトをスナップする」の間隔など、必要に応じて調整する
メニューの「設定 → オブジェクトの追加 → リレーションシップ」から、テーブル間の関連を設定できる
「親エンティティをクリック(主キーがある方) → 子エンティティをクリック(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