Tech

JDBC/ODBCとは! DB接続の役割は?

データベース(以下、DB)に接続する際、JDBCまたはODBCという単語が登場します。

BIツール(Power BI/Tableau/MotionBorad/Qlik Sense/…)やETLツール(DataSpider/ASTERIA/Taneld/…)を使うときの接続手段として利用します。

細かいことは分からずに使っている方も多いと思いますが、役割や仕組みを知っているとツールがうまく動かいないときなど問題解決可能です。

JDBCとODBCの基本的な仕組み

JDBCとODBCの概略図は以下になります。
アプリを使用して、DBに接続する場合、DBの種類によって適したODBCドライバ、またはJDBCドライバが必要になります。

ツールによっては、どちらか一方のサポートのみの場合があります。
メジャーなDBの場合、JDBCとODBCの両方サポートしているので問題になることはありませんが、マイナーなDBを使う場合は注意が必要です。

また、ドライバにバグがあり、動作がおかしいケースもあるので、最新バージョンをインストールしましょう。

JDBCとは

Java Database Conectivityの略称で、JavaアプリケーションからDBを操作するAPIのことです。
JDK(Java Development Kit)のAPIとして、java.sqlに実装されています。

JavaでDBへのアクセス用プログラムを作成する際にも利用します。
以下、JDBCを使ったJavaプログラム。

 String url="jdbc:xxx:xxxx;"; //  ここの書き方はDBごとに異なる
 String strSelect="SELECT a, b, c FROM Table01";
 
 // データベースとの接続
 connection=DriverManager.getConnection(url,id,pw);
 statement=connection.createStatement();

 ResultSet rs=null; 
 rs=statement.executeQuery(strSelect); // SQL実行
 while(rs.next()){
   int x = rs.getInt("a");
   String s = rs.getString("b");
   float f = rs.getFloat("c");
 }
 rs.close();

DBにJDBCインタフェースでアクセスできるようにするソフトウェアをJDBCドライバと呼びます。
実体は Jarファイルです。

ODBCとは

ODBC(Open Database Connectivity)は、Microsoft社が提唱したWindows対応のアプリケーションからDBにアクセスするためのインタフェースです。

マイクロソフトが1992年に発表したAPIの仕様で、C言語上のAPIレベルで統一したインターフェイスとしてデータベースに接続するためのAPIとして使われてきました。
1990年代に盛んにAPI仕様の拡張が行われていました。

今でもWindows OSから各種DBに接続するために利用されます。

C言語で、ODBCのAPIを使ってプログラムを作成することも可能ですが、APIの仕様も分かりづらく、20年以上の前の時代遅れものなので新規にプログラムを作成する開発者はいません。
(覚える必要もありません)

なぜ、今も利用されているかというと、Windows OS上で使うツールの接続のために生き残っています。
特にBIツールでの接続方法は、JDBCかODBCです。
BIツールは古くから存在し、DBへのアクセスの処理をODBCで行っています。

<参考 SQLServerのODBC APIリファレンス>
https://docs.microsoft.com/ja-jp/sql/odbc/reference/syntax/odbc-api-reference?view=sql-server-ver15

DBにODBCインタフェースでアクセスできるようにするソフトウェアをODBCドライバと呼びます。
実体はWindows の DLLファイルです。

JDBC-ODBC ブリッジとは

JDBC-ODBCブリッジは、ODBCドライバしかないDBにJavaから接続する場合の手段です。
JDBC-ODBCブリッジのドライバは、JDBCの操作を ODBCに変換して実行します。

JDBCドライバが存在する場合は、必要がない技術です。

まとめ

JDBCとODBCの仕組みや役割について紹介しました。
今後、JDBCやODBCを利用するツールや便利な使い方を紹介する予定です。

ODBCの仕組み(詳細編)ツールでの利用方法ODBCの仕組みと利用方法について紹介します。 仕組みを知っていると問題があったときに対応できるようになります。 O...