Со временем большинство приложений баз данных растут, становятся более сложными и нуждаются в поддержке большего количество пользователей. В какой-то момент жизни приложения Microsoft Office Access может потребоваться перейти к базе данных Microsoft SQL Server для оптимизации производительности, масштабируемости, доступности, безопасности, надежности и возможности восстановления.
В этой статье
Сведения об изменении базы данных Microsoft Office Access
Upsizing — это процесс переноса некоторых или всех объекты базы данных из базы данных Access в новую или существующую базу данных SQL Server или новый проект Access (ADP).
Преимущества масштабирования базы данных до SQL Server
-
Высокая производительность и масштабируемость Во многих ситуациях SQL Server обеспечивает более высокую производительность, чем база данных Access. SQL Server также обеспечивает поддержку очень больших баз данных размером с терабайт, что значительно превышает текущее ограничение для базы данных Access в два гигабайта. Наконец, SQL Server работает очень эффективно, обрабатывая запросы параллельно (используя несколько собственных потоков в одном процессе для обработки запросов пользователей) и минимизируя дополнительные требования к памяти при добавлении большего количества пользователей.
-
Повышение доступности SQL Server позволяет выполнять динамическое резервное копирование базы данных (добавочное или полное) во время ее использования. Следовательно, вам не нужно заставлять пользователей выходить из базы данных для резервного копирования данных.
-
Улучшенная безопасность Используя доверенное подключение, SQL Server может интегрироваться с системой безопасности Windows, чтобы обеспечить единый интегрированный доступ к сети и базе данных, используя лучшие из обеих систем безопасности. Это значительно упрощает администрирование сложных схем безопасности.
-
Возможность немедленного восстановления В случае сбоя системы (например, при сбое операционной системы или отключении питания) SQL Server имеет механизм автоматического восстановления, который восстанавливает базу данных до последнего состояния согласованности в течение нескольких минут без вмешательства администратора базы данных.
-
Серверная обработка Использование SQL Server в конфигурации клиента или сервера сокращает сетевой трафик, обрабатывая запросы базы данных на сервере перед отправкой результатов клиенту. Обработка сервера обычно гораздо эффективнее, особенно при работе с большими наборами данных.
Приложение также может использовать определяемые пользователем функции, хранимые процедуры и триггеры для централизации и совместного использования логики приложений, бизнес-правил и политик, сложных запросов, проверки данных и кода целостности ссылок на сервере, а не на клиенте.
Способы масштабирования
Мастер upsizing перемещает объекты базы данных и содержащиеся в них данные из базы данных Access в новую или существующую базу данных SQL Server.
Существует три способа использования мастера upsizing:
-
Переключите все объекты базы данных из базы данных Access в проект Access, чтобы можно было создать клиентское или серверное приложение. Для этого подхода требуются некоторые дополнительные изменения приложения и изменения в коде и сложных запросах.
-
Преобразование только данных или определений данных из базы данных Access в базу данных SQL Server.
-
Создайте внешний интерфейс базы данных Access в серверной части базы данных SQL Server, чтобы можно было создать клиентская и серверная части приложения. Этот подход требует очень незначительного изменения приложения, так как код по-прежнему использует ядро СУБД Access (ACE).
Перед увеличением размера базы данных Access
Перед тем как обновить базу данных Access до SQL Server базы данных или проекта Access, попробуйте выполнить следующие действия.
-
Создание резервной копии базы данных Хотя мастер upsizing не удаляет данные или объекты базы данных из базы данных Access, рекомендуется создать резервную копию базы данных Access перед ее увеличением.
-
Убедитесь, что у вас достаточно места на диске На устройстве должно быть достаточно места на диске, которое будет содержать базу данных с расширением. Мастер upsizing лучше всего работает при наличии большого свободного места на диске.
-
Создание уникальных индексов Связанная таблица должна иметь уникальный индекс, чтобы ее можно было обновить в Access. Мастер upsizing может повысить размер существующего уникального индекса, но не может создать его, где его нет. Если вы хотите обновить таблицы, перед обновлением убедитесь, что вы добавили уникальный индекс в каждую таблицу Access.
-
Назначьте себе соответствующие разрешения для базы данных SQL Server
-
Чтобы выполнить масштабирование до существующей базы данных, вам потребуются разрешения CREATE TABLE и CREATE DEFAULT.
-
Для создания новой базы данных требуются разрешения CREATE DATABASE и SELECT для системных таблиц в базе данных Master.
-
Мастер масштабирования Access 2007 оптимизирован для работы с Microsoft SQL Server 2000 и SQL Server 2005.
Использование мастера upsizing
-
На вкладке Работа с базами данных в группе Перемещение данных щелкните SQL Server.
Запустится мастер upsizing.
Шаг 1. Выберите вариант для масштабирования до существующей или новой базы данных
На первой странице мастера укажите, нужно ли выполнить увеличение базы данных Access до существующей базы данных SQL Server или создать новую базу данных SQL Server.
-
Использование существующей базы данных Если выбрать этот параметр и нажать кнопку Далее, откроется диалоговое окно Выбор источника данных, чтобы можно было создать подключение ODBC к существующей базе данных SQL Server.
Сведения об источниках данных ODBC
Источник данных — это источник данных в сочетании со сведениями о подключении, необходимыми для доступа к этим данным. Примерами источников данных являются Access, SQL Server, Oracle RDBMS, электронная таблица и текстовый файл. Сведения о подключении могут включать расположение сервера, имя базы данных, идентификатор входа, пароль и различные параметры драйвера ODBC, описывающие способ подключения к источнику данных.
В архитектуре ODBC приложение (например, Access или программа Microsoft Visual Basic) подключается к диспетчеру драйверов ODBC, который, в свою очередь, использует конкретный драйвер ODBC (например, драйвер ODBC Microsoft SQL) для подключения к источнику данных (в данном случае к базе данных SQL Server). В Access источники данных ODBC используются для подключения к внешним источникам данных, у которых нет встроенных драйверов.
Чтобы подключиться к такому источнику данных, выполните указанные ниже действия.
-
Установите соответствующий драйвер ODBC на компьютере с источником данных.
-
Определите имя источника данных (DSN) с помощью программы Администратор источников данных ODBC, чтобы сохранить сведения о подключении в реестре Microsoft Windows или DSN-файле, либо с помощью строки подключения в коде Visual Basic, чтобы передать сведения о подключении непосредственно диспетчеру драйверов ODBC.
Машинные источники данных
Источники данных компьютера хранят сведения о подключении в реестре Windows на определенном компьютере с определяемым пользователем именем. Источники данных компьютера можно использовать только на компьютере, на котором они определены. Существует два типа источников данных компьютера : пользовательские и системные. Пользовательские источники данных могут использоваться только текущим пользователем и видны только для этого пользователя. Системные источники данных могут использоваться всеми пользователями на компьютере и видны всем пользователям компьютеров и системных служб. Источник данных компьютера особенно полезен, если требуется обеспечить дополнительную безопасность, так как только пользователи, которые вошли в систему, могут просматривать источник данных компьютера, и удаленный пользователь не может скопировать его на другой компьютер.
Файловые источники данных
Файловые источники данных (также называемые DSN-файлами) хранят сведения о подключении в текстовых файлах, а не в реестре Windows, и, как правило, более гибки в использовании, чем машинные источники данных. Например, можно скопировать файловый источник данных на любой компьютер с правильным драйвером ODBC, чтобы приложение хозяйчиво и точно использовало сведения о подключении ко всем компьютерам, которые оно использует. Кроме того, можно поместить файловый источник данных на отдельный сервер, сделать его общим для нескольких компьютеров в сети и легко управлять централизованными сведениями о подключении.
Некоторые файловые источники данных нельзя сделать общими. Недоступный источник данных файлов находится на одном компьютере и указывает на источник данных компьютера. Их можно применять для доступа к существующим машинным источникам данных из файловых источников данных.
Строки подключения
В модуле можно определить форматированную строку подключения, указывающую сведения о подключении. Строка подключения передает сведения о подключении непосредственно в диспетчер драйверов ODBC и помогает упростить приложение, устранив требование о том, чтобы системный администратор или пользователь сначала создали DSN перед использованием базы данных.
-
-
Создание базы данных Если выбрать этот параметр и нажать кнопку Далее, в Access отобразится страница, на которой вы введете сведения о новой базе данных SQL Server.
-
Какую SQL Server вы хотите использовать для этой базы данных? Введите имя сервера, который вы хотите использовать.
-
Доверительное соединение Вы можете использовать доверенное подключение, то есть SQL Server можно интегрировать с безопасностью операционной системы Windows, чтобы обеспечить единый вход в сеть и базу данных.
-
Идентификатор входа и пароль Если вы не используете доверенное подключение, введите идентификатор входа и пароль учетной записи с правами CREATE DATABASE на сервере.
-
Как вы хотите назвать новую базу данных SQL Server? Введите имя новой базы данных SQL Server. Access изменяет имя, если оно конфликтует с существующим именем базы данных, и добавляет нумерованный суффикс (например, mydatabase 1).
-
Шаг 2. Выбор таблиц для масштабирования
На этом шаге вы выберете таблицы Access, которые требуется добавить в базу данных SQL Server. Выберите таблицы, которые требуется изменить, а затем с помощью кнопок со стрелками переместите их в список Экспорт в SQL Server. Кроме того, можно дважды щелкнуть таблицу, чтобы переместить ее из одного списка в другой.
Список Доступные таблицы включает все связанные таблицы, за исключением SQL Server таблиц, которые уже находятся в базе данных SQL Server. Связанные таблицы, указывающие на базу данных SQL Server, выбранную для масштабирования, автоматически отображаются в списке Экспорт в SQL Server и не могут быть удалены. Таблицы, которые в настоящее время не отображаются в Область навигации, также исключаются, включая скрытые таблицы и системные таблицы.
Совет: Любая таблица с именем, заканчивающимся на "_local", исключается из списка доступных таблиц, чтобы предотвратить увеличение таблиц, которые уже были обновлены. Если вы хотите повторно выполнить увеличение этих таблиц, переименуйте их перед запуском мастера upsizing, удалив суффикс "_local".
Шаг 3. Указание атрибутов и параметров для масштабирования
На этом шаге вы выберете, какие атрибуты таблицы следует обновить в базе данных SQL Server. По умолчанию все атрибуты выбираются для масштабирования по умолчанию.
Примечание: По умолчанию мастер upsizing преобразует имена полей Access в юридические SQL Server имена полей, а типы данных Access — в эквивалентные SQL Server типы данных.
Какие атрибуты таблицы требуется изменить?
В следующей таблице перечислены атрибуты, которые можно повысить, и описано, как мастер upsizing обрабатывает каждый из них:
Атрибут |
Действие, если выбрано |
|||||||||||||||
Индексы |
Мастер upsizing обновляет все индексы. Мастер upsizing преобразует первичные ключи Access в индексы SQL Server и помечает их как SQL Server первичные ключи. Если вы решили связать таблицу SQL Server с базой данных Access, мастер upsizing также добавит префикс "aaaaa" в имя индекса. Это связано с тем, что Access выбирает индекс, который является первым в алфавитном порядке в списке доступных индексов в качестве первичного ключа, а префикс "aaaaa" гарантирует, что выбран правильный индекс. Все остальные индексы сохраняют свои имена, за исключением случаев, когда недопустимые символы заменяются символом "_". Уникальные и неуниковые индексы Access становятся уникальными и неуникальными SQL Server индексами. Связанная таблица должна иметь уникальный индекс, чтобы ее можно было обновить в Access. Мастер upsizing может повысить размер существующего уникального индекса, но не может создать его, где его нет. Если вы хотите обновить данные в таблицах после их обновления, перед обновлением убедитесь, что вы добавили уникальный индекс в каждую таблицу Access. |
|||||||||||||||
Правила проверки |
Мастер upsizing обновляет следующие значения в виде триггеров обновления и вставки:
Триггер — это ряд инструкций Transact-SQL, связанных с SQL Server таблицей. Таблица может содержать три триггера, по одному для каждой из команд, которые могут изменять данные в таблице: команды UPDATE, INSERT и DELETE. Триггер автоматически выполняется при выполнении команды. Мастер upsizing использует триггеры, а не правила SQL Server для принудительной проверки на уровне поля, так как SQL Server правила не позволяют отображать пользовательские сообщения об ошибках. Каждое правило проверки не обязательно имеет соответствие "один к одному" с триггером. Каждое правило проверки может стать частью нескольких триггеров, и каждый триггер может содержать код для эмуляции функциональности нескольких правил проверки. Если для свойства Required поля Access задано значение true, пользователь не может вставить запись и оставить обязательное поле null (если к полю по умолчанию не привязано) или сделать поле null при обновлении записи. Обязательные поля обновляются до полей, которые не допускают значения NULL на SQL Server. Текст проверки Свойство Текст проверки базы данных Access преобразуется в свойство Access project Validation Text . Это позволяет отображать понятные сообщения об ошибках Access в случае нарушения ограничения во время выполнения. |
|||||||||||||||
По умолчанию |
Мастер upsizing преобразует все свойства Значения по умолчанию в объекты по умолчанию Американского национального института стандартов (ANSI). |
|||||||||||||||
Отношения между таблицами |
Мастер upsizing выполняет увеличение всех связей таблиц. Вы можете решить, как повысить уровень связей таблиц и целостности ссылок, используя триггеры обновления, вставки или удаления или с помощью объявленной целостности ссылок (DRI). Функция DRI работает так же, как и целостность ссылок Access, определяя ограничения первичного ключа для базовых таблиц (сторона "один" связи "один ко многим") и ограничения внешнего ключа для внешних таблиц (как правило, "много" связи "один ко многим").
|
Какие параметры данных необходимо включить?
-
Добавление полей метки времени в таблицы SQL Server использует поле метки времени, чтобы указать, что запись была изменена (но не когда она была изменена) путем создания поля уникального значения и последующего обновления этого поля при каждом обновлении записи. Для связанной таблицы Access использует значение в полях метки времени, чтобы определить, была ли изменена запись перед ее обновлением. Как правило, поле метки времени обеспечивает наилучшую производительность и надежность. Без поля метки времени SQL Server должны проверка все поля в записи, чтобы определить, изменилась ли запись, что снижает производительность.
В следующей таблице описаны параметры, доступные в этом списке.
Параметр |
Описание |
Да, пусть мастер решает |
Если исходные таблицы Access содержат поля с плавающей запятой (single или double), Memo или объект OLE, мастер upsizing создает новые поля метки времени в результирующих таблицах SQL Server для этих полей. |
Да, всегда |
Мастер upsizing создает поле метки времени для всех таблиц с увеличением размера независимо от того, какие типы полей они содержат. Это повышает производительность таблиц access с расширением, которые могут не содержать поля Memo, объекта OLE или поля с плавающей запятой, но имеют поля других типов. |
Нет, никогда |
Мастер upsizing не добавляет поля метки времени в таблицы. |
Важно: В связанных SQL Server таблицах Access не проверка, чтобы определить, изменились ли поля memo или ole object, так как эти поля могут иметь много мегабайт в размере, а сравнение может быть слишком ресурсоемким и трудоемким. Таким образом, если изменено только поле текста или изображения и поле метки времени отсутствует, Access перезапишет это изменение. Кроме того, может показаться, что значение поля с плавающей запятой изменилось, если оно не изменилось, поэтому при отсутствии поля метки времени Access может определить, что запись была изменена, если она не была изменена.
-
Создайте только структуру таблицы, не обновляйте данные По умолчанию мастер upsizing upsize all data to SQL Server. Если выбрано поле Только создавать табличную структуру, не обновляйте данные проверка, будет изменена только структура данных.
Шаг 4. Выбор способа масштабирования приложения
На следующей странице мастера можно выбрать один из трех различных способов масштабирования приложения базы данных Access. В разделе Какие изменения приложения вы хотите внести?, выберите один из следующих вариантов:
-
Создание клиентского или серверного приложения Access При выборе этого параметра мастер upsizing создаст новый проект Access. Мастер upsizing запрашивает имя, которое по умолчанию соответствует текущему имени базы данных Access, добавляет суффикс "CS", а затем сохраняет проект в том же расположении, что и существующая база данных Access.
Мастер upsizing создает файл проекта Access, а затем преобразует все объекты базы данных из базы данных Access в проект Access. Если не сохранить пароль и идентификатор пользователя, при первом открытии проекта Access в Access откроется диалоговое окно Свойства канала данных, чтобы можно было подключиться к базе данных SQL Server.
-
Связывание таблиц SQL Server с существующим приложением При выборе этого параметра мастер upsizing изменяет базу данных Access, чтобы запросы, формы, отчеты и страницы доступа к данным использовали данные в новой базе данных SQL Server, а не данные в базе данных Access. Мастер upsizing переименовывает таблицы Access, которые вы хотите изменить, суффиксом "_local". Например, при обновлении таблицы с именем Employees таблица будет переименована Employees_local в базе данных Access. Затем мастер upsizing создает связанную таблицу SQL Server с именем Employees.
Примечание: После завершения операции обновления таблицы, переименованные суффиксом "_local", больше не будут использоваться. Однако рекомендуется хранить локальные таблицы до тех пор, пока не будет выполнено успешное увеличение размера. Позже вы можете удалить локальные таблицы, чтобы уменьшить размер базы данных Access. Перед удалением таблиц обязательно создайте резервную копию базы данных.
Запросы, формы, отчеты и страницы доступа к данным на основе исходных таблиц Employees теперь будут использовать связанную таблицу SQL Server Employees. Многие свойства полей в исходной локальной таблице наследуются новой локальной таблицей, включая Description, Caption, Format, InputMask и DecimalPlaces.
-
Нет изменений в приложении Выберите этот параметр, если требуется только скопировать данные в базу данных SQL Server и не вносить другие изменения в существующее приложение базы данных Access.
Сохранение пароля и идентификатора пользователя По умолчанию мастер upsizing создает связанные таблицы в существующем приложении или проект Access без сохранения имени пользователя и пароля. Это означает, что при каждом входе в базу данных SQL Server пользователям предлагается ввести имя пользователя и пароль.
Если выбрать сохранить пароль и идентификатор пользователя, пользователи смогут подключаться к базе данных SQL Server без входа в систему. Если выбрать Создать новое приложение access client/server, проект Access сохранит пароль пользователя в строка подключения OLE DB.
Примечание: Этот параметр отключен для параметра Нет изменений приложения, если связанная SQL Server таблица настроена с таблицей MSysConf для запрета сохранения паролей.
Отчет мастера upsizing
При нажатии кнопки Готово мастер upsizing создает отчет, который содержит подробное описание всех созданных объектов и сообщает об ошибках, возникших во время процесса. Мастер upsizing отображает отчет в режиме предварительного просмотра, а затем можно распечатать или сохранить отчет, например в виде ФАЙЛА XPS или PDF. Отчет не сохраняется как объект Access при закрытии окна предварительного просмотра.
Отчет мастера upsizing содержит следующие сведения:
-
Параметры upsizing, включая атрибуты таблицы, выбранные для масштабирования, и способ его масштабирования.
-
Сведения о таблицах, включая сравнение значений Access и SQL Server для имен, типов данных, индексов, правил проверки, значений по умолчанию, триггеров и того, были ли добавлены метки времени.
-
Все возникшие ошибки, такие как заполнение базы данных или журнала транзакций, недостаточные разрешения, устройство или база данных не созданы, таблица, значение по умолчанию или правило проверки пропущено, связь не применяется, запрос пропущен (поскольку он не может быть преобразован в синтаксис SQL Server), а также элемент управления и источник записей ошибки преобразования в формах и отчетах.
Как объекты базы данных получают масштабирование
Следующие объекты данных и базы данных будут изменены:
-
Данные и типы данных Все типы данных базы данных Access преобразуются в эквивалент в SQL Server. Мастер преобразует текст базы данных Access в Юникод, добавляя идентификатор строки Юникода ко всем строковым значениям и добавляя префикс Юникода n ко всем типам данных.
-
Запросы
-
Выберите запросы, у которых нет предложения ORDER BY или параметров, преобразуются в представления.
-
Запросы действий преобразуются в запросы действий хранимых процедур. Access добавляет SET NOCOUNT ON после кода объявления параметра, чтобы убедиться, что хранимая процедура выполняется.
-
Выбор запросов, ссылающихся только на таблицы (также называемые базовыми запросами), которые используют параметры или предложение ORDER BY, преобразуются в определяемые пользователем функции. При необходимости предложение TOP 100 PERCENT добавляется в запрос, содержащий предложение ORDER BY.
-
Запросы параметров, использующие именованные параметры, сохраняют исходное текстовое имя, используемое в базе данных Access, и преобразуются в хранимые процедуры или встроенные пользовательские функции.
Примечание: Может потребоваться вручную преобразовать запросы, которые не обновлялись, например запросы сквозной передачи SQL, запросы определения данных и перекрестные запросы. Вам также может потребоваться вручную выполнить обновление запросов, которые были вложены слишком глубоко.
-
-
Forms, отчеты и элементы управления Инструкции SQL в свойствах RecordSource, ControlsSource и RowSource для форм, отчетов или элементов управления сохраняются и не преобразуются в хранимые процедуры или определяемые пользователем функции.
-
Свойства запуска Мастер масштабирования выполняет увеличение следующих свойств запуска:
StartUpShowDBWindow
StartUpShowStatusBar AllowShortcutMenus AllowFullMenus AllowBuiltInToolbars AllowToolbares AllowSpecialKeys UseAppIconForFrmRpt AppIcon AppTitle StartUpMenuBar StartupShortcutMenuBar -
Модули и макросы Мастер upsizing не вносит никаких изменений в модули или макросы. Возможно, потребуется изменить приложение, чтобы в полной мере воспользоваться функциями SQL Server. Дополнительные сведения см. в статье MSDN Оптимизация приложений Microsoft Office Access, связанных с SQL Server.