ODBC: решаемые задачи и история развития
На сегодня те задачи, которые решает ODBC, стали понятнее, но хочется разобраться в происхождении этой технологии. Более 20-ти лет назад, где-то в 1990-м году, производители баз данных для UNIX, среди которых такие известные корпорации, как IBM, Informix, Oracle, входящие в состав SAG (SQL Access Group), предложили технологию CLI, призванную обеспечить переносимость SQL.
Прежде чем появился SAG CLI, единственно возможным способом применения SQL был Embedded SQL (встроенный SQL). На основе этой технологии команды SQL в языке программирования пропускаются через предварительный компилятор, который специфичен для этого языка. Компилятор преобразует команды в язык собственного API базы данных. Понятно, что встроенный SQL не был достаточно удобным, поэтому разработчики баз данных вынуждены были объединиться в SAG и родственную группу X/Open (для создания переносимого интерфейса SQL, который сможет обеспечить работу со всеми базами данных без специфических предварительных компиляторов для языков программирования).
В основу технологии SAG CLI положено подмножество спецификации SQL (Static SQL) или ANSI SQL 86. Ее расширили, для того чтобы охватить Dynamic SQL и некоторых производителей, таких как IBM, Informix. Скоро приняли CLI как стандарт SQL де-факто для своей личной базы данных. Через два года, в 1992-м, корпорация Microsoft реализовала SQL CLI в группе интерфейсов, которая носит название ODBC, расширив SAG CLI, включив функции для запросов и управления драйверами, а также доступ к каталогу баз данных. Корпорация Microsoft развила SAG CLI со стороны удобства работы, т. к. набор графических инструментов и SDK помогут в принятии технологии, и начала продвигать ODBC на потребительский рынок.
По прошествии нескольких лет, Microsoft реализовала OLE-DB как замену ODBC. Сначала, сразу после выхода, OLE-DB выступала как объектный слой, привязанный к ODBC. Вскоре, после выхода драйверов к OLE-DB, прошлая основа была уже не нужна. Это было серьезным шагом в стратегии Microsoft. Целью корпорации в этом случае стал контроль доступа к данным в виде привязки OLE-DB к платформе Windows. Однако этот шаг не был отмечен успехом. ODBC стал стандартом де-факто, который сможет осуществить доступ к ядру базы данных, поддерживающему SQL, и при этом, не зависеть от платформы.