ClaudeはA5:SQL Mk-2のER図を書けるか
DE-TEIUです。
今のClaudeは、多少DB設計っぽいこともやろうと思えばできるので、せっかくならER図まで書いてくれないかな、と思ってちょっと試してみた話です。
※ゆるWeb勉強会@札幌 #30で話したトピックを再編集したものです。
A5:SQL Mk-2
A5:SQL Mk-2という、最高のDBクライアントがあります。
- Windowsで動くフリーのDBクライアント
- 様々なDBに接続できる(Oracle、PostgreSQL、MySQL、SQL Server などなど)
- レコードの参照、更新が直感的にできる
- 当然SQLの実行もできる
- ER図を作れる
- 業務系システムの開発をしている会社が使いがち(な気がする)
ER図はこんな感じで編集できます。
テーブルのカラム定義の編集ウィンドウはこういう雰囲気。わかりやすい。
そしてなんとこのER図からDDLを生成してくれたり。
ところで、このER図の中身はどうなってんの?
実はこれ、中身はテキストデータになっています。
# A5:ER FORMAT:19
# A5:ER ENCODING:UTF8
# A5:ER Mk-1 Copyright © 2007 m.matsubara
# A5:SQL Mk-2 Version 2.20.4 Copyright © 1997 - 2025 m.matsubara
# https://a5m2.mmatsubara.com
[Manager]
ProjectName=テストプロジェクト
Author=DE-TEIU
MaxEntityRowShow=1000
...
...
...
ということは、これもしかしてファイルの記法ルールを学習させたらAIに作ってもらえるのでは?
とりあえず命令してみる
さすがにこれを言うだけじゃダメだった。ClaudeはA5:SQLのER図についてのコンテキストは持ってなさそう。
このER図の記法をドキュメント化しよう
こんな流れでER図の仕様をドキュメント化できたりしないかね?
やってみよう。
- Claudeに適当なシステムのDDLを作らせる
- そのDDLを実行し、テーブルを作る
- A5:SQLの機能で、テーブルを作ったスキーマから ER図(.a5er)をリバース生成する
- 生成したa5erファイルをClaudeに渡して、このファイルの記述ルールを理解させる(ルールをテキストファイルで出力させる)
- 記述ルールをClaudeに渡して、同時に別のシステムのER図を作らせる(これができたら成功!)
Claudeに適当なシステムのDDLを作らせる
そのDDLを実行し、テーブルを作る
A5:SQLの機能で、テーブルを作ったスキーマから ER図(.a5er)をリバース生成する
生成したa5erファイルをClaudeに渡して、このファイルの記述ルールを理解させる
記述ルールをClaudeに渡して、同時に別のシステムのER図を作らせる
ER図をA5:SQLで開いてみよう
できてそう。 ちなみにこれ、もちろん一発でできた訳ではなくて、何回かプロンプトを調整しながら試して最終的にこうなった。 最初のうちはいざA5:SQLで開いたら何も出てこない謎のa5erファイルとか作られてた。
結論
やろうと思えばできる
まとめ
今回、
- テキストベースのER図データをAIに与え、その記述ルールを学ばせる
- 学ばせた記述ルールをもとに、別のER図を生成させる
という手順でER図の生成を行った。
この方法は、テキストベースのデータであれば、恐らくどんなファイルの生成にも応用できる。 サンプルとなるデータを渡してやれば、たぶん何でも作れるようになりそう。何か他のことにも応用したい。
補足(と言いつつここが最重要)
イベントでこの話をした後、登壇資料を公開したら、なんとA5:SQL作者の方の目にとまり、下記のコメントをいただきました。
A5:SQL Mk-2 作者ですが仕様を公開していなかったので、LLMで出力できると思っていませんでした。とはいえ、問題はありそうですね。まだドラフト扱いのドキュメントですが、ER図ファイルの仕様を公開しました。 a5m2.mmatsubara.com/document/a5er_…
そして公式のER図ファイルの仕様書を公開していただきました。ありがとうございます。
ちなみにこの仕様書を使ってa5erファイルを自動生成したところ、一発でいい感じのものが生成されました。 ということで、A5:SQLのER図をAIに作らせたくなったら上記の仕様書を読ませて作りましょう。