Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гайдамакин Н. А. Автоматизированные информационные системы, базы и банки данных. Вводный курс.doc
Скачиваний:
372
Добавлен:
02.05.2014
Размер:
4.3 Mб
Скачать

4.3.2. Запросы в реляционных субд

Запросы являются наиболее распространенным видом об­работки данных при решении пользователями АИС темати­ческих, логических, статистических и технологических инфор­мационных задач.Иначе говоря, для удовлетворения сложных информационных потребностей пользователи «общаются» с базой данных через запросы.

Запроспредставляет собойспецификацию (предписание) на специальном языке (языке базы данных) для обработки дан­ных.В реляционных СУБД запросы к базе данных выражают­ся, соответственно, на языке SQL.

Формированиезапросов в СУБД может осуществляться вспециальном редакторе(командный режим) или черезнагляд­но-диалоговые средства (конструкторы)ипошаговые масте­раформирования запросов. Сформированный запрос в виде SQL-инструкции сохраняется в файле базы данных и впослед­ствии специальной командой СУБД может запускаться (откры­ваться) на выполнение.

Все многообразие запросов можно проклассифицировать схемой, приведенной на рис. 4.8. Сточки зрения решаемых ин­формационных задач и формы результатов исполнения запро­сов их можно разделить на три группы:

• запросы на выборку данных;

• запросы на изменение данных;

• управляющие запросы.

4.3.2.1. Запросы на выборку данных

Запросы на выборку применяются для решения темати­ческих, логических и статистических информационных задач и относятся к одному из наиболее часто применяемых видов запросов. Данный вид запросов реализуется SQL-инструкциейSELECT с предложением FROM.

Результатомисполнения запроса на выборку являетсянабор данных,который представляетвременную таблицуданных со структурой (поля, их типы и параметры), определяемой параметрами запроса и параметрами полей таблиц, из которых выбираются данные. В отличие от режимов поиска и фильтра­ции запросами на выборку данные выбираются из «не откры­тых» таблиц базы данных. Результаты запросов на выборку по­мещаются в специальную временную таблицу, размещаемую на период исполнения («открытия») запроса в оперативной па­мяти. В этом смысле с точки зрения дальнейшей обработки дан­ных запрос (как результат) в реляционных СУБДтождествененпросто таблице данных, «открытие» которой осуществля­ется в результате выполнения запроса. Из этого следует возможность исполнения запросов над запросами, точнее над результатами исполнения других запросов, что существенно об­легчает построение сложных запросов при решении логичес­ких и статистических информационных задач.

Рис. 4.8. Классификация запросов в реляционных СУБД

В большинстве СУБД наборы данных, формируемые зап­росами на выборку, являются динамическими.Динамичность означает, что с результатом исполнения запроса можно произ­водить все те же операции, что и с данными в режиме откры­той таблицы. Иначе говоря,измененияданных, осуществляе­мые в наборе данных, сформированных по запросу,фиксиру­ютсяв исходных таблицах, из которых выбираются данные, и, наоборот, — изменения данных в исходных таблицах, если они производятся в открытых таблицах после исполнения запроса, отображаются в наборе данных по результатам «открытого», т. е. исполняемого в это же время, запроса.

Запросы на выборку классифицируютсяподвумкритери­ям — по формированию условий выборки и по схеме отбора данных.

По формированию условий выборкизапросы можно под­разделить натригруппы:

• запросы со статическими(неизменяемыми) условиями отбора;

• запросы с параметрами;

• запросы с подчиненными запросами.

В запросах первого вида условия выборкиданных опреде­ляются при формировании самого запроса и являютсянеизмен­нымипри всех последующих выполнениях запроса. В запросы с параметрамивставляются специальные средства длядиало­гового заданияпользователем конкретныхпараметров в усло­виях отборавмомент исполнениязапроса. Таким образом, при запуске на исполнение запроса с параметрами пользователь может варьировать и уточнять условия выборки данных. В зап­росах третьей группы условия отбора данных определяются по результатам исполнения вставленной в тело внешнего запроса внутренней инструкции SELECT.

По схеме отбораданных запросы на выборку подразделя­ются также натригруппы:

• запросы на выборку данных из одной таблицы;

• запросы на выборку данных в один набор из нескольких таблиц;

• запросы на объединение данных.