【おーでぃーびーしー】

ODBC とは?

最終更新:
💡 異なるDBに「同じ接続方法」でアクセスできる標準API

アプリケーションからデータベースへアクセスするための共通API。Driver ManagerとDBに対応するドライバーを通じて接続や問い合わせを行う。対応機能やSQLの違いはDB・ドライバーごとに確認する。

📌 このページのポイント
共通APIから、各DBのドライバーへ アプリ Excelなど ODBC API ドライバーマネージャー 対応するドライバーへ渡す DB A用 ODBCドライバー DB A DB B用 ODBCドライバー DB B 共通APIでも、SQLや機能にはDBごとの差
矢印は接続・要求を渡す経路。アプリはODBC APIを使い、ドライバーマネージャーが各DB用ドライバーへ仲介する。実際の対応DBや機能はドライバーに依存し、接続設定やSQLの互換性は別に確認する。
ひよこ ひよこ
ODBCって何?
ペンギン先生 ペンギン先生
DBにアクセスする共通APIだよ。アプリがAPIを呼び、Driver Managerが対応するドライバーへつなぐ。ドライバーがそのDBとのやり取りを担うので、APIの使い方をそろえやすくなるんだ。
ひよこ ひよこ
DBを変えても同じコードがそのまま動くの?
ペンギン先生 ペンギン先生
必ずではないよ。共通のAPIでも、DBやドライバーが提供する機能・SQL・データ型などには違いがある。接続設定の変更だけで済む場合もあれば、SQLやアプリの処理を直す場合もある。ODBCがDBにない機能を何でも追加してくれるわけではないんだ。
ひよこ ひよこ
ExcelでDBを使うときにも出てくるの?
ペンギン先生 ペンギン先生
対応したExcel環境では、Power Queryのデータ取得でODBCを選んで取り込めるよ。接続先に合うドライバーと設定、認証情報が必要。利用できる機能は製品や環境で異なるので、すべてのExcelで同じ操作ができるとは考えないようにしよう。
ひよこ ひよこ
データソースってどこで設定するの?
ペンギン先生 ペンギン先生
Windowsでは「ODBCデータソースアドミニストレーター」でドライバーや接続先を管理できるよ。接続設定につけるDSNという名前をアプリから選ぶ方法や、接続文字列を指定する方法がある。32bit/64bitの版も区別して、利用するアプリとドライバーに合う環境を確認しよう。
ひよこ ひよこ
JDBCとは何が違うの?
ペンギン先生 ペンギン先生
JDBCはJavaプログラムからDBへアクセスするためのAPIだよ。ODBCは言語を限定しない共通APIで、Windows以外にもドライバーやアプリがある。どちらもDBに対応したドライバーを使うので、APIの名前だけでDB間の互換性が保証されるわけではないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ODBC」って出てきたら「ドライバーを通してDBへ共通のAPIでアクセスする仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Open Database Connectivity」 = 開放型データベース接続
💬 特定のDBだけに閉じず、共通のAPIと各DB用のドライバーで接続するというイメージだよ

参考資料

← 用語集にもどる