Open Database Connectivity (ODBC) とは
Open Database Connectivity (ODBC) は、関係
データベース管理システム (RDBMS) へのアクセスを統一的に行うための共通インタフェース (API) です。ODBCを利用することで、異なる
データベース製品に対して、同じような方法で接続し、データの読み書きや操作を行うことが可能になります。
例えば、通常はクライアント/サーバ型ではない
Microsoft Access の
データベースファイル (MDB) や、RDBMS ではない CSV ファイルも、対応する ODBC ドライバがあれば、他の一般的な
データベースと同様に扱うことができます。これは、ODBC がデータアクセスを統一化することを目的としているためです。
ODBC は主に Windows 上で利用されることが多いですが、
Linux や
UNIX などの環境でも利用されることがあります。
歴史
従来、
データベースアプリケーションは、RDBMS ベンダーが製品に付属するユーティリティや埋め込み
SQL を利用して開発されていました。しかし、1992 年に
マイクロソフトが C 言語の API レベルで統一されたインターフェイスとして
データベースに接続するための API「ODBC」を発表しました。
その後、ODBC 3.0 では、X/Open
コンソーシアムと ISO で標準化が進められていた
SQL/CLI に準拠することになりました。そして 1995 年に
SQL/CLI は
SQL 標準の一部となりました。
X/Open と ISO が進めていた
SQL/CLI は、ODBC の有用性から業界標準となっていた ODBC を標準規格化するための試みであり、
マイクロソフトがこれに同調した形で標準化がなされました。そのため、ODBC もしくは
SQL/CLI は多くの RDBMS でサポートされており、ODBC はほとんどの場合
SQL/CLI のスーパーセットとなっています。
ODBC のメリットと限界
ODBC を利用することで、
データベースの各ベンダー固有のインターフェースを抽象化し、統一的にアクセスできるようになることが期待されます。しかし、実際には
SQL の文法が各ベンダーによって異なる場合があるため、接続以外の問題で
データベースごとの仕様や特性を理解する必要がなくなるわけではありません。
バージョンの歴史
ODBC は、以下のようなバージョンを経て進化してきました。
1.0: 1992年9月リリース
2.0: 1994年頃
2.5
3.0: 1995年頃、Intersolv の John Goodson と IBM の Frank Pellow ・Paul Cotton が重要なインプットを提供
3.5: 1997年頃
3.8: 2009年頃、Windows 7 と共に
近年の状況
最近では、Windows においても C 言語で ODBC を直接利用することは少なくなっています。Visual Basic (VB) などでは、COM として VB から直接扱える ADO (ActiveX Data Objects) の下部レイヤーの選択肢の 1 つとして利用されることが多いです。ADO は、ODBC に代わり
OLE DB と呼ばれるプロバイダを選択することで
データベース固有の接続方法を抽象化しますが、既存の ODBC との接続のためのラップである「
OLE DB Provider for ODBC」を使うこともできます。
しかし、
SQL Server 2014 以降では
OLE DB は今後更新されず、汎用的な接続方法としては ODBC に回帰する方向性も示されています。
.NET Framework では ADO と同じような考え方ですが、マネージド環境となるため、これらのプロバイダは一新されています。ただし、従来の
OLE DB も使えるため、
OLE DB を経由した ODBC へのアクセスは現在でも利用可能です。
SQL Server はもちろん、Oracle などの大手 RDBMS ベンダーは
.NET Framework 用のプロバイダ、もしくは
OLE DB プロバイダを提供しており、あえて ODBC を経由しなければならないケースは少ないと考えられます。
Java では、かつては JDBC が扱う
データベースドライバとして Type1 ドライバ(JDBC-ODBC ブリッジ)として JDBC の下層の物理ドライバに使われており、まだ
Java に対応していない
データベースに接続する場合などの手段として使われる場合もありましたが、今日では多くの
データベースが JDBC ドライバを提供しており、ODBC を経由させる必要性はほとんどなくなりました。
このため、JDBC-ODBC ブリッジは
Java 7 では非推奨となり、
Java 8 では標準から削除されました。
まとめ
ODBC は、
データベースへのアクセスを共通化するための重要な技術でしたが、近年ではより新しい技術が登場し、利用頻度は減少傾向にあります。しかし、
SQL Server などの一部の
データベースでは、依然として重要な役割を果たしています。
外部リンク
Microsoft Open Database Connectivity (ODBC) - Open Database Connectivity (ODBC) | Microsoft Learn
Online definition of CLI at the Open Groups webpage
出典
*
Microsoft Open Database Connectivity (ODBC) - Open Database Connectivity (ODBC) | Microsoft Learn