ODBC とは

ODBC に関する多くの誤解がコンピューティングの世界に存在します。 エンド ユーザーにとっては、Microsoft Windows コントロール パネルにあるアイコンです。 アプリケーション・プログラマーにとっては、これはデータ・アクセス・ルーチンを含むライブラリーです。 他の多くの人には、これまでに想像したすべてのデータベース アクセスの問題に対する答えです。

何よりもまず、ODBC はデータベース API の仕様です。 このAPIは、どのDBMSやオペレーティング・システムにも依存しません。このマニュアルではC言語を使用していますが、ODBC APIは言語に依存しません。 ODBC API は、Open Group と ISO/IEC の CLI 仕様に基づいています。 ODBC 3.x では、これらの仕様の両方が完全に実装されています。以前のバージョンの ODBC はこれらの仕様の予備バージョンに基づいていましたが、完全には実装されていませんでした。また、スクロール可能なカーソルなど、画面ベースのデータベース アプリケーションの開発者が一般的に必要とする機能が追加されています。

ODBC API の関数は、DBMS 固有のドライバーの開発者によって実装されます。 アプリケーションは、これらのドライバーの関数を呼び出して、DBMS に依存しない方法でデータにアクセスします。 ドライバー マネージャーは、アプリケーションとドライバー間の通信を管理します。

Microsoft は、Microsoft Windows 95 以降で動作しているコンピュータ用のドライバー マネージャーを提供し、いくつかの ODBC ドライバーを作成して、その一部アプリケーションから ODBC 機能を呼び出しますが、誰でも ODBC アプリケーションおよびドライバーを書き込めます。 実際、現在使用できる ODBC アプリケーションとドライバーの大部分は、Microsoft 以外の企業によって作成されています。 さらに、ODBC ドライバーおよびアプリケーションは、MacOS およびさまざまな UNIX プラットフォームに存在します。

アプリケーションとドライバーの開発者を支援するために、Microsoft は、ドライバー マネージャー、インストーラー DLL、テスト ツール、サンプル アプリケーションを提供する Windows 95 以降を実行するコンピューター用の ODBC ソフトウェア開発キット (SDK) を提供しています。 Microsoft は Visigenic Software と提携して、これらの SDK を Macintosh およびさまざまな UNIX プラットフォームに移植しました。

ODBC はデータベース機能を補完する機能ではなく、公開するように設計されていることを理解しておくことが重要です。 したがって、アプリケーション ライターは、ODBC を使用すると、単純なデータベースが完全に機能するリレーショナル データベース エンジンに突然変換すると期待してはなりません。 また、ドライバーライターは、基になるデータベースに見つからない機能を実装することも期待されていません。 ただし、ファイル データ (Xbase ファイル内のデータなど) に直接アクセスするドライバーを作成する開発者は、少なくとも最小限の SQL 機能をサポートするデータベース エンジンを作成する必要があります。 別の例外として、以前は Microsoft Data Access Components (MDAC) SDK に含まれていた Windows SDK の ODBC コンポーネントには、特定のレベルの機能を実装するドライバーのスクロール可能なカーソルをシミュレートするカーソル ライブラリが用意されています。

ODBC を使用するアプリケーションは、データベース間の機能を担当します。 たとえば、ODBC は異種結合エンジンではなく、分散トランザクション プロセッサでもありません。 ただし、DBMS に依存しないため、このようなデータベース間ツールの構築に使用することができます。