Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Язык SQL выбор данных Ред 2010 12.01Зам.doc
Скачиваний:
11
Добавлен:
26.08.2019
Размер:
913.92 Кб
Скачать

Распределенные запросы

Распределенные запросы используются для доступа к данным из нескольких гетерогенных источников данных. Эти источники данных могут храниться на одном или различных компьютерах. Microsoft SQL Server 2005 поддерживает распределенные запросы с использованием OLE DB.

Пользователи SQL Server могут применять распределенные запросы для доступа к следующим данным:

  • Распределенные данные, хранящиеся в нескольких экземплярах SQL Server.

  • Гетерогенные данные, хранящиеся в различных реляционных и нереляционных источниках данных, доступ к которым осуществляется с использованием поставщика OLE DB.

Поставщики OLE DB представляют данные в табличных объектах, именуемых «наборами строк». SQL Server позволяет ссылаться в инструкциях Transact-SQL на наборы строк из поставщиков OLE DB так, как если бы эти наборы строк являлись таблицами SQL Server.

На таблицы и представления внешних источников данных можно ссылаться непосредственно в инструкциях Transact-SQL SELECT, INSERT, UPDATE и DELETE. Поскольку в распределенных запросах в качестве базового интерфейса используется OLE DB, распределенные запросы могут обращаться к традиционным реляционным СУБД, которые располагают обработчиками SQL-запросов, а также могут обращаться к данным, управляемым источниками данных различной функциональности и сложности. Если программы представляют принадлежащие им данные в табличных наборах строк через поставщика OLE DB, эти данные могут быть использованы в распределенных запросах.

На рисунке показаны соединения между клиентским компьютером, экземпляром SQL Server и поставщиком OLE DB.

1 Практика применения ; для завершения инструкции стандартна и в некоторых СУБД является обязательным требованием. В SQL Server лишь некоторых случаях требуется применение ;, но ее можно применять. Это делать рекомендуется (улучшается читаемость и соответствующее сообщение об ошибке не всегда понятно).

2 В стандарте SQL1 при объединении отношений использовались только условия, задаваемые в части WHERE оператора SELECT, и в этом случае в результирующее отношение попадали только сцепленные по заданным условиям кортежи исходных отношений, для которых эти условия были определены и истинны.

Однако в действительности часто необходимо объединять таблицы таким образом, чтобы в результат попали все строки из первой таблицы, а вместо тех строк второй таблицы, для которых не выполнено условие соединения, в результат попадали бы неопределенные значения. Или наоборот, включаются все строки из правой (второй) таблицы, а отсутствующие части строк из первой таблицы дополняются неопределенными значениями. Стандарт SQL2 расширил понятие условного объединения.

Такие объединения были названы внешними в противоположность объединениям, определенным стандартом SQL1, которые стали называться внутренними.

35