
- •Лекция 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
Службы ms sql Server Серверная часть системы
MS SQL Server реализуется в виде нескольких самостоятельных служб, каждая из которых отвечает за выполнение определённых задач:
служба SQL Server (MSSQLServer) является ядром этой СУБД, от её функционирования зависят все остальные службы; выполняет следующие основные функции:
распределяет ресурсы компьютера между пользователями;
управляет файлами баз данных и журналами транзакций;
выполняет команды языка Transact-SQL, запросы, функции и хранимые процедуры;
обеспечивает безопасность системы;
отвечает за согласованность и целостность данных, предотвращая логические проблемы;
Если данная служба не запущена, то пользователи не могут подключиться к серверу.
служба SQL Server Agent отвечает за автоматическое исполнение назначенных администратором заданий, выполняет отслеживание определённых событий и сопоставленных им заданий (например, создание резервных копий, отправка сообщения администратору о возникшей проблеме и т.п.);
служба Full-Text Filter Daemon позволяет реализовать поиск символьной информации в полях таблиц баз данных; с помощью этой службы осуществляется поиск слов и фраз, причём в результате могут быть отражены склоняемые формы глаголов и существительных;
служба Integration Services предназначена для выполнения следующих действий:
отслеживание выполнения всех пакетов служб Integration Services, выполняющихся на компьютере;
отображение в иерархическом виде пакетов и папок служб Integration Services, которые физически хранятся в разных местах;
служба Analysis Services – ядро сервера OLAP, позволяет создавать аналитические приложения;
служба Reporting Services – эта служба представляет серверный компонент, который отвечает за генерацию отчётов, предоставление их пользователям, выполнение различных служебных операций с отчётами;
служба SQL Server Browser предназначена для формирования списка доступных в сети SQL-серверов.
Клиентская часть системы
MS SQL Server поддерживает множество различных типов клиентов, каждый из которых может работать на своей аппаратной и программной платформе.
В комплект поставки MS SQL Server входят стандартные утилиты, которые могут использоваться для управления работой сервера и создания логической структуры баз данных, поддерживаемых им. Для разработки клиентского приложения могут быть использованы и различные средства разработки приложений, например, среды визуального программирования Visual Studio .Net, Visual Basic, Delphi и др.
К стандартным утилитам администрирования относятся следующие приложения.
SQL Server Configuration Manager
Предоставляет следующие возможности:
по управлению работой всех служб MS SQL Server, рассмотренных ранее – даёт возможность запустить, приостановить или полностью остановить любую из описанных выше служб, а также указать, от имени какого пользователя её следует запускать;
по определению параметров сетевых библиотек, которые обеспечивают взаимодействие с MS SQL Server – даёт возможность выбрать один или сразу несколько методов доступа к серверу:
именованные каналы (Named Pipes) – технология похожа на использование сокетов, применяется в случае недоступности протоколов TCP/IP;
стек протоколов TCP/IP (используется по умолчанию) – подходит для использования через сеть Интернет;
разделяемая память (Shared Memory) – подходит для локального использования, например, веб-приложение и MS SQL Server находятся на одном компьютере; обеспечивает максимальную скорость работу;
виртуальный интерфейсный адаптер (Virtual Interface Adapter, VIA) – используется для подключений типа сервер-сервер с применением специализированного оборудования;
по конфигурированию сетевых библиотек клиента, используемых для доступа к MS SQL Server; после настройки методов доступа к серверу, можно произвести конфигурацию клиентских протоколов; узел SQL Native Client 10.0 Configuration содержит два раздела: Client protocols и Aliases (рис. 1.3).
рис. 1.3. Окно утилиты SQL Server Configuration Manager
Начиная с MS SQL Server 2000, появилась возможность подключения к серверу при помощи нескольких протоколов, например, сначала пытаемся подключиться через Shared Memory, если не получилось, то через TCP/IP, и в последнюю очередь через Named Pipes. Для определения порядка использования протоколов используется свойство Order.
Узел Aliases позволяет создавать псевдонимы для подключения к серверу. Псевдоним (Alias) – это альтернативное имя соединения, которое может отличаться от имени сервера. При создании псевдонима можно выбрать протокол и порт, через которые следует подключаться к серверу.
SQL Server Management Studio
Утилита Management Studio позволяет выполнять следующее:
управлять настройками MS SQL Server;
конфигурировать систему безопасности: управление ролями, учётными записями, удалёнными серверами;
работать со структурой баз данных: создавать, редактировать и удалять БД и элементы БД;
управлять выполнением заданий по расписанию;
показывать текущую активность: текущие пользователи, какие объекты заблокированы, информацию о производительности.
Перед началом работы с сервером необходимо подключиться к нему, указав следующую информацию:
Server Type – следует выбрать, к какой именно службе необходимо подключится: Database Engine, Analysis Services, Report Server или Integration Services;
SQL Server – позволяет указать, к какому серверу будет осуществляться подключение; по умолчанию имя SQL Server совпадает с именем компьютера;
Authentication Type – способ аутентификации, можно выбрать Windows Authentication или SQL Server Authentication; способ Windows Authentication использует учётную запись, под которой текущий пользователь осуществил вход в Windows; SQL Server Authentication использует свою собственную систему безопасности (Рис. 1.4).
рис. 1.4. Окно соединения с SQL-сервером
Редактор запросов (Query Editor)
Для создания нового запроса к базе данных, необходимо выполнить команду New Query, вызываемую с панели инструментов Management Studio. В результате откроется новая вкладка, в которой можно писать SQL-команду (Рис. 1.5)
рис. 1.5. Главное окно приложения Management Studio с окном Редактора запросов
Management Studio позволяет открывать несколько окон запросов и работать с несколькими базами данных одновременно. В каждом окне устанавливается собственное соединение с MS SQL Server, которое описано в SQL Server Configuration Manager, на основе различных учётных записей пользователей и их паролей. Содержимое области запроса текущего подключения может быть сохранено в файле на внешнем носителе.
Способы отображения результатов запроса могут быть следующими:
Results in Text – результаты выводятся в виде обычного текста;
Results in Grid – результат выводится в виде таблицы, в которой можно изменять ширину столбцов, выделять нужные ячейки/строки/столбцы;
Results to File – аналогично Results in Text, только вывод осуществляется не на экран, а в файл.
Object Explorer
Позволяет осуществлять навигацию по базе данных: просматривать доступные объекты, выполнять запросы на просмотр содержимого таблиц, создавать скрипты для объектов и т.д. (рис. 1.6).
рис. 1.6. Панель Object Explorer
Выпадающий список баз данных
База данных, выбранная в этом списке, используется в редакторе запросов как база данных по умолчанию (рис. 1.7). Поэтому важно перед выполнением запросов, убедиться, что выбрана нужная БД. Это можно сделать либо через выпадающий список, либо при помощи команды SQL:
USE AdventureWorks2008
рис. 1.7. Окно выбора текущей базы данных
Reporting Services Configuration
Используется для конфигурации служб отчётов. MS SQL Server 2008 включает в себя встроенный web-сервер, поэтому нет необходимости в установке и настройке служб интернет-серверов IIS (Internet Information Services). Для создания отчётов используется Report Definition Language (RDL) – язык, основанный на XML.
Bulk Copy Program
Утилита командной строки, предназначенная для переноса форматированных данных большого объёма в MS SQL Server или из него. Например, отформатированные данные могут быть автоматически перенесены из обычного текстового файла в таблицу MS SQL Server.
SQL Server Profiler
Позволяет в реальном времени отслеживать выполнение всех команд. Профайлер может находить «узкие» места в базе данных, определять запросы, которые долго выполняются, и наиболее часто выполняемые запросы.
Утилита sqlcmd
Утилита командной строки, которая позволяет выполнять SQL-скрипты. Данная утилита может оказаться намного эффективнее, чем Management Studio, когда не требуется графический пользовательский интерфейс.
SQL Server Integration Services (SSIS)
Позволяет легко извлекать данные из любых источников через механизм OLE DB или провайдеров данных .NET и помещать их в таблицы MS SQL Server. Во время переноса данных к ним может быть применена трансформация.
SQL Server Business Intelligence Development Studio
Представляет особую версию Visual Studio и позволяет создавать пакеты для Integration Services, отчёты для Reporting Services и работать с проектами Analysis Services.