2019/09/05 追記
仕事がOracleを使ったパッケージ開発なんだけどデータベースを参照するのにMS-ACCESS使っている人が多い。10年近く使っているのがA5:SQL Mk-2(以下 A5M2 エーゴエムニと発音する派)でこれなしの開発なんかは考えられないぐらいである。どれくらい良いかを職場の人に説明するためにまとめておく。
この記事では以下のことについて解説している。
ココがポイント
- A5M2を使うことのメリット
- A5M2を使う時の注意点
システムエンジニアとしてA5M2を使い続けて10年以上の私が感じたメリットの数々を感謝の気持を込めて説明します。
松原正和さん作成
高機能かつ軽量な汎用SQL開発ツール / ER図ツール / フリーソフト (読み:エーファイブ・エスキューエル・マークツー)
https://a5m2.mmatsubara.com/
目次【本記事の内容】
- 1.1.A5M2を使うことのメリット
- 1-1.A5M2がない時代に起こった悲劇
- 1-2.A5M2をダウンロード、インストール、データベースに接続
- 1-3.A5M2を使うメリット
- 2.A5M2を使うことの注意点
- 2-1.A5M2を使う時のおすすめ設定
- 2-2.Version 2.14.3 2019/08/17が神アプデ
- 3.まとめ
1.A5M2を使うことのメリット
1-1.A5M2がない時代に起こった悲劇
A5M2がなかった時代のデータベース開発は大変だった。SI Object Browserはその当時からあった。しかし値段のせいでプロジェクトでは買ってもらえない。しかたなくSQL*PlusかAccessのリンクテーブルを使って開発するのだが、以下のような事件が度々起きた。
SQL*Plusはデータを参照するのには向かない。設定ファイルでいろいろいじってなんとか見やすい形にできる。しかしExcelのようにグリッドでデータを照会するのと比べて非常に見づらい。そのせいで大事なデータを見落として間違えた手順でデータ移行に失敗するケースが出た。それだったら、Accessを使ってリンクテーブルを使えば良いのではという意見があった。そうしたらリンクテーブルを開いている時に間違ってデータ更新をしたり、テーブルのデータを全件消してしまうような自体が発生した。
もう金だしてSI Object Browser買ったほうがコスト安く済むのではないのか?そう思い始めたときである。協力会社の人がA5M2使えば良いんじゃないですか?と提案してくれる人がいたのである。私はそれ以来のA5M2ファンである。
1-2.A5M2をダウンロード、インストール、データベースに接続
step
1
インストールするファイルをダウンロード
作成者様のサイトからA5M2 をダウンロードしよう。私が強くおすすめするのはA5M2をVectorからダウンロードするほうだ。なぜかというと後述するポータブルモードが利用できるからである。
自分のパソコンが64bit版か32bit版か確認してインストールしてほしい。この確認方法を知らない人がシステム開発の現場でも結構いるのだ。私がおすすめする方法はエクスプローラーのPCで右クリック。プロパティを表示して確認する方法だ。
step
2
ダウンロードしたファイルを解凍して配置
ダウンロードしたファイルをわかりやすいところに配置しておきます。解凍したフォルダにはバージョン番号が含まれているのでA5M2などシンプルな名前に変えておこう。そして自分がわかりやすい場所に移動しておく。私はCドライブがSSDで速いのでc:\A5M2 に配置している。
A5M2フォルダの中にあるA5M2.exeを最初に起動する時にレジストに情報を登録するか、ポータブルモードで運用するか選択する画面が出てくる。セキュリティにそんなにうるさくないのだったらポータブルモードがおすすめだ。そもそもシステム開発の現場では単体テスト環境にせよ、結合テスト環境にせよパスワードが秘密にされていることの方が少ないだろう。
step
3
データベースに接続する
データベースに接続する設定おこなう。私はOracleを仕事で使っているので他のDBに接続したい人は適宜設定を読み替えてほしい。ただ、この方法はOracleクライアントを新ストールしていなくても設定する方法なので、別のデータベースソフトを使っている人はクライアントソフトのインストールが必要であろう。
以上で接続の設定が完了だ。
1-3.A5M2を使うメリット
Oracle Client不要でつながる。
クエリーだって簡単に作れる
フィルタリングもA5M2は簡単
ソートも簡単
実行計画もA5M2なら簡単に取れる
データ取得も簡単
データの登録も簡単
特に気に入っているのがInsert文でのエクスポート。本番環境とかステージング環境とか勝手にデータを触れない場合、データの登録を依頼する時に使っていた。
SQLの実行も簡単
データ移行でも使える
データ移行するときは元のシステムからエクスポートして新システムにインポートするけど、機能追加でテーブル定義が変わっているとインポートが簡単にできない。そんなときは移行元の古いテーブルをemp_old のような一時的なテーブルをつくってそこに突っ込みたいのだが、インポートコマンドだとテーブル名が違うということで怒られる。
CSVでのエクスポート・インポート機能があるのでテーブル名が違っても関係ない。
スキーマ間でオブジェクトの比較が出来る
大規模プロジェクトだと個人ごとの開発環境を作るためにスキーマで分けて使っている人もいるだろう。また、パッケージ開発で顧客ごとにスキーマを分けてサーバーは一個というような開発環境の作り方をしているケースも有る。
こういう時に困るのが、開発環境を作り時に流すスクリプトのバージョンを間違えて、テーブルのカラムに過不足があるとか、制約が違うとかでアプリケーションが正しく動かないときがある。
A5M2だったらスキーマ間のオブジェクトを比較することができるので、新人君が仮に間違えてデータベース環境を作ったとしてもすぐに違うところをチェックすることができる。トラブルに陥った時にチェックする時にたまに使用している。
カラムが大量にあるテーブルで目的のカラムに素早く移動できる。
2019/10/31 追記
長い間使っていて、つい最近知った事。
今までなんでこんな事に気づかなかったのか。
数百カラムあるテーブル。
データビューを見ながら目的の列にたどり着くのが大変。一生懸命スクロールしていました。
でもテーブルビューにしてそのカラム名のところでダブルクリックする
この予備1でダブルクリックすればデータビューに切り替わってそのカラムに自動的に切り替わる。
なんでこんな事を今まで一生懸命スクロールして列を探していたのかというレベルの目からウロコ。
2.A5M2を使うことの注意点
2-1.A5M2を使う時のおすすめ設定
SQL入力支援のピリオドの入力でSQL入力支援を実行するは切っておく
SQLの入力支援自体は非常にありがたい機能なんだけど、ピリオドを打つと入力支援のためにテーブル名や列名を読み込みに行くのに非常に時間がかかるときがある。自分が覚えているテーブル名.列名 の場合でも問答無用で入力支援が立ち上がろうとしてもっさりな感じになるので切っておく。でもテーブルが数百、カラムの物理名がわけのわからん命名規則のシステムはコメント文で説明をつけておくと入力支援のときにも論理名が出てきて非常に助かる。本当に必要なときになったらCtrl+Spaceを押せばそれで良いと思う。
メインメニューの設定→オプションから
最大レコード件数には注意する。
テーブル定義書のリバースエンジニアリング
最近、新しいプロジェクトに取り組んでいて、旧バージョンのパッケージを最新化する案件をやっているの。まあ、最新版の機能についてはある程度抑えているから大丈夫だろうと思ったら、旧バージョンが無茶苦茶カスタマイズしているわけ。バージョンアップすると言ってもインフラ基盤とかアーキテクチャの更新だけで、その無茶苦茶カスタマイズしているから、パッケージの知識が役に立たないの。
そんな時もA5M2があればとりあえず、テーブル定義書をリバース・エンジニアリングできます!サクッとできる。制約とかインデックスとかトリガーもバッチリで目次も自動生成してくれるので助かる。
自動コミットしない設定にする
2-2.Version 2.14.3 2019/08/17が神アプデ
バージョンアップされて少し時間が空いたのだが最近使っていると明らかにCtrl + Spaceキーでの入力補完が早くなっている。今までちょっともたついた感があったのがだいぶ改善された。バージョンアップ履歴を見ると数千個テーブルが有るような場合と書かれているのだが、私が携わっているシステムはせいぜい500テーブルぐらい。まだバージョンアップしていない人は確認してほしい。
まとめ
データベースを使った開発をするならA5M2を使ってみよう。
データベースがOracleだったらOracle Client入れるまえにA5M2をいれて
クライアント無しでつながる快適さを実感しよう。
注意すべきは上限1万件と自動コミットになっている事。
今の仕事でこのソフトが無かったら多分1時間は残業増えているよ。