14.11Расширения языка SQL
Поскольку чистый SQL не является алгоритмическим языком, т. е. не содержит в себе операторов IF-THEN-ELSE, DO WHILE, FOR, CASE и т. д., его с самого начала возникновения пытались расширить, чтобы полу- I чить возможность писать на нем простейшие программы.
В настоящее время имеются 3 наиболее распространенные версии процедурных расширений языка SQL:
версия фирмы Oracle под названием PL/SQL, которая входит во все без исключения версии Oracle и является основным инструментом создания приложений под Oracle;
версия Informix и ряда других фирм, получившая название языка 4-го поколения 4GL;
последняя по времени появления версия, ориентированная на Java, или ужe скорее симбиоз Java+SQL, получившая условное название JavaSQL.
14.12Выводы
Язык SQL, созданный более четверти века тому назад, превратился в общепризнанный универсальный инструмент для управления данными. Во многих отношениях появление Java стало практичным и вездесущим средством обогащения этой инфраструктуры семантикой произвольного уровня сложности, которым может быть только универсальный объектно-ориентированный язык программирования. Подобная логика по самой своей природе является распределенной, ее легко развернуть на любом уровне архитектуры сетевых вычислений.
Сочетание получивших широкое распространение серверов СУБД SQL-типа и Java-логики позволит превратить реляционные системы в серверы обработки информации универсального типа, без которых трудно себе представить информационную архитектуру будущего.
15Лекция №15: Открытый интерфейс доступа к базам данных – ODBC 15.1Функциональная модель ODBC 15.2Основа ODBC Интерфейс ODBC (Open Database Connectivity) был разработан фирмой Microsoft как открытый интерфейс доступа к базам данных. Он предоставляет унифицированные средства взаимодействия прикладной программы, называемой клиентом (или приложением-клиентом), с сервером - базой данных.
В основу интерфейса ODBC были положены спецификация CLI-интерфейса (Call-Level Interface), разработанная X/Open, и ISO/IEC для API баз данных, а также язык SQL (Structured Query Language) как стандарт языка доступа к базам данных.
Интерфейс ODBC проектировался для поддержки максимальной интероперабельности приложений, которая обеспечивает унифицированный доступ любого приложения, использующего ODBC, к различным источникам данных. Так, если приложение, соответствующее стандарту ODBC и SQL, первоначально разрабатывалось для работы с базой данных Microsoft Access, а затем таблицы этой базы были перенесены в базу данных Microsoft SQL Server или базу данных Oracle, то приложение сможет и дальше обрабатывать эти данные без внесения дополнительных изменений.
Для взаимодействия с базой данных приложение-клиент вызывает функции интерфейса ODBC, которые реализованы в специальных модулях, называемых ODBC-драйверами. Как правило, ODBC-драйверы - это DLL-библиотеки, при этом одна DLL-библиотека может поддерживать несколько ODBC-драйверов. При установке на компьютер любого SQL-сервера (базы данных, поддерживающей один из стандартов языка SQL, например, SQL-92) автоматически выполняется регистрация в реестре Windows и соответствующего ODBC-драйвера.
15.3Архитектура ODBC Архитектура ODBC представлена четырьмя компонентами (рис. 1.1):
Приложение-клиент, выполняющее вызов функций ODBC.
Менеджер драйверов, загружающий и освобождающий ODBC-драйверы, которые требуются для приложений-клиентов. Менеджер драйверов обрабатывает вызовы ODBC-функций или передает их драйверу.
ODBC-драйвер, обрабатывающий вызовы SQL-функций, передавая SQL-серверу выполняемый SQL-оператор, а приложению-клиенту - результат выполнения вызванной функции.
Источник данных, определяемый как конкретная локальная или удаленная база данных.
Рис. 1.1. Архитектура ODBC
Основное назначение менеджера драйверов - загрузка драйвера, соответствующего подключаемому источнику данных, и инкапсуляция взаимодействия с различными типами источников данных посредством применения различных ODBC-драйверов.
ODBC-драйверы, принимая вызовы функций, взаимодействуют с приложением-клиентом, выполняя следующие задачи:
управление коммуникационными протоколами между приложением-клиентом и источником данных;
управление запросами к СУБД;
выполнение передачи данных от приложения-клиента в СУБД и из базы данных в приложение-клиент;
возвращение приложению-клиенту стандартной информации о выполненном вызове ODBC-функции в виде кода возврата;
поддерживает работу с курсорами и управляет транзакциями.
Приложение-клиент одновременно может устанавливать соединения с несколькими различными источниками данных, используя разные ODBC-драйверы, а также несколько соединений с одним и тем же источником данных, используя один и тот же ODBC-драйвер.
|