今までなんだかよくわからない単語で、理解しないでここまで来ましたが概要でもいいから知りたいと思い調べてみました。
ODBCとは?
簡単に言えば、データベースへ接続するためのAPI(仕様)のこと。ODBCは、「Open Database Connectivity」の略称のようです。
基本的には、ODBCを使えばデータベースが変わっても同じようにアクセスできるイメージのようです。データベースの違いを吸収する役割を持っているようですね。
また、実際にODBCを使ってデータベースにアクセスするためには、そのデータベース専用の「ODBCドライバ」をインストールする必要があるようです。
詳細な説明は以下の記事をご確認ください。
ODBCとは - 意味をわかりやすく - IT用語辞典 e-Words
今さら学ぶ ODBC の基礎 #DB - Qiita
OLE DBとは?
こちらも簡単に言えば、データベースへ接続するためのAPI(仕様)のこと。OLE DBは、「Object Linking and Embedding Database」の略称のようです。
こちらも役割的には、ODBCとほぼ同じととらえて良さそうです。しかし、ODBCは主にデータベースへのアクセスに使われるのに対しOLE DBはそれ以外のデータソース(例えば、電子メールや各種ファイルなど)へのアクセスにも使うことができるのが特徴のようです。
また、ODBCと同様のイメージで実際にOLE DBを使って各種データソースにアクセスするには「OLE DBプロバイダ」をインストールする必要があるようです。
詳細な説明は以下の記事をご確認ください。
OLE DBとは - 意味をわかりやすく - IT用語辞典 e-Words
ODBC と OLE DBの違いは?
簡単に両者を紹介しましたが、結局違いはなんだというと役割はほぼ同じみたいです。どちらもデータソースへのアクセスに使用されるものなので。
しかし、OLE DBはODBCの発展形として生まれた技術のようなので、そういう位置づけでもあるようです。他のデータソースへアクセスできたりするから、より汎用的な用途に特化したのがOLE DBみたいですね。
また、以下の記事のイメージ図が大変わかりやすかったので紹介させていただきます。
SQLServerの接続方法を整理(OLEDB/ODBC) #SQLServer - Qiita
上記の記事によると、OLE DBがODBCよりもより上位のレイヤーで動作させることができるようで、アプリ→OLE DB→ODBC→データソースみたいな接続方法を実現できるみたいです。
おわりに
いかがでしょうか。私自身なんとなくしか理解していなかったので、簡単に調べて概要を知ることができて良かったなと思います。
今回はこの辺で失礼いたします。最後までお読みいただきありがとうございました。