A5:SQL Mk-2を使用したデータベース管理作業のベリファイ

#A5:SQL Mk-2を使用したデータベース管理作業のベリファイ

データベース関連の開発におけるツールを使用した作業検証について解説します。

以下の工程を一周することにより、手作業での変更結果を自動生成されたエビデンスと比較して確認できます。
　- DDLを用いてテーブル構築
　- テーブル定義書出力
　- テーブル定義書からER図を生成
　- ER図からDDLを生成

例えば、テーブル定義書を手入力にて修正したとします。
　- テーブル定義書を手作業で修正
　- テーブル定義書からER図を生成
　- ER図からDDLを生成
　- DDLを用いてテーブル構築
　- テーブル定義書出力
という順で作業を行えば、修正が適用された後の最新のテーブル定義書が生成されます。
この最新定義書と自分が手で修正した定義書を比較することで作業の検証が行えます。
DDLを修正した場合でも同様に、修正したDDLを用いてテーブル構築を行った後、DDL生成まで行い、自動生成されたDDLと比較することで作業を検証できます。

以下、各作業の詳細手順です。

##テーブル構築 - MySQLへテーブル定義を適用する。

1. 管理ソフトの起動
  データベース管理は「A5 SQL Mk-2」というソフトウェアを使用する。 
 ※https://a5m2.mmatsubara.com/

2. データ定義を読込む
  DDLファイルを開く。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/4bed3658-fbbf-6473-0a64-27ac5a06cd7b.png)
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/d05e4389-fd8a-7e3d-bcdd-f797547d6649.png)

3. SQLの実行
  適用先を指定する。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/5eaff9cc-098d-4843-e457-bee6aa1db728.png)
  実行位置を「先頭から全て」に設定する。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/c399c1ca-2194-404e-a289-c11c41e140c4.png)
  実行する。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/db8b84a9-1def-a83a-dd5a-45c73b7cb864.png)

4. テーブルを確認
  右クリック　→　「すべてのデータベース情報の再読み込み」を実行する。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/c74b35ba-16a6-3f98-7ebd-893428952c1a.png)
  テーブルが追加されていることを確認。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/a5716784-7008-ed5b-016f-460c14bf556f.png)

##テーブル定義書出力 - データベースから定義書を自動作成する。

1. A5M2の起動

2. スキーマを開く
  データベースへ接続し、テーブルが存在することを確認する。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/ab7f85cc-c26f-000d-de0e-85d521a1a71a.png)

3. 定義書の出力
  データベース名を右クリック　→　「テーブル定義書作成」を選択する。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/46c73810-a27e-b731-c82a-eda9d6ac6939.png)
  スキーマを選択する。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/4b0ac394-083d-0680-3d73-0f9a0859f681.png)
  定義を出力したいテーブルおよびビューを選択する。
  システム名とサブシステム名を適宜設定し（他のオプションはデフォルトのままでよい）「テーブル定義書作成」ボタンを押下する。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/13886f07-17e6-128b-6938-4fdf6190087d.png)

4. ファイルの保存。
  ファイル出力が終わったら「閉じる」ボタンを押下して処理を終了する。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/145f3882-700d-e174-0b37-50d30317518c.png)
  出力したファイルの画面に移動し、保存する。

##テーブル定義書からER図を生成 - A5 SQL Mk-2が読み込める形式のER図を作成する。
※A5 SQL Mk-2公式ホームページで配布しているマクロを（必要に応じて修正してから）使用する。

1. テーブル定義書を開く

2. マクロを取り込む
  開発タブの「Visual Basic」を押下する。
  ※セキュリティの設定は適宜変更すること。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/42794cf2-a1a3-0628-eda1-521548f1e3d0.png)
  ファイルメニュー　→　「ファイルのインポート」を選択する。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/2d059cda-2f52-efcf-30e3-9f53897d8912.png)
  「A5ER_Skeleton.bas」を開いてインポートする。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/5697e19b-c8ab-435a-a605-4c187a3657ab.png)
  VBAProjectの標準モジュール配下にModel1ができているので開いて、マクロが取り込まれていることを確認する。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/c1a16718-d12e-13e1-689f-89f0d1b9185e.png)

3. マクロの実行
  エクセルの画面に戻り、開発タブの「マクロ」を押下する。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/dda7f167-9313-613b-965f-2926245a1a34.png)
  「CreateA5ER_Skeleton」を選択し、「実行」ボタンを押下する。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/f15e0477-0842-399d-a801-5ba2191232de.png)
  「ER図.a5er」として保存する。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/07aae67a-7961-cbdc-22df-819da03996ad.png)

4. マクロをインポートしたエクセルファイルをマクロ有効ブックとして保存
  「名前を付けて保存」を実行し、Excelマクロ有効ブックとして保存する。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/474e61b9-b37c-4415-dcc8-82e9fffe7cb3.png)

#ER図からDDLを生成 - A5 SQL Mk-2にてER図を読み込みDDLを生成する。

1. 管理ソフトの起動
  A5 SQL Mk-2を起動する。

2. ER図を開く
  ファイルメニュー　→　「開く」を選択し、「ER図.a5er」を開く。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/1986351b-25ad-5cb7-40ae-2d7688e25c9e.png)
  定義の並びがランダムになっているので見やすくなるよう整列させておく。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/48d4268c-7630-c3d0-3e56-764afd457193.png)

3. DDLを出力する
  DDLを出力するテーブルをすべて選択する。
  ※Shiftキーを押しながらクリックすると複数選択が可能。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/bcd5b1b1-d5c1-b577-3f99-d6425116ceb4.png)
  ER図メニューの「DDLを作成する」を選択する。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/6ed8f7cf-bebc-72b2-cd6d-05e8242d510d.png)
  RDBMS種類をデータベースに合わせて選択する。
  「選択しているオブジェクトだけDDLを生成する」チェックボックスをONにして、「DDL生成」ボタンを押下する。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/4a551da2-fedf-eed2-67a1-389c833d3e90.png)
  新規タブ（下記例ではQuery-1）が生成されたことを確認する。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/99ffd5eb-fd6b-5c3a-718a-c052e41545ef.png)

4. DDLを保存する
  「DDL.sql」として保存する。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404409/1f71d0c8-dcbf-e43b-51f0-699dd4b6cf44.png)