Open Database Connectivity
プログラムとデータベースの間に入って仲立ちをする部品だよ
マイクロソフトさんが作ったよ
「ODBC」と表現されるのが一般的だよ
簡単に書くよ
Open Database Connectivity(読:オープン・データベース・コネクティビティ)とは
いわゆる「ODBC」のこと。
用語の中身としては
マイクロソフトさんが作った、データベースとやり取りするための通訳
です。
もう少し具体的に書くと
マイクロソフトさんが生み出した仕組みで、データベースとプログラムの間に入って仲立ちをしてくれる部品(に関する取り決め)
です。
詳しく書くよ
最初に留意事項です。
「ODBC」と言われて「あぁ、アレのことね」と分かる方は最後まで読む必要ありません。
ODBCの正式名称(?)が「Open Database Connectivity」です。
「Open Database Connectivity」を何となく省略したのが「ODBC」ね。
※「Open Database Connectivity」を何となく日本語にすると「開けた情報の基地に接続するやつ」となります。[詳細]
以上が「ODBC」の意味を知っている人向けの説明です。
「ODBCって何?美味しいの?」な人は、このまま読み進めてください。
用語の中身について説明します。

それでは、いってみましょう。
サクっと一言で説明すると
マイクロソフトさんが生み出した、プログラムとデータベースの仲立ちをしてくれるやつ
が「Open Database Connectivity」です。
データベースとプログラムの通訳なイメージですね。
上でも書きましたが、一般的には「ODBC」と表現されます。
※本ページでも以降は「ODBC」と表現します。
それを踏まえて、ピヨピヨな例を見ていきましょう。
ピヨ太君が経営するピヨピヨカンパニーの取引先は、個性的な人たちばかりです。
ピヨ太ママは若いころに訪れて以来、イギリスの魅力にやられてしまいました。
そのせいか英語でしかしゃべりません。
ピヨ太パパはフランスかぶれです。
喋る言葉はフランス語です。
アクマ君は中国好きです。
中国語での会話を求めます。
そうすると、ピヨ太君をはじめとしたピヨピヨカンパニーの社員は大変です。
ピヨ太ママと話すときは英語、ピヨ太パパと話すときはフランス語、アクマ君と話すとき中国語、のように使い分けなくてはいけません。
これは「面倒だな……」と感じたピヨ太君は、スペシャルスーパー通訳のピヨ子さんを雇いました。
ピヨ子さんはスペシャルでスーパーな通訳なので、英語もフランス語も中国語も話せます。
しかも!普段話している言葉は日本語です。
その後、ピヨ太君は社員たちに「今後、各取引先とのやり取りはピヨ子さんを経由してやるようにしたから」と宣言しました。
ピヨ太君たちが伝えたい内容をピヨ子さんが翻訳して、各取引先に伝えてくれるのです。
これには、みんな大喜びです。
なにせピヨ子さんは日本語が話せます。
伝えたい内容を日本語でピヨ子さんに伝えれば、各取引に伝わります。
日本語、英語、フランス語、中国語の四か国語を覚えないといけないはずだったのが、日本語だけ覚えれば良くなりました。
語学が苦手な社員も一安心です。
この話における、ピヨピヨカンパニーの社員たちがプログラムだと思ってください。
ピヨ太ママをはじめとした各取引先がデータベースです。
ピヨ子さんがODBCに相当します。
実際のデータベースには、いろいろな種類があります。
Oracle、MySQL、SQL Serverなどです。
これらのデータベースは、それぞれ個性があります。
全部が全部、同じようには扱えません。
例えばデータベースへ接続する方法も、データベースの種類によって変わってきます。
これは、ちょっと面倒ですよね。
「このデータベースには、このやり方で接続して~。こっちのデータベースは、このやり方か」のように、データベースの種類によって、やり方を変えなくてはいけません。
そこで登場するのがODBCです。
プログラムをODBC経由でデータベースに接続するようにすると、データベースごとの個性を(あまり)気にしなくて良くなります。
それぞれの個性は通訳であるODBCさんが(ある程度)吸収してくれるからです。
ODBCのメリットは、使う側がデータベースの違いをあまり意識しなくて済む点でしょう。
逆にデメリットは、使用できるのが汎用的な機能に限定されるので、データベース固有のテクニックを使いたいときに哀しい結果になるかもしれないことです。
ちなみに、説明を分かりやすくするために「データベース」と表現していますが、正確には「リレーショナルデータベースマネジメントシステム(RDBMS)」です。
違いを意識する必要に迫られる機会は、あまり無いと思いますけどね。
なお、ODBC接続をやるときは
1.どの種類の
2.どのデータベースに
接続するかの情報が必要です。
例えば
SQL Serverの「test_db」という名前のデータベースに接続する
のような情報ですね。
この情報はあらかじめ用意しておき、識別用の名前(DSN)を付けておきます。
仮に、上記の設定に対して「設定ぴよ」という名前を付けたとしましょう。
プログラムからは「test_db」ではなく「設定ぴよ」という名前を指定する形で、接続するデータベースを指定します。
「設定ぴよ」を指定すれば、SQL Serverの「test_db」に接続しに行きますよ。
これがODBCを使った接続の一般的なやり方です。
1.どの種類のどのデータベースに接続するかを指定する
2.「1.」に名前を付けておく
3.プログラムからは「2.」で決めた名前を指定する形で、接続先のデータベースを指定する
の流れですね。
「1.」「2.」が事前作業で「3.」が実際にプログラムに書く内容です。
ついでの補足として、事前作業の「1.」「2.」は、Windowsの管理ツール「ODBC データ ソース アドミニストレーター」で設定します。
併せて覚えてあげてください。
一言でまとめるよ
まぁ「Open Database Connectivity」って単語が出てきたら「ODBC
(マイクロソフトさんが作った、データベースとやり取りするための通訳)のことなんだな~」と お考えください。
おまけ
■訳してみるよ
「open(オープン)」の意味は「開く」とか「開かれている」とか「始める」とかです。
「data(データ)」の意味は「資料」とか「知識」とか「情報」とかです。
「base(ベース)」の意味は「基地」とか「土台」とかです。
「connectivity(コネクティビティ)」の意味は「接続性」とかですが、今回は「接続するやつ」と解釈してください。
何となく くっつけると
開けた情報の基地に接続するやつ
となります。






