Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УЧЕБНОЕ ПОСОБИЕ.doc
Скачиваний:
73
Добавлен:
07.03.2015
Размер:
5.72 Mб
Скачать

Контрольные вопросы

  1. Что является результатом выполнения команды SELECT?

  2. Какие опции команды SELECT являются обязательными?

  3. Каково предназначение опции DISTINCT?

  4. В какой форме задается выражение в опции WHERE?

  5. Что такое декартово произведение отношений? Какую роль оно играет в процессе навигации по реляционной базе данных?

  6. Какую опцию используют при подведении промежуточных итогов посредством агрегативных функций?

  7. Когда используется опция HAVING?

  8. Для сортировки результатов выборки по убыванию какую опцию следует использовать в запросе?

  9. Когда удобно использовать опцию CASE в запросе?

  10. Какую опцию следует использовать для формирования пользовательских имен полей в результирующей таблице?

  11. В какой последовательности выполняются вложенные запросы?

  12. В каком случае используется опция EXISTS?

  13. Охарактеризуйте внутреннее соединение таблиц. Какой опцией оно реализуется?

  14. Что такое левое и правое соединение таблиц? Какими опциями они реализуются?

  15. Когда удобно использовать объединение таблиц? Какой опцией оно реализуется и каковы требования к объединяемым таблицам?

  16. Когда удобно использовать пересечение таблиц? Какой опцией оно реализуется?

  17. Когда удобно использовать вычитание таблиц? Какой опцией оно реализуется?

  1. Организациябизнес-логики

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

    1. Хранимые процедуры

Хранимая процедура – это упорядоченная последовательность операторов SQL, оформленных в виде единого логического модуля.

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

Общий синтаксиссоздания хранимой процедуры:

CREATE PROC[EDURE] <Имя процедуры>

[@<Имя параметра> <Тип данных параметра>

[ = <Значение пар-ра по умолчанию>]

[OUTPUT]] [,...n ]

AS<SQL-выражения, составляющие тело процедуры>

Общий синтаксисвызова хранимой процедуры:

EXEC[UTE] <Имя процедуры>

[[<Имя входного пар-ра> = ]<Значение входного пар-ра>] [,…n]

Среда ManagementStudioпредоставляет два способа создания хранимой процедуры.

Первый способ – использование рассмотренного выше окна редактора запросов.

Второй – в ветке нужной базы данных (правая часть окна программы)выбрать пункт «Программирование / Хранимые процедуры» (рис. 6.1). При этом будет сгенерирован шаблон новой хранимой процедуры, снабженный подробными комментариями, которые призваны помочь в написании текста процедуры (рис. 6.2).

Рис. 6.1. Создание новой хранимой процедуры

Рис. 6.2. Автоматически генерируемый шаблон хранимой процедуры

Примеры:

1. Хранимая процедура, возвращающая отчето поставках деталей (рис. 6.3).

Рис. 6.3. Текст хранимой процедуры №1 и результаты ее работы

2. Хранимая процедура, возвращающая отчето поставках деталей за определенный интервал времени (рис. 6.4).

Рис. 6.4. Текст хранимой процедуры №2 и результаты ее работы

3. Процедура, добавляющая новую детальв таблицу деталей (рис. 6.5).

Рис. 6.5. Текст хранимой процедуры №3 и результаты ее работы

4. Процедура, возвращающая название материала, из которого изготовлено больше всего деталей (рис. 6.6).

Рис. 6.6. Текст хранимой процедуры №4 и результаты ее работы

5. Процедура, реализующая функцию каскадного удаления на связь между таблицами материалов и деталей (рис. 6.7).

Рис. 6.7. Текст хранимой процедуры №5 и результаты ее работы

Задание:создайтедвехранимые процедуры для своей базы. При разработке алгоритмов бизнес-логики используйте результаты анализа требований к создаваемой информационной системе. Вотчет поместите описание хранимых процедур, код создания, код вызова, результат вызова.