Часть отчета о выполнении наращивания базы данных



Часть отчета о выполнении наращивания базы данных


На последнем этапе вы можете выбрать следующие варианты завершения наращивания:

провести наращивание, не генерируя код SQL; сгенерировать только код SQL для наращивания; провести наращивание и сгенерировать код SQL.

Первый и третий варианты доступны только в том случае, если вы обладаете на сервере SQL полномочием CREATE TABLE. Если вы выбрали один из вариантов, предусматривающий сохранение сгенерированного кода SQL, то весь код SQL, генерируемый мастером наращивания, будет сохранен на вашем жестком диске.

Мастер наращивания создает проект Report (Отчет) (рис. 23.2), который содержит таблицы, использующиеся для переноса данных из таблиц Visual FoxPro, а также отчеты о переносе данных (рис. 23.3).






Перенос данных из Visual FoxPro на платформу клиент-сервер


В последнее время перед разработчиками все чаще возникает необходимость переноса приложений, созданных для базы данных Visual FoxPro, на платформу клиент-сервер. Наиболее простым способом переноса данных является использование мастера наращивания.

Мастер наращивания создает базу данных SQL Server, которая дублирует, насколько это возможно, функциональный диапазон базы данных Visual FoxPro. С помощью мастера наращивания вы можете:

преобразовывать локальные базовые таблицы и локальные представления в удаленные базовые таблицы и удаленные представления; перемещать локальные данные на удаленный сервер; переносить локальные приложения в среду клиент-сервер.



Использование мастера наращивания для переноса данных в базу данных SQL Server



Использование мастера наращивания для переноса данных в базу данных SQL Server Соответствие типов данных Отображение выражений из Visual FoxPro в SQL Server мастером наращивания Отображение типов индексов мастером наращивания Отображение объектов мастером наращивания Отображение правил и ссылочной целостности мастером наращивания Установка драйвера ODBC Выбор базы данных и источника данных Выбор переносимых таблиц Определение базы данных назначения и ее параметров


Определение базы данных назначения и ее параметров



Определение базы данных назначения и ее параметров

На следующем этапе определяется база данных назначения. Если вы хотите добавить таблицы Visual FoxPro в существующую базу данных SQL Server, то можете задать наращивание до масштабов существующей базы данных. В этом случае мастер сразу переходит к восьмому этапу.

Если вы решили создать новую удаленную базу данных, ее имя может состоять не более чем из 30 символов, включая буквы, цифры и символы "#", "$" и "_". Пробелы не разрешаются.



Отображение объектов мастером наращивания



Отображение объектов мастером наращивания

В табл. 23.4 показано, как отображаются объекты из Visual FoxPro в SQL Server:

Отображение правил и ссылочной целостности мастером наращивания



Отображение правил и ссылочной целостности мастером наращивания

В табл. 23.5 описываются триггеры, создаваемые мастером наращивания. Каждый конкретный триггер может содержать код, эмулирующий какиелибо (или все) функциональные возможности Visual FoxPro из числа указанных.



Отображение типов индексов мастером наращивания



Отображение типов индексов мастером наращивания

Индексы SQL Server и индексы Visual FoxPro очень похожи. В табл. 23.3 показано, как типы индексов Visual FoxPro преобразуются в типы индексов SQL Server.



Отображение выражений из Visual FoxPro в SQL Server мастером наращивания



Отображение выражений из Visual FoxPro в SQL Server мастером наращивания

Несмотря на то, что Visual FoxPro и Transact-SQL имеют несколько общих функций, многие функции Visual FoxPro не поддерживаются в SQL Server. Выражения Visual FoxPro, содержащиеся в правилах проверки достоверности на уровне полей и на уровне записей, а также в значениях по умолчанию мастер наращивания пытается преобразовать в выражения TransactSQL, используя соответствия, представленные в табл. 23.2.



Наращивание может занимать много времени;



Предупреждение

Наращивание может занимать много времени; это зависит от количества данных, объема сетевого трафика и числа параллельных запросов, обрабатываемых сервером. Для больших таблиц наращивание может выполняться в течение нескольких часов.
В данной главе рассмотрим использование мастера наращивания для переноса данных из Visual FoxPro в базу SQL Server.

  Использование мастера наращивания для переноса данных в базу данных SQL Server
Прежде чем приступить к процессу переноса данных из Visual FoxPro в SQL Server, рассмотрим особенности и ограничения, связанные с переносом полей таблиц, выражений, правил поддержки целостности.



Для создания новой базы данных



Предупреждение

Для создания новой базы данных вы должны обладать соответствующими полномочиями. При возникновении проблем обратитесь к администратору базы данных SQL Server.
На шестом и седьмом этапах определяются устройство и размер для базы данных и журнала транзакций. Размер новой базы данных должен быть не менее 2 Мбайт: это минимальный размер, допускаемый в SQL Server. SQL Server создает для вашей базы данных журнал транзакций, который можно использовать для восстановления базы данных в случае серьезных ошибок в системе. В идеальном варианте базу данных и соответствующий ей журнал следует размещать на устройствах, находящихся на разных физических дисках. Эти устройства должны быть созданы до запуска мастера наращивания, поскольку он создает все новые устройства на одном и том же физическом диске, на котором расположено главное устройство базы данных.
По умолчанию мастер наращивания экспортирует структуру таблицы и ее содержимое. Наряду с именами полей и типами данных, вы также можете экспортировать индексы, значения по умолчанию, отношения (ограничения целостности на уровне ссылок) и правила.
Индексы и значения по умолчанию Visual FoxPro становятся индексами и значениями по умолчанию SQL Server. Если вы решили экспортировать правила, мастер наращивания пытается экспортировать в SQL Server правила уровня поля и правила уровня строки, в результате чего они превращаются в хранимые процедуры, вызываемые из триггеров SQL Server. Экспортированные табличные отношения также становятся частью этих триггеров.


Проект с информацией о переносе данных



Проект с информацией о переносе данных




Соответствие типов данных



Соответствие типов данных

Соответствие типов данных Visual FoxPro и MS SQL Server представление в табл. 23.1.



Соответствие типов данных



Таблица 23.1. Соответствие типов данных

Сокращенное обозначение Тип данных Visual FoxPro Тип данных SQL Server
С Character char
Y Currency money
D Date datetime
Т DateTime datetime
В Double float
F Float float
G General image
I Integer int
L Logical bit
М Memo text
М (binary) Memo binary image
С (binary) Character binary binary
N Numeric float
Р Picture image



Отображение выражений из Visual FoxPro в SQL Server



Таблица 23.2. Отображение выражений из Visual FoxPro в SQL Server

Выражение Visual FoxPro Выражение SQL Server
Истина (.Т.) 1
Ложь (.F.) 0
# <>
.AND. AND
.NOT. NOT
.NULL. NULL
.OR. OR
= <; <=
= > >=
ASCO ASCII ()
AT() CHARINDEX ( )
CDOW ( ) DATENAME(dw, . . . )
CHR() CHAR ( )
CMONTH ( ) DATENAME (mm, . . • )
CTODO CONVERT {datetime, . . . )
CTOT ( ) CONVERT (datetime, . . . )
DATE ( ) GET DATE ( )
DATETIME ( } GETDATE ( )
DAY () DATEPART{dd, . . . )
DOW() DATEPART (dw, . . . )
DTOC ( ) CONVERT (varchar, ...)
DTOR ( ) RADIANS ( )
DTOT ( ) CONVERT (datetime, ...)
HOUR ( ) DATEPART (hh, . . . )
LIKEO PATINDEX ( )
MINUTE () DATEPART (mi, . . . )
MONTH ( ) DATEPART (mm, . . . )
MTON ( ) CONVERT (money, . . . )
NTOM ( ) CONVERT (float, . . . )
RTOD ( ) DEGREES ( )
SUBSTRO SUBSTRING ()
ТТОС ( ) CONVERT (char, , . . )
TTOD{) CONVERT (ciatetime, . . , )
YEAR ( ) DATEPARTfyy, ...}

Следующие функции имеют одинаковый вид и в Visual FoxPro, и в SQL Server.

CEILING ()

LOG (

LOWER ()

LTRIM(

RIGHT()

RTRIM()

SOUNDEX()

SPACE ()

STR()

STUFF ()

UPPER ()




Сопоставление типов индекса Visual FoxPro типам индекса SQL Server



Таблица 23.3. Сопоставление типов индекса Visual FoxPro типам индекса SQL Server

Тип индекса Visual FoxPro Тип индекса SQL Server
Первичный Кластеризованный уникальный
Кандидат Уникальный
Уникальный, обычный Неуникальный

Мастер наращивания использует имена индексов Visual FoxPro в качестве имен индексов в SQL Server. Если имя индекса оказывается зарезервированным ключевым словом, мастер наращивания изменяет это имя, присоединяя к нему символ "_".



Отображение объектов мастером наращивания



Таблица 23.4. Отображение объектов мастером наращивания

Объект Visual FoxPro Объект SQL Server
База данных База данных


Триггеры, создаваемые мастером наращивания



Таблица 23.5. Триггеры, создаваемые мастером наращивания

Триггер Эмулируемые функциональные возможности Visual FoxPro
UPDATE Правила проверки достоверности (на уровне полей и на уровне записей). Ссылочная целостность
INSERT Правила проверки достоверности (на уровне полей и на уровне записей). Ссылочная целостность (только триггеры дочерних таблиц)
DELETE (только родительские таблицы) Ссылочная целостность




Установка драйвера ODBC



Установка драйвера ODBC

Перед запуском мастера наращивания необходимо установить драйвер ODBC для выбранной базы данных и определить источник данных для связи с базой данных. Также желательно определить именованное удаленное соединение.



Выбор базы данных и источника данных



Выбор базы данных и источника данных

На первом этапе работы с мастером наращивания вам необходимо выбрать и открыть локальную базу данных, которая будет переноситься в базу данных SQL Server (рис. 23.1).



Выбор локальной базы данных с исходными таблицами



Выбор локальной базы данных с исходными таблицами


На втором этапе необходимо выбрать источник данных. Если вы используете именованное соединение для доступа к источнику данных, мастер наращивания будет связывать это именованное соединение со всеми удаленными представлениями, создаваемыми в процессе наращивания. Если при регистрации в источнике данных вы вместо имени соединения используете имя источника данных, а в дальнейшем задаете создание удаленных представлений, мастер наращивания создает именованное соединение с именем Upsize (или Upsize2, Upsize3 и т. д., если определение соединения с предлагаемым именем уже существует).

При нажатии кнопки Next (Далее) мастер откроет диалоговое окно ODBC Login (ODBC Логин). Если вы используете именованное соединение с сохраненным паролем, мастер зарегистрирует вас на выбранном сервере SQL Server, не требуя ввести регистрационную информацию ODBC.




Выбор переносимых таблиц



Выбор переносимых таблиц

На третьем этапе вы выбираете наращиваемые таблицы. Чтобы обеспечить правильность экспортируемых данных, мастер пытается открыть все таблицы базы данных, выбранной для наращивания, в режиме эксклюзивного пользования. Если какие-либо открытые таблицы находятся в совместном пользовании, мастер закрывает их и вновь открывает в эксклюзивном режиме, что может вызвать потерю некоторых временных отношений, установленных с помощью команды SET RELATION или SET SKIP. Все таблицы, которые не удастся открыть в эксклюзивном режиме, не смогут принять участие в наращивании.

Вы не можете изменить принимаемое по умолчанию соответствие для поля ключа, если новый тип данных не позволит индексировать это поле. Вы можете изменить соответствие для поля, входящего в состав ключа индекса, если выберете тип данных, допускающий индексирование; однако после этого вы, возможно, захотите для единообразия изменить типы данных для остальных полей ключа. Visual FoxPro выдает предупреждающее сообщение при попытке изменить соответствие для поля, которое не является полем ключа, но используется в индексе Visual FoxPro. Если вы сделали ошибку, нажмите кнопку Reset To Defaults (Сброс) — произойдет сброс типов данных.

При переносе мастером наращивания таблиц Visual FoxPro имена полей и типы данных автоматически преобразуются в поля SQL Server.

Мастер показывает вам устанавливаемое по умолчанию преобразование типов данных. При необходимости вы можете изменить тип данных на сервере базы данных с помощью раскрывающегося списка Server Type (Тип сервера).




Если вы наращиваете табличные отношения,



Замечание

Если вы наращиваете табличные отношения, не забудьте выполнить и наращивание индексов, иначе производительность может заметно снизиться.
Если у вас только один физический диск, вы должны разместить базу данных и ее журнал на разных устройствах, чтобы можно было пользоваться командой сервера SQL DUMP TRANSACTION.


SQL Server не поддерживает убывающие



Замечание

SQL Server не поддерживает убывающие и возрастающие индексы и не разрешает использовать выражения в индексах сервера. Мастер наращивания в ходе наращивания индекса удаляет выражения Visual FoxPro из выражений индекса; на сервер передаются только имена полей.



Установку драйверов ODBC, определение источника



Замечание

Установку драйверов ODBC, определение источника данных и создание именованного удаленного соединения мы рассмотрели в главе 22.