Оглавление Введение 1
ЧАСТЬ I. УСТАНОВКА SQL SERVER И ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ 3
Глава 1. Установка SQL Server 5
Установка SQL Server 2005 5
Глава 2. Введение в проектирование баз данных 10
Основные сведения 10
Логическая фаза 11
Сбор требований 11
Определение сущностей 11
Определение атрибутов 12
Ключи 12
Возможный ключ 13
Первичные ключи 13
Альтернативные ключи 13
Внешние ключи 14
Определение связей между сущностями 14
Один к одному 14
Один ко многим 15
Многие ко многим 15
Нормализация 15
Первая нормальная форма 16
Вторая нормальная форма 16
Третья нормальная форма 17
Ограничения 17
Хранимые процедуры 18
Целостность данных 18
Триггеры 19
Деловые правила 20
Физическая модель 20
Денормализация 21
Глава 3. Выборка данных 22
Структура команды SELECT 22
Список выборки 23
Секция FROM 25
Псевдонимы таблиц 25
Уточнение имен объектов 26
Секция TOP 27
Секция WHERE 28
Секция IN 30
Секция LIKE 30
Секция BETWEEN 31
Ключевое слово NOT 31
Проверка NULL 31
Секция ORDER BY 32
Секция GROUP BY 32
Ключевое слово ALL 34
Ключевые слова CUBE и ROLLUP 35
Секция HAVING 36
Секция COMPUTE 37
Команда UNION 38
Объединение таблиц 38
Ортогональные объединения 39
Внутренние объединения 39
Внешние объединения 40
Левое внешнее объединение 40
Правое внешнее объединение 40
Полное внешнее объединение 41
Подзапросы 41
Cинтаксис команды SELECT 42
Глава 4. Модификация данных 44
INSERT 44
Списки столбцов 44
Вставка отдельной записи 45
UNIQUEIDENTIFIER 46
Вставка нескольких записей 46
Использование команды SELECT 47
Использование хранимых процедур 47
SELECT INTO 48
UPDATE 49
Команда DELETE 51
Глава 5. Работа с таблицами 52
Создание таблиц 52
Создание таблиц в SQL Server Management Studio 54
Имена таблиц 55
Столбцы 55
Типы данных 55
Параметры NULL/NOT NULL 58
Уникальные идентификаторы 58
Столбцы счетчика 58
ROWGUIDCOL 59
Ограничения 59
PRIMARY KEY 60
FOREIGN KEY 60
CHECK 61
Значения по умолчанию 62
Вычисляемые столбцы 63
Модификация таблиц 63
Дополнение таблиц 64
Удаление из таблиц 65
Модификация столбцов 65
Временные таблицы 65
Локальные временные таблицы 66
Глобальные временные таблицы 66
Удаление таблиц 66
Глава 6. Индексы 67
Создание индексов 67
Управление индексами 68
Глава 7. Представления 70
Упрощение SQL-кода с помощью представлений 72
Представления и команды INSERT, UPDATE, DELETE 73
WITH CHECK OPTION 74
ALTER VIEW 74
Глава 8. Настройка параметров базы данных 76
Команда USE 79
Выбор сопоставления 80
ЧАСТЬ II. ПРОГРАММИРОВАНИЕ В SQL SERVER 83
Глава 9. Программирование на T-SQL 85
Пакеты 85
Комментарии 86
Переменные 86
Локальные переменные 86
Глобальные переменные 87
Команды T-SQL 87
Команда PRINT 88
Команды условного выполнения 88
IF...ELSE 88
IF EXISTS 89
BEGIN...END 89
CASE 89
WHILE 90
GOTO 91
WAITFOR 91
RETURN 92
SET 92
Обработка ошибок 93
Конструкция TRY...CATCH 93
Глава 10. Курсоры 95
Последовательность действий с курсорами 95
Типы курсоров T-SQL 96
Работа с курсорами в T-SQL 96
Объявление курсоров 96
Открытие курсоров 98
Выборка записей 99
Модификация записей с помощью курсоров 101
Закрытие курсоров 102
Освобождение курсоров 102
Глава 11. Хранимые процедуры 103
Удаление хранимой процедуры 107
Изменение хранимой процедуры 107
Переименование хранимой процедуры 107
Глава 12. Функции 108
Встроенные функции 108
Математические функции 108
Строковые функции 110
Функции управления датой и временем 112
Системные функции 113
Функции конфигурирования 115
Пользовательские функции 115
Функции Scalar 117
Функции Inline 119
Функции Multi-statement 119
Изменение функций 120
Удаление функций 120
Глава 13. Транзакции 121
Команды управления транзакциями 122
Последовательность выполнения транзакций 124
Ограничения транзакций 125
Распределенные транзакции 125
Блокировки в транзакциях 126
Уровни изоляции 126
Уровень изоляции 0 126
Уровень изоляции 1 126
Уровень изоляции 2 127
Уровень изоляции 3 127
Установка уровня изоляции 127
Мертвые блокировки 127
Глава 14. Триггеры 130
Срабатывание триггеров 130
Создание триггеров 131
Удаление триггеров 132
Модификация триггеров 132
Таблицы deleted и inserted 133
Проверка столбцов при модификации 134
Использование точек сохранения в триггерах 136
Вложенные триггеры 137
Глава 15. Полнотекстовый поиск 139
Подготовка к полнотекстовому поиску 139
Создание индекса для полнотекстового поиска 140
Полнотекстовые запросы 141
CONTAINS 141
Поиск слов, расположенных рядом 143
Поиск единственного и множественного числа 143
Весовые коэффициенты в критериях поиска 144
FREETEXT 144
Глава 16. SQL Server и XML 145
XML и SQL Server 145
Хранение XML 146
Конструкция FOR XML 146
Функция OPENXML 148
Тип данных XML 150
Типизация XML 150
Методы типа данных XML 151
Метод exist 151
Метод value 151
Метод query 152
Метод modify 153
Метод nodes 153
Конструкция WITH XMLNAMESPACES 154
Глава 17. Интеграция с .NET Framework 155
Какой вариант выбрать? 156
Создание объектов БД с помощью .NET 156
Интеграция сборки в SQL Server 157
Хранимые процедуры 160
Скалярные пользовательские функции 164
Табличные функции 166
Триггеры 167
Агрегирующие функции 168
Пользовательские типы данных 170
ЧАСТЬ III. АДМИНИСТРИРОВАНИЕ SQL SERVER 173
Глава 18. Безопасность 175
Пользователи 175
Роли 176
Схемы 177
Использование схемы 178
Доступ к объектам 179
Права 180
Синонимы 181
Конструкция EXECUTE AS 181
Конструкция EXECUTE AS CALLER 182
Конструкция EXECUTE AS в контексте пользователя 182
Глава 19. SQL Server Agent 184
Задачи 184
Операторы 184
Оповещения 184
Этапы настройки автоматизированного администрирования 185
Настройка задач 185
Настройка операторов 187
Настройка оповещений 188
Глава 20. Репликации 191
Модель репликации с издателем и подписчиком 191
Репликация моментальных снимков 192
Репликация транзакций 192
Репликация сведением 193
Глава 21. Другие возможности SQL Server 194
Сервисы интеграции 194
Сервисы уведомлений 194
Интегрированная поддержка HTTP 195
Сервисы составления отчетов 195
Аналитические сервисы 195
Service Broker 195
Различия между редакциями SQL Server 196
Глоссарий 199
Предметный указатель 206