
- •Н.И. Коваленко
- •Коваленко н.И., Банчук г.Г.
- •Коваленко Надежда Ивановна
- •Тема I. Общие сведения о ms sql Server 2000
- •1. Базы данных типа клиент/сервер
- •Система типа клиент/сервер
- •2. История sql Server
- •Основные количественные показатели системы sql – сервер
- •3. Обзор sql Server 2000
- •4. Стандартные объекты sqlServer
- •ТемаIi. Работа с ms sqlServer2000 и его компонентами
- •1. Запуск, приостановка и завершение работы sqlServer
- •2. SqlServerEnterpriseManager
- •3. Программа sqlServerQueryAnalyzer
- •Панель инструментов утилиты Query Analyzer
- •4. Обслуживание баз данных
- •Файлы операционной системы, используемые sql Server 2000:
- •Структура базы данных
- •5. УстановкаMicrosoftSqlServer2000
- •Ограничения инсталляции sql-сервера
- •ТемаIii. Работа с базой данных создание и использование индексов и ключей
- •1. Базы данных и их свойства
- •Описание ролей, используемых для доступа к базе данных и серверу баз данных
- •Дополнительные опции настройки базы данных
- •Настройка параметров доступа к базе данных
- •2. Таблицы базы данных.
- •3. Типы данных, используемые в sql-сервере
- •Текстовые типы данных
- •Типы данных даты и времени
- •Типы данных для хранения больших объемов информации
- •Типы данных специального назначения:
- •4. Основные операции с базами данных
- •5. Восстановление бд (администрированиеSqlServer2000)
- •6. Создание и использование индексов и ключей в системе sql Server.
- •7. Использование ограничений
- •8. Использование диаграмм для разработки структуры базы данных
- •9. Создание представлений (видов)
- •ТемаIv. Правила и создание значения
- •1. Инструменты контроля целостности данных
- •2. Создание правил и стандартных значений
- •ТемаV. Триггеры в системеSql–сервер
- •1. Понятие триггера. Типы триггеров
- •2. Создание триггеров
- •3. Использование триггеров. Виды триггеров
- •ТемаVi. Оптимизация запросов и основы sql
- •1. Оптимизация запросов
- •2. Основные операторы sql в sql Server 2000
- •3. Объединение таблиц в операторе select
- •From titles
- •4. Использование директив group by иHaving
- •5. Оператор insert
- •6. ОператорUpdate
- •7. ОператорDelete
- •8. ОператорCreatetable
- •ТемаVii. Создание и работа с представлениями
- •1. Основные сведения о представлениях
- •2. Создание представлений. Отображение представлений
- •3. Редактирование представлений. Отображение зависимостей представлений. Создание представлений и представлений
- •4. Переименование столбцов представлений. Переименование представлений. Удаление представлений
- •5. Изменение данных посредством представлений. Обновление данных с помощьюSqlServerEnterpriseManager
- •ТемаViii. Создание и использование курсоров
- •1. Понятие курсора
- •2. Выборка данных из курсора
- •3. Операторы и глобальные переменные для работы с курсорами
- •4. Примеры использования курсоров
- •ТемаIx. Использование хранимых процедур
- •1. Достоинства и недостатки хранимых процедур
- •2.Создание хранимой процедуры
- •3. Операторы языка управления программой. Оператор declare
- •4. Операторы goto, begin…end и if…else
- •5. Операторы waitfor, return, while, break и continue
- •6. Операторы print и raiserror
- •7. Использование параметров в хранимых процедурах
- •8. Глобальные переменные. Отладка хранимых процедур
- •Тема X. Транзакции и блокировки
- •1. Определение транзакции. Ограничения для транзакций. Уровни изоляции транзакций
- •2. Базовая информация о блокировках. Типы блокировок
- •3. Создание транзакций и работа с ними. Точки сохранения
- •4.Отображение информации о блокировках. Явное задание блокировки
- •Описание параметров для явного задания блокировок
- •ТемаXi. Система безопасностиSqlServer2000
- •1. Типы безопасности. Создание и управление бюджетами пользователей
- •Стандартные роли сервера
- •Стандартные роли базы данных
- •2. Добавление новых пользователей. Удаление идентификаторов и пользователей
- •3. Создание ролей. Удаление ролей
- •4. Права доступа. Управление правами доступа
- •ТемаXii. Использование распределенных объектов управления.
- •1.Sql-dmo. Назначение, возможности
- •2. Экспорт данных с помощью команды вср
- •3. Использование объектовSql-dmOв хранимых процедурах
- •ТемаXiii. Основные сведения о хранилищах данных
- •1. Хранилища данных. Системы поддержки принятия решений (dss). Интерактивная аналитическая обработка (olap)
- •Сравнение субд и хранилища данных
- •2. Компоненты хранилища данных. Хранилища данных и магазины данных
- •3. Преобразование данных. Метаданные
- •4. Разработка плана хранилища данных
- •Microsoft Repository
- •С помощью мастера dts можно выполнять также простые преобразования данных, сложные преобразования выполняются с помощью dts Designer.
- •ТемаXiv. Использование служб преобразования данных
- •1. Службы преобразования данных (dts).DtSи хранилища данных
- •2. СредствоDtsDataPump
- •3. МастераDts
- •4. ИспользованиеDtsDesigner
- •Тема XV. Службы olap Microsoft sql Server
- •1.OlaPи многомерные данные
- •2. Хранение данных в бдolap
- •3. Оптимизация базы данныхOlap
- •4. Доступ к многомерным данным
4. Примеры использования курсоров
Пример 1: Циклический просмотр таблицы publishers:
/* Подавляем отображение значения счетчика строк */
SET NOCOUNT ON
/* Обновляем курсор, содержащей столбцы pub_id и pub_name*/
DECLARE pub_crsr CURSOR
FOR
SELECT pub_id, pub_name
FROM publishers
/*Отрываем курсор*/
open pub_crsr
/*Выбираем 1-ю строку из курсора*/
FETCH NEXT FROM pub_crsr
/*Выбираем в цикле строки курсора*/
WHILE @@FETCH_Status=0
Begin
/*Выбираем следующую строку*/
FETCH NEXT FROM pub_crsr
End
/*Закрываем курсор*/
DEALLOCATE pub_crsr
GO
При каждом выполнении оператора FETCH происходит обращение к глобальной переменной @@FETCH_Status. Когда указатель записей достигнет конца результирующего набора, переменная @@FETCH_Status станет равной –1 и цикл завершится.
Результат будет включать все значения двух столбцов таблицы publishers.
Пример 2. Позиционное обновление – выполняется просмотр каждой строки в таблице publishers. Если содержимое столбца pub_id равно ‘1555’, то значение столбца pub_name модернизируется и устанавливается равным ‘Cпутник’
/*Подавляем отображение счетчика строк*/
SET NOCOUNT ON
/*Объявляем переменные*/
DECLARE @pub_id CHAR (4), @pub_name varchar(40)
/*Объявляем курсор, который будет содержать*/
/*столбцы pub_id и pub_name из таблицы publishers*/
/*ПРИМЕЧАНИЕ: директива FOR UPDATE разрешает*/
/*выполнять позиционные обновления данных курсора*/
DECLARE pub_crsr CURSOR
FOR
SELECT pub_id, pub_name
FROM publishers
FOR UPDATE OF pub_id, pub_name
/*Открываем курсор*/
OPEN pub_crsr
/*Получаем первую строку из курсора*/
FETCH NEXT FROM pub_crsr INTO @pub_id, @pub_name
/*Проходим в цикле по строкам курсора*/
WHILE @@FETCH_Status=0
BEGIN
IF @pub_id=’1555’
UPDATE publishers
SET pub_name=’Cпутник’
WHERE CURRENT OF pub_crsr
/*Получаем следующую строку*/
FETCH NEXT FROM pub_crsr INTO @pub_ud,@pub_name
END
/*Закрываем курсор*/
DEALLOCATE pub_crsr
GO
ТемаIx. Использование хранимых процедур
1. Достоинства и недостатки хранимых процедур
Хранимые процедуры представляют собой набор заранее скомпилированных операторов SQL и операторов управления программой. Хранимые процедуры расширяют стандартные возможности SQL, позволяя использовать параметры, операторы принятия решений и объявления переменных, а также возвращать информацию. Хранимую процедуру можно представить себе в виде программы или функции, которая хранится в SQL Server как объект базы данных. Хранимая процедура выполняется не по инициативе клиента, а по инициативе SQL Server. Хранимая процедура может иметь вид простейшего оператора SQL:
SELECT * FROM authors
Хранимая процедура может также включать ряд сложных операторов SQL и операторов управления программой, которые позволяют применить к таблицам баз данных сложную логику приложения или выполнить некоторую задачу.
Достоинства хранимых процедур:
позволяют осуществить сложные операции, которые нельзя выполнить с использованием обычных операторов SQL;
обеспечивают значительный выигрыш в быстродействии по сравнению со стандартными операторами SQL, так как операторы хранимой процедуры заранее скомпилированы. После первого выполнения хранимой процедуры создается план её выполнения, который сохраняется в процедурном кэше, и поэтому все последующие выполнения хранимой процедуры протекают намного быстрее по сравнению с эквивалентными операторами SQL;
хранимые процедуры можно использовать в качестве механизма защиты. Например, можно отменить всеобщий доступ к базовым таблицам и создать хранимые процедуры, представляя пользователям только права на выполнение соответствующих хранимых процедур. Использование такого механизма защиты – это единственный способ не допустить случайной модификации таблицы со стороны пользователей, использующих MS-Query и MS Access. Администратор БД может предоставить доступ к таблицам только по чтению, а затем для выполнения модификаций типа UPDATE и DELETE создать хранимые процедуры.
Недостатки хранимых процедур:
с помощью хранимых процедур трудно реализовать сложную логику приложения, так как в Transact-SQL не предусмотрены массивы и возможность создания функций, определённых пользователем. Редактор хранимых процедур не такой высокоорганизованный и многофункциональный, как редактор программного кода в VB. Он больше напоминает редактор Notepad, при возникновении синтаксических ошибок трудно расшифровать сообщения об ошибках;
могут возникнуть трудности при эксплуатации хранимых процедур. Если их использовать для проектов или специальных административных задач, то их количество может быть весьма большим. В SQL Server не предусмотрено средств для запоминания, что делает каждая процедура, и в каких процедурах используются другие хранимые процедуры, – поддержка хранимых процедур требует дополнительных усилий