- •Лекция 01: Вводные замечания Основные понятия, принципы и ограничения реляционных баз данных Основные определения
 - •Принципы, реализуемые реляционными субд
 - •Ограничения реляционных баз данных
 - •Реляционная судб ms sql Server
 - •Ms sql Server как система управления обработкой транзакций
 - •Ms sql Server как система поддержки принятия решений
 - •Службы ms sql Server Серверная часть системы
 - •Клиентская часть системы
 - •Лекция 02: Что делают и за что отвечают администраторы баз данных Microsoft sql Server
 - •Инсталляция и конфигурирование
 - •Инсталляция программного обеспечения
 - •Конфигурирование аппаратуры и программного обеспечения
 - •Безопасность
 - •Аудит системы
 - •Обычная работа
 - •Резервное копирование и восстановление
 - •Управление пользователями
 - •Прочая обычная работа
 - •Уровень качества обслуживания
 - •Мониторинг и настройки производительности
 - •Состав системы и планирование мощности
 - •Обеспечение периодов работоспособности системы
 - •Планирование периодов неработоспособности
 - •Восстановление после аварий
 - •Документирование
 - •Документация о конфигурации
 - •Системный журнал
 - •Документация о структуре системы
 - •Планы обычного технического обслуживания
 - •Планы восстановления после аварий
 - •Проектирование и разработка
 - •Создание модели данных и анализ
 - •Проектирование базы данных
 - •Разработка хранимых процедур
 - •Разработка приложений
 - •Информационная помощь другим сотрудникам
 - •Прочие обязанности администратора баз данных
 - •Администрирование кластера
 - •Работа в службе технических консультаций для пользователей
 - •Оценка закупаемого оборудования и программного обеспечения
 - •Слежение за мощностью системы
 - •Типы данных
 - •Значение null
 - •Правила порождения идентификаторов
 - •Системные таблицы
 - •Временные таблицы
 - •Пользовательские таблицы
 - •Физическая архитектура баз данных
 - •Страницы и группы страниц
 - •Файлы и группы файлов
 - •Лекция 04: Основы программирования в ms sql Server Реляционная алгебра
 - •Операции реляционной алгебры
 - •Реализация операций реляционной алгебры в языке sql
 - •Описание синтаксиса языка Transact-sql Управляющие конструкции
 - •Логические операторы
 - •Лекция 05: Создание и использование умолчаний, ограничений и правил
 - •Умолчания
 - •Определение и модифицирование умолчаний с помощью t-sql
 - •Оператор create table с атрибутом default
 - •Оператор alter table с атрибутом default
 - •Оператор create default и процедура sp_bindefault
 - •Процедура sp_unbindefault
 - •Ограничения
 - •Создание и модифицирование ограничений с помощью t-sql Ограничение not null
 - •Ограничение unique
 - •Ограничение primary key
 - •Ограничение foreign key
 - •Ограничение check
 - •Правила
 - •Создание Rule-объекта с помощью t-sql
 - •Лекция 06: Создание и использование индексов Что такое индекс?
 - •Понятия индексирования
 - •Индексные ключи
 - •Простые индексы
 - •Составные индексы
 - •Уникальность индекса
 - •Уникальный индекс
 - •Неуникальные индексы
 - •Типы индексов
 - •Кластеризованные индексы
 - •Некластеризованные индексы
 - •Полнотекстовые индексы
 - •Использование коэффициента заполнения для предупреждения расщеплений страниц
 - •Создание индексов
 - •Использование Management Studio
 - •Категория «Общие»
 - •Категория «Идентификация»
 - •Категория «Конструктор таблиц»
 - •Спецификация пространства данных
 - •Характеристики заполнения
 - •Использование t-sql
 - •Лекция 07: Программируемые объекты в ms sql Server Пользовательские функции sql Server
 - •Функции Scalar
 - •Функции Inline
 - •Функции Multistatement
 - •Изменение функций
 - •Удаление функций
 - •Использование sql Server Management Studio
 - •Хранимые процедуры
 - •Примеры использования хранимых процедур
 - •Лекция 08: Другие программируемые объекты ms sql Server Определение триггера в стандарте языка sql
 - •Реализация триггеров в среде ms sql Server
 - •Примеры использования триггеров
 - •Курсоры
 - •Запрос курсора
 - •Обработка курсоров
 - •Преимущества использования курсоров
 - •Курсоры базовой таблицы
 - •Статические курсоры
 - •Последовательные курсоры
 - •Последовательные курсоры «только для чтения»
 - •Курсоры, управляемые набором ключей
 - •Работа с объединениями
 - •Правила выбора типа курсора
 - •Получение блокировок
 - •Неявное преобразование типа курсора
 - •Лекция 09: Проектирование системы Microsoft sql Server
 - •Системные требования
 - •Системное приложение
 - •Oltp (системы оперативной обработки транзакций)
 - •Dss (системы поддержки принятия решений)
 - •Системы пакетной обработки данных
 - •Требования
 - •Требования к уровню обслуживания
 - •Производительность
 - •Мощность
 - •Обеспечение работоспособности
 - •Размещение базы данных
 - •Журнал транзакций
 - •Файлы данных
 - •Приложение
 - •Архитектура
 - •Производительность и масштабируемость
 - •Проектирование системы безопасности
 - •Уровни системы безопасности Система безопасности уровня сервера
 - •Система безопасности уровня базы данных
 - •Права собственности на объект
 - •Лекция 10: Microsoft sql Server и Microsoft Cluster Services Разновидности отказов
 - •Обзор mscs
 - •Основные понятия
 - •Компоненты кластера
 - •Программное обеспечение mscs для управления кластером
 - •Взаимосвязь между серверами
 - •Разделяемая дисковая система
 - •Подсистемы ввода-вывода
 - •Внутренняя raid-система
 - •Внешняя raid-система
 - •Категории приложений, работающих с кластерами
 - •Режимы mscs
 - •Активно-пассивные кластеры
 - •Активно-активные кластеры
 - •Примеры кластеризованных систем
 - •Пример 1 – система с высокой готовностью со статическим балансированием нагрузки
 - •Пример 2 – система с «горячим резервированием» с максимальной готовностью
 - •Пример 3 – кластеризация части сервера
 - •Пример 4 – только виртуальные серверы, без переходов по отказам
 - •Конфигурирование sql Server для работы на кластере
 - •Планирование конфигурации
 - •Задание времени восстановления
 - •Конфигурирование sql Server для активно-пассивных кластеров
 - •Конфигурирование sql Server для активно-активных кластеров
 - •Лекция 11: Транзакции и блокировка транзакций
 - •Что такое транзакция?
 - •Acid-свойства
 - •Атомарность
 - •Согласованность
 - •Изолированность
 - •Поведение параллельных транзакций
 - •Задание уровня изолированности
 - •Устойчивость
 - •Режимы транзакций
 - •Режим автофиксации
 - •Явный режим
 - •Фиксирование транзакций
 - •Создание вложенных транзакций
 - •Неявный режим
 - •Откаты транзакций
 - •Автоматические откаты
 - •Программируемые откаты
 - •Точки сохранения
 - •Блокировка транзакций
 - •Возможности управления блокировками
 - •Уровни блокировок
 - •Режимы блокировки
 - •Разделяемая блокировка
 - •Блокировка изменений
 - •Монопольная блокировка
 - •Блокировка намерения
 - •Блокировка схемы
 - •Блокировка массовых изменений
 - •Блокирование и взаимоблокировки
 - •Лекция 12: Управление пользователями и системой безопасности
 - •Разрешение удалённого доступа
 - •Разрешение удалённых соединений
 - •Обеспечение безопасности внешнего доступа
 - •Управление доступом к экземплярам sql Server
 - •Выбор режима проверки подлинности
 - •Настройка режима проверки подлинности
 - •Соединение с экземпляром sql Server
 - •Предоставление доступа пользователям и группам Windows
 - •Предоставление доступа именам входа sql Server
 - •Принудительное применение политики паролей
 - •Управление разрешениями для экземпляра
 - •Получение информации о принадлежности к серверной роли
 - •Запрет доступа пользователям
 - •Рекомендации по управлению доступом
 - •Применение схем и ролей. Общие принципы
 - •Управление доступом в службах отчётов
 - •Управление доступом в службах уведомлений
 - •Управление доступом в интеграционных службах
 - •Управление доступом в службах репликации
 - •Управление доступом для sql Server Agent
 - •Управление доступом для Database Mail
 - •Управление доступом к базе данных с помощью протокола http
 - •Лекция 13: Репликации
 - •Что такое репликация базы данных?
 - •Понятия репликации Компоненты репликации
 - •Издатели
 - •Дистрибьюторы
 - •Подписчики
 - •Типы репликации
 - •Репликация моментальных снимков
 - •Репликация транзакций
 - •Репликация слиянием
 - •Данные репликации
 - •Публикации
 - •Push-подписка и pull-подписка
 - •Push-подписка (принудительная)
 - •Pull-подписка (по запросу)
 - •Агенты репликации
 - •Snapshot Agent (Агент создания снимков состояния)
 - •Репликация слиянием
 - •Репликация моментальных снимков
 - •Лекция 14: Средства автоматического администрирования
 - •Средства автоматического конфигурирования sql Server
 - •Динамическое управление памятью
 - •Как действует динамическое управление памятью
 - •Пул памяти
 - •Параметры конфигурирования памяти sql Server
 - •Другие параметры динамического конфигурирования
 - •Параметр locks (блокировки)
 - •Параметр recovery interval (интервал восстановления)
 - •Параметр user connections (количество соединений с пользователями)
 - •Статистика
 - •Команда create statistics
 - •Процедура sp_createstats
 - •Команда update statistics
 - •Процедура sp_autostats
 - •Контрольные точки
 - •Планы обслуживания баз данных
 - •Использование мастера для создания плана обслуживания
 - •Лекция 15: Автоматизация административных задач с помощью службы sqlServerAgent
 - •Задания
 - •Создание задания в Management Studio
 - •Использование t-sql
 - •Просмотр журнала выполнения задания
 - •Использование Management Studio
 - •Использование t-sql
 - •Предупреждения
 - •Протоколирование сообщений в журнале событий
 - •Создание предупреждения о событии sql Server
 - •Создание предупреждения о производительности sql Server
 - •Операторы
 - •Лекция 16: Резервное копирование Microsoft sql Server
 - •Воспроизведение
 - •Отказы системы
 - •Отказы оборудования
 - •Отказы программного обеспечения
 - •Человеческие ошибки
 - •Журнальное протоколирование в sql Server Журнал транзакций
 - •Поток откладываемой записи
 - •Последовательная запись в журнал
 - •Размер журнала транзакций
 - •Воспроизведение с помощью журнала транзакций
 - •Свойства журнала транзакций
 - •Непротоколируемые операции
 - •Bulk copy и программа bcp
 - •Текстовые операции
 - •Контрольные точки
 - •Операции контрольной точки
 - •Конфигурирование интервала между контрольными точками
 - •Методы резервного копирования
 - •Полное резервное копирование
 - •Разностное резервное копирование
 - •Резервное копирование журнала транзакций
 - •Резервное копирование группы файлов
 - •Резервное копирование файла данных
 - •Комбинирование разностных резервных копий и резервных копий журнала транзакций
 - •Выполнение резервного копирования
 - •Создание логических устройств резервного копирования
 - •Создание устройств резервного копирования с помощью t-sql
 - •Создание удалённого устройства резервного копирования
 - •Резервное копирование с помощью Management Studio
 - •Лекция 17: Полная модель восстановления
 - •Модель восстановления с неполным протоколированием
 - •Восстановление базы данных из резервных копий
 - •Извлечение информации резервного копирования
 - •Восстановление базы данных через интерфейс среды sql Server Management Studio
 - •Восстановление базы данных при простой стратегии резервного копирования с использованием t-sql
 - •Восстановление базы данных при полной стратегии резервного копирования с использованием t-sql
 - •Восстановление системных баз данных
 - •Восстановление базы данных master
 - •Восстановление баз данных msdb и model
 
Курсоры
Операции в реляционной базе данных выполняются над множеством строк. Набор строк, возвращаемый инструкцией SELECT, содержит все строки, которые удовлетворяют условиям, указанным в предложении WHERE инструкции. Такой полный набор строк, возвращаемых инструкцией, называется результирующим набором. Приложения, особенно интерактивные, не всегда эффективно работают с результирующим набором как с единым целым. Им нужен механизм, позволяющий обрабатывать одну строку или небольшое их число за один раз. Курсоры являются расширением результирующих наборов, которые предоставляют такой механизм.
Курсоры позволяют усовершенствовать обработку результатов:
позиционируясь на отдельные строки результирующего набора;
получая одну или несколько строк от текущей позиции в результирующем наборе;
поддерживая изменение данных в строках в текущей позиции результирующего набора;
поддерживая разные уровни видимости изменений, сделанных другими пользователями для данных, представленных в результирующем наборе;
предоставляя инструкциям Transact-SQL в сценариях, хранимых процедурах и триггерах доступ к данным результирующего набора.
Запрос курсора
Microsoft SQL Server 2005 поддерживает два метода запроса курсоров:
Transact-SQL – который поддерживает синтаксис использования курсоров по стандарту SQL-92;
API-функции курсоров базы данных.
SQL Server поддерживает функциональность курсоров для следующих API-интерфейсов баз данных:
ADO (Microsoft ActiveX Data Object);
OLE DB;
открытый интерфейс доступа к базам данных (ODBC).
В приложении всегда используется один из интерфейсов.
Обработка курсоров
Курсоры Transact-SQL и API-курсоры имеют различный синтаксис, но для всех курсоров SQL Server используется одинаковый цикл обработки:
связать курсор с результирующим набором инструкции Transact-SQL и задать его характеристики (например, возможность обновления строк);
выполнить инструкцию Transact-SQL для заполнения курсора;
получить в курсор необходимые строки; операция получения в курсор одной и более строк называется выборкой; выполнение серии выборок для получения строк в прямом или обратном направлении называется прокруткой;
при необходимости выполнить операции изменения (обновления или удаления) строки в текущей позиции курсора;
закрыть курсор.
Большинство курсоров можно использовать вместе с обработчиком запросов. Существуют различные поведения курсоров, такие как возможность прокрутки, обновления, а также чувствительность, что тоже влияет на выбор курсора.
Преимущества использования курсоров
Выделим следующие преимущества использования курсоров:
эффективность – оптимизатор запросов автоматически выбирает надлежащий план запросов, поэтому разработчику не нужно придумывать сложный алгоритм для доступа к запрашиваемым данным;
адаптируемость – по мере добавления или удаления изменений данных либо индексов оптимизатор запросов автоматически адаптирует поведение курсоров с помощью альтернативных планов;
меньшее количество ошибок – разработчику не требуется обрабатывать данные и алгоритмы в приложении, поскольку необходимые операции поддерживаются SQL Server.
Microsoft SQL Server 2005 поддерживает следующие типы курсоров:
базовая таблица;
статические;
последовательные;
последовательные «только для чтения»;
управляемые набором ключей.
