- •Санкт-Петербург
- •Часть I. Общие сведения о субд Microsoft sql Server 2000 5
- •Часть II. Администрирование sql Server 2000 116
- •Введение
- •Часть I. Общие сведения о субд Microsoft sql server 2000
- •1.1. Возможности sql server 2000
- •1.2. Компоненты sql server 2000
- •Утилита Server Network
- •1.3. Архитектур бдв среде sql Server 2000
- •Логические компоненты базы данных
- •Встроенные мастера sql Server 2000
- •Режимы сопоставления
- •Идентификаторы пользователей, учетные имена, роли и группы
- •Физическая структура базы данных Страницы и экстенты
- •Файлы и группы файлов баз данных
- •Протокол tds
- •Архитектура обработчика запросов
- •Архитектура памяти
- •Архитектура ввода-вывода
- •Архитектура полнотекстовых запросов
- •Организация транзакций
- •Хранилища данных и оперативная аналитическая обработка (olap)
- •Oltp-системы
- •Olap-системы
- •Архитектура разработки приложений
- •Язык баз данных
- •1.4. Инструменты программирования sql server
- •Окно Query
- •Панель Results
- •Вкладка Grids
- •Окно Object Browser
- •Окно отладчика Transact-sql
- •Окно Object Search
- •Утилита командной строки isql
- •Утилита командной строки osql
- •1.5.Язык transact - sql
- •Операторы Transact-sql
- •Язык определения данных
- •Язык управления данными
- •Язык манипулирования данными
- •Идентификаторы
- •Переменные
- •Функции
- •Встроенные функции
- •Функции получения набора строк
- •Агрегатные функции
- •Скалярные функции
- •Скалярные функции
- •Табличные функции
- •Детерминированность функций
- •Типы данных
- •Выражения
- •Использование операторов в выражениях
- •Элементы языка управления ходом выполнения
- •Обработка оператора select
- •Обработка других операторов
- •Команда go
- •Обработка пакета
- •Хранимые процедуры и триггеры
- •Исполнение хранимых процедур и триггеров
- •Сценарии Transact-sql
- •Часть II. Администрирование sql server 2000
- •2.1. Создание и управление бд sql server 2000
- •Методы создания баз данных sql Server
- •Оператор create database
- •Управление базой данных sql Server
- •Просмотр сведений о базе данных
- •Модификация базы данных
- •Настройка параметров базы данных
- •Удаление базы данных sql Server
- •2.2. Импорт и экспорт данных
- •Использование утилиты Ьср и оператора bulk insert
- •Использование различных форматов данных
- •Использование dts
- •Инструменты dts
- •Задачи dts
- •Соединения dts
- •2.3. Копирование в среде sql server 2000
- •Терминология резервного копирования
- •Резервное копирование с использованием Transact-sql
- •Полное резервное копирование базы данных
- •Резервное копирование файла или группы файлов
- •Репликация
- •2.4. Восстановление в среде sql server 2000 Определение последовательности восстановления данных
- •2.5. Репликация Процесс репликации
- •Репликация моментальных снимков
- •2.6. Проверка подлинности в sql server 2000
- •Проверка подлинности средствами Windows
- •Проверка подлинности средствами sql Server 2000
- •Сравнение типов проверки подлинности
- •Клиентские сетевые библиотеки и проверка подлинности.
- •Выбор режима проверки подлинности для sql Server 2000
- •Проверка подлинности Windows
- •Смешанный режим проверки подлинности
- •Делегирование учетной записи пользователя
- •2.7.Разрешение уровня сервера
- •Фиксированные роли базы данных
- •2.8.1. Оптимизация работы sql server 2000
- •2.8.2. Индексы
- •Назначение и структура индексов
- •2.8.1. Конфигурация сети
- •Кластерные индексы
- •Не кластерные индексы
- •Свойства индекса
- •Уникальный индекс.
- •Составной индекс
- •Коэффициент заполнения и разреженность индекса
- •Порядок сортировки
- •2.8.3. Триггеры
- •Исполнение триггеров
- •2.8.4. Хранимые процедуры
- •Производительность
- •Временные хранимые процедуры
- •Расширенные хранимые процедуры
- •Удаленные хранимые процедуры
- •2.8.5. Представления
- •2.8.6. Мониторинг
- •Утилита System Monitor
- •Утилита Task Manager
- •Утилита sql Profiler
- •Утилита sql Query Analyzer
- •Использование Transact-sql
- •Системные хранимые процедуры
- •Команды dbcc
- •Встроенные функции
- •Флаги трассировки
- •Использование snmp
- •2.9. Системы безопасности
- •Шифрование объектов
- •Список литературы
1.2. Компоненты sql server 2000
SQL Server 2000 состоит из ряда компонентов, таких, как механизм реляционных баз данных, Analysis Services и English Query. Все эти компоненты, каждый из которых играет определенную роль, работая совместно, формируют полнофункциональную реляционную СУБД
Механизм реляционных баз данных SQL Server 2000 — это современное ядро с высокой степенью масштабируемости, предназначенное для хранения данных. Механизм баз данных сохраняет данные в таблицах. Каждая таблица представляет определенный класс объектов, в зависимости от интересов конкретной организации (например, сведения о транспортных средствах, работниках или клиентах). Таблица состоит из столбцов, каждый из которых представляет атрибут объекта (например, вес, имя или стоимость), который она моделирует, и строк. Каждая строка представляет один экземпляр объекта, моделируемого таблицей (например, автомобиль с номером ABC-123 или работник с идентификационным номером ID 123456). Приложение передает механизму баз данных оператор SQL, механизм возвращает результат в виде набора данных в табличной форме. Интернет - приложение передает механизму баз данных оператор SQL или запрос XPath, а тот возвращает результат в виде документа XML. Механизм реляционных баз данных обеспечивает поддержку стандартных интерфейсов доступа к данным, таких, как ADO (ActiveX Data Objects), OLE DB и ODBC (Open Database Connectivity).
Механизм реляционных баз данных обладает высокой масштабируемостью. SQL Server 2000 Enterprise Edition поддерживает группы серверов баз данных, формирующих базы данных терабаитного объема, к которым могут обращаться тысячи пользователей одновременно. Механизм баз данных также способен динамически настраиваться путем выделения дополнительных ресурсов по мере роста числа пользователей, подключенных к базе данных, и освобождения ресурсов после отключения пользователей. Другими словами, отдельные пользователи или небольшие рабочие группы, у которых нет администраторов баз данных, могут использовать более простые редакции SQL Server. С помощью административных утилит с графическим интерфейсом из комплекта поставки продукта легко администрировать даже крупные серверы баз данных под управлением Enterprise Edition, работающие в эксплуатационном режиме.
рис. 1.1. СУБД Microsoft SQL Server
Механизм реляционных баз данных также обладает высокой степенью защиты. Аутентификацию при регистрации допустимо интегрировать с проверкой подлинности Windows, поэтому SQL Server не хранит никаких паролей и не пересылает их по сети (где их могут прочесть, используя анализаторы пакетов). На узлах разрешается задавать аудит всех пользователей, обращающихся к базе данных, соответствующий требованиям безопасности уровня С2, и применять протокол SSL (Secure Sockets Layer) для шифрования всех данных, передаваемых между приложением и базой данных.
DTS
Многим организациям для более эффективного принятия решений требуется централизация данных. Однако данные можно хранить в самых разнообразных форматах и в нескольких различных местах. DTS (Data Transformation Services) в SQL Server позволяет создавать хранилища и киоски данных путем интерактивного или автоматического импорта и передачи данных из нескольких гетерогенных источников по расписанию.
DTS SQL Server 2000 существенно повышает эффективность процесса создания хранилищ данных для оперативной аналитической обработки (Online Analytical Processing, OLAP). Кроме того, он предоставляет средства для тонкой настройки обширных баз данных для оперативной обработки транзакций (Online Transaction Processing, OLTP), в результате чего можно увеличить число одновременно работающих пользователей, активно добавляющих и модифицирующих данные. Структура баз данных OLTP такова, что они регистрируют подробности каждой транзакции. Попытка выполнить сложный анализ для определения трендов продаж за несколько месяцев или лет потребует просмотра огромного числа записей, а большая загруженность обработкой информации при этом снижает производительность баз данных OLTP.
Хранилища и киоски данных создаются в системе OLTP на основе данных, извлеченных и преобразованных в форму, которая лучше подходит для OLAP-обработки. Периодически осуществляется сбор строк с подробными данными OLTP в промежуточную базу данных, где они обобщаются, а итоговые данные помещаются в хранилище или киоск. DTS поддерживает извлечение данных из одного источника и выполнение сложных преобразований с последующим сохранением итоговых преобразованных данных в другом источнике данных. Этот компонент в значительной степени упрощает процесс извлечения данных из нескольких систем OLTP и создания на основе извлеченных данных хранилища или киоска данных для OLAP.
Analysis Services
Analysis Services предоставляет инструменты для анализа данных, которые находятся в хранилищах и киосках данных, где итоговая информация содержится в таблицах фактов. Таблица фактов — центральная таблица в схеме хранилища данных, в ней хранятся численные меры и ключи, связывающие факты с таблицами измерений. Как правило, базовая таблица фактов содержит сведения, описывающие некоторые события в бизнесе, например банковские транзакции или факты продажи продукции. Приложения работают с данными Analysis Services с помощью многомерных расширений ADO и OLE DB. Обработка запросов OLAP посредством многомерных кубов Analysis Services выполняется существенно быстрее, чем с использованием подробной информации из баз данных OLTP. В систему Analysis Services входит сервер, управляющий многомерными кубами, предназначенными для анализа. Он обеспечивает клиенту быстрый доступ к данным куба. Чтобы быстро выдавать ответы на сложные аналитические запросы, Analysis Services организует данные из хранилища в кубические массивы с помощью предварительно вычисленных агрегированных данных. Analysis Services также облегчает создание моделей извлечения информации для данных как из многомерных, так и из реляционных источников. Можно применять модели извлечения информации к обоим типам данных. Посредством службы PivotTable — компонента доступа, совместимого с OLE DB, Microsoft Excel и приложения других производителей могут получать данные с сервера и представлять их пользователю или создавать локальные кубические массивы для автономного анализа.
English Query
SQL Server 2000 English Query помогает создавать приложения, способные автоматически настраиваться в соответствии со специальными вопросами, которые задают пользователи. Администратор English Query определяет для обработчика English Query все логические связи между таблицами и столбцами базы данных или между кубическими массивами в хранилище или киоске данных. Затем пользовательское приложение может вывести специальное окно, в котором пользователю достаточно набрать символьную строку с вопросом (записанным по-английски), касающимся данных в базе или хранилище. Приложение передает эту строку обработчику English Query, который анализирует ее с учетом связей, определенных между таблицами и кубами. После этого English Query возвращает приложению оператор SQL или запрос MDX (Multi-Dimensional Expression), при исполнении которого будет получен ответ на заданный пользователем вопрос.
Посредством English Query разработчики могут преобразовывать реляционные базы данных в приложения English Query, которые позволяют конечным пользователям вместо формирования запроса с помощью оператора SQL задавать вопросы по-английски. Редактор моделей English Query находится в среде разработки Microsoft Visual Studio 6.0. При применении Visual Studio информация о базе данных задается таким образом, что English Query без труда обрабатывает вопросы относительно конкретных таблиц, полей и данных, введенные по-английски.
В English Query входят мастера, автоматически создающие проект (.eqp-файл) или модель (.eqm-файл) для приложения. После проверки проект компилируют в приложение English Query (.eqd-файл), после чего можно осуществлять его развертывание. Мастер SQL Project ускоряет процесс создания проектов English Query путем автоматического создания объектов и связей для выбранных баз данных.
Перед развертыванием приложения English Query следует выполнить его полное тестирование, чтобы убедиться, что все существующие объекты и связи возвращают точные результаты. Окно Model Test поддерживает встроенные отладочные средства, позволяющие вносить дальнейшие изменения и улучшения в проект EQ.
MetaData Services
Службы Meta Data Services из SQL Server обеспечивают хранение и управление метаданными информационных систем и приложений. Эта технология выполняет функции концентратора определений данных и компонентов, моделей разработки и развертывания, программных компонентов, предназначенных для повторного использования, и описаний хранилищ данных. Этот продукт состоит из следующих компонентов: ядра репозито-рия, инструментов, API, стандартных информационных моделей, браузера и SDK (Software Development Kit).
Meta Data Services представляет собой набор служб для управления метаданными. Для работы с Microsoft Meta Data Services необходимо разбираться в характеристиках метаданных. Метаданные описывают структуру и значение данных, а также структуру и значение приложений и процессов. Следует помнить, что метаданные — это абстракция, что у них есть контекст и они способны выполнять различные функции в среде разработки.
При разработке ПО структуры приложений и баз данных, представляющих данные или хранящих их, можно абстрагировать в схемы классификации метаданных, имеющие смысл для разработчиков и программистов. Таблица или форма являются производными некоторого объекта, который, в свою очередь, может быть производным класса.
Для метаданных существует несколько уровней абстрагирования. Можно описать экземпляр данных, затем это описание и так далее — последовательные описания описаний, пока не будет достигнут некий практический предел. Как правило, для описания метаданных, используемого в разработке ПО, имеется три уровня абстрагирования. Например, экземпляр данных «таблица займов» можно представить в виде таблицы базы данных, ту, в свою очередь — как объект «таблица», принадлежащий базе данных, и наконец, объект базы данных «таблица» — как абстрактный класс, формализующий фиксированный набор характеристик, которым должны соответствовать все производные объекты.
Отличие между данными и метаданными часто приравнивается к отличию между типом и экземпляром. Разработчик модели определяет тип (например, класс или связь), а разработчик ПО определяет экземпляр (например, класс «таблица» или связь «таблица — столбцы»).
Различие между экземпляром и типом зависит от контекста. То, что в одном сценарии является метаданными, в другом сценарии может стать данными. Например, в типичной реляционной СУБД системный каталог описывает таблицы и столбцы, содержащие данные. Можно рассматривать данные системного каталога как метаданные, поскольку они представляют собой описания определений данных. Однако, используя соответствующий программный инструмент, удается манипулировать ими, как и любыми другими данными. Так, при просмотре связей между данными, сведений о версии таблицы или идентификации всех таблиц с финансовой информацией путем поиска столбцов с типом данных «валюта» типичные метаданные (представителем которых является системный каталог) играют роль данных, которыми можно манипулировать.
Books Online
SQL Server Books Online — это электронная документация, которая поставляется с SQL Server 2000. Чтобы найти нужную информацию в SQL Server Books Online, достаточно:
просмотреть оглавление;
выполнить поиск в указателе по ключевому слову;
выполнить поиск по слову или целой фразе.
В состав SQL Server Books Online также входят справочные файлы, которые открываются при щелчке кнопки Help в диалоговом окне или при нажатии клавиши F1.
Документацию SQL Server Books Online нельзя открыть в полном объеме с компакт-диска SQL Server 2000 — прежде необходимо установить ее на локальный жесткий диск. Раздел вводного руководства по Microsoft SQL Server 2000, посвященный установке, не включает сведения о некоторых изменениях, произошедших после того, как руководство уже было отпечатано. Они внесены в SQL Server Books Online в справочном файле программы установки SQL Server.
Чтобы установить на жесткий диск только документацию SQL Server Books Online, надо выполнить выборочную установку компонентов SQL Server 2000 и выделить только компонент Books Online. Он представляет собой набор справочных файлов в формате HTML, для просмотра которых необходим Microsoft Internet Explorer версии 5.0 или более поздней. Его можно загрузить с узла http://www.microsoft.com/windows/ie/.
В состав SQL Server 2000 входит множество утилит как с графическим интерфейсом, так и работающих в командной строке. Они предназначены для пользователей, программистов и администраторов и позволяют решать широкий круг задач, в том числе:
администрировать и конфигурировать SQL Server;
определять информацию каталога для копии SQL Server;
конструировать и тестировать запросы;
копировать, импортировать, экспортировать и преобразовывать данные;
выводить диагностическую информацию;
запускать и останавливать SQL Server.
Утилиты командной строки автоматически устанавливаются во время установки SQL Server 2000 на компьютер под управлением Windows 2000, Windows NT, Windows 95 или Windows 98. В следующей таблице перечислены утилиты командной строки SQL Server и указаны папки, в которые они устанавливаются по умолчанию. Обратите внимание, что копия SQL Server 2000 по умолчанию устанавливается в подкаталог с именем MSSQL. Каждый именованный экземпляр SQL Server 2000 будет установлен в соответствующую папку с именем М?>?>0\Л<имя_экземпляра>.
Утилиты
console
sqlagent
sqldiag
sqlmaint
sqlservr
vswitch x :\Program Files\Microsoft SQL Server\MSSQL\Binn
bcp
dtsran
dtswiz
isql
isqlw
itwiz
odbccmpt
osql
rebuildm
sqlftwiz x:\Program Files\Microsoft SQL Server\80\Tools\Binn
distrib
logread
replmergsnapshot x:\Program Files\Microsoft SQL Server\80\Com
Во время установки путь к папке x:\Program Files\Microsoft SQL Server\80\Tools\Binn добавляется к системному пути. Утилиты, расположенные в этой папке, можно запускать из командной строки, находясь в любом месте дерева каталогов. Утилиту, расположенную вне этой папки, необходимо запускать либо из того каталога, в котором она установлена, либо добавить путь к этому каталогу к пути поиска ОС.
Три указанные ниже утилиты больше не устанавливаются программой установки SQL Server 2000:
makepipe;
odbcping;
readpipe.
При необходимости их можно запустить из папки \x86\Binn на установочном компакт-диске SQL Server 2000 или вручную скопировать на компьютер. Описание любой утилиты командной строки из SQL Server 2000 вы найдете в SQL Server Books Online.
В состав SQL Server 2000 входит богатый набор инструментов с графическим интерфейсом, предназначенных для работы с SQL Server и его администрирования. В этом разделе кратко описаны многие из них. Кроме того, информация обо всех инструментах с графическим интерфейсом есть в Books Online.
Enterprise Manager
SQL Server Enterprise Manager — основной инструмент администрирования SQL Server 2000, поддерживающий пользовательский интерфейс, совместимый с ММС (Microsoft Management Console) и позволяющий решать ряд административных задач:
определять группы серверов, работающих под управлением SQL Server;
регистрировать отдельные серверы в группе;
настраивать любые параметры SQL Server для всех зарегистрированных серверов;
создавать и администрировать любые базы данных, объекты, идентификаторы пользователей, учетные имена и права доступа к SQL Server на каждом из зарегистрированных серверов;
определять и исполнять все административные задачи SQL Server на каждом зарегистрированном сервере;
интерактивно конструировать и тестировать операторы SQL, пакеты и сценарии, вызывая SQL Query Analyzer;
вызывать различные мастера SQL Server.
ММС поддерживает общий интерфейс для управления различными серверными приложениями в сети Microsoft Windows. В состав серверных приложений входит такой компонент, как оснастка, который предоставляет пользователям ММС интерфейс для управления серверным приложением. SQL Server Enterprise Manager является оснасткой ММС для Microsoft SQL Server 2000.
SQL Server Agent
SQL Server Agent работает на сервере, который функционирует под управлением экземпляра SQL Server 2000 или более ранних версий SQL Server. SQL Server Agent отвечает за решение следующих задач:
запуск заданий SQL Server, запланированных для исполнения в определенное время или по истечении определенного периода времени;
определение особых условий, при наступлении которых необходимо выполнить заданное администратором действие, например предупредить кого-нибудь, отправив сообщение на пейджер или по электронной почте, или запустить задачу, соответствующую этим условиям;
запуск определенных администраторами задач, выполняющих репликацию.
SQL Profiler
SQL Profiler — это инструмент для записи событий SQL Server 2000. События сохраняются в файле трассировки, который впоследствии можно проанализировать или использовать для повтора некоторой последовательности действий при диагностировании возникшей проблемы. SQL Profiler применяемся для:
• пошагового исполнения проблемах запросов и определения источника проблемы;
поиска и диагностики медленных запросов;
записи последовательностей SQL-операторов, приводящих к возникновению проблем;
мониторинга производительности SQL Server и регулирования его загруженности.
SQL Profiler также поддерживает аудит действий, выполненных с экземплярами SQL Server. Информация о действиях, имеющих отношение к безопасности, сохраняется для последующего просмотра администратором, отвечающим за безопасность. Утилита Client Network
Client Network используется для управления клиентскими библиотеками Net-Libraries и определения псевдонимов серверов. Кроме того, эта утилита позволяет устанавливать параметры по умолчанию, которые используются приложениями DB-Library.
Большинству пользователей утилита Client Network никогда не понадобится. Для подключения к SQL Server 2000 им достаточно указать сетевое имя сервера, на котором работает SQL Server, и (что не обязательно) имя экземпляра SQL Server.
