Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Администрирование баз данных. СУБД MS SQL Server

Покупка
Основная коллекция
Артикул: 616640.01.99
В учебном пособии рассматриваются вопросы администрирования баз данных и хранилищ данных с использованием современных реляционных СУБД на приме ре Microsoft SQL Server. Целью изучения дисциплины является знакомство студентов с особенностями работы администраторов и конечных пользователей СУБД в условиях распределен ной технологии обработки данных. Рассматриваются типовые базы данных, приме няемые на предприятиях и в организациях различных отраслей экономики. Пособие предназначено для студентов, аспирантов и преподавателей вузов.
Култыгин, О. П. Администрирование баз данных. СУБД MS SQL Server [Электронный ресурс] : учеб. пособие / О. П. Култыгин. - Москва : МФПА, 2012. - 232 с. - (Университетская серия). - ISBN 978-5-4257-0026-1. - Текст : электронный. - URL: https://znanium.com/catalog/product/451114 (дата обращения: 16.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
УДК 004.655.3(07)
ББК 32.973.26018.2505я7
К90

Серия удостоена диплома в номинации «Лучший издательский проект»
на IV Общероссийском конкурсе учебных изданий для высших учебных заведений
«Университетская книга — 2008»

Печатается по решению
Ученого совета Московской финансовопромышленной академии

Ответственный редактор серии
членкорреспондент Российской академии образования,
доктор экономических наук, профессор Ю. Б. Рубин

Култыгин О. П.
К90
Администрирование баз данных. СУБД MS SQL Server : учеб.
пособие / О. П. Култыгин. — М.: Московская финансовопромышленная академия, 2012. — 232 с. (Университетская серия).

ISBN 9785425700261

Агентство CIP РГБ

В учебном пособии рассматриваются вопросы администрирования баз данных
и хранилищ данных с использованием современных реляционных СУБД на примере Microsoft SQL Server.
Целью изучения дисциплины является знакомство студентов с особенностями
работы администраторов и конечных пользователей СУБД в условиях распределенной технологии обработки данных. Рассматриваются типовые базы данных, применяемые на предприятиях и в организациях различных отраслей экономики.
Пособие предназначено для студентов, аспирантов и преподавателей вузов.

УДК 004.655.3(07)
ББК 32.973.26018.2505я7

ISBN 9785425700261
© Култыгин О. П., 2012
© Московская финансовопромышленная академия, 2012

КРАТКОЕ ОГЛАВЛЕНИЕ

Глава   1. Реляционная модель баз данных .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
13

Глава   2. СУБД и их сравнительные характеристики .  .  .  .  .  .  .  .  .  .  .  .  .
47

Глава   3. Распределенные базы данных
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
58

Глава   4. Распределенные данные в MS SQL Server
.  .  .  .  .  .  .  .  .  .  .  .  .
66

Глава   5. Выбор оптимальной структуры распределенной базы данных
.  .
87

Глава   6. Обзор MS SQL Server
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
95

Глава   7. Средства администрирования SQL Server
.  .  .  .  .  .  .  .  .  .  .  .  . 114

Глава   8. Основы языка определения данных (Data Definition Language, DDL)
132

Глава   9. Основы языка манипулирования данными (Data Manipulation Language,
DML)
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 158

Глава 10. Хранимые процедуры
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 172

Глава 11. Управление серверами .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 178

Глава 12. Система безопасности SQL Server
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 188

Глава 13. Резервное копирование и восстановление данных
.  .  .  .  .  .  .  . 203

Университетская серия

ОГЛАВЛЕНИЕ

Введение .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
8

Глава 1

РЕЛЯЦИОННАЯ МОДЕЛЬ БАЗ ДАННЫХ

1.1. Система управления базами данных .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
13
1.2. Традиционные файловые системы и СУБД
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
14
1.3. Определение данных .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
16
1.4. Обеспечение целостности данных .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
17
1.5. Обработка данных
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
19
1.6. Модели баз данных .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
20
1.7. Реляционная модель баз данных
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
21
Выводы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
45
Контрольные вопросы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
45
Практическое задание .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
45

Глава 2

СУБД И ИХ СРАВНИТЕЛЬНЫЕ ХАРАКТЕРИСТИКИ

2.1. Oracle
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
48
2.2. Microsoft SQL Server
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
50
2.3. IBM DB2
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
51
2.4. Informix
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
52
2.5. MySQL .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
53
Выводы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
56
Контрольные вопросы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
56
Практическое задание .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
57

Глава 3

РАСПРЕДЕЛЕННЫЕ БАЗЫ ДАННЫХ

3.1. Синхронная модель. Двухфазная фиксация
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .
59
3.2. Асинхронное тиражирование транзакций в распределенных системах .  .
60
3.3. Репликационный сервер СУБД Sybase «Sybase Reрlication Server»
.  .  .
61
Выводы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
65
Контрольные вопросы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
65
Практическое задание .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
65

Университетская серия
5

Оглавление

Глава 4

РАСПРЕДЕЛЕННЫЕ ДАННЫЕ В MS SQL SERVER

4.1. Способы распределения данных .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
67
4.2. Репликация
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
68
4.3. Агенты репликации .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
76
4.4. Репликация слиянием
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
81
4.5. Модели репликации
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
82
Выводы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
85
Контрольные вопросы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
86
Практическое задание .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
86

Глава 5

ВЫБОР ОПТИМАЛЬНОЙ СТРУКТУРЫ РАСПРЕДЕЛЕННОЙ БАЗЫ ДАННЫХ

5.1. Проектирование базы данных
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
87
5.2. Организация хранения данных .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
88
5.3. Концептуальная модель базы данных .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
90
5.4. Применение экономикоматематических методов
.  .  .  .  .  .  .  .  .  .  .  .
92
Выводы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
93
Контрольные вопросы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
94
Практическое задание .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
94

Глава 6

ОБЗОР MS SQL SERVER

6.1. Основные характеристики
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
95
6.2. Сетевая архитектура SQL Server .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
97
6.3. Основные компоненты SQL Server .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
98
6.4. Язык TransactSQL
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
98
6.5. Архитектура базы данных SQL Server
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 100
Выводы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 111
Контрольные вопросы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 112
Практическое задание .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 112

Глава 7

СРЕДСТВА АДМИНИСТРИРОВАНИЯ SQL SERVER

7.1. Утилита Enterprise Manager (Management Studio) .  .  .  .  .  .  .  .  .  .  .  .  . 114
7.2. Утилита Distributed Transaction Coordinator (DTC) .  .  .  .  .  .  .  .  .  .  .  .  . 117

Оглавление

7.3. Утилита Query Analyzer
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 117
7.4. Утилита SQL Profiler
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 120
7.5. Утилита SQL Performance Monitor
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 120
7.6. Служба Data Transformation Services (DTS)
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 121
7.7. Утилиты командной строки
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 126
7.8. Встроенная документация (Books Online)
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 127
7.9. Средство создания ERдиаграмм
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 127
Выводы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 130
Контрольные вопросы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 131
Практическое задание .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 131

Глава 8

ОСНОВЫ ЯЗЫКА ОПРЕДЕЛЕНИЯ ДАННЫХ (DATA DEFINITION LANGUAGE, DDL)

8.1. Создание базы данных .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 134
8.2. Создание таблицы
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 136
8.3. Создание представления .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 149
8.4. Создание индекса .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 153
8.5. Удаление баз данных, таблиц, представлений и индексов
.  .  .  .  .  .  .  . 155
Выводы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 155
Контрольные вопросы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 156
Практическое задание .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 156

Глава 9

ОСНОВЫ ЯЗЫКА МАНИПУЛИРОВАНИЯ ДАННЫМИ
(DATA MANIPULATION LANGUAGE, DML)

9.1. Инструкция SELECT .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 158
9.2. Инструкция INSERT .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 165
9.3. Инструкция UPDATE
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 167
9.4. Инструкция DELETE .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 168
Выводы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 169
Контрольные вопросы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 170
Практическое задание .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 170

Глава 10

ХРАНИМЫЕ ПРОЦЕДУРЫ

10.1. Создание хранимых процедур
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 172
10.2. Изменение и удаление хранимых процедур .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 173

Оглавление

10.3. Параметры хранимых процедур
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 174
Выводы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 176
Контрольные вопросы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 177
Практическое задание .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 177

Глава 11

УПРАВЛЕНИЕ СЕРВЕРАМИ

11.1. Управление серверами. Регистрация серверов и удаление их регистрации
178
11.2. Остановка, запуск, приостановка и возобновление работы сервера .  . 181
11.3. Учетные записи сервера и серверные роли
.  .  .  .  .  .  .  .  .  .  .  .  .  .  . 184
Выводы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 186
Контрольные вопросы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 186
Практическое задание .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 187

Глава 12

СИСТЕМА БЕЗОПАСНОСТИ SQL SERVER

12.1. Основы системы безопасности .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 188
12.2. Управление пользователями
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 191
12.3. Управление доступом к базам данных .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 192
12.4. Использование хранимых процедур .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 195
12.5. Инструкции GRANT, REVOKE и DENY .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 197
Выводы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 201
Контрольные вопросы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 202
Практическое задание .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 202

Глава 13

РЕЗЕРВНОЕ КОПИРОВАНИЕ И ВОССТАНОВЛЕНИЕ ДАННЫХ

13.1. Резервное копирование базы данных
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 205
13.2. Восстановление базы данных
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 209
13.3. Создание плана обслуживания базы данных
.  .  .  .  .  .  .  .  .  .  .  .  .  . 214
Выводы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 217
Контрольные вопросы .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 217
Практическое задание .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 217

Заключение
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 218
Литература .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 220
Глоссарий
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 222

ВВЕДЕНИЕ

Системы управления базами данных (СУБД) представляют собой
важный механизм, упрощающий и облегчающий работу пользователей
с большими структурированными массивами информации. СУБД берут
на себя сложные и трудоемкие операции обработки, поддержки целостности и репликации данных в территориально распределенных информационных системах. Применение при разработке прикладных программ (приложений) СУБД вместо традиционных файловых систем дает
существенное преимущество проектировщикам, программистам, ИТспециалистам, уменьшая время и стоимость разработки проектов, уменьшая
количество ошибок в приложениях, неизбежно возникающих в процессе разработки, особенно ошибок, связанных с операциями ввода/вывода информации.
Однако применение СУБД как системного программного обеспечения требует затрат на свое администрирование и наличия специализированного, обученного ИТперсонала — администраторов баз данных.
Предлагаемое учебное пособие рассматривает типовые задачи по администрированию, управлению и обслуживанию баз данных.
В настоящее время на рынке программного обеспечения существует
множество систем управления баз данных, разработанных разными
фирмамипроизводителями. Причем среди этих СУБД можно выделить
так называемые настольные (однопользовательские) системы, например MS Access, и промышленные (или коммерческие) СУБД, предназначенные для использования в организациях крупного и среднего бизнеса, в промышленных и транспортных предприятиях.
К промышленным (коммерческим) СУБД можно отнести такие системы известных производителей, как Oracle одноименной корпорации
Oracle, MS SQL Server, разработки Microsoft, DB2 от фирмы IBM, Interbase и Firebird, разработанные фирмой Borland, а в настоящее время принадлежащие американской фирме Embarcadero, свободно распространяемую СУБД MySQL, принадлежащую сейчас корпорации Oracle, Informix, приобретенную фирмой IBM, и многие другие.
Вопросы администрирования касаются как настольных, так и промышленных СУБД. Но очевидно, что администрирование настольных
СУБД — это настройка программного обеспечения для работы отдельного пользователя на его рабочем месте, в то время как администрирование промышленных СУБД затрагивает интересы сотен и тысяч

8
Университетская серия

взаимодействующих потребителей информации, от принятия решений
которых зависит успешное функционирование предприятий и организаций, экономическая стабильность и эффективность бизнеса этих организаций. Именно поэтому в данной книге рассматриваются вопросы
администрирования промышленных (коммерческих) СУБД.
Очевидно, что разработанные разными производителями промышленные СУБД всетаки имеют общие черты и характеристики, что обусловливается их общим предназначением, общими стандартами, на основе которых они разрабатывались. В частности, все СУБД «говорят» на одном и том же языке Structured Query Language (SQL), языке
структурированных запросов, созданном специалистами фирмы IBM
в 1970х годах. Но то, что промышленные СУБД разрабатывались разными конкурирующими между собой производителями, наложило на
них свои особенности, свои отпечатки. Тот же самый язык SQL, созданный в соответствии со стандартом ANSI SQL’92 (American National
Standard Institute Structured Query Language), имеет свои особенности
в каждой из СУБД. Фактически фирмыпроизводители создали свои
диалекты языка SQL. В СУБД Oracle — это язык PL/SQL, у Microsoft
в MS SQL Server — язык TransactSQL, в СУБД Informix — язык SPL и т. д.
Соответственно, СУБД, созданные разными производителями, имеют свои особенности не только в языке, но и в вопросах эксплуатации
и администрирования. Рассмотреть тонкости администрирования каждой из СУБД в одной книге не представляется возможным, поэтому автор обратился к вопросам администрирования одной из популярнейших
СУБД от фирмы Microsoft — MS SQL Server.
СУБД MS SQL Server за последние годы прошла большой путь развития. Созданная в 1988 г. как совместный проект фирм AstonTate,
Sybase и Microsoft для операционной системы OS/2, она в конечном счете стала собственным продуктом Microsoft и мигрировала на операционную платформу Windows. Фирма Sybase продолжила свои разработки
и создала похожий программный продукт Sybase SQL Server для операционной системы Unix.
С 1988 г. Microsoft выпустила множество версий MS SQL Server, все
время дорабатывая СУБД, улучшая ее характеристики производительности и обеспечивая удобство для конечного пользователя. Современные версии MS SQL Server ведут свое происхождения от MS SQL
Server 7.0, выпущенной в 1998 г. С 1999 по 2010 г. Microsoft последовательно представила на рынок программных продуктов следующие

Университетская серия
9

Введение

версии: MS SQL Server 2000 (8.0), MS SQL Server 2005 (9.0), MS SQL
Server 2008 (10.0) и последнюю на настоящий момент версию MS SQL
Server 2010 (11.0).
Итак, несмотря на то что в этом учебном пособии будет в основном
рассматриваться MS SQL Server, обозначим общие вопросы администрирования баз данных, характерные для всех СУБД. Решение любых административных задач требует комплексного подхода, некоторой стратегии администрирования баз данных. В чем же состоит эта стратегия?
Прежде всего, как и всякая стратегия, она требует определения конечной цели и средств ее достижения.
Целью стратегии администрирования баз данных является высокопроизводительная, надежная, отказоустойчивая работа СУБД, обеспечивающая целостность и непротиворечивость хранящейся в ее базах
данных информации прикладных программ.
Как можно достичь этой цели? Для достижения стратегической цели
необходимо выполнение ряда обязательных процедур администрирования:
инсталляции системы с учетом имеющегося и рекомендуемого
производителем аппаратного обеспечения;
эффективного проектирования баз данных с учетом потребностей
конечных пользователей;
разработки политики безопасности, разграничения прав доступа
пользователей к объектам баз данных;
разработки процедур страхового копирования и восстановления
баз данных;
создания плана обслуживания баз данных и использования специальных средств СУБД для автоматизации процедур обслуживания баз данных;
мониторинга использования ресурсов СУБД конечными пользователями;
мониторинга производительности системы;
настройки средств репликации данных в распределенных информационных системах.
Но чтобы эффективно выполнять административные задачи, прежде
всего необходимо получить представление о реляционной модели баз
данных, на основе которой строятся все современные СУБД.
В главе 1 учебного пособия рассматривается реляционная модель баз
данных и три ее важнейшие составляющие: структура данных, правила

10
Университетская серия

Введение

целостности и обработки данных, преимущество реляционной модели
перед традиционными файловыми системами.
Глава 2 посвящена характеристикам ведущих промышленных СУБД,
их преимуществам по сравнению с другими конкурирующими СУБД
и недостаткам.
В главе 3 рассматриваются особенности обработки территориально
распределенных баз данных на примере СУБД Sybase.
Глава 4 затрагивает вопросы репликации данных, основные понятия
и модели репликации, реализацию механизмов репликации распределенных данных в СУБД MS SQL Server.
Глава 5 описывает теоретические вопросы проектирования баз данных, организации хранилищ данных, построения концептуальной модели данных и использования экономикоматематического моделирования для рационального размещения информационных массивов в узлах
распределенной сети предприятия или организации.
В главе 6 рассматриваются основные характеристики MS SQL Server,
сетевая архитектура, основные компоненты, архитектура баз данных MS
SQL Server, серверы, системные базы данных и объекты базы данных MS
SQL Server.
Глава 7 посвящена средствам MS SQL Server, используемым для решения административных задач, утилитам с графическим интерфейсом
и утилитам командной строки, средствам выполнения распределенных
транзакций, преобразования и переноса данных между гомогенными
и гетерогенными системами, утилитам мониторинга производительности СУБД, средству создания диаграмм сущность—связь и встроенной
документации MS SQL Server.
Глава 8 рассматривает основы языка определения данных (Data
Definition Language, DDL), команды создания, изменения, удаления баз
данных, таблиц, представлений, индексов и других объектов баз данных.
Глава 9 описывает язык манипулирования данными (Data Manipulation Language, DML), инструкции извлечения данных из таблиц
и представлений баз данных, добавления строк (записей), их изменения
и удаления.
Глава 10 посвящена хранимым процедурам — методам обработки
данных, размещаемым в базах данных вместе с обрабатываемой информацией. Такое размещение хранимых процедур обеспечивает объектноориентированный подход к обработке и хранению данных. Рассматриваются вопросы создания хранимых процедур, их изменения и удаления,

Университетская серия
11

Введение

задания входных и выходных параметров процедур, а также использования локальных переменных.
Глава 11 рассматривает методы управления серверами MS SQL Server,
вопросы регистрации серверов, запуска, остановки и возобновления работы сервера. Описываются учетные записи сервера и восемь фиксированных серверных ролей MS SQL Server.
Глава 12 посвящена системе безопасности MS SQL Server, вопросам
создания пользователей баз данных и редактирования их характеристик,
управления доступом к базам данных и использования хранимых процедур для решения задач безопасности. Также рассматриваются основы
языка управления данными (Data Control Language, DCL), инструкции
GRANT, REVOKE и DENY.
Глава 13 затрагивает вопросы резервного копирования и восстановления баз данных, создания плана обслуживания базы данных и использования встроенного средства администрирования — службы MS SQL
Agent — планировщика баз данных.

Введение

Глава 1

РЕЛЯЦИОННАЯ МОДЕЛЬ БАЗ ДАННЫХ

Система управления базами данных
Традиционные файловые системы и СУБД
Определение данных
Обеспечение целостности данных
Обработка данных
Модели баз данных
Реляционная модель баз данных

Реляционная модель баз данных лежит в основе всех реляционных
систем управления базами данных (РСУБД), в том числе MS SQL Server,
Oracle и множества других. Только изучив принципы построения реляционной модели, можно разрабатывать гибкие и эффективные базы данных, создавать приложения, использующие язык Structure Query Language
(SQL) для чтения и обновления данных предприятия или организации,
администрировать базы данных. Для того чтобы объяснить, почему именно реляционные базы данных стали такой популярной основой для
бизнесприложений, рассмотрим общее назначение систем управления
базами данных (СУБД), их преимущества перед традиционными компьютерными файловыми системами. Также рассмотрим реляционную модель и три ее важнейшие составляющие: структуру, правила целостности
и операции обработки данных. Принятый в реляционной модели подход
к структурированию и целостности данных позволяет правильно организовать и упорядочить процесс проектирования и реализации сложных баз
данных, а реляционные операции обладают исключительно мощными
возможностями управления данными и их обработки.
Реляционная модель определяет как структуру, так и способ реализации баз данных.

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

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

Университетская серия
13

понять сущность реляционной модели, необходимо прежде всего рассмотреть общую проблему компьютеризированного хранения и обработки данных.
Согласно оценкам экспертов в традиционных файловых системах до
80% типичных бизнесприложений занимает код, связанный с доступом к файлам, в том числе с определением файлов, выбором записей,
операциями ввода / вывода и редактированием входных данных для форматирования допустимых значений. И только 20% программного кода
связано с вычислениями и преобразованием данных на пути от их ввода
до вывода. Огромное количество кода необходимо для получения достоверных данных, подходящих для вычислений, и последующего сохранения результатов. Разработка такого кода — чрезвычайно дорогостоящая
часть всего проектирования традиционного приложения. Когда один
и тот же код, предназначенный для доступа к файлам и редактирования,
повторяется в разных программах, то увеличивается количество ошибок
и стоимость сопровождения программного обеспечения. В целом большая часть программного кода, не имеющая непосредственного отношения к основным бизнесфункциям, реализуемым прикладной системой,
а также многократное повторение этого кода понижали производительность разработки прикладного программного обеспечения.
В конце 1960х годов эта проблема заставила разработчиков компьютерных систем искать методы сокращения кода приложений за счет
передачи части их функций системному программному обеспечению.
Стало очевидным, что системное программное обеспечение должно автоматически выполнять операции с записями и полями, доступ к файлам и другие подобные функции, чтобы освободить от них разработчиков приложений и позволить им сконцентрироваться непосредственно
на логике обработки данных.
Результатом всех этих усилий стала концепция систем управления
базами данных. В течение следующих десятилетий СУБД оказали огромное влияние на обработку данных. В основе большинства современных
приложений лежат уже не традиционные файловые системы, а мощные
СУБД.

1.2. Традиционные файловые системы и СУБД

Традиционные файловые системы предоставляли довольно простой набор возможностей для хранения и извлечения данных. Обычный

14
Университетская серия

Глава 1.  Реляционная модель баз данных

файл — это либо последовательность байтов (такой файл называется потоковым), либо последовательность записей (такой файл называется
ориентированным на записи). Запись в традиционной файловой системе — это просто некоторая последовательность байтов, имеющая фиксированную или переменную длину. Традиционные файловые системы обычно берут на себя управление низкоуровневыми операциями
с устройствами, например, операции дискового ввода/вывода, так что
программист может выполнять чтение и запись с помощью инструкций
языка высокого уровня и не тратить время на программирование на
уровне устройств. Однако это практически все, чем традиционные файловые системы облегчают задачу программиста. В каждой новой программе ему приходится заново определять структуру данных, в частности такие аспекты, как начальная позиция записи, длина полей, их типы
данных и т. п.
Хотя поддерживаемые C/C++ includeфайлы и подобные элементы
в других языках программирования высокого уровня помогают сократить объем повторяющегося кода, все равно за создание такого файла
отвечает сам программист. Но еще больше времени и усилий, чем первоначальное копирование, требует сопровождение программного кода
и внесение изменений в общий файл, сопровождаемое внесением изменений во все использующие его программы. Всю эту огромную работу
приходится проделывать каждый раз, когда требуется хоть чтото изменить в структуре физического хранения данных (например, добавить поле, изменить его длину или разделить один файл на два). Изменения исходного кода могут потребоваться даже в том случае, если программа
не использует модифицированные элементы. Например, изменение
длины одного поля может повлечь за собой изменение начальной позиции следующего поля, используемого программой.
СУБД, насколько возможно, освобождает программы от зависимости от физической структуры данных и сокращает количество исходного
кода, который должен повторяться в разных программах. Для этого в каждой СУБД имеется возможность определить некоторую конструкцию,
представляющую тип сущностей, с которыми работает приложение
и для которых в базе данных должны храниться значения свойств. В разных СУБД типы сущностей представлены разными конструкциями,
в частности, типами записей, сегментами, отношениями и таблицами.
В MS SQL Server тип сущности представлен SQLтаблицей. Для того
чтобы лучше ориентироваться в терминологии разных систем хранения

Университетская серия
15

1.2.  Традиционные файловые системы и СУБД