Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Основы проектирования приложений баз данных

Покупка
Новинка
Артикул: 833262.01.99
Доступ онлайн
1 000 ₽
В корзину
Курс знакомит слушателей с различными подходами используемыми при реализации доступа к источникам данных, приводится анализ существующих методов доступа к данным, включая ODBC, OLE DB и ADO, рассматриваются механизмы публикации удаленных источников данных в Интернет. В курсе приводится обзор классов, используемых для работы с базами данных, предоставляемых системами программирования Delphi, JBuilder и Microsoft VisualStudio .NET. Методы связи с SQL-ориентированными БД. Структура ODBC. Функции ODBC API. Реализация параметрических запросов. Асинхронный доступ к источнику данных.Объектный интерфейс Microsoft на базе OLE DB.Интерфейс ADO. Публикация данных в Internet с использованием ADO. ASP-файлы.Реализация интерфейсов ADO и ODBC в пакетах Delphi и Visual Studio.NET.Создание CGI и ISAPI приложений.Стандарт JDBC. JavaSQL и SQLJ.
Баженова, И. Ю. Основы проектирования приложений баз данных : краткий курс / И. Ю. Баженова. - Москва : ИНТУИТ, 2016. - 176 с. - ISBN 5-94774-539-9. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2151993 (дата обращения: 06.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Основы проектирования приложений баз данных

2-е издание, исправленное

Баженова И.Ю.

Национальный Открытый Университет “ИНТУИТ”
2016

2
УДК [004.415.2:004.65](075.8)
ББК 17
Б16
Основы проектирования приложений баз данных / Баженова И. Ю. - M.: Национальный Открытый
Университет “ИНТУИТ”, 2016 (Основы информационных технологий)
ISBN 5-94774-539-9

Курс знакомит слушателей с различными подходами используемыми при реализации доступа к
источникам данных, приводится анализ существующих методов доступа к данным, включая ODBC,
OLE DB и ADO, рассматриваются механизмы публикации удаленных источников данных в
Интернет. В курсе приводится обзор классов, используемых для работы с базами данных,
предоставляемых системами программирования Delphi, JBuilder и Microsoft VisualStudio .NET.
Методы связи с SQL-ориентированными БД. Структура ODBC. Функции ODBC API. Реализация
параметрических запросов. Асинхронный доступ к источнику данных.Объектный интерфейс
Microsoft на базе OLE DB.Интерфейс ADO. Публикация данных в Internet с использованием ADO.
ASP-файлы.Реализация интерфейсов ADO и ODBC в пакетах Delphi и Visual Studio.NET.Создание
CGI и ISAPI приложений.Стандарт JDBC. JavaSQL и SQLJ.

(c) ООО “ИНТУИТ.РУ”, 2006-2016
(c) Баженова И.Ю., 2006-2016

3
Открытый интерфейс доступа к базам данных - ODBC

Рассматривается архитектура ODBC, вводится понятие источника данных,
описываются средства, используемые для создания источника данных DSN.

Функциональная модель ODBC

Основа 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-драйвера.

Архитектура ODBC

Архитектура ODBC представлена четырьмя компонентами (рис. 1.1):

Приложение-клиент, выполняющее вызов функций ODBC.
Менеджер драйверов, загружающий и освобождающий ODBC-драйверы, которые
требуются для приложений-клиентов. Менеджер драйверов обрабатывает вызовы
ODBC-функций или передает их драйверу.
ODBC-драйвер, обрабатывающий вызовы SQL-функций, передавая SQL-серверу
выполняемый SQL-оператор, а приложению-клиенту - результат выполнения
вызванной функции.

4
Источник данных, определяемый как конкретная локальная или удаленная база
данных.

Рис. 1.1.  Архитектура ODBC

Основное назначение менеджера драйверов - загрузка драйвера, соответствующего
подключаемому источнику данных, и инкапсуляция взаимодействия с различными
типами источников данных посредством применения различных ODBC-драйверов.

ODBC-драйверы, принимая вызовы функций, взаимодействуют с приложением-
клиентом, выполняя следующие задачи:

управление коммуникационными протоколами между приложением-клиентом и
источником данных;
управление запросами к СУБД;
выполнение передачи данных от приложения-клиента в СУБД и из базы данных в
приложение-клиент;
возвращение приложению-клиенту стандартной информации о выполненном
вызове ODBC-функции в виде кода возврата;
поддерживает работу с курсорами и управляет транзакциями.

Приложение-клиент одновременно может устанавливать соединения с несколькими
различными источниками данных, используя разные ODBC-драйверы, а также
несколько соединений с одним и тем же источником данных, используя один и тот же
ODBC-драйвер.

Функции ODBC API

Все функции ODBC API условно можно разделить на четыре группы:

5
основные функции ODBC, обеспечивающие взаимодействие с источником
данных;
функции установки (setup DLL);
функции инсталляции (installer DLL) ODBC и источников данных;
функции преобразования данных (translation DLL).

Объявления всех функций и используемых ими типов данных содержатся в
заголовочных файлах. Группа основных функций ODBC API разбита на три уровня:

функции ядра ODBC;
функции 1 уровня;
функции 2 уровня.

Каждый ODBC-драйвер специфицируется как драйвер, поддерживающий
определенный уровень функций ODBC API.

Прототипы функций ядра ODBC API находятся в файле Sql.h (C/C++, Visual Studio), а
прототипы функций 1 и 2 уровней - в файле Sqlext.h.

Применение #define ODBCVER позволяет указать используемую версию (например,

#define ODBCVER 0x0351 ).

Прототипы функций установки и инсталляции находятся в файле odbcinst.h.

Соотношение стандарта ODBC и стандарта интерфейса уровня
вызовов (CLI)

Как уже отмечалось выше, открытый интерфейс доступа к базам данных фирмы
Microsoft основан на следующих стандартах:

спецификация X/Open CAE1) (Specification “Data Management: SQL Call-Level
Interface (CLI)”);
спецификация ISO2) /IEC 9075-3:1995 (E) (Call-Level Interface (SQL/CLI)).

В настоящее время фирма Microsoft поддерживает версию 3.x ODBC API. Приложения,
написанные на основе спецификации X/Open и ISO CLI, будут правильно работать с
ODBC-драйверами версии 3.x или драйверами “согласованного стандарта” в том
случае, если они компилируются с заголовочными файлами ODBC версии 3.x и
линкуются с ODBC 3.x библиотеками, а доступ к ODBC-драйверу получают через
менеджер драйверов ODBC 3.x. Аналогично, что и сами драйверы 3.x, написанные на
основе спецификации X/Open и ISO CLI, будут правильно работать с приложениями
при соблюдении этих же условий.

Драйвер ODBC 3.x всегда поддерживает все возможности, используемые приложением
“согласованного стандарта”, а приложение ODBC 3, которое использует только
возможности, предоставляемые ISO CLI, и обязательные средства, описываемые

6
X/Open CLI, всегда будет работать с драйвером “согласованного стандарта”.

В дополнение к интерфейсу, специфицированному в стандартах ISO/IEC и X/Open CLI,
ODBC реализует следующие возможности:

извлечение нескольких строк (блочная выборка) за один вызов функции;
связывание с массивом параметров;
поддержка закладок, включая выборку посредством закладки, закладки
переменной длины, блочное обновление и удаление посредством отмеченных
операций над непоследовательными строками;
построчное связывание (row-wise binding);
связывание со смещением (binding offsets);
поддержка пакетов SQL-операторов как в хранимых процедурах, так и в виде
последовательности отдельных SQL-операторов, выполняемых при вызове
функций SQLExecute и SQLExecDirect;
определение точного или приблизительного числа строк курсора;
применение операции позиционированного обновления и удаления и пакетных
удалений и обновлений с использованием функции SQLSetPos;
поддержка функций каталога, позволяющих получать информацию из схемы базы
данных (системных таблиц);
библиотеки преобразования для кодовых страниц;
асинхронное выполнение;
поддержка хранимых процедур, включая escape-последовательности, механизм
связывания выходных параметров, функции каталога;
более продвинутые возможности соединения, включающие поддержку атрибутов
соединения и просмотра атрибутов.

Для согласованности со стандартом ISO CLI и X/Open CLI в заголовочных файлах
содержатся псевдонимы значений, используемых в ODBC API. Так, в псевдонимах

“MAX” расширено до “MAXIMUM”, “LEN” до “LENGTH”, “MULT” до “MULTIPLE”, “OJ” до

“OUTER_JOIN”, а “TXN” до “TRANSACTION”. Например:

Индентификатор ODBC
Псевдоним в заголовочном файле

SQL_MAX_CATALOG_NAME_LEN
SQL_MAXIMUM_CATALOG_NAME_LENGTH

SQL_MAX_COLUMN_NAME_LEN
SQL_MAXIMUM_COLUMN_NAME_LENGTH

SQL_MAX_COLUMNS_IN_GROUP_BY
SQL_MAXIMUM_COLUMNS_IN_GROUP_BY

SQL_MAX_COLUMNS_IN_ORDER_BY
SQL_MAXIMUM_COLUMNS_IN_ORDER_BY

SQL_MAX_COLUMNS_IN_SELECT
SQL_MAXIMUM_COLUMNS_IN_SELECT

SQL_MAX_COLUMNS_IN_TABLE
SQL_MAXIMUM_COLUMNS_IN_TABLE

SQL_MAX_CONCURRENT_ACTIVITIES SQL_MAXIMUM_CONCURRENT_ACTIVITIES
SQL_MAX_CURSOR_NAME_LEN
SQL_MAXIMUM_CURSOR_NAME_LENGTH

SQL_MAX_DRIVER_CONNECTIONS
SQL_MAXIMUM_DRIVER_CONNECTIONS

SQL_MAX_IDENTIFIER_LEN
SQL_MAXIMUM_IDENTIFIER_LENGTH

SQL_MAX_SCHEMA_NAME_LEN
SQL_MAXIMUM_SCHEMA_NAME_LENGTH

SQL_MAX_STATEMENT_LEN
SQL_MAXIMUM_STATEMENT_LENGTH

SQL_MAX_TABLE_NAME_LEN
SQL_MAXIMUM_TABLE_NAME_LENGTH

SQL_MAX_TABLES_IN_SELECT
SQL_MAXIMUM_TABLES_IN_SELECT

SQL_MAX_USER_NAME_LEN
SQL_MAXIMUM_USER_NAME_LENGTH

SQL_MULT_RESULT_SETS
SQL_MULTIPLE_RESULT_SETS

7
SQL_OJ_CAPABILITIES
SQL_OUTER_JOIN_CAPABILITIES

SQL_TXN_CAPABLE
SQL_TRANSACTION_CAPABLE

SQL_TXN_ISOLATION_OPTION
SQL_TRANSACTION_ISOLATION_OPTION

Создание источника данных

Источник данных DSN, используемый функциями ODBC API, первоначально должен
быть создан. Это можно выполнить как программно - вызвав функцию ODBC API, так
и интерактивно - используя утилиту ODBC (в зависимости от версии Windows,
расположенную на панели управления или администрирования).

Утилита ODBC

При использовании утилиты ODBC (рис. 1.2) на вкладке Пользовательский DSN
отображается список всех зарегистрированных источников данных.

Рис. 1.2.  Диалог утилиты ODBC

При добавлении нового источника данных отображается диалог со всеми
зарегистрированными в реестре Windows ODBC-драйверами (рис. 1.3).

8
Рис. 1.3.  Список зарегистрированных драйверов

В зависимости от выбранного ODBC-драйвера последовательно отображаются один
или несколько диалогов для ввода параметров создаваемого DSN. Так, для создания
источника данных, позволяющего работать с базой данных Microsoft SQL Server,
следует определить имя создаваемого DSN, имя зарегистрированного SQL-сервера
(рис. 1.4) и имя базы данных (на этом сервере), а также ряд дополнительных
параметров.

Рис. 1.4.  Создание DSN для базы данных Microsoft SQL Server

Создание источника данных с использованием ODBC API

DLL-библиотека ODBCCP32.DLL предоставляет функции ODBC API ConfigDSN и
SQLConfigDataSource, позволяющие выполнять регистрацию новых источников

9
данных или удалять информацию об источниках данных из реестра Windows (и из
файла ODBC.ini).

Функция ConfigDSN позволяет добавлять, изменять или удалять источники данных и
имеет следующее формальное описание:

BOOL ConfigDSN(
     HWND     hwndParent,
     WORD     fRequest,
     LPCSTR     lpszDriver,
     LPCSTR     lpszAttributes);

Для использования в среде Visual Studio функций ConfigDSN и SQLConfigDataSource
следует подключить заголовочный файл odbcinst.h.

Параметр hwndParent определяет дескриптор окна или NULL. Если дескриптор не
указан, то при выполнении данной функции окно с предложением уточнить параметры
не отображается. Параметр fRequest указывает тип запроса, который задается одной из
следующих констант:

ODBC_ADD_DSN - добавление нового источника данных;

ODBC_CONFIG_DSN - изменение существующего источника данных;

ODBC_REMOVE_DSN - удаление существующего источника данных.

Параметр lpszDriver содержит описание драйвера, а параметр lpszAttributes -
список атрибутов в форме “ключевое слово=значение” (например:
DSN=MyDB\0UID=U1\0PWD=P1\0DATABASE=DB1\0\0). Список атрибутов
завершается двумя null-байтами.

При успешном завершении функция возвращает значение TRUE, в противном случае
вызовом функции SQLInstallerError можно получить один из следующих кодов
ошибки:

ODBC_ERROR_INVALID_HWND - ошибка в указании дескриптора окна;

ODBC_ERROR_INVALID_KEYWORD_VALUE - параметр lpszAttributes содержит ошибки;

ODBC_ERROR_INVALID_NAME - параметр lpszDriver не найден в системе;

ODBC_ERROR_INVALID_REQUEST_TYPE - параметр fRequest содержит недопустимое
значение;

ODBC_ERROR_REQUEST_FAILED - нельзя выполнить действие, указанное параметром

fRequest ;

ODBC_ERROR_DRIVER_SPECIFIC - ошибка конкретного драйвера.

Для записи информации об источнике данных в секцию [ODBC Data Sources] секции
ODBC.INI реестра Windows функция ConfigDSN вызывает функцию
SQLWriteDSNToIni, а для удаления - функцию SQLRemoveDSNFromIni.

Функция SQLConfigDataSource имеет следующее формальное описание:

10
Доступ онлайн
1 000 ₽
В корзину