MacのGUIツールでDB2を動かしてみる〜GUIツールとしてのRazorsqlとDatagripの比較

この記事は、
1.	Mac上の「GUI環境」で、DB2の最新版である「DB2 express-C 11.1」を操作する
2.	また、そのために必要なGUIツールを2つ紹介し、実際に使用した際の様子を比較してどちらが最適なのか決める

という内容で構成されています。


MAC上の「GUI環境」から、「DB2 express-C 11.1」を操作できる環境を構築することで、Macユーザーは複雑なコマンドを使うことなく、視覚的にDB2の構造を捉えることができ、手軽に操作ができるようになります。

よって、「Mac環境」と「DB2 express-C 11.1」に対応するGUIツールの群の中から選出した2つのGUIツールをここで取り上げ、実際に使用して検証した様子を記載いたします。

Windows版では、DB2 express-C 11.1をGUI環境で操作することをサポートするツールとして、「Data Studio」がありますが、Data StudioはMacをサポートしていません。
よって、ここでは、他企業が製造・販売しているGUIツールを使用しています。


GUI ツールの一つの名前は、Razorsql。
もう一つの名前はDatagripです。

Razorsqlを選んだ理由としては、30個以上という広範囲のDBに対応できていて、さらにUIのデザインもシンプルで整理されていて、見やすかったからです。
Datagripを選んだ理由としては、『Your Swiss Army Knife for Databases and SQL』と作成側が宣言しているように、DB周り、SQLを使いこなす上で役に立つ様々な機能を保持しているからです。


この記事の内容は、
・Macユーザーである
・DB２を使ってみたいが、コマンドをうまく使いこなせない
・特にDB2の最新版に興味がある
・GUIツールに興味がある
のどれか一つに当てはまる読者の方でしたら、興味深い内容になると思われますので、ぜひ挑戦してみて下さい。

Razorsqlの検証
最初に、起動させると、「No connection」と題された画面が出てきます。こちらは、題名通り、まだどのデータベースにも繋がっていない状態です。

![Razorsql1 2016-09-14 .png](https://qiita-image-store.s3.amazonaws.com/0/142282/7b444900-72c0-9a73-b477-74f845cf7765.png)


画面左上の「click to connect to a database」をクリックしてみましょう。

すると、次の画面が表示されます。
![Razorsql2 2016-09-14 .png](https://qiita-image-store.s3.amazonaws.com/0/142282/160348f8-e526-ebc6-7d28-342dc9b823d5.png)



「DB2」を選んで、「Continue」を押してください。

すると、次の画面が表示されますので、必要な情報を入力して下さい。
画面左側のConnection Type の欄からは、一番上の*JDBC (IBM Type 4 Univesal LUW)を選んで下さい。
Profile nameは、自由に決めて頂いて大丈夫です。
Authenticationの「login」「password」は、
DB２アカウントのユーザー名とパスワードと同じものです。
「Host or IP Address」に入れるIPアドレスも、
入力してください。「Database name」には、データベースの名前が入ります。「Port」には、Port番号を入力してください。各項目に何を入力したら良いのかわからない時は、項目の名前（青い文字で表示されている箇所）をクリックすれば、説明が表示されます。
![Razorsql3 2016-09-14 .png](https://qiita-image-store.s3.amazonaws.com/0/142282/713dcc4e-402e-4c08-e2f8-720dc56e1824.png)



必要な項目を全て入力したら、「connect」をクリックして下さい。
成功すれば、DB2に接続できます。


ちなみに、connection profileを作った後に、「保存する」を選択すると、以下のような状態で、profileが保持されます。毎回RazorSQLにログインして、「Click to connect to a Database」をクリックする度に、自動的に下の画像が表示されるようになります。
ここからでも、「connect」をクリックして、目的のデータベースに接続することが可能です。


	


![Razor4_9_28.png](https://qiita-image-store.s3.amazonaws.com/0/142282/51a6228d-49b9-6153-cae7-249c5305bdf6.png)


私の場合は、入力されている情報が全て正しかったはずなのですが、「connect」をクリックした後に、下のようなエラーコードが出てしまいました。
Connection refused to DB2 ERRORCODE=-4499 during server setup
ERRORCODE=-4499, SQLSTATE=08001
よって、下のコマンドを、ターミナルに入力してみました。
![command1 2016-09-14.png](https://qiita-image-store.s3.amazonaws.com/0/142282/771bb2e1-85d2-2748-849f-726e8b97e1d2.png)
![command2 2016-09-14 .png](https://qiita-image-store.s3.amazonaws.com/0/142282/0f17416b-d638-16d7-9b27-6a1ccf8ae0b0.png)
![command3 2016-09-14 .png](https://qiita-image-store.s3.amazonaws.com/0/142282/d74daf26-c14e-db07-d624-8251396e644d.png)




これで、ネットワーク接続を正常にすることができました。
以下のURLを参考にしてやってみました。
https://www-304.ibm.com/support/docview.wss?uid=swg21403644

正常に起動すれば、DB2に接続し、以下のように、データベース
の内容をGUI環境で見ることができます。
左の欄に、DB2のSAMPLEの中の構造がディレクトリ順に並べられているのがお分かりになると思います。左の欄に、①データベースのオブジェクト情報が表示されます。
![Razor5_9_28.png](https://qiita-image-store.s3.amazonaws.com/0/142282/2d42c644-9ae1-f6b7-ed68-91fdcba6383a.png)



ここで、➁画面上部のコマンド入力の欄の中に、
select * from テーブル名
と入力してみると、テーブル内のデータのリストが表示されます。

ここでは、テーブルの一つの「Act」の中のデータを見るために、
select * from Act と入力してみましょう。
![ Razor6_2016-09-14 .png](https://qiita-image-store.s3.amazonaws.com/0/142282/3f744a45-9c3f-c7be-6fc7-5845650abe9e.png)

すると、このように「Act」のテーブル内のデータ一覧が表示されます。③の「結果が出る部分」の中に、データ一覧がリスト上に表示されているのが見えると思います。スクロールして、データの全容を見ることが可能です。



Datagripの検証

最初に、
Datagripを起動させると、以下のLicence Agreementに関するウィンドウが
出てきます。「Accept」を押して次に進みます。

![Datagrip1 2016-09-14 .png](https://qiita-image-store.s3.amazonaws.com/0/142282/784173e0-69b5-b66e-4f1e-c5c3131055c0.png)

このように、「UI theme」を選ぶウィンドウが出てきますので、お好きな方をお選び下さい。ここでは、デフォルトの「intellij」を選びます。
![Datagrip2 2016-09-14 .png](https://qiita-image-store.s3.amazonaws.com/0/142282/b63bfc86-7c1a-ac83-eef7-d1cb0deee548.png)

「Next: Editor Color Themes」をクリックして先に進みます。










ここでは、「Color theme」を選ぶことができますので、お好きなものを
お選び下さい。ここでは、「Default」を選んで、先に進みます。

![Datagrip3 2016-09-14 .png](https://qiita-image-store.s3.amazonaws.com/0/142282/817c045b-a405-b0e5-6707-bf9817607b69.png)

「Next: IDE Defaults」を押して、次に進みます。

この画面になりましたら、「DB2」をクリックして選んで下さい。
そして、下部に「Master password」という箇所がありますので、好きなパスワードを入れてください。「confirm password」で同じパスワードを入れた後は、
「Start using DataGrip」をクリックして先に進んでください。なお、ここで決めたMaster Passwordは、DataGrip 内のパスワードをためてあるデータベースにアクセスするのに必要となるため、紙に控えるなどして、覚えておいて下さい。この記事内でも、後ほど使用することになります。


![Datagrip4 2016-09-14 .png](https://qiita-image-store.s3.amazonaws.com/0/142282/410edeba-10df-0c42-4e98-bdabd803119b.png)






「start using Datagrip」をクリックし、
次の画面になりましたら、画面の指示に従って、
command;　（Manage Data Sources）
と入力して下さい。
![Datagrip5 2016-09-14 .png](https://qiita-image-store.s3.amazonaws.com/0/142282/48c4ddc6-f743-9324-f3c3-0a86c1c09c49.png)


すると、下記の「Data Sources and Drivers」の画面が表示されます。
ここでは、左側の「Drivers」の欄の「DB２（LUW）」を選んで下さい。


![Datagrip6 2016-09-14 png.png](https://qiita-image-store.s3.amazonaws.com/0/142282/50eb875b-c072-9242-5d85-19b349adcd5e.png)

DB2(LUW)を選択すると、「Setting」と「Advanced」を設定できる画面が
表示されます。今回のように接続するだけであれば、設定をするのは、「Setting」の方だけで大丈夫です。
「Class」の欄で「com.ibm.db2.jcc.DB2Driver」を選択して下さい。
「Dialect」は「DB2」のままで大丈夫です。「OK」を押します。

![Datagrip7 2016-09-14.png](https://qiita-image-store.s3.amazonaws.com/0/142282/4b5ee62d-3121-7b8d-6377-6c8e7aee7864.png)

すると、下のような画面が表示されますので、先ほど決めたMaster Passwordを
入力して下さい。そして「OK」を押します。

![Datagrip8.png](https://qiita-image-store.s3.amazonaws.com/0/142282/01a68f1b-6efd-53bc-aee1-04bd21e2ce42.png)



次に、一番上の左にある「＋」をクリックします。	

下の画面が表示されましたら、「General」を選択して下さい。
UserとPasswordは、DB2の設定をした際に決めたものと一緒です。
右のプルダウンから「URL Only」を選んで下さい。
URLは、ここでは、「jdbc：db2://IPアドレス:ポート番号/データベース名」と入れて下さい。

![Datagrip9.png](https://qiita-image-store.s3.amazonaws.com/0/142282/1fdc36c0-70cd-e8d4-315f-5690b7fccd68.png)



入力が完了したら、「Test Connection」を押して下さい。
![Datagrip10.png](https://qiita-image-store.s3.amazonaws.com/0/142282/aa669f95-30b4-88de-95a7-f6938df87f79.png)



接続しましたら、「OK」を押します。

DB2への接続に成功すると、このような画面が立ち上がります。
画面右側の大部分を占めている箇所が、➁コマンドの入力欄です。
ここでは、RazorSQLの検証でやったように、
SELECT * FROM ACT
と入力し, ③の▶ボタンを押してみましょう。
成功すれば、➃画面の下部にあるように、DB２のSAMPLEの「Act」のテーブル内のデータ一覧を表示させることができます。




![Datagrip11.png](https://qiita-image-store.s3.amazonaws.com/0/142282/6994889b-afd8-7a9d-3bcc-398e97330b1f.png)








RazorSQLとDataGripの違いについて＆両者に抱いた感想

RazorSQL-

30日間は、トライアルとして無料で使用することができます。
「複数の種類のSQLに対応できる」ことを強みとして押していますが、
個人的に思ったのは、「複数の種類のSQLのデータを入れた際に、綺麗にデータ内容を出力できるインターフェースを持っていることが最大の強みなのではないかと思っています。

![Difference1.png](https://qiita-image-store.s3.amazonaws.com/0/142282/51db1160-b8f8-2993-3c72-e6b603f9676d.png)


この図を見てわかる通り、非常にシンプルで綺麗です。

また、私のような「URL」の概念をよく理解していない初心者でも、これなら、IPアドレスやポート番号をちゃんと入力すれば、自動的にURLを作成してくれるので、とても心強かったです。

DataGrip-

30日間、トライアルとして無料で使用できます。

強みとしては、最初の段階から、好みのUIやデザインを選ばせてくれるなどの、自由度の高い設計だと思います。

![Difference2.png](https://qiita-image-store.s3.amazonaws.com/0/142282/9fc9520a-8177-1a6d-8eb3-f071781a12a9.png)



ただし、こちらは、自分でドライバーをきちんと選択して、URLも自分で入力しなければならないので、初心者には少しハードルが高いかもしれません。
何度か、自分も操作をミスってしまいました。
![Difference3.png](https://qiita-image-store.s3.amazonaws.com/0/142282/749836a4-8618-fc3c-e644-7238e212570d.png)


最初は、入力すべき内容はなんだろうと戸惑うかもしれません。

でも、ここさえ越えれば、操作がとても楽しくなる予感を感じさせてくれるインターフェースを持っています。

結論、初心者は、最初はRazorSQLで慣れるよう頑張った方が良いかと思います。慣れてきたら、DataGripで、自由度の高い操作を楽しみましょう。