Книги серии «Сертификационный экзамен — экстерном» представляют собой удобные, сжатые, хорошо структурированные конспекты для подготовки к сдаче сертификационных экзаменов на звание Microsoft Certified Systems Engineer. Книга «Database Design on SQL Server 7 (экзамен 70-029)» не содержит ничего лишнего, только то, что действительно необходимо: фактический материал, типовые экзаменационные вопросы с разбором ответов и тестовый экзамен для самопроверки. Кроме того, вы найдете в ней советы по стратегии и тактике сдачи экзамена. Серия «Сертификационный экзамен — экстерном» — настоящая находка для преподавателей, которые смогут рекомендовать ее слушателям в качестве пособия для самостоятельной работы и тренировки. Книга не потеряет актуальности и после успешной сдачи экзамена: она поможет в нужный момент освежить в памяти необходимые сведения. Книги серии «Сертификационный экзамен — экстерном» рекомендованы представительством корпорации «Майкрософт» в Москве в качестве учебного пособия для подготовки к экзаменам на звание MCSE.
СОДЕРЖАНИЕ
Благодарности
Об авторах
Введение
Программа «Сертифицированный профессионал Microsoft» (MCP)
Сдача сертификационного экзамена
Получение статуса MCP
Как подготовиться к экзамену
Об этой книге
Как использовать эту книгу
Особенности сертификации в России
Цели сертификации
Подготовка к экзаменам
Сдача экзамена
После экзамена
Тенденции сертификации
Оцените свою готовность
MCSE в реальной жизни
Идеальный кандидат в MCSE
Проверьте себя с помощью теста
Ваше образование
Практический опыт
Проверка вашей готовности к экзамену
Оценка вашей готовности к экзамену 70-029
Пора в бой
Глава 1 Сертификационные экзамены Microsoft
Оценка вашей готовности к экзамену
Как проходит тестирование
Внешний вид тестов
Стратегия сдачи экзаменов с фиксированным числом вопросов
Стратегия сдачи адаптивных экзаменов
Азбука сдачи экзамена
Стратегия работы с вопросами
Готовьте себя к победе
Дополнительные ресурсы
Борьба с изменениями в Web
Глава 2 Модели данных
Общие сведения
Базы данных с обработкой транзакций
Базы данных с принятием решений
Логическая фаза
Сбор требований
Моделирование объектов
Сущности
Атрибуты
Сущности и данные
Ключи
Отношения
Нормализация
Целостность данных
Деловые правила
Физическая модель
Преобразование логической модели в физическую
Денормализация
Быстродействие
Удобство сопровождения
Безопасность
Графическая утилита SQL Server Enterprise Manager
Примеры экзаменационных вопросов
Дополнительная информация
Глава 3 Системные базы данных, таблицы и хранимые процедуры
Системные базы данных
master
tempdb
model
msdb
Местонахождение файлов
Системные таблицы
Системные хранимые процедуры
Системные хранимые процедуры, определяемые администратором
Примеры экзаменационных вопросов
Дополнительная информация
Глава 4 Базы данных и файлы
Общие сведения о базах данных
Файлы базы данных
Группы файлов
Проблемы файлов и групп
Устройства
Создание базы данных
Модификация баз данных
Удаление базы данных
Смена владельца базы данных
Переименование баз данных
Команда ALTER
Уменьшение размера баз данных вручную
Настройка параметров баз данных
Просмотр сведений о базе данных
Enterprise Manager
Использование баз данных
Примеры экзаменационных вопросов
Дополнительная информация
Глава 5 Определение данных
Создание таблиц
Имена таблиц
Столбцы
Типы данных
NULL/NOT NULL
Уникальные идентификаторы
Столбцы счетчика
ROWGUIDCOL
Ограничения
PRIMARY KEY
FOREIGN KEY
CHECK
Значения по умолчанию
Вычисляемые столбцы
Модификация таблиц
Дополнение таблиц
Удаление из таблиц
Модификация столбцов
Временные таблицы
Локальные временные таблицы
Глобальные временные таблицы
Удаление таблиц
Примеры экзаменационных вопросов
Дополнительная информация
Глава 6 Выборка данных
Структура команды SELECT
Список выборки
Секция FROM
Псевдонимы таблиц
Уточнение имен объектов
Секция WHERE
Секция IN
Секция LIKE
Секция BETWEEN
Ключевое слово NOT
Проверка NULL
Секция GROUP BY
CUBE и ROLLUP
Секция HAVING
Секция ORDER BY
COMPUTE
Функции
Скалярные функции
Агрегатные функции
Функции наборов записей
Объединение таблиц
Ортогональные объединения
Внутренние объединения
Внешние объединения
Расширенные объединения TSQL
Объединения ANSI
Подзапросы
UNION
Секция TOP
Выборка данных из столбцов типа TEXT и IMAGE
Примеры экзаменационных вопросов
Дополнительная информация
Глава 7 Модификация данных в таблицах
INSERT
Основные сведения об INSERT
@@ROWCOUNT
Вставка отдельной записи
Вставка нескольких записей
SELECT INTO
BULK INSERT
UPDATE
Работа с типами данных TEXT и IMAGE
Модификация данных с использованием представлений
Примеры экзаменационных вопросов
Дополнительная информация
Глава 8 Конфигурация сеанса
Команда SET
Команды даты/времени
Команды блокировки
Разные команды
Команды выполнения запросов
Команды настройки SQL-92
Команды вывода статистики
Команды транзакций
Просмотр пользовательских параметров конфигурации
DBCC USEROPTIONS
@@OPTIONS
Пользовательские параметры конфигурации по умолчанию
Примеры экзаменационных вопросов
Дополнительная информация
Глава 9 Индексы
Кластерные и некластерные индексы
Механизмы реализации кластерных индексов
Механизмы реализации некластерных индексов
Создание индексов
Управление индексами
Некоторые сведения об индексах
Примеры экзаменационных вопросов
Дополнительная информация
Глава 10 Правила, представления и значения по умолчанию
Правила
Связывание правила со столбцом
Ограничения для правил
Значения по умолчанию
Связывание значения по умолчанию со столбцом
Ограничения для значений по умолчанию
Представления
Представления: вертикальная защита данных
Представления: горизонтальная защита данных
Упрощение SQL-кода с помощью представлений
Представления и команды INSERT, UPDATE, DELETE
WITH CHECK OPTION
Получение информации о представлениях
ALTER VIEW
Некоторые сведения о представлениях
Примеры экзаменационных вопросов
Дополнительная информация
Глава 11 Программирование на Transact-SQL
Пакеты
Комментарии
Переменные
Локальные переменные
Глобальные переменные
Команды T-SQL
Команда PRINT
RAISERROR
Команды условного выполнения
Циклы WHILE
GOTO
RETURN
SET
Курсоры
Последовательность действий с курсорами
Типы курсоров T-SQL
Работа с курсорами в T-SQL
Хранимые процедуры
Примеры экзаменационных вопросов
Дополнительная информация
Глава 12 Триггеры
Использование триггеров
Срабатывание триггеров
Создание триггеров
Удаление триггеров
Модификация триггеров
Таблицы deleted и inserted
Просмотр таблиц deleted и inserted
Вставка и удаление нескольких записей
Проверка столбцов при модификации
Триггер вставки
Условный триггер вставки
Триггер обновления
Триггеры в транзакциях
Использование точек сохранения в триггерах
Вложенные триггеры
Просмотр триггеров
Примеры экзаменационных вопросов
Дополнительная информация
Глава 13 Транзакции
Природа транзакций
Команды управления транзакциями
Последовательность выполнения транзакций
Ограничения транзакций
Распределенные транзакции
Журнал транзакций
Последовательность событий при регистрации транзакций
Контрольные точки
Блокировка в транзакциях
Уровни изоляции ANSI-92
Уровень изоляции по умолчанию
Расширение блокировок
Некоторые сведения о блокировках
Переопределение блокировок на уровне запросов
Выбор уровня блокировки для индексов
Примеры экзаменационных вопросов
Дополнительная информация
Глава 14 Импорт, экспорт и преобразование данных
BCP
Запуск BCP
Data Transformation Service
Компоненты DTS
Преобразование данных
Утилита dtswiz
Примеры экзаменационных вопросов
Дополнительная информация
Глава 15 Полнотекстовый поиск
Поиск для данных типа TEXT
Подготовка к полнотекстовому поиску
Создание индекса для полнотекстового поиска
Построение полнотекстового индекса
Регистрация таблиц для полнотекстового поиска
Регистрация столбцов для полнотекстового поиска
Активизация таблицы для полнотекстового индекса
Запуск индекса
Выполнение полнотекстовых запросов
Полнотекстовые запросы
CONTAINS
FREETEXT
Примеры экзаменационных вопросов
Дополнительная информация
Глава 16 Диагностика и сбор данных
SHOWPLAN
SHOWPLAN_TEXT
SHOWPLAN_ALL
Обновление статистики
Sp_updatestats
Sp_autostats
Диагностика и решение проблем блокировки
Взаимные блокировки
dbcc showcontig
SQL Server Profiler
Примеры экзаменационных вопросов
Дополнительная информация
Глава 17 Удаленный доступ к данным
RPC
Распределенные запросы
Связанный сервер
Функция OPENQUERY
Незапланированные распределенные запросы
Преобразования данных
Ограничения распределенных запросов
Распределенные транзакции
Диспетчер ресурсов
Диспетчер транзакций
Двухфазовое закрепление
SQL Server в распределенных транзакциях
BEGIN DISTRIBUTED TRANSACTION
Примеры экзаменационных вопросов
Дополнительная информация
Глава 18 Пример экзамена
Вопросы, вопросы, вопросы
Выбор правильных ответов
Интерпретация неоднозначного текста
Тактика ответа на вопросы
Что следует запоминать
Подготовка к экзамену
На экзамене
Глава 19 Ответы на вопросы экзамена
Приложение А База данных Pubs
Приложение Б Функции
Приложение В Синтаксис Transact-SQL
Условные обозначения
BCP
BULK INSERT
Операторы сравнения
Команда SELECT
Секция FROM
Секция WHERE
CASE
Курсоры
Обработка данных
Определение таблиц
Индексы
Правила и значения по умолчанию
Базы данных: создание, модификация, удаление
Вывод сообщений
Полнотекстовый поиск
Безопасность
Команды SET
Хранимые процедуры
Таблицы и представления
Транзакции и блокировка
Триггеры
Обновление статистики
Пользовательские типы данных
Команды WRITETEXT и UPDATETEXT
Глоссарий
Центры обучения и сертификации в СНГ
Алфавитный указатель
ОТРЫВОК
Глава 14. Импорт, экспорт и преобразование данных
BCP
Запуск BCP
Data Transformation Service
Компоненты DTS
Преобразование данных
Утилита dtswiz
Примеры экзаменационных вопросов
Дополнительная информация
Ключевые термины
Импорт
Экспорт
Преобразование
Утилита dtswiz
Необходимые знания и приемы
Использование программы BCP
Использование Data Transformation Service
При работе с базой данных необходимо иметь возможность как внести в нее новые данные, так и извлечь уже существующие данные. В SQL Server существует несколько способов импорта и экспорта данных в базах. Термин «импорт» означает загрузку данных в базу, а «экспорт» - перенос данных из базы. Кроме того, данные можно преобразовать из одного формата в другой. В этой главе рассматриваются импорт и экспорт данных SQL Server с помощью программ BCP (Bulk Copy Program) и DTS (Data Transformation Service).
BCP
Программа bcp.exe (BCP) предназначена для импорта и экспорта данных из таблиц баз данных SQL Server. Она устанавливается во время установки SQL Server и находится в подкаталоге binn основного каталога SQL Server.
ВНИМАНИЕ Данные, загружаемые в SQL Server, считаются импортированными. Когда BCP копирует данные в базу из файла (при осуществлении импорта), данные присоединяются к существующим таблицам. При копировании данных из базы в файл (экспорте) BCP стирает все текущее содержимое файла.
Программа BCP способна читать и записывать данные в нескольких форматах. Различные форматы, используемые BCP, будут перечислены при описании параметров. Наиболее распространенным форматом в SQL Server является символьный формат с разделением полей запятыми.
Примечание Если предыдущие версии bcp.exe подключались к SQL Server через DB-library, то BCP версии 7 использует для этой цели ODBC.
При загрузке данных в таблицу базы данных с помощью BCP таблица должна заранее существовать в базе. Кроме того, для нее необходимо иметь разрешения на вставку и выборку данных. Количество и порядок полей в файле не обязательно должны совпадать со структурой таблицы. Однако в том случае, если между ними существуют отличия, необходимо использовать файл форматирования. В файле форматирования перечисляются импортируемые и экспортируемые столбцы, их порядок, длина и символы-разделители столбцов. Более того, типы данных файла форматирования должны быть совме
стимы с типами данных столбцов. В первой строке файла форматирования указывается номер версии BCP, а во второй - количество импортируемых или экспортируемых столбцов. Остальные строки файла форматирования содержат группы из семи полей в следующем порядке:
Позиция поля в файле данных.
Тип данных поля.
Длина префикса (0, 1, 2 или 4).
Максимальная длина поля в файле данных.
Разделитель полей (обычно используется символ табуляции \t).
Номер столбца в таблице SQL Server.
Имя столбца в таблице SQL Server. Не обязательно должно совпадать с настоящим именем столбца.
Поведение BCP при импорте и экспорте данных зависит от множества параметров. Синтаксис запуска утилиты BCP показан в листинге 14.1.
Листинг 14.1. Синтаксис BCP
bcp [[имя_базы.][владелец].]имя_таблицы
{in | out | format} файл_данных
[-m максимум_ошибок] [-f файл_форматирования] [-e файл_ошибок]
[-F первая_запись] [-L последняя_запись] [-b размер_пакета]
[-n] [-c] [-w] [-N] [-6] [-q] [-C кодовая_страница]
[-t разделитель_полей] [-r разделитель_записей]
[-i входной_файл] [-o выходной_файл] [-a размер_сетевого_пакета]
[-S имя_сервера] [-U имя_пользователя] [-P пароль]
[-T] [-v] [-k] [-E] [-h "рекомендация [,...n]"]
Для каждого параметра BCP существует эквивалентный параметр команды BULK INSERT.
ВНИМАНИЕ Если параметр содержит какие-либо специальные символы, он должен заключаться в кавычки. Например:
bcp pubs..authors out au.dat -U"My Account"
Ниже перечислены параметры BCP:
IN|OUT|FORMAT - действие, выполняемое BCP. Если задан параметр FORMAT, утилита создает файл форматирования и не осуществляет импорт или экспорт данных. При использовании параметра FORMAT необходимо также задать параметр -f. Если при выборе действия FORMAT не заданы параметры -n, -c, -w, -6 или -N, BCP предлагает ввести информацию о формате.
-m - максимальное количество ошибок. Записи, содержащие ошибки, игнорируются. По умолчанию этот параметр равен 10.
-f - файл форматирования, позволяющий BCP более точно определять вид загружаемых или экспортируемых данных. Если при задании файла форматирования не указано действие FORMAT, файл форматирования должен уже существовать.
-e - файл ошибок. В этот файл записываются все сообщения об ошибках и записи, которые стали причиной ошибок.
-F - первая запись при пакетном копировании. По умолчанию копируются все записи от первой до последней.
-L - последняя запись при пакетном копировании. По умолчанию копируются все записи от первой до последней.
-b - размер пакета (количество записей, образующих один пакет при пакетном копировании). По умолчанию копируется весь файл. Для каждого пакета BCP создает новую транзакцию. Если пакетное копирование по какой-либо причине завершается аварийно, все вставки записей в текущем пакете откатываются. Параметр -b не следует использовать в сочетании с параметром -h "ROWS_PER_BATCH = bb".
-n - при пакетном копировании используются исходные типы данных (определенные в базе).
-c - все данные преобразуются к символьному типу. Данные сохраняются в типе char без префиксов. В качестве разделителя полей используется символ табуляции (\t), а в качестве разделителя записей - символ перевода строки (\n).
-w - все данные преобразуются в кодировку Unicode. Данные сохраняются в типе nchar без префиксов. В качестве разделителя полей используется символ табуляции (\t), а в качестве разделителя записей - символ перевода строки (\n). Параметр -w не используется в SQL Server 6.5 и более ранних версиях.
-N - для символьных данных используется кодировка Unicode, а для прочих данных - исходный тип (определенный в базе). По сравнению с -w этот параметр обеспечивает более высокое быстродействие; он предназначен для передачи данных из одного экземпляра SQL Server в другой через файл. Не используется в SQL Server 6.5 и более ранних версиях.
-6 - в ходе пакетного копирования используются типы данных SQL Server 6 или 6.5. Параметр используется совместно с параметрами -c и -n для загрузки данных, сгенерированных прежними версиями BCP.
-q - параметр сообщает о том, что имя таблицы содержит специальные символы. В этом случае полное имя таблицы должно заключаться в кавычки (").
-C - кодировка, используемая для символьных данных. Влияет на столбцы, содержащие символы с кодами больше 127 или меньше 32.
-t - разделитель полей. По умолчанию используется символ табуляции (\t).
-r - разделитель записей. По умолчанию используется символ перевода строки (\n).
-i - имя входного файла ответов. В этом файле перечисляются ответы на вопросы, которые могут возникнуть по каждому полю при выполнении пакетного копирования без параметров -n, -c, -w, -6 или -N или без имени входного файла.
-o - имя файла, в который BCP направляет выходные данные.
-a - размер сетевого пакета. Параметр принимает значения от 4096 до 65 535 байт (по умолчанию равен 4096). Увеличение размера сетевого пакета может повысить быстродействие BCP. Если запрашиваемый размер сетевого пакета слишком велик и не может быть предоставлен, используется значение по умолчанию.
-S - параметр приказывает SQL Server подключиться через сеть. По умолчанию используется локальный сервер. Параметр необходим при запуске BCP с удаленного компьютера в сети.
-U - имя пользователя (login) при подключении к SQL Server. По умолчанию используется имя текущего пользователя.
-P - пароль для указанного имени пользователя. Если данный параметр отсутствует и при этом не указан параметр -T, BCP запрашивает пароль. Если -P завершает список параметров и за ним не следует пароль, BCP использует пароль по умолчанию, который представляет собой значение NULL.
-T - приказывает BCP подключиться к SQL Server по доверенному соединению с использованием атрибутов аутентификации сетевого пользователя. Ни имя пользователя, ни пароль при этом не нужны.
-v - выводит номер версии и лицензионную информацию для программы BCP и завершает ее.
-k - при пакетной вставке пустые столбцы заполняются значениями типа NULL вместо значений по умолчанию.
-E - параметр сообщает, что в импортируемом файле присутствуют столбцы счетчика. Если параметр -E не задан, импортируемый файл не должен содержать значения для этих столбцов, поскольку SQL Server автоматически присваивает им уникальные значения. При отсутствии параметра -E SQL Server берет значения столбцов счетчика из файла данных.
-h - определяет рекомендации (hints) для оптимизатора, используемые в процессе пакетного копирования данных в таблицу. Допустимые рекомендации оптимизатора BCP перечислены в табл. 14.1.
Таблица 14.1. Рекомендации оптимизатора BCP
Запуск BCP
При копировании данных (импортировании или экспортировании) с параметрами -n или -c BCP запрашивает только пароль (при условии, что он не был передан с параметром -P). Если в командной строке не используются ни параметр -n, ни параметр -c, BCP запрашивает информацию о каждом поле в таблице. При каждом запросе в квадратных скобках выводится значение по умолчанию, которое можно принять нажатием клавиши Enter. Запрашивается следующая информация:
тип данных в файле (может быть символьным или любым допустимым типом данных SQL Server);
длина префикса в байтах;
объем данных в файле;
разделитель поля (любая символьная строка).
После ответов на вопросы о каждом поле утилита BCP спрашивает, хотите ли вы сохранить сведения о формате в файле.
ВНИМАНИЕ Вы можете одновременно выполнить несколько операций пакетного копирования, запуская несколько экземпляров BCP для одной таблицы. Это возможно лишь в том случае, если выполняются все требования пакетного копирования без регистрации в журнале (установлен флаг SELECT INTO/BULKCOPY базы данных, таблица не имеет триггеров и не участвует в репликации) и если таблица не имеет индексов.
Data Transformation Service
DTS (Data Transformation Service) используется для импортирования, экспортирования и преобразования данных между несколькими разнородными источниками данных. DTS может использоваться для любого источника данных, с которым можно работать через OLE DB. Если для этого источника данных отсутствует драйвер OLE DB, можно воспользоваться драйвером OLE DB для ODBC.
Data Transformation Service использует мастера DTS (DTS Wizard) для создания DTP (Data Transformation Package). Запуск DTP выполняет преобразование данных. DTS можно вызвать непосредственно из SQL Server Enterprise Manager, запустить программу dtswiz.exe или обратиться к DMO (Distributed Management Object).
Компоненты DTS
DTS состоит из четырех компонентов:
мастер импорта (Import Wizard);
мастер экспорта (Export Wizard);
конструктор пакетов (Package Designer);
программные COM-интерфейсы.
Все компоненты кратко описаны в следующих разделах.
DTS Import Wizard
Мастер импорта руководит вашими действиями по импорту данных в базу SQL Server. Выполните следующие действия:
1. Запустите DTS Import Wizard и нажмите кнопку Next.
2. В следующем окне выберите источник данных, содержащий импортируемые данные. Затем введите все параметры, необходимые для подключения (параметры зависят от источника данных). Нажмите кнопку Next.
3. В следующем окне выберите приемник данных и введите параметры, необходимые для подключения. Нажмите кнопку Next.
4. На следующем экране выберите команду Copy Tables (выбор копируемых таблиц) или Use Query (ввод команды SQL, определяющей копируемые данные). Нажмите кнопку Next.
5. Если в предыдущем окне была выбрана команда Copy Tables, появляется окно для выбора копируемых таблиц. Если была выбрана команда Use Query, вам придется либо вручную ввести запрос в следующем окне, либо воспользоваться услугами конструктора запросов Query Builder (запускается кнопкой Query Builder). Нажмите кнопку Next.
6. Выберите нужное действие - запустить пакет, сохранить пакет, создать пакет для репликации или запланировать выполнение пакета. Нажмите кнопку Next. Если вы решили запустить пакет, появляется окно, в котором выводится статус выполнения. В случае сохранения пакета вам будет предложено ввести имя и описание пакета, а также сведения о сервере.
7. В следующем окне нажмите кнопку Finish, чтобы выполнить все выбранные действия.
DTS Export Wizard
Мастер экспорта руководит вашими действиями по экспорту данных из базы SQL Server. Выполните следующие действия:
1. Запустите DTS Export Wizard и нажмите кнопку Next.
2. В следующем окне выберите источник данных, содержащий экспортируемые данные. Введите все параметры, необходимые для подключения. Нажмите кнопку Next.
3. В следующем окне выберите приемник данных и введите параметры, необходимые для подключения. Нажмите кнопку Next.
4. На следующем экране выберите команду Copy Tables или Use Query. Нажмите кнопку Next.
5. Если в предыдущем окне была выбрана команда Copy Tables, появляется окно для выбора копируемых таблиц. Если была выбрана команда Use Query, вам придется либо вручную ввести запрос в следующем окне, либо воспользоваться услугами конструктора запросов Query Builder (запускается кнопкой Query Builder). Нажмите кнопку Next.
6. Выберите нужное действие - запустить пакет, сохранить пакет, создать пакет для репликации или запланировать выполнение пакета. Нажмите кнопку Next. Если вы решили запустить пакет, появляется окно, в котором выводится статус выполнения. В случае сохранения пакета вам будет предложено ввести имя и описание пакета, а также сведения о сервере.
7. В следующем окне нажмите кнопку Finish, чтобы выполнить все выбранные действия.
DTS Package Designer
Конструктор пакетов предназначен для графического конструирования пакетов DTS. Пакет DTS определяет последовательность действий, выполняемых в процессе преобразования данных. В простейшем случае пакет DTS содержит одно действие по импорту или экспорту, определенное мастерами импорта или экспорта. Конструктор пакетов является частью SQL Server Enterprise Manager. Он позволяет сохранить пакет DTS в базе данных MSDB SQL Server, в Microsoft Repository или в структурированном файле COM. Более того, пакет DTS можно запланировать для последующего выполнения.
Программные COM-интерфейсы
COM-интерфейсы предназначены для создания и выполнения пакетов DTS. С COM-интерфейсами можно работать в любом языке программирования с поддержкой OLE Automation. Они позволяют создавать специализированные приложения, использующие пакеты DTS и объекты Data Pump.
Преобразование данных
Одной из самых полезных возможностей DTS является преобразование данных. В процессе преобразования DTS определяет набор операций, выполняемых с данными при передаче в приемник. Новые значения вычисляются по одному или нескольким полям источника. Преобразование позволяет организовать сложную проверку, чистку и дополнение данных в процессах экспортирования или импортирования.
ВНИМАНИЕ DTS копирует только структуру данных и сами данные. Другие объекты баз данных (триггеры, хранимые процедуры, правила, значения по умолчанию, ограничения и пользовательские типы данных) не преобразуются. При работе с мастерами импорта и экспорта DTS можно определить взаимную привязку столбцов, а также ввести информацию о преобразованиях.
Отображения столбцов
В окне Column Mappings (рис. 14.1) определяется структура таблиц, в которую передаются данные, а также соответствия между столбцами источника и приемника.
DTS позволяет создать таблицы-приемники, а также удалять и заново создавать существующие таблицы. Если создание таблицы-приемника не является частью операции DTS, можно удалить содержимое существующей таблицы или присоединить новые данные к уже существующим.
Как видно из рис. 14.1, окно Column Mappings позволяет указать, какое поле источника соответствует каждому полю приемника. Кроме того, для каждого выходного столбца можно изменить тип данных, разрешить или запретить значения типа NULL, а также задать размер и точность. Кнопка Edit SQL (рис. 14.2) позволяет ввести команду SQL для таблицы-приемника.
Преобразования
В окне Transformations (рис. 14.3) можно непосредственно скопировать столбцы источника в столбцы приемника или задать сценарий, который будет выполняться DTS для преобразования данных.
Если выбрать непосредственное копирование данных, в окне Advanced Transformation Options можно задать значения дополнительных флагов, управляющих процессом преобразования. Флаги, устанавливаемые в этом окне, перечислены в табл. 14.2.
Как правило, эти флаги обеспечивают все необходимые функциональные возможности. Если вам потребуется более сложное преобразование, установите переключатель Transfer Information на вкладке Transformations и выберите тип сценария (Java Script, Perl Script или Visual Basic Script). Для каждого типа DTS генерирует сценарий по умолчанию. В листинге 14.2 приведен пример сценария, написанного на Visual Basic.
Листинг 14.2. Сценарий преобразования данных, написанный на Visual Basic
'***************************************************************
' Visual Basic Transformation Script
' Copy each source column to the
' destination column
'***************************************************************
Function Transform()
DTSDestination("au_id") = DTSource("au_id")
DTSDestination("au_lname") = DTSource("au_lname")
DTSDestination("au_fname") = DTSource("au_fname")
DTSDestination("au_lname") = DTSource("au_lname")
DTSDestination("address") = DTSource("address")
DTSDestination("city") = DTSource("city")
DTSDestination("state") = DTSource("state")
DTSDestination("zip") = DTSource("zip")
DTSDestination("contract") = DTSource("contract")
Transform = 1
End Function
Утилита dtswiz
Утилита dtswiz запускает процесс преобразования данных в режиме командной строки. Параметры dtswiz определяют данные, вводимые в окнах импорта, экспорта и преобразования данных DTS. При вызове утилиты dtswiz используется следующий синтаксис:
dtswiz [/f имя_файла] [/i | /x] [/r имя_провайдера]
[/s имя_сервера] [/u имя_пользователя] [/p пароль] [/n]
[/d имя_базы] [/y]
Ниже приведены краткие описания каждого параметра:
/f - структурированный файл COM для хранения пакета DTS, построенного мастером.
/i - импорт данных в SQL Server.
/x - экспорт данных из SQL Server.
/r - имя провайдера для подключения к источнику (при импорте) или к приемнику (при экспорте).
/s - определяет сервер для экспорта или импорта данных. Если вы хотите перенести данные с одного экземпляра SQL Server на другой, один из серверов должен быть сконфигурирован как источник данных ODBC, а имя сервера, имя и пароль пользователя, а также база данных должны быть объявлены в настройках ODBC.
/u - имя пользователя при регистрации в SQL Server.
/p - пароль для регистрации в SQL Server.
/n - доверенное подключение - параметры /u и /p не используются.
/d - база данных SQL Server.
/y - программа dtswiz скрывает системные таблицы и базы данных.
Примеры экзаменационных вопросов
Question 1
DTS Export wizard allows you to perform which of the following ? [Check all correct answers]
A. Migrate data from a SQL Server to another SQL Server.
B. Migrate data from a SQL Server to any ODBC data source.
C. Migrate data from Oracle to SQL Server.
D. Migrate data from a SQL Server to Oracle.
E. None of the above.
Вопрос 1
Что из перечисленного можно делать с помощью мастера экспорта DTS? [Выберите все правильные ответы]
A. Перенос данных из одного экземпляра SQL Server в другой экземпляр SQL Server.
B. Перенос данных из SQL Server в любой источник данных ODBC.
C. Перенос данных из Oracle в SQL Server.
D. Перенос данных из SQL Server в Oracle.
E. Ничего из перечисленного.
Правильные ответы - A, B, C и D. Хотя мастер называется «мастером экспорта», он позволяет импортировать данные из базы SQL Server в любой источник данных OLE DB. К этой категории относятся и источники данных ODBC. Ответ E неверен, поскольку в списке присутствуют правильные ответы.
Question 2
What option is used to direct BCP to redirect the errors to a file?
A. -e
B. -o
C. -m
D. -f
E. None of the above.
Вопрос 2
Какой параметр приказывает BCP осуществлять запись всех ошибок в файл?
A. -e
B. -o
C. -m
D. -f
E. Ни один из перечисленных параметров.
Правильный ответ - A; в BCP для записи ошибок в файл используется параметр -e имя_файла. Ответ B неверен, поскольку параметр -o работает с данными на выходе BCP, а не с ошибками. Ответ C неверен - параметр -m ограничивает максимальное количество ошибок, допускаемых BCP до аварийного завершения. Ответ D тоже неверен, поскольку параметр -f определяет первую импортируемую или экспортируемую запись. Правильный ответ присутствует в списке, поэтому ответ E тоже неверен.
Question 3
What dtswiz parameter can be used to specify what login to use when connecting to a SQL Server? [Check all correct answers]
A. -n
B. -u
C. -I
D. U
E. None of the above.
Вопрос 3
Какой параметр dtswiz определяет входное имя, используемое при подключении к SQL Server? [Выберите все правильные ответы]
A. -n
B. -u
C. -I
D. U
E. Ни один из перечисленных параметров.
Правильный ответ - E, поскольку нужный параметр отсутствует в списке. Все параметры dtswiz начинаются с наклонной черты (/), а не с дефиса (-).
Question 4
Which of the following are true about the following BCP statement? [Check all correct answers]
Bcp c in -Uaaaaaa -P xyccc
A. The statement will try to connect to a local server.
B. The statement will fail, because the database name is missing.
C. The statement will connect to the user's aaaaaa default database.
D. The statement will prompt the user for information about the file's format.
E. None of the above.
Вопрос 4
Какие из следующих утверждений истинны по отношению к следующей команде BCP? [Выберите все правильные ответы]
Bcp c in -Uaaaaaa -P xyccc
A. Команда попытается подключиться к локальному серверу.
B. Команда не может быть выполнена, поскольку не указано имя базы данных.
C. Команда попытается подключиться к базе данных по умолчанию для пользователя aaaaaa.
D. Команда запросит у пользователя информацию о формате файла.
E. Ничего из перечисленного.
Правильный ответ - E, поскольку правильный ответ отсутствует в списке. Первый параметр после in (Uaaaaaa) интерпретируется как имя входного файла. Если -Uaaaaaa является допустимым именем файла, команда попытается подключиться к локальному серверу как именем текущего пользователя и паролем xyccc. Если файл не существует, произойдет ошибка, поэтому ответы A, B, C и D неверны.
Question 5
The DTS data transformation GUI can use which of the following programming languages to directly transform data? [Check all correct answers]
A. Perl
B. C
C. Visual Basic
D. Java
E. Visual C++
Вопрос 5
Какие из перечисленных языков программирования могут использоваться графической оболочкой DTS для непосредственного преобразования данных? [Выберите все правильные ответы]
A. Perl
B. C
C. Visual Basic
D. Java
E. Visual C++
Правильные ответы - A, C и D. При непосредственном преобразовании данных могут использоваться сценарии на языках Perl, Visual Basic и Java. Ответы B и E неверны, поскольку C и Visual C++ не поддерживаются графической оболочкой DTS напрямую.
Дополнительная информация
В MS SQL Server Books Online приведена информация о загрузке данных. Найдите слова «bcp utility» или «DTS» в алфавитном указателе.
Просмотрите компакт-диск TechNet (или его электронную версию на www.microsoft.com).
www.microsoft.com/sql Свежая информация об SQL Server.
Database Design on SQL Server 7. Сертификационный экзамен — экстерном (экзамен 70-029). / Дж. Гарбус, Д. Паскузи, Т. Чанг - СПб: Питер, 2000. - 560 с.
|