Об этой книге


Глава 1. Основные сведения о SQL Server

Занятие 1. Основы SQL Server
Архитектура «клиент-сервер»
Система управления реляционными базами данных
Transact-SQL
Платформы SQL Server
Интеграция SQL Server с Windows NT
Безопасность
Поддержка нескольких процессоров
Microsoft Event Viewer
Службы Windows NT
Windows NT Perfomance Monitor
Microsoft Index Server
Microsoft Cluster Server
Интеграция SQLServerc Microsoft BackOffice
Резюме

Занятие 2. Компоненты SQL Server
Службы SQL Server
Служба MSSQLServer
Служба MS DTC
Программное обеспечение клиента SQL Server
Модуль SQL Server Enterprise Manager для Microsoft Management Console
SQL Server Query Analyzer
Административные средства и мастера
Средства управления SQL Server из командной строки
Справочная система и электронная документация
Резюме

Занятие 3. Архитектура SQL Server
Архитектура взаимодействия
Приложение
Интерфейс базы данных
Библиотека сетевых интерфейсов
Open Data Services
Архитектура доступа к данным
Интерфейсы прикладного программирования
Интерфейсы объектов данных
Объекты данных ActiveX
Удаленные объекты данных
Архитектура администрирования
Администрирование SQL Server
SQL-DMO
SQL Server Agent
Управление сигналами оповещения
Оповещения
Выполнение заданий
Управление репликацией
Архитектура приложения
Разделение приложения на уровни
Резюме

Занятие 4. Защита SQL Server
Аутентификация при регистрации
Аутентификация средствами SQL Server
Аутентификация средствами Windows NT
Режим аутентификации
Проверка прав пользователей
Учетные записи и роли
Учетные записи пользователей базы данных
Роли базы данных
Резюме

Закрепление материала


Глава 2. Transact-SQL

Занятие 1. Средства программирования SQL Server
SQL Server Query Analyzer
Утилита osql
Язык программирования Transact-SQL
Резюме

Занятие 2. Элементы Transact-SQL
Операторы DCL
Операторы DDL
Имена объектов SQL Server
Стандартные идентификаторы
Идентификаторы с разграничителями
Именование объектов базы данных
Ссылки на объекты SQL Server
Полные имена
Неполные имена
Операторы DML
Дополнительные языковые элементы
Локальные переменные
Пользовательские локальные переменные
Операторы
Типы операторов
Приоритет оператора
Функции
Примеры функций
Языковые элементы управления выполнением программы
Блок BEGIN...END
Блок IF...ELSE
Цикл WHILE
Оператор RETURN
Комментарии
Однострочные комментарии
Многострочные комментарии
Резюме

Занятие 3. Способы выполнения операторов Transact-SQL
Пакеты
Разделитель пакетов GO
Обработка пакетов
Правила формирования пакета
Сценарии
Обработка запросов
Кэшированные запросы
Динамическое создание операторов
Транзакции
Резюме
Практические рекомендации

Закрепление материала


Глава 3. Создание базы данных

Занятие 1. Структура базы данных
Логическая структура базы данных
Типы связей
Нормализация
Денормализация
Резюме

Занятие 2. База данных SQL Server
Хранение данных
Файлы базы данных SQL Server
Типы файлов БД
Основные сведения о файле БД
Как работает журнал транзакций
Резюме

Занятие 3. Создание и удаление базы данных
Создание базы данных
Удаление базы данных
Ограничения на удаление БД
Резюме

Занятие 4. Управление базой данных
Параметры базы данных
Просмотр информации о базе данных
Способы задания параметров базы данных
Управление файлом журнала и файлами данных
Увеличение и уменьшение размера файла журнала и файлов данных
Автоматическое увеличение размера
Увеличение размера журнала транзакций
Сжатие базы данных или файла
Сжатие базы данных
Сжатие файла данных БД
Автоматическое сжатие базы данных
Создание групп файлов
Когда нужны группы файлов
Типы групп файлов
Размер группы файлов по умолчанию
Просмотр сведений о группе файлов
Системные таблицы
Каталог базы данных
Системный каталог
Получение метаданных
Системные сохраненные процедуры
Системные функции
Проекции информационных схем
Резюме

Занятие 5. База данных library
Сведения о читателях
Сведения о книгах
Сведения о выданных читателям книгах
Резюме

Закрепление материала


Глава 4. Создание объектов базы данных

Занятие 1. Создание типов данных
Системные типы данных
Категории системных типов данных
Точные и приближенные числовые данные
Создание и удаление пользовательских типов данных
Создание пользовательского типа данных
Удаление пользовательского типа данных
Как создавать пользовательскихе типы данных
Резюме

Занятие 2. Создание таблиц
Создание и удаление таблиц
Создание таблиц
Удаление таблицы
Генерация значений полей
Добавление, удаление и изменение полей
Резюме

Занятие З. Генерирование сценариев
Создание схемы в виде сценария Transact-SQL
Что генерируется
Использование сценариев для генерации тестовых данных
Резюме

Закрепление материала


Глава 5. Обеспечение целостности данных

Занятие 1. Группы правил целостности
Группы правил целостности
Целостность области значений
Целостность сущностей
Ссылочная целостность
Целостность, определяемая пользователем
Обеспечение целостности данных
Декларативная ссылочная целостность
Процедурная ссылочная целостность
Резюме

Занятие 2. Ограничения
Выбор типа ограничения
Определение ограничений
Особенности ограничений
Ограничения DEFAULT
Ограничения CHECK
Ограничения PRIMARY KEY
Ограничения UNIQUE
Ограничения FOREIGN KEY
Отключение проверки данных при добавлении ограничений
Отключение проверки ограничений
Резюме

Занятие 3. Значения по умолчанию и правила
Создание значения по умолчанию
Привязка значения по умолчанию
Создание правила
Привязка правила
Удаление правила или значения по умолчанию
Выбор метода обеспечения целостности данных
Резюме

Закрепление материала


Глава 6. Создание индексов

Занятие 1. Основные сведения об индексах
Доступ и хранение данных в SQL Server
Принципы хранения данных
Способы доступа к данным
Обновление связанных страниц
Предпосылки создания индексов
Когда надо создавать индекс
Когда не надо создавать индекс
Правила индексирования
Какие поля следует включать в индекс
Какие поля не следует включать в индекс
Резюме

Занятие 2. Архитектура индексов
Кластерные индексы
Архитектура кластерного индекса
Создание кластерного индекса
Доступ к данным при помощи кластерного индекса
Доступ к диапазону данных при помощи кластерного индекса
Некластерные индексы
Архитектура некластерного индекса, построенного на «куче»
Архитектура некластерного индекса, построенного на таблице с кластерным индексом
Автоматическое перестроение некластерных индексов
Создание некластерных индексов
Некластерные индексы, построенные на «куче»
Некластерный индекс, построенный на таблице с кластерным индексом
Резюме

Занятие 3. Создание индекса
Создание и удаление индексов
Оператор CREATE INDEX
Использование оператора DROP INDEX
Создание уникальных индексов
Поиск повторяющихся значений в поле
Создание составных индексов
Параметры CREATE INDEX
Параметр FILLFACTOR
Параметр PAD_INDEX
Получение сведений об индексах
Сохраненная процедура sp_helpindex
Сохраненная процедура sp_help
Резюме

Закрепление материала


Глава 7. Поддержка индексов

Занятие 1. Поддержка индекса
Фрагментация данных
Причины возникновения фрагментации
Контроль за фрагментацией
Бизнес-условия
Оператор DBCC SHOWCONTIG
Оператор CREATE INDEX с параметром DROP_EXISTING
Перестроение индекса
Изменение характеристик индекса
Оператор DBCC DBREINDEX
Мастер Index Tuning Wizard
Определение рабочей нагрузки
Анализ рабочей нагрузки
Рекомендации по индексированию
Выполнение рекомендаций по индексированию
Резюме

Занятие 2. Данные статистики
Получение данных статистики
Автоматическая поддержка данных статистики
Удаление данных статистики
Обновление данных статистики
Оператор UPDATE STATISTICS
Отключение автоматического обновления данных статистики
Получение данных статистики
Анализ эффективности индекса
Вывод плана выполнения
Оператор STATISTICS IO
Графический план выполнения
Указания оптимизатору
Резюме

Занятие 3. Поиск фрагментов текста
Основные сведения о полнотекстовом поиске
Служба Microsoft Search
Установка
Индексирование
Запросы
Поиск текста в SQL Server 7.0
Способы хранения текстовых данных
Запросы к текстовым данным
Исключение «лишних» слов
Создание полнотекстового индекса
Поддержка полнотекстового индекса
Заполнение полнотекстового индекса
Полное обновление
Дифференцированное обновление
Обновление полнотекстового индекса
Отключение полнотекстового индекса
Настройка полнотекстового поиска
Запуск службы Microsoft Search
Создание полнотекстового индекса
Получение информации о полнотекстовом поиске
Системные сохраненные процедуры
SQL Server Enterprise Manager
Полнотекстовый запрос
Предикаты и функции Transact-SQL
Использование компонентов Transact-SQL
Резюме

Закрепление материала


Глава 8. Запросы к нескольким таблицам

Занятие 1. Соединение нескольких таблиц
Основные понятия
Выбор конкретных полей из нескольких таблиц
Запрос к двум и более таблицам для получения набора результатов
Внутреннее соединение
Для чего нужны внутренние соединения
Внешнее соединение
Для чего нужны внешние соединения
Перекрестное соединение
Для чего нужны перекрестные соединения
Резюме

Занятие 2. Сложное соединение
Соединение двух и более таблиц
Производительность
Самосоединение таблицы
Для чего нужны самосоединения
Объединение нескольких наборов результатов
Создание таблицы из набора результатов
Резюме

Закрепление материала


Глава 9. Использование сложных запросов

Занятие 1. Подзапросы
Использование подзапросов
Подзапросы и соединения
Правила составления подзапросов
Вложенные подзапросы
Подзапросы, возвращающие единственное значение
Возвращение списка значений
Связанные подзапросы
Ключевые слова EXISTS и NOT EXISTS
Ключевые слова EXISTS и NOT EXISTS и связанные подзапросы
Резюме

Занятие 2. Курсоры
Запросы курсоров
Курсоры Transact-SQL
Как динамически создать исполняемую командную строку
Как сделать сценарий более простым для чтения
Как выполнить несколько несвязанных операций с данными
Как устранить ограничения, существующие для баз данных и приложений.
Принципы работы курсоров Transact-SQL
Виды курсоров Transact-SQL
Непозиционируемый курсор
Статический курсор
Динамический курсор
Ключевой курсор
Параметры курсоров Transact-SQL
Позиционируемость
Чувствительность
Синтаксис курсоров Transact-SQL
DECLARE CURSOR
OPEN
FETCH
CLOSE
DEALLOCATE
Работа с данными курсоров
Изменение данных через курсоры
Передача локальных курсоров между сохраненными процедурами
Сбор сведений о курсоре
Системные сохраненные процедуры
Резюме

Занятие 3. Изменение данных
Оператор INSERT
Удаление записей на основании данных других таблиц
Использование дополнительного ключевого слова FROM
Задание условий в операторе WHERE
Обновление записей на основании данных других таблиц
Использование оператора UPDATE
Использование соединений
Использование подзапросов
Резюме

Закрепление материала


Глава 10. Аналитическая обработка данных

Занятие 1. Агрегатные функции
Агрегатные функции Transact-SQL
Использование агрегатных функций со значениями NULL
Резюме

Занятие 2. Использование GROUP BY
Оператор GROUP BY
Совместное использование выражений GROUP BY и HAVING
Резюме

Занятие 3. Генерация агрегатных значений в наборе результатов
Выражение GROUP BY с оператором ROLLUP
Использование выражения GROUP BY с оператором CUBE
Функция GROUPING
Операторы COMPUTE и COMPUTE BY
Создание отчетов с отдельными и суммарными значениями для подгрупп
Вывод п первых значений
Резюме

Закрепление материала


Глава 11. Создание проекций

Занятие 1. Основные сведения о проекциях
Что такое проекция
Преимущества проекций
Отбор данных
Сокрытие структуры данных
Упрощенное управление правами доступа
Структурирование данных для экспорта в другие приложения
Проекции информационной схемы
Резюме

Занятие 2. Создание, изменение и удаление проекции
Создание проекции
Ограничения на определение проекций
Проекция таблицы, полученная в результате операции соединения
Проекция и внешнее соединение
Изменение и удаление проекции
Изменение проекции
Удаление проекции
Резюме

Занятие 3. Дополнительные сведения о проекциях
Вложенные проекции
Предотвращение нарушения цепочки владельцев объектов
Базовые объекты, имеющие разных владельцев
Поиск проекции
Поиск проекции
Определение зависимостей проекции
Сокрытие определения проекции
Записи таблицы syscomments
Изменение данных через проекцию
Резюме

Закрепление материала


Глава 12. Транзакции и блокировки

Занятие 1. Управление транзакцией
Восстановление транзакций и контрольные точки
Изменение данных при выполнении транзакции
Основные правила при написании транзакций
Способы упрощения транзакции
Вложенные транзакции
Применение неявных транзакций
Ограничения, накладываемые на явные транзакции
Резюме

Занятие 2. Блокировки в SQL Server
Проблемы параллелизма, решаемые с помощью блокировок
Обновления данных, не отраженные в базе данных
Чтение данных, затронутых неподтвержденной транзакцией (Dirty Read)
Нарушение целостности данных — отсутствие свойства «повторяемое чтение»
Фантомы
Блокируемые объекты
Типы блокировок
Основные блокировки
Разделяемые блокировки
Монопольные блокировки
Специальные блокировки
Предварительные блокировки
Блокировки обновления
Блокировки схемы
Совместимость блокировок
Оптимистический и пессимистический параллелизм
Пессимистическое управление параллелизмом
Оптимистическое управление параллелизмом
Применение механизмов управления параллелизмом
Резюме

Занятие 3. Управление блокировкой
Параметры, задаваемые в контексте текущей сессии
Уровень изоляции транзакций
Время ожидания освобождения ресурса
Указания, касающиеся табличных блокировок
Взаимоблокировка
Устранение взаимоблокировок
Уменьшение вероятности взаимоблокировок
Получение информации о блокировках
Окно Current Activity
Системная сохраненная процедура sp_lock
SQL Server Profiler
Windows NT Performance Monitor
Дополнительная информация о блокировках
Упражнения
Резюме

Закрепление материала


Глава 13. Внешние источники данных и распределенные транзакции

Занятие 1. Работа с внешними источниками данных
Применение утилиты копирования данных
Копирование данных без ведения журнала
Применение Data Transformation Services
Работа Data Transformation Services
Средства работы с DTS
Мастера DTS для импорта и экспорта данных
Публикация данных
Координатор распределенных транзакций Microsoft Distributed Transaction Coordinator
Репликация
Резюме

Занятие 2. Работа с распределенными данными
Краткий обзор распределенных запросов
Доступ к удаленным данным
Указание места обработки распределенных запросов
Проверка параметров сессии
Выполнение произвольного запроса к удаленному источнику данных
Настройка связанного сервера
Применение связанных серверов
Подключение и конфигурирование связанных\'серверов
Подключение к удаленному источнику данных.
Соединение с удаленным SQL Server
Соединение с источником данных ОLE DВ
Определение прав доступа для связанного сервера
Конфигурирование связанного сервера
Совместимость операций со строковыми данными (параметр collation compatible)
Доступ к данным (параметр data access)
Параметры RPC и RPC Out
Получение сведений о связанных серверах
Резюме

Занятие 3. Выполнение запроса к связанному серверу
Работа со связанными серверами
Создание ссылок на объекты, размещенные на связанных серверах
Применение операторов Transact-SQL для обращения к распределенным данным
Выполнение запросов к связанным серверам
Выполнение обходящих запросов
Выполнение сохраненной процедуры на связанном сервере
Распределенные транзакции
Резюме

Закрепление материала


Глава 14. Создание сохраненных процедур

Занятие 1. Основные сведения о сохраненных процедурах
Типы сохраненных процедур
Системные сохраненные процедуры
Пользовательские сохраненные процедуры
Временные сохраненные процедуры
Удаленные сохраненные процедуры
Расширенные системные сохраненные процедуры
Обработка сохраненных процедур при первом выполнении
Создание
Выполнение (первое выполнение, рекомпиляция)
Оптимизация
Компиляция
Последующая обработка сохраненных процедур
Преимущества сохраненных процедур
Резюме

Занятие 2. Создание, выполнение и изменение сохраненных процедур
Создание сохраненных процедур
Правила создания сохраненных процедур
Вложенные сохраненные процедуры
Просмотр сведений о сохраненной процедуре
Выполнение сохраненных процедур
Выполнение сохраненной процедуры в операторе INSERT
Явная рекомпиляция сохраненных процедур
CREATE PROCEDURE...WITH RECOMPILE
EXECUTE...WITH RECOMPILE
Системная сохраненная процедура sp_recompile
Выполнение расширенных сохраненных процедур
Изменение и удаление сохраненных процедур
Изменение сохраненных процедур
Удаление сохраненных процедур
Резюме

Занятие 3. Использование параметров и сообщений об ошибках
Входные параметры
Выполнение сохраненной процедуры с параметрами ввода
Возврат значений при помощи параметров вывода
Обработка сообщений об ошибках
Коды возврата
Функция @@ERROR
Оператор RAISERROR
Создание пользовательских сообщений об ошибках
Повышение производительности
SQL Server Performance Monitor
SQL Server Profiler
Резюме

Закрепление материала


Глава 15. Триггеры

Занятие 1. Основные сведения о триггерах
Что такое триггер
Триггеры и таблицы
Автоматическое срабатывание
Вызов триггера
Транзакция
Применение триггеров
Каскадные изменения данных связанных таблиц БД
Триггеры и ограничения CHECK
Генерация пользовательских сообщений об ошибках
Поддержка денормализованных данных
Сравнение и запись текущего и будущего состояния данных
Правила использования триггеров
Таблицы вставок и удалений
Создание триггеров
Недопустимые операторы для триггера
Просмотр информации о триггерах
Изменение и удаление триггеров
Изменение триггера
Включение и отключение триггера
Удаление триггера
Резюме

Занятие 2. Принципы работы триггеров
Принцип работы триггера INSERT
Принцип работы триггера DELETE
Принцип работы триггера UPDATE
Оператор IF UPDATE, определяемый на поле
Вложенные триггеры
Проверка уровня вложенности
Применение вложенных триггеров
Рекурсивные триггеры
Разрешение и запрещение рекурсии триггеров
Типы рекурсии
Предпосылки использования рекурсивных триггеров
Примеры
Обеспечение целостности данных.
Выполнение бизнес-правил
Производительность и использование триггеров
Резюме

Закрепление материала


Приложение А. Вопросы и ответы

Приложение Б. Учебная база данных library

Приложение В. Схемы баз данных

Приложение Г. Выполнение элементарных запросов

Предметный указатель