Open Database Connectivity

Open Database Connectivity (ODBC) とは



Open Database Connectivity (ODBC) は、関係データベース管理システム (RDBMS) へのアクセスを統一的に行うための共通インタフェース (API) です。ODBCを利用することで、異なるデータベース製品に対して、同じような方法で接続し、データの読み書きや操作を行うことが可能になります。

例えば、通常はクライアント/サーバ型ではない Microsoft Accessデータベースファイル (MDB) や、RDBMS ではない CSV ファイルも、対応する ODBC ドライバがあれば、他の一般的なデータベースと同様に扱うことができます。これは、ODBC がデータアクセスを統一化することを目的としているためです。

ODBC は主に Windows 上で利用されることが多いですが、LinuxUNIX などの環境でも利用されることがあります。

歴史



従来、データベースアプリケーションは、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

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。