Интерфейсы доступа к базам данных: ODBC, OLE DB, ADO

Язык SQL условно разделяют на интерактивный и встроенный. И если интерактивный SQL функционирует в среде СУБД, то для встроенного языка требуются дополнительные средства связи среды, в которую он встроен, с СУБД: для передачи команд SQL и получения результатов выполнения запросов. Именно этим целям служат интерфейсы доступа к базам данных.

Существует несколько основных способов доступа к данным. Подавляющее большинство систем управления базами данных содержит в своем составе библиотеки, предоставляющие специальный прикладной программный интерфейс (Application Programming Interface, API) для доступа к данным этой СУБД. Обычно такой интерфейс представляет собой набор функций, вызываемых из клиентского приложения. В случае настольных СУБД эти функции обеспечивают чтение/запись файлов базы данных, а в случае серверных СУБД инициируют передачу запросов серверу базы данных и получение от сервера результатов выполнения запросов. Библиотеки, содержащие API для доступа к данным серверной СУБД, обычно входят в состав ее клиентского программного обеспечения, устанавливаемого на компьютерах, где функционируют клиентские приложения.

Использование клиентского API является наиболее очевидным способом манипуляции данными в приложении. Однако, в этом случае приложение сможет использовать данные СУБД только того производителя, чьи функции используются, а замена ее на другую повлечет за собой необходимость переписывания значительной части кода приложения (клиентские API и объектные модели не подчиняются никаким стандартам и различны для разных СУБД). Другой способ манипуляции данными в приложении основан на использовании универсальных механизмов доступа к данным.

Универсальный механизм доступа к данным обычно реализуется в виде библиотек и дополнительных модулей, называемых драйверами или провайдерами. Библиотеки предоставляют определенный набор функций, а дополнительные модули осуществляют связь с конкретными СУБД с использованием их API. Наиболее популярными среди универсальных механизмов доступа являются Open Database Connectivity (ODBC), OLE DB и ActiveX Data Objects (ADO).

Вместе интерфейсы ODBC, OLE DB и ADO составляют похожую на иерархическую структуру, где каждый последующий интерфейс может обращаться к данным не только непосредственно, но и с использованием интерфейса более низкого уровня.