Опубликован: 11.12.2006 | Доступ: свободный | Студентов: 5820 / 381 | Оценка: 4.42 / 3.86 | Длительность: 57:15:00
Лекция 11:

Конфигурирование Microsoft SQL Server в сети

API для SQL Server

Для коммуникации с SQL Server ваши приложения должны уметь "разговаривать" на его языке. Это значит, что при коммуникации должно применяться одно из инструментальных средств, поставляемых вместе с SQL Server, например, командная строка OSQL или ISQLW (анализатор запросов SQL Server). Эти инструментальные средства могут быть полезными для простых запросов, но они не подходят для обработок, ежедневно выполняемых приложениями. Например, люди, работающие с информацией о запасах товаров на складе, со счетами кредиторов и со счетами к получению, трудятся более эффективно, когда пользуются графическим интерфейсом, а не когда набирают с клавиатуры операторы SQL. На самом деле, большинство из пользователей таких приложений вообще не знают SQL. Как правило, для создания приложений, взаимодействующих с SQL Server, разработчики применяют API (Application Programming Interface), интерфейсы прикладного программирования. Благодаря API можно вызывать разнообразные функции для работы с базами данных.

Вместе с SQL Server поставляется множество разных API, в том числе DB-LIB, ODBC и OLE DB. DB-LIB – это первоначальный, "родной" интерфейс API для SQL Server, он доступен и для Microsoft SQL Server и для продуктов Sybase. ODBC – новее и гибче и может применяться для коммуникации с любым количеством реляционных СУБД. Для работы с SQL Server программистам доступны для применения также OLE DB и еще несколько других API. В данном разделе вы найдете описания различных API.

Соединения DB-LIB

Интерфейс DB-LIB был частью SQL Server начиная с первых версий SQL Server, еще с 1988 года. DB-LIB является первоначальным, исконным API для программирования SQL Server. Хотя DB-LIB всегда был составной частью SQL Server, происходит постепенный отказ от него в пользу ODBC, так что ODBC становится основным API. Языки C и C++, а также Microsoft Visual Basic поддерживают DB-LIB. Вызовы DB-LIB производятся из кода приложений, а затем отправляются через сетевую библиотеку, через уровень сетевого протокола и затем на уровень сетевого оборудования.

Соединения ODBC

ODBC – это стандартный API-интерфейс, разработанный фирмой Microsoft для упрощения соединения компьютеров под управлением Windows с различными реляционными СУБД. Благодаря программированию при помощи API-интерфейса ODBC, вы можете применять одно и то же приложение для коммуникации с любым количеством систем. ODBC обладает многофункциональностью, но может оказаться не самым эффективным API для некоторых реляционных СУБД. Как правило, "родные" API поддерживают большую функциональность и оптимизированы для работы со своими реляционными СУБД.

ODBC применяется для поддержки дополнительных возможностей соединения через Интернет с применением "активных серверных страниц" ASP (Active Server Pages). Также там имеется поддержка ActiveX, MFC (Microsoft Foundation Classes) и XML (Extensible Markup Language). За последние несколько лет поддержка ODBC выросла очень значительно, благодаря чему ODBC стал основным API для продуктов, поддерживающих много реляционных СУБД.

API ODBC имеет одинаковую форму независимо от того, с какой реляционной СУБД вы соединяетесь, но это не относится к драйверам ODBC. Вам придется приобретать по драйверу ODBC для каждой используемой реляционной СУБД. Эти драйверы преобразуют ODBC в "родной" сетевой протокол реляционной СУБД. Для оптимальной работы новых версий реляционных СУБД обычно требуются и новые драйверы ODBC, хотя обратная совместимость, как правило, поддерживается. В DB-LIB обычно применяется специфическая сетевая библиотека, а в ODBC – многопротокольная сетевая библиотека. Эта библиотека упрощает соединение приложений ODBC с сервером и избавляет от необходимости выбирать какой-либо определенный протокол.

Пулинг соединений ODBC

Способность к пулингу (объединению ресурсов) при выполнении соединений, вызываемых изнутри приложений, появилась в ODBC версий 2.х. Как правило, каждое приложение создает по одному соединению между уровнем приложений и базой данных всякий раз, когда в это приложение входит еще один пользователь. Этот процесс может оказаться неэффективным, т.к. установление и поддержание соединений с базой данных приводит к довольно-таки большой нагрузке на компьютер.

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

Когда приложение запрашивает соединение ODBC, ODBC Connection Manager (Диспетчер соединений ODBC) определяет, должно ли инициироваться новое соединение или же надо воспользоваться уже имеющимся соединением. Это решение принимается без возможности приложения влиять на него. Затем потоки приложения работают как обычно.

Когда поток завершает свою работу с соединением ODBC, приложение делает вызов для освобождения этого соединения. И снова ODBC Connection Manager берет на себя управление над соединением. А если какое-либо соединение простаивает в течение некоторого периода времени, то ODBC Connection Manager может закрыть его.

Дополнительная информация. Более подробную информацию о пулинге соединений ODBC вы найдете в Microsoft ODBC Software Development Kit (SDK).
Другие API

Имеется множество других API, при помощи которых ваши приложения могут соединяться с SQL Server. Это, например, OLE DB, ODS, SQL-DMF (SQL-Distributed Management Framework), SQL-DMO (SQL-Distributed Management Objects) и SQL-NS (SQL-Namespace). Как правило, каждый из этих протоколов поддерживает те или иные специфические функции или сегмент рынка, для которого требуется свой собственный интерфейс программирования.

Дополнительная информация. Для дополнительной информации о специализированных API обратитесь к SQL Server 2000 Books Online.