ODBC OLEDBとJDBCの大きな違いは、ODBCはマイクロソフトが開発したリレーショナルデータベースにアクセスするためのAPI、OLEDBはオラクルが開発したリレーショナルデータベースとノンリレーショナルデータベースにアクセスするためのAPIであるのに対し、JDBCはマイクロソフトが開発したリレーショナルデータベースとノンリレーデータベースにアクセスするためのAPIであることである。
ソフトウェアを開発する場合、アプリケーションとデータベースを接続する必要がある。
例えば、医療センター管理システムを想定する。
プログラマーは、患者の記録や医師の記録などを挿入、更新、削除するためのコードを書かなければならない。
これらのシステムは、常にデータベースとデータをやり取りしています。
ODBC、OLEDB、JDBCの3つのAPIは、データにアクセスするためにアプリケーションをデータベースに接続することを可能にするものです。
ODBCとは
ODBCとは、Open Database Connectivityの略です。
SQLを使ってDBMSにアクセスするための標準的なAPI(Application Programming Interface)です。
また、アプリケーションは、ODBCドライバマネージャを使用してODBC機能を使用することができます。
ドライバはDBMSにクエリを渡すことができる。
ODBC を使用するアプリケーションは、ODBC 準拠と呼ばれる。
さらに、ODBCは最大の相互運用性を可能にする。
つまり、1つのアプリケーションで異なるDBMSにアクセスすることができる。
ユーザーはODBCドライバを追加することで、アプリケーションを必要なDBMSに接続することができる。
ODBCインターフェースには、関数呼び出し(Core関数と拡張関数)を持つODBCライブラリが含まれています。
また、標準的なエラーコードのセットと、DBMSへの接続とログの記録方法も提供します。
ODBCは、様々なアプリケーションやデータソースの間でデータを交換するためのインターフェイスとして機能します。
OLEDBとは
OLEDBは、Object Linking and Embedding Databaseの略です。
これは、異なるソースからのデータに統一された方法でアクセスするのに役立つ API です。
OLEDB は Component Object Model (COM) に基づいており、Microsoft Data Access Components (MDAC) スタックの一部です。
OLEDBは、SQLを使用しない非リレーショナルデータベースからデータにアクセスすることができるため、ODBCよりも高度です。
さらに、OLEDBはデータソースをアプリケーションから分離している。
アプリケーションによって必要とするデータの種類が異なるため、あらゆる技術的手法でアクセスする方法を知っておくことは重要ではないからだ。
OLEDBには、コンシューマとプロバイダと呼ばれる2つの大きなセクションがあります。
コンシューマはデータを取得し、プロバイダはコンシューマにデータを与える。
JDBCとは
JDBCは、Java Database Connectivityの略です。
Javaアプリケーションと異なるデータベースとの間で、データベースに依存しない接続性を提供するAPIです。
Java Standard Edition (Java SE)で利用可能です。
JDBCにより、Javaプログラムは企業レベルのデータにアクセスすることができます。
JDBCドライバのサポートにより、異種環境でのデータアクセスも可能です。
Javaアプリケーションをデータベースに接続する場合、以下の手順で行う必要があります。
- データベースと接続するためのドライバをロードする。
- データベース・オブジェクトと通信するための接続を作成する。
- 必要なSQL文を実行する
- 結果セットを返す
ODBC OLEDBとJDBCの違い
定義
ODBCはデータベース管理システム(DBMS)にアクセスするための標準的なアプリケーション・プログラミング・インターフェース(API)です。
一方、OLEDBは様々なソースからのデータに統一的にアクセスするためのAPIであり、JDBCはプログラミング言語JavaのためのAPIで、クライアントがデータベースにアクセスする方法を定義しているものです。
したがって、これが ODBC OLEDB と JDBC の主な違いです。
ロングフォーム
ODBCはOpen Database Connectivity、OLEDBはObject Linking and Embedding Database、JDBCはJava Database Connectivityを意味します。
デベロッパー
ODBC OLEDBとJDBCのもう一つの違いは、その開発者です。
マイクロソフトはODBCとOLEDBの開発者であり、オラクルはJDBCの開発者です。
関連データベース
ODBCはリレーショナルデータベースで動作しますが、OLEDBとJDBCはリレーショナルデータベースと非リレーショナルデータベースで動作します。
したがって、この点もODBCとOLEDB、JDBCの違いと言えるでしょう。
結論
ODBC OLEDBとJDBCの大きな違いは、ODBCがリレーショナルデータベースにアクセスするためにMicrosoftが開発したAPIであるのに対し、OLEDBはリレーショナルデータベースと非リレーショナルデータベースの両方にアクセスするためにOracleが開発したAPIである点です。