ODBC (Open Database Connectivity) — API уровня приложения для доступа к СУБД. Определяет единый программный интерфейс, через который приложение может работать с любой базой данных, для которой существует ODBC-драйвер. Разработан Microsoft в 1992 году на основе спецификации X/Open SQL Call Level Interface (CLI).
Как работает
Приложение вызывает функции ODBC API (SQLConnect, SQLExecute, SQLFetch и т.д.). ODBC Driver Manager перенаправляет вызовы в соответствующий ODBC-драйвер — DLL или so-библиотеку конкретной СУБД. Драйвер транслирует вызовы в нативный протокол: MySQL Protocol для MySQL, libpq для PostgreSQL, TDS для MSSQL.
Источник данных (DSN, Data Source Name) — именованный профиль подключения, хранящий параметры: хост, порт, имя базы, учётные данные. Три типа DSN: User DSN (для конкретного пользователя Windows), System DSN (для всей системы), File DSN (в файле .dsn).
На Linux ODBC реализуется через unixODBC — открытый ODBC Driver Manager. Большинство популярных СУБД предоставляют unixODBC-совместимые драйверы.
История
ODBC 1.0 выпущен Microsoft в 1992 году. ODBC 2.0 (1994) добавил расширенные типы данных. ODBC 3.0 (1995) выровнял API с ISO CLI. Стандарт ISO/IEC 9075-3 (SQL/CLI) оформился в 1995 году. JDBC — аналог ODBC для Java (1997). OLEDB и ADO.NET — Microsoft-специфичные альтернативы для Windows. ODBC остаётся актуальным для корпоративных систем, BI-инструментов (Power BI, Tableau) и legacy-приложений.
Связь с хостингом
ODBC применяется в хостинг-контексте при интеграции серверных приложений с разными СУБД: например, ASP.NET-приложение на IIS, подключающееся через ODBC к MySQL. На Linux-серверах 1С (Битрикс или 1С:Предприятие) использует ODBC-драйвер для подключения к PostgreSQL. В облачных VPS-окружениях ODBC нужен для BI-коннекторов.
Принцип работы ODBC
ODBC (Open Database Connectivity) — стандарт API для подключения к реляционным БД. Приложение использует унифицированный интерфейс, ODBC Driver Manager перенаправляет вызовы к конкретному драйверу (для MySQL, PostgreSQL, MSSQL, Oracle). Разработан Microsoft в 1992 году на основе стандарта Call Level Interface.
ODBC в экосистеме Windows
На Windows: ODBC Data Source Administrator (odbcad32.exe) настраивает DSN (Data Source Name). DSN хранит параметры подключения: имя сервера, БД, учётные данные. Используется IIS-приложениями, MS Office, 1С при работе с внешними БД.
ODBC vs нативные драйверы
Нативные драйверы (MySQLi, PDO, pg, pymysql) быстрее ODBC: меньше слоёв абстракции. ODBC выбирают для универсальности и устаревших корпоративных приложений. В Linux ODBC реализован через unixODBC. Современный Python использует SQLAlchemy + нативные драйверы вместо ODBC.
ODBC драйверы для Linux
unixODBC + FreeTDS (для MSSQL) на Linux. Конфигурация: /etc/odbcinst.ini (драйверы), /etc/odbc.ini (DSN). Тест: isql -v DSN_NAME username password. Python: pyodbc + unixODBC. SQLAlchemy: connection string mssql+pyodbc://user:pass@DSN. Microsoft ODBC Driver for SQL Server официальный пакет для Linux.
ODBC трассировка
Windows ODBC Trace: включить в ODBC Data Source Administrator → Tracing. Лог содержит все SQL-запросы. Для диагностики проблем медленных запросов. Strace + ltrace на Linux для трассировки системных вызовов ODBC. SQLServer Profiler или SQL Trace аналогично для MSSQL.