オープンデータベース接続

コンピューティングにおいて、Open Database ConnectivityODBC)は、データベース管理システム(DBMS)にアクセスするためのC言語標準アプリケーションプログラミングインターフェース(API)です。ODBCの設計者は、データベースシステムやオペレーティングシステムに依存しないようにすることを目指しました。ODBCを使用して作成されたアプリケーションは、クライアント側とサーバー側の両方において、データアクセスコードをほとんど変更することなく、他のプラットフォームに移植できます。

ODBCは、アプリケーションとDBMS間の変換レイヤーとしてODBCドライバを使用することで、DBMSに依存しない動作を実現します。アプリケーションは、リンクされたODBCドライバマネージャを介してODBC関数を使用し、ドライバはクエリをDBMSに渡します。ODBCドライバは、プリンタドライバなどのドライバに類似しており、アプリケーションが使用できる標準関数セットを提供し、DBMS固有の機能を実装します。ODBCを使用できるアプリケーションは「ODBC準拠」と呼ばれます。ODBC準拠のアプリケーションは、ドライバがインストールされているすべてのDBMSにアクセスできます。ドライバは、主要なすべてのDBMS、アドレス帳システムやMicrosoft Excelなどの多くのデータソース、さらにはテキストファイルやカンマ区切り値(CSV)ファイルにも存在します。

ODBCは、1990年代初頭にマイクロソフトシンバ・テクノロジーズによって開発され、 Unixおよびメインフレーム分野でSQL Access Groupによって標準化されたコールレベルインターフェース(CLI)の基盤となりました。ODBCは、CLI開発の一環として削除されたいくつかの機能を保持していました。完全なODBCは後にこれらのプラットフォームに移植され、 CLIよりもはるかに広く知られる事実上の標準となりました。CLIはODBCとよく似ており、アプリケーションはほとんど変更せずに一方のプラットフォームから他方のプラットフォームに移植できます。

歴史

ODBC以前

1970年代にメインフレームベースのリレーショナルデータベースが導入されたことで、データアクセス方法が多様化した。これらのシステムは一般的に、ユーザーが英語のようなコマンドを入力して出力を受け取ることができるシンプルなコマンドプロセッサと連携して動作した。最もよく知られている例は、IBMSQLIngresプロジェクトのQUELである。これらのシステムは、他のアプリケーションがデータに直接アクセスできる場合とできない場合があり、アクセスできる場合でもさまざまな手法が用いられた。SQLの導入は言語の標準化という問題を解決することを目的としていたが、実装には依然として大きな違いが残っていた。

SQL言語には基本的なプログラミング機能しかなかったため、ユーザーはFortranC言語など、別の言語で書かれたプログラム内でSQLを使用したいと考えることが多かった。これが、 SQLコードを別の言語に埋め込むことができる「埋め込みSQL」という概念につながった。例えば、のようなSQL文をC言語のソースコード内にテキストとして挿入すると、コンパイル時にカスタム形式に変換され、ライブラリ内の関数を直接呼び出して、その関数がSQLシステムに文を渡す。文から返された結果は、同様のライブラリコードを使用して、やのようなC言語のデータ形式に解釈される。SELECT * FROM citychar*char[]

組み込みSQLのアプローチにはいくつかの問題がありました。SQLのさまざまな種類と同様に、それらを使用する組み込みSQLも、プラットフォーム間だけでなく、同じプラットフォーム上の言語間でも大きく異なっていました。IBM Db2への呼び出しを可能にするシステムは、独自のSQL/DSを呼び出すシステムとは全く異なるものになります。組み込みSQLの概念におけるもう1つの重要な問題は、SQLコードはプログラムのソースコードでしか変更できないため、クエリのわずかな変更でさえ、プログラマーが修正するためにかなりの労力を要したことです。SQL市場ではこれを静的SQLと呼び、ほぼすべてのSQLシステムに付属するコマンドラインインターフェイスや、呼び出されるまでSQLをプレーンテキストのままにしておくプログラミングインターフェイスのように、いつでも変更できる動的SQLと対比しました。動的SQLシステムは、1980年代にSQLベンダーの主要な焦点となりました。

旧式のメインフレームデータベース、およびそれを基にした新しいマイクロコンピュータベースのシステムでは、一般的にユーザーとデータベースエンジンの間にSQLのようなコマンドプロセッサは存在しませんでした。代わりに、データはプログラムによって直接アクセスされていました。大規模なメインフレームシステムの場合はプログラミングライブラリ、dBASEや類似のアプリケーションの場合はコマンドラインインターフェースまたは対話型フォームシステムです。dBASEのデータは、一般的にマシン上で実行されている他のプログラムから直接アクセスすることはできませんでした。これらのプログラムには、ライブラリなどを介してこのデータにアクセスする方法が提供される場合もありましたが、他のデータベースエンジン、あるいは同じエンジン内の異なるデータベース間でも動作しませんでした。事実上、これらのシステムはすべて静的であり、大きな問題を引き起こしていました。

初期の取り組み

1980年代半ばまでに、マイクロコンピュータの急速な進歩、特にグラフィカルユーザーインターフェースやLotus 1-2-3のようなデータ豊富なアプリケーションプログラムの導入により、クライアント/サーバコンピューティングにおいてパーソナルコンピュータをクライアント側のプラットフォームとして利用することへの関心が高まった。このモデルでは、大型のメインフレームやミニコンピュータは、主にローカルエリアネットワーク経由でマイクロコンピュータにデータを提供し、マイクロコンピュータがそのデータを解釈、表示、操作するために使用される。このモデルが機能するためには、データアクセス標準が必要だった。メインフレームの分野では、店舗内のすべてのコンピュータが1つのベンダー製である可能性が高く、クライアントはコンピュータ端末で、それらと直接通信していたが、マイクロコンピュータの分野ではそのような標準化はなく、どのクライアントでもどのネットワークシステムを使用してどのサーバにもアクセスできた。

1980年代後半には、この目的のために抽象化レイヤーを提供する取り組みがいくつか行われていた。これらの中にはメインフレーム関連のものもあり、それらのマシン上で動作するプログラムがさまざまなSQLを相互に変換し、他のメインフレームやマイクロコンピュータのプログラムから呼び出せる単一の共通インターフェースを提供することを目的としていた。こうしたソリューションには、IBMの分散リレーショナルデータベースアーキテクチャ(DRDA)やApple Computerデータアクセス言語などがあった。しかし、より一般的だったのは、必要なネットワーク機能やファイル変換サポートを含む完全なプロトコルスタックを備え、マイクロコンピュータ上で完全に動作するシステムだった。

このようなシステムの初期の例の 1 つは、 Lotus DevelopmentDataLensで、当初は Blueprint と呼ばれていました。1-2-3 用に開発された Blueprint は、SQL/DS、DB2、FOCUS、および同様のさまざまなメインフレーム システム、dBaseなどのマイクロ コンピュータ システム、そして最終的にMicrosoft SQL Serverに発展する初期の Microsoft/Ashton-Tate の取り組みなど、さまざまなデータ ソースをサポートしていました。[ 1 ]後の ODBC とは異なり、Blueprint は純粋にコード ベースのシステムであり、SQL のようなコマンド 言語に似たものは何もありませんでした。代わりに、プログラマはデータ構造を使用してクエリ情報を格納し、これらの構造を多数リンクしてクエリを構築しました。Lotus はこれらの複合構造をクエリ ツリーと呼んでいました。[ 2 ]

ほぼ同時期に、Sybase (Tom Haggin)、Tandem Computers ( Jim Grayと Rao Yendluri)、Microsoft (Kyle Geiger) のメンバーを含む業界チームが、標準化された動的 SQL の概念に取り組んでいました。システムの大部分は Sybase の DB-Library システムをベースにしており、Sybase 固有のセクションが削除され、他のプラットフォームをサポートするためにいくつかの追加が行われました。[ 3 ] DB-Library は、特定の言語に密接にリンクされたライブラリ システムから、オペレーティングシステムによって提供され、そのプラットフォーム上の言語がその標準に準拠する必要があるライブラリ システムへの業界全体の移行によって促進されました。これは、単一のライブラリを特定のプラットフォーム上の (潜在的に) 任意のプログラミング言語で使用できることを意味します。

Microsoft Data Access APIの最初のドラフトは、Lotus が Blueprint を発表したのとほぼ同時期の 1989 年 4 月に公開されました。[ 4 ] Blueprint は MSDA がまだ紙のプロジェクトだった頃に稼働していたため、大きくリードしていましたが、SQL が事実上のデータベース標準になることが明らかになったため、Lotus は最終的に MSDA の取り組みに参加しました。[ 2 ]業界からの多大な意見を取り入れた後、1989 年の夏に標準はSQL Connectivity ( SQLC ) となりました。[ 5 ]

SAGとCLI

1988 年、主にUnixおよびデータベース コミュニティのベンダー数社が SQL 言語の単一の基本標準を作成するためにSQL Access Group (SAG) を結成しました。最初の会議では、SQL 言語自体のみに取り組むべきか、それともコール レベル インターフェイス( CLI) と呼ばれる動的な SQL 言語埋め込みシステムも含むより広範な標準化を試みるべきかについて、かなりの議論がありました。[ 6 ]当時 MS Data Access として知られていたものの初期ドラフトを持って会議に出席していた Microsoft の Kyle Geiger は、Digital Equipment Corporation (DEC) の Jeff Balboni と Larry Barnes を SQLC 会議にも招待しました。SQLC は、DEC が主導していた CLI の要求に対する潜在的な解決策でした。

新しい SQLC の「4人組」、MS、Tandem、DEC、Sybase は、1990 年 6 月に開催された次の SAG 会議に SQLC の更新版を持ち込んだ。[ 7 ] SAG は、標準化の取り組みを競合する設計に開放することで対応したが、多くの提案の中で、真剣な競争相手となるシステムを持っていたのはOracle Corpだけだった。最終的に、SQLC が投票で勝ち、ドラフト標準となったが、API の大部分が削除された後だった。この間に標準文書は 120 ページから 50 ページまで削減された。また、この時期に Call Level Interface という名前が正式に採用された。[ 7 ] 1995 年に SQL/CLI は国際 SQL 標準 ISO/IEC 9075-3 の一部となった。[ 8 ] SAG 自体は1996 年にX/Openグループに引き継がれ、時を経てThe Open GroupCommon Application Environmentの一部となった。

MS はオリジナルの SQLC 標準での開発を続け、CLI バージョンから削除された多くの高度な機能を維持しました。これには、スクロール可能なカーソルメタデータ情報クエリなどの機能が含まれていました。API のコマンドはグループに分けられ、コア グループは CLI と同一で、レベル 1 拡張機能はドライバに簡単に実装できるコマンド、レベル 2 コマンドにはカーソルなどのより高度な機能が含まれていました。1991 年 12 月に標準案が発表され、1992 年にかけて業界からの意見が収集され、システムに反映され、その結果、ODBCという名称に再び変更されました。[ 9 ]

JETとODBC

この時期、マイクロソフトはJetデータベースシステムの開発を進めていました。Jetは主に3つのサブシステムで構成されていました。ISAMベースのデータベースエンジン(これも紛らわしいことにJetという名前でした)、アプリケーションがそのデータアクセスできるようにするCベースのインターフェース、そして同じCインターフェースからParadoxxBaseなどの他のISAMベースのデータベースに入出力をリダイレクトできるようにするドライバダイナミックリンクライブラリ(DLL)です。Jetは、Blueprint(当時はDataLensと改名されていました)と同様の方法で、1つの呼び出しセットを使用して一般的なマイクロコンピュータデータベースにアクセスできるようにしました。ただし、JetはSQLを使用しませんでした。DataLensと同様に、インターフェースはC言語で記述され、データ構造と関数呼び出しで構成されていました。

SAG の標準化の取り組みは、Microsoft が Jet システムを新しい CLI 標準に適合させる機会を提供しました。これにより、Windows は CLI 開発の主要プラットフォームになるだけでなく、ユーザーは SQL を使用して Jet や他のデータベースにもアクセスできるようになります。不足していたのは、これらの呼び出しをテキスト形式から Jet で使用される C インターフェースに変換できる SQL パーサーでした。この問題を解決するために、MS はPageAhead Softwareと提携し、既存のクエリ プロセッサである SIMBA を使用しました。SIMBA は Jet の C ライブラリの上位のパーサーとして使用され、Jet を SQL データベースに変えました。また、Jet はこれらの C ベースの呼び出しを他のデータベースに転送できるため、SIMBA は他のシステムにクエリを実行することもできました。Microsoft は Excel 用のドライバを含め、スプレッドシート ドキュメントを SQL でアクセス可能なデータベース テーブルに変換しました。[ 10 ]

リリースと継続的な開発

ODBC 1.0 は 1992 年 9 月にリリースされました。[ 11 ]当時、SQL データベース (ISAM と比較して) の直接的なサポートはほとんどなく、初期のドライバはパフォーマンスが低いことで知られていました。これは、呼び出しが Jet ベースのスタックを通過する経路のため、ある程度避けられないものでした。SQL データベースへの ODBC 呼び出しは、まずSimba Technologiesの SQL 方言から Jet の内部 C ベースの形式に変換され、次にドライバに渡されて、データベースの SQL 呼び出しに再度変換されました。Digital EquipmentOracle はどちらもSimba Technologiesに自社のデータベース用のドライバの開発を委託しました。[ 12 ]

1993 年頃、OpenLink Software はPROGRESS DBMS用の、独自に開発された最初のサードパーティ ODBC ドライバの 1 つを出荷し[ 13 ]、その後すぐに、UDBC (ODBC および SAG/CLI のクロスプラットフォーム API 相当) SDK と、PROGRESS 、Sybase、Oracle、およびその他の DBMS 用の関連ドライバを、Unix 系 OS ( AIXHP-UXSolarisLinuxなど)、VMSWindows NT、OS/2、およびその他の OSで使用できるように出荷しました[ 14 ] 。

一方、CLI 標準化の取り組みは長引き、決定版が完成したのは 1995 年 3 月になってからだった。その頃には、マイクロソフトはすでにVisigenic Software に非 Windows プラットフォームでの ODBC 開発のためのソース コード ライセンスを付与していた。Visigenic は ODBC を従来の Mac OS やさまざまな Unix プラットフォームに移植し、ODBCすぐに事実上の標準となった。[ 15 ]今日では「真の」CLI は稀である。2 つのシステムは依然として類似しており、多くのアプリケーションはほとんど変更せずに ODBC から CLI に移植できる。[ 16 ]

時が経つにつれ、データベースベンダーがドライバインターフェースを引き継ぎ、自社製品への直接リンクを提供するようになった。Jetや同様のラッパーとの中間変換を省略することで、多くの場合、パフォーマンスが向上した。しかし、その頃にはマイクロソフトはOLE DB [ 17 ]コンセプト(最近復活[ 18 ] )に重点を移しており、アドレス帳からテキストファイルまで、より幅広いデータソースへの直接アクセスが可能になっていた。その後、 ActiveX Data Objects(ADO)やADO.netなど、ODBCからさらに離れた新しいシステムがいくつか登場したが、これらはライフサイクルを通じて多かれ少なかれODBCと連携していた。

Microsoft が ODBC の直接的な開発から注意をそらすと、Unix 分野では ODBC がますます普及していきました。これは、市場における 2 つの変化によって促進されました。1 つは、GNOMEのようなグラフィカル ユーザー インターフェイス(GUI)の導入により、これらのソースにテキスト以外の形式でアクセスする必要性が生じたことです。もう 1 つは、当初は Unix 上でPostgreSQLMySQLのようなオープン ソフトウェアデータベース システムが登場したことです。その後、Apple がMac OS X 10.2 (Jaguar) [ 19 ]で標準の Unix 側iODBCパッケージ(OpenLink Software が 2001 年以来 Mac OS X 10.0 や Mac OS 9 向けに独自に提供していたもの[ 20 ] ) を使用するために ODBC を採用したことで、クロス プラットフォーム データ アクセスの標準としての ODBC の地位がさらに確固たるものになりました。

サン・マイクロシステムズは、 ODBCシステムを基盤として独自のオープン標準であるJava Database Connectivity (JDBC)を開発しました。JDBCは、多くの場合、 C言語ではなくJava言語用のODBCバージョンと考えることができます。JDBC-to-ODBCブリッジを使用すると、Javaベースのプログラムが、ネイティブJDBCドライバを持たないプラットフォーム上でODBCドライバを介してデータソースにアクセスできるようになります(ただし、現在ではそのようなプラットフォームは比較的まれです)。逆に、ODBC-to-JDBCブリッジを使用すると、Cベースのプログラムが、適切なODBCドライバを持たないプラットフォームまたはデータベース上でJDBCドライバを介してデータソースにアクセスできるようになります。

ODBC 今日の

ODBC は今日でも広く使用されており、ほとんどのプラットフォームとほとんどのデータベース用のドライバが利用可能です。SQLite のように組み込みを目的としたデータベース エンジン用の ODBC ドライバは、既存のツールをテストやデバッグ用のフロントエンドとして機能させる方法として、よく見られます[ 21 ]

近年、ODBCはSalesforce、Google BigQuery、SnowflakeといったクラウドベースのデータソースやSaaSプラットフォームへの接続にも採用されています。Windows、macOS、Linuxに対応したクロスプラットフォームドライバが利用可能になったことで、Power BI、Tableau、RStudioなどの最新の分析ツールやビジネスインテリジェンスツールとの統合が可能になりました。これにより、ODBCの活用範囲は従来のリレーショナルデータベースにとどまらず、クラウドデータウェアハウスやデータサイエンスのワークフローへと広がっています。

バージョン履歴

ODBC仕様

出典: [ 22 ]

  • 1.0: 1992年9月にリリース[ 23 ]
  • 2.0: 1994年頃
  • 2.5
  • 3.0: 1995年頃、Intersolv の John Goodson と IBM の Frank Pellow および Paul Cotton が ODBC 3.0 に重要な貢献をした[ 24 ]
  • 3.5:1997年頃
  • 3.8: c. 2009、Windows 7 [ 25 ]
  • 4.0: 2016年6月に開発が発表され[ 26 ]、SQL Server 2017との最初の実装は2017年9月にリリースされ、追加のデスクトップドライバは2018年後半にリリースされ、最終仕様はGitHubに掲載されました。

デスクトップデータベースドライバ

出典: [ 27 ]

  • 1.0 (1993年8月): PageAhead Software社製のSIMBAクエリプロセッサを使用。
  • 2.0 (1994年12月): ODBC 2.0 で使用されました。
  • 3.0 (1995年10月): Windows 95およびWindows NT WorkstationまたはNT Server 3.51をサポートします。このリリースには32ビットドライバのみが含まれていました。
  • 3.5 (1996年10月): 2バイト文字セット (DBCS) をサポートし、ファイルデータソース名 (DSN) の使用に対応しました。Microsoft Access ドライバは、Windows 95/98 およびWindows NT 3.51以降のオペレーティングシステム用の Alpha プラットフォームで使用できる RISC バージョンとしてリリースされました。
  • 4.0(1998年後半):Microsoft Jet EngineのUnicode形式をサポートするとともに、以前のバージョンのANSI形式との互換性を維持しました。

運転手と管理者

ドライバー

ODBCはデバイスドライバモデルに基づいており、ドライバは標準的なコマンドと関数を、基盤となるシステムが必要とする特定の呼び出しに変換するために必要なロジックをカプセル化します。たとえば、プリンタドライバは、印刷システムを使用するアプリケーションに、標準的な印刷コマンドのセット(API)を提供します。これらのAPIへの呼び出しは、ドライバによって、 PostScriptPCLなどの実際のハードウェアで使用される形式に変換されます。

ODBCの場合、ドライバは多くの機能をカプセル化しており、それらはいくつかの大まかなカテゴリに分類できます。1つの機能群は、ドライバが通信するDBMSの検索、接続、および切断を主な業務としています。2つ目の機能群は、ODBCシステムからDBMSにSQLコマンドを送信し、内部でサポートされていないコマンドを変換または解釈するために使用されます。たとえば、カーソルをサポートしていないDBMSは、ドライバでこの機能をエミュレートできます。最後に、主に内部で使用される別のコマンド群は、DBMSの内部フォーマットから、C言語フォーマットに基づいた標準化されたODBCフォーマットにデータを変換するために使用されます。

ODBC ドライバを使用すると、ODBC 準拠のアプリケーションがデータ ソース (通常は DBMS) を使用できるようになります。CSVファイルなどのデータ ソース用に、ドライバ自体に小さな DBMS を実装することで、DBMS 以外のドライバも存在します。Oracle、PostgreSQL、MySQL、Microsoft SQL Server (Compact または CE エディションには対応していません)、Mimer SQL、Sybase ASE、SAP HANA [ 28 ][ 29 ]、IBM Db2 など、ほとんどの DBMS ODBCドライバ存在ますテクノロジーによって機能異なるためほとんどODBCドライバODBC標準で定義されているすべての機能を実装しているわけではありません。一部のドライバは、標準で定義されていない追加機能を提供しています。

ドライバーマネージャー

デバイスドライバは通常、別のマネージャ層によって列挙、設定、管理され、この層は追加機能を提供する場合があります。例えば、印刷システムには、ドライバの上にスプーリング機能を提供する機能が含まれていることが多く、サポートされているあらゆるプリンタの印刷スプーリングが可能になります。

ODBCでは、ドライバマネージャ(DM)がこれらの機能を提供します。[ 30 ] DMはインストールされているドライバを列挙し、多くの場合GUIベースの形式でリストとして表示できます。

しかし、ODBCシステムの動作においてより重要なのは、データマネージャ(DM )におけるデータソース名(DSN)の概念です。DSNは、DBMS自体ではなく、特定のデータソースに接続するために必要な追加情報を収集します。例えば、同じMySQLドライバを使用して任意のMySQLサーバーに接続できますが、ローカルのプライベートサーバーに接続するための接続情報は、インターネット上でホストされているパブリックサーバーに接続するために必要な情報とは異なります。DSNはこの情報を標準化された形式で保存し、DMは接続要求時にこの情報をドライバに提供します。DMには、人間が読みやすい名前でDSNのリストを表示し、実行時にそれらを選択して異なるリソースに接続する機能も備わっています。

DMには、部分的に完成したDSNを保存する機能も含まれており、実行時に不足している情報をユーザーに尋ねるコードとロジックが組み込まれています。たとえば、パスワードを必須とせずにDSNを作成できます。ODBCアプリケーションがこのDSNを使用してDBMSに接続しようとすると、システムは一時停止し、続行する前にユーザーにパスワードの入力を求めます。これにより、アプリケーション開発者はこのようなコードを作成する必要がなくなり、また、どのような質問をすべきかを把握する必要もなくなります。これらすべては、ドライバとDSNに含まれています。

ブリッジング構成

特殊な種類のドライバーである。つまり、別のドライバーベースの技術を利用するドライバーなのだ。

ODBC-JDBCブリッジ

ODBC-JDBCブリッジは、JDBCドライバのサービスを利用してデータベースに接続するODBCドライバで構成されます。このドライバは、ODBC関数呼び出しをJDBCメソッド呼び出しに変換します。プログラマは通常、特定のデータベース用のODBCドライバがないものの、JDBCドライバが利用できる場合に、このようなブリッジを使用します。例:OpenLink ODBC-JDBC Bridge、SequeLink ODBC-JDBC Bridge。

JDBC-ODBCブリッジ

JDBC-ODBCブリッジは、ODBCドライバを使用してターゲットデータベースに接続するJDBCドライバで構成されます。このドライバは、JDBCメソッド呼び出しをODBC関数呼び出しに変換します。プログラマは通常、特定のデータベースにJDBCドライバがないものの、ODBCドライバを介してアクセスできる場合に、このようなブリッジを使用します。Sun MicrosystemsはJVMにこのようなブリッジを組み込んでいましたが、JDBCドライバがほとんど存在しない間の暫定的な措置とみなしていました(組み込みのJDBC-ODBCブリッジはJava 8でJVMから削除されました[ 31 ])。Sunは、このブリッジを本番環境での使用を想定しておらず、一般的には使用を推奨していませんでした。2008年現在独立系のデータアクセスベンダーは、両方のメカニズムの最新標準をサポートし、JVMに組み込まれているものよりもはるかに優れたパフォーマンスを発揮するJDBC-ODBCブリッジを提供しています。例:OpenLink JDBC-ODBC Bridge、SequeLink JDBC-ODBC Bridge、ZappySys JDBC-ODBC Bridge。

OLE DB-ODBCブリッジ

OLE DB-ODBC ブリッジは、ODBC ドライバのサービスを利用してターゲット データベースに接続するOLE DBプロバイダで構成されます。このプロバイダは、OLE DBメソッド呼び出しを ODBC 関数呼び出しに変換します。プログラマは通常、特定のデータベースに OLE DB プロバイダがないものの、ODBC ドライバ経由でアクセスできる場合に、このようなブリッジを使用します。Microsoft は、他のデータベース ドライバとともに、 MDACシステム コンポーネント バンドルの一部として MSDASQL.DLL を同梱しており、COM 対応言語 ( Visual Basicなど) での開発を簡素化しています。サードパーティも同様のブリッジを開発しており、特に OpenLink Software は、Microsoft が 64 ビット OS 向けにこのブリッジを非推奨にした際に、そのギャップを埋める 64 ビット OLE DB プロバイダ (ODBC データ ソース用) を提供しています。[ 32 ] (Microsoft は後に譲歩し、 Windows Server 2008およびWindows Vista SP1 以降の 64 ビット Windows には64 ビット版の MSDASQL が同梱されるようになりました。) 例: OpenLink OLEDB-ODBC Bridge (2017 年 3 月 27 日にWayback Machineアーカイブ)、SequeLink OLEDB-ODBC Bridge。

ADO.NETとODBC間のブリッジ

ADO.NET-ODBC ブリッジは、ODBC ドライバのサービスを利用してターゲット データベースに接続するADO.NET プロバイダで構成されます。このプロバイダは、ADO.NETメソッド呼び出しを ODBC 関数呼び出しに変換します。プログラマは通常、特定のデータベースに ADO.NET プロバイダがないものの、ODBC ドライバ経由でアクセスできる場合に、このようなブリッジを使用します。Microsoft は、C#での開発を簡素化するために、他のデータベース ドライバとともに、MDACシステム コンポーネント バンドルの一部としてこのブリッジを提供しています。サードパーティも同様のブリッジを開発しています。例: OpenLink ADO.NET-ODBC Bridge、SequeLink ADO.NET-ODBC Bridge。

関連項目

参考文献

参考文献
  • ガイガー、カイル(1995)。『Inside ODBC』。マイクロソフトプレス。ISBN 9781556158155
引用文献
  1. McGlinn, Evan (1988)、「Blueprint Lets 1-2-3 Access Outside Data」、 InfoWorld、第10巻、第14号、1988年4月4日、1、69ページ
  2. 1 2ガイガー 1995、p. 65。
  3. ガイガー 1995、p. 86-87。
  4. ガイガー 1995、p. 56。
  5. ガイガー 1995、p. 106。
  6. ガイガー 1995、p. 165。
  7. 1 2ガイガー 1995、p. 186-187。
  8. ISO/IEC 9075-3 – 情報技術 – データベース言語 – SQL – 第3部:呼び出しレベルインターフェース(SQL/CLI)
  9. ガイガー 1995、p. 203。
  10. Harindranath, G; Jože Zupančič (2001).情報システム開発に関する新たな視点:理論、方法、実践. Springer. p. 451. ISBN  978-0-306-47251-02010年7月28日取得最初のODBCドライバはSIMBAクエリプロセッサを使用しており、SIMBAクエリプロセッサは呼び出しをMicrosoft Jet ISAM呼び出しに変換し、バックエンドにアクセスするために適切なISAMドライバに呼び出しをディスパッチしていた[…]
  11. 「Linux/UNIX ODBC – ODBCとは?
  12. 「当社の歴史」、シンバ・テクノロジーズ
  13. Idehen, Kingsley Uyi (1994 年 10 月)。「ODBC と progress V7.2d」。Usenetニュースグループ comp.databases。201312 月 13 日に取得
  14. Idehen, Kingsley Uyi (1995-07-18). "DEC OSF/1 用の ODBC/Ingres ドライバが必要です" . Usenet Newsgroup comp.databases.oracle . 2013 年12 月 13 日に取得.
  15. Sippl, Roger (1996)「SQL Access Group の呼び出しレベルインターフェイス」、Dr. Dobbs、1996年2月1日
  16. 「ODBCとCLIの類似点と相違点」、InfoSphere Classicドキュメント、IBM、2008年9月26日
  17. 「OLE DBとSQL Server:歴史、終焉、そしてマイクロソフトのちょっとした裏話」2011年9月25日。
  18. 「SQL Server 用 OLE DB ドライバーの新リリースを発表」。2017 年 10 月 6 日。
  19. Anderson, Andrew (2003-06-20). "Jaguar のオープンデータベース接続" . O'Reilly MacDevCenter.com . O'Reilly Media, Inc . 2013 年12 月 13 日取得.
  20. Sellers, Dennis (2001-07-17). "Mac OS Classic、Mac OS X 向け ODBC SDK アップデートがリリースされました" . MacWorld . IDG Consumer & SMB . 2013 年12 月 13 日取得.
  21. Werner, Christian (2018) "SQLite ODBC Driver" 2014年6月26日にWayback Machineアーカイブ済み、2018年2月24日
  22. 「ODBC バージョン」 . Linux/UNIX ODBC . Easysoft . 2009年10月27日取得
  23. Antal, Tiberiu Alexandru. 「JDBC を使用した Oracle データベースへのアクセス」(PDF)。クルージュ=ナポカ:クルージュ=ナポカ工科大学。p. 2。 2011年7月22日にオリジナル(PDF)からアーカイブ。 2009年10月27日に取得。ODBC 1.0 は1992年9月にリリースされました。 
  24. マイクロソフト社。『Microsoft ODBC 3.0 プログラマーズ リファレンスおよび SDK ガイド、第 1 巻』。マイクロソフト プレス。1997 年 2 月。( ISBN 9781572315167
  25. 「ODBC 3.8 の新機能」。マイクロソフト2010年1月13日取得。Windows 7 には、更新されたバージョンの ODBC、ODBC 3.8 が含まれています。
  26. Rukmangathan, Krishnakumar (2016-06-07). "A new release of ODBC for Modern Data Stores" . Microsoft Data Access / SQL BI Technologies Blog . Microsoft . 2017-01-03に閲覧前回のリリースから 15 年以上が経過し、Microsoft は Open Data Base Connectivity (ODBC) 仕様の更新を検討しています。
  27. 「デスクトップデータベースドライバの歴史」。2017年1月19日。
  28. 「SAP HANAシステムプロパティ」 . DB-Engines . 2016年3月28日取得。
  29. ↑ 「ODBC 経由で SAP HANA接続する - SAP HANA Studio 用 SAP HANA 開発者ガイド - SAP ライブラリ」。help.sap.com。2016年 3 月 28 日に取得
  30. Sybase。「ODBC 入門」。infocenter.sybase.com。Sybase。2011 年108取得
  31. 「Java JDBC API」。docs.oracle.com 。 2018年12月18日取得
  32. Microsoft、「データアクセス技術ロードマップ」、非推奨のMDACコンポーネント、 Microsoft 「ADOプログラマーズガイド」付録A:プロバイダー、Microsoft OLE DB Provider for ODBC、2005年7月30日取得。 2001年10月5日にWayback Machineアーカイブ済み。
  • Microsoft ODBC の概要
  • IBM i ODBC 管理
  • プレゼンテーションスライドはwww.roth.netより。
  • Microsoft ODBC およびデータアクセス API の歴史に関する記事。
  • GitHubページ:Microsoft ODBC 4.0仕様
オープンデータベース接続 | japedia.wiki