Безопасность



Безопасность

Сервер базы данных предоставляет более мощные средства защиты данных от несанкционированного доступа, чем настольные СУБД. Права доступа могут устанавливаться очень гибко — до уровня полей таблиц. Можно, например, вообще запретить пользователю прямое обращение к таблицам, регламентируя взаимодействие пользователя только через промежуточные объекты — представления и хранимые процедуры.



Целесообразность перехода к клиент-серверной архитектуре



Целесообразность перехода к клиент-серверной архитектуре

Выбор архитектуры приложения главным образом зависит от поставленной задачи. Многие задачи успешно реализуются в небольших сетях с файловым сервером. В других случаях нужно применять более мощную клиент-серверную архитектуру. Преобразование настольного приложения в клиент-серверное (upsizing) целесообразно с точки зрения обеспечения четырех важнейших требований:

надежность;
масштабируемость;

производительность; безопасность.

Диалоговое окно Разделение базы данных



Иллюстрация 19.1. Диалоговое окно Разделение базы данных

После нажатия кнопки Разделить (Split Database) появится диалоговое окно Создание базы данных с таблицами (Create Back-end Database), представленное на рис. 19.2. В поле Имя файла (File name) отображается имя файла объектов данных, по умолчанию состоящее из имени базы данных и специального суффикса, например: Борей _be.mdb (be — от back-end).


Диалоговое окно Создание базы данных с таблицами



Иллюстрация 19.2. Диалоговое окно Создание базы данных с таблицами

Нажмите кнопку Разделение (Split). После процесса разделения базы данных (он может длиться несколько минут) появится сообщение, что база данных успешно разделена (рис. 19.3).


Сообщение об успешном завершении операции разделения



Иллюстрация 19.3. Сообщение об успешном завершении операции разделения

Нажмите кнопку ОК. Щелкните по ярлыку Таблицы (Tables) и окне базы данных. Слева от всех таблиц появятся стрелки, означающие, что таблицы хранятся во внешнем файле (рис. 19.4).
Для того чтобы убедиться, что все связи с таблицами во внешнем файче установлены правильно, выберите команду Сервис, Служебные программы, Диспетчер связанных таблиц (Tools, Database Utilities, Linked Table Manager). Появится диалоговое окно Диспетчер связанных таблиц (Linked Table Manager), в котором указаны пути расположения всех связанных таблиц (рис. 19.5). С помощью Диспетчера связанных таблиц можно выбрать таблицы для обновления путей к соответствующим файлам на диске.


Список таблиц в окне базы данных



Иллюстрация 19.4. Список таблиц в окне базы данных

Иллюстрация 19.5. Диалоговое окно Диспетчер связанных таблиц



Диалоговое окно выбора способа переноса базы данных



Иллюстрация 19.6. Диалоговое окно выбора способа переноса базы данных



Вкладка Machine Data Source



Иллюстрация 19.7. Вкладка Machine Data Source

Чтобы указать файловый источник данных, выделите один из существующих источников данных в списке на вкладке File Data Sources или нажмите копку New, чтобы создать новый. Если нужно использовать некоторый специфический для данного компьютера источник данных (к ним относятся пользовательские или системные источники), раскройте вкладку Machine Data Sources (см. рис. 19.7) и выделите соответствующий элемент в списке существующих источников данных (например, созданный с помощью Администратора ODBC системный источник данных SampleSDSN, подключенный к базе данных Sample на SQL Server) или нажмите копку New (Создать), чтобы создать новый. После указания источника данных нажмите кнопку ОК и переходите к шагу 7.
Если нужно создать новую базу данных на SQL Server, в которую будут перенесены таблицы из приложения Access 2002, выберите в первом диалоговом окне Мастера преобразования в формат SQL Server переключатель Создать базу данных (Create new database) и нажмите кнопку Далее (Next). Появится диалоговое окно, представленное на рис. 19.8.


Диалоговое окно для регистрации новой базы данных в SQL Server



Иллюстрация 19.8. Диалоговое окно для регистрации новой базы данных в SQL Server

Выберите в списке имя сервера, на котором нужно создать новую базу данных, затем укажите способ регистрации на SQL Server. Чтобы использовать регистрацию на SQL Server через систему защиты Windows NT или 2000, установите флажок Доверительное соединение (Trusted Connection). Иначе для регистрации непосредственно на SQL Server введите в текстовые поля имя пользователя и пароль для регистрации на SQL Server, а также имя новой базы данных. Нажмите кнопку Далее (Next).
На этом этапе будет установлено соединение с SQL Server. Для -того, возможно, потребуется ввести имя пользователя и пароль или будут использованы па-. раметры регистрации, заданные на предыдущих этапах.
В следующем диалоговом окне мастера можно выбрать те таблицы, которые требуется переместить на SQL Server. Чтобы перенести все таблицы, нажмите кнопку >> и кнопку Далее для перехода к следующему окну.
Как уже говорилось выше, при переносе таблиц на сервер, имеется возможность перенести не только сами таблицы, но и некоторые атрибуты таблиц — индексы, правила проверки вводимых значений, значения по умолчанию, а также связи между таблицами. Сбросьте лишние флажки или оставьте все, как предлагает мастер по умолчанию. Кроме того, мастер предложит вам добавить в некоторые таблицы специальное поле — Штамп времени (Timestamp), которое можно добавлять в каждую таблицу, можно не добавлять совсем, а можно предоставить мастеру самому решить, в каких случаях добавить штамп времени. Можно также установить флажок, который указывает, что на сервере требуется создать только структуру таблиц и не переносить данные. Оставьте все значения такими, как предлагает мастер по умолчанию, и нажмите кнопку Далее.
На следующем шаге мастер предлагает выбрать способ преобразования приложения
просто переместить таблицы на SQL Server, не изменяя самого приложения;
переместить таблицы и связать их с приложением. В этом случае мастер сохраняет исходные таблицы Access, переименовывает их (добавляется суффикс локальная ( local) ) и присоединяет преобразованные таблицы SQL Server к приложению в виде связанных таблиц ODBC с теми же именами, которые имели до переноса таблицы Access. Этих действий вполне достаточно для того, чтобы преобразованное приложение оставалось работоспособным; создать новое приложение — проект Access, в которое переносятся все объекты приложения и которое взаимодействует с таблицами на сервере через новый интерфейс - OLE DB/ADO.

Выберите желаемый вариант преобразования. При этом в случае создания проекта Access нужно задать имя файла проекта (с расширением adp). Можно также установить флажок, указывающий на необходимость сохранения имени пользователя и пароля для регистрации.

В последнем окне выдается сообщение о том, что вся необходимая информация получена и мастер готов начать преобразование. Возможно, мастер предложит выбрать, какой из файлов требуется открыть после преобразования: новый проект Access или оставить открытым исходный файл MDB. Выберите необходимый переключатель и нажмите кнопку Готово (Finish).
После этого начнется процесс преобразования и переноса объектов базы данных без отображения дополнительных диалоговых окон, требующих подтверждения каких-либо действий. Это удобно, когда осуществляется перенос объемной базы данных и процесс может продлиться достаточно долго. При этом отображается окно с индикатором выполнения переноса и кнопкой Отмена (Cancel), позволяющей в любой момент прервать этот процесс.
По окончании процесса переноса отображается отчет о полученных результатах, который можно сохранить, например, в формате снимка отчета или HTML. Когда отчет будет просмотрен и закрыт, на экране отобразится окно исходной базы данных или преобразованного приложения Access.

Использование файлов объектов данных предыдущих версий Access



Использование файлов объектов данных предыдущих версий Access

Для разделенных баз данных возможно преобразование в формат Microsoft Access 2000 или 2002 только файла объектов приложения с сохранением прежней версии файла объектов данных. Связанный файл объектов данных может быть совместно использован пользователями, работающими с 16-разрядной версией Access, с Access 95, 97, 2000, 2002 и с Visual Basic версии 3.0 и выше. Присоединение связанной таблицы из файла объектов данных происходит без вывода предупреждающих диалоговых окон. Однако при этом нельзя будет воспользоваться некоторыми новыми возможностями Access 2000 или 2002, например, такими как репликация, при работе с файлами предыдущих версий.

Файлы баз данных ранних версий Access не следует преобразовывать в формат Access 2000 или 2002 в следующих случаях:

некоторые пользователи приложения не перешли к операционной системе Windows 95 или Windows NT, а работают в Windows 3.x, поэтому не могут использовать ни полную, ни исполняемую версии Access 2000 или 2002;
идет процесс преобразования нескольких файлов приложения из предыдущей версии в формат Access 2000 или 2002. При этом необходимо сохранять совместимость файлов объектов данных со всеми используемыми файлами объектов приложения до полного окончания процесса преобразования;
база данных разделяется с пользователями приложений Visual Basic 3.0.
Если с помощью предыдущих версий Access разработано несколько приложений для рабочей группы, необходимо оставить разделяемый файл объектов данных в исходном формате до тех пор, пока все файлы объектов приложения не будут преобразованы в формат Access 2000 или 2002. Установление связи с таблицами и сохранение исходного формата файла объектов данных сопряжено с минимальными усилиями или совсем их не требует.



Использование файлов объектов приложения предыдущих версий Access



Использование файлов объектов приложения предыдущих версий Access

Если база данных, созданная в ранней версии Access: 2.0, 95 или 97, впервые открывается в Access 2000 или 2002, появится диалоговое окно, предупреждающее о том, что база данных имеет более раннюю версию, поэтому она недоступна для изменений.

Предлагается преобразовать выбранную базу данных в формат Access 2000 или 2002, чтобы получить возможность работать с этой базой, изменяя структуру ее объектов, и использовать все возможности Access 2000 или 2002. Выбор результирующего формата в данном случае зависит от того, какой формат считается выбранным по умолчанию: Access 2000 или 2002. Чтобы выбрать тот или иной формат, перед преобразованием откройте какую-нибудь базу данных в Access 2002, выберите команду Сервис, Параметры (Tools, Options) и в появившемся диалоговом окне Параметры (Options) на вкладке Другие (Advanced) выберите желаемый формат в раскрывающемся списке Формат файла по умолчанию (Default File Format).

Чтобы преобразовать базу данных ранней версии в формат Access 2000 или 2002, необходимо выбрать переключатель Преобразовать базу данных (Convert Database) и нажать кнопку ОК. Появится диалоговое окно, в котором нужно указать имя и путь для сохранения базы данных в формате новой версии. После нажатия кнопки Сохранить (Save) в строке состояния отобразятся сообщения Преобразование (Converting), Компиляция (Compiling), Сжатие (Compacting) и Проверка системных объектов (Verifying System Objects). После удачного завершения преобразования появится предупреждающее диалоговое окно о том, что преобразованную версию больше нельзя будет использовать в предыдущих версиях Access, и откроется обновленная база данных.

При преобразовании базы данных Access ранней версии, в которой содержатся ссылки на таблицы в другой базе данных, удостоверьтесь, что внешние таблицы хранятся в файле с заданным именем в той же папке, на которую указывают ссылки. Если Access не найдет связанные таблицы в процессе преобразования базы данных, вы не сможете использовать преобразованную базу данных. Как только база данных преобразована в формат Access 2000 или 2002, необходимо переместить файл со связанными таблицами в нужную папку и переустановить связи на таблицы с помощью Диспетчера связанных таблиц. Преобразование баз данных не затрагивает связанные таблицы — файл, в котором хранятся эти таблицы, остается в формате предыдущей версии Access.

Если необходимо сохранить формат базы данных, например, когда разработка базы осуществляется в команде с сотрудниками, которые по каким-либо причинам пользуются ранней версией Access, возможно открытие текущей базы данных без преобразования. В этом случае объекты будут доступны только для просмотра, но не для редактирования. Если все же принято решение открыть базу данных ранней версии в Access 2002 без преобразования, следует выбрать переключатель Открыть базу данных (Open Database) в диалоговом окне, представленном на рис. 19.13, и нажать кнопку ОК. Access добавит в базу данных информацию, необходимую для того, чтобы прежняя версия могла работать в Access 2002, и откроет ее. Если в дальнейшем потребуется преобразовать эту базу данных в новый формат Access 2000 или 2002, откройте ее в Access 2002 и выберите команду Сервис, Служебные программы, Преобразовать базу данных (Tools, Database Utilities, Convert Database) и команду к формату Access 2000 (То Access 2000 File Format) или команду к формату Access 2002 (То Access 2002 File Format).



Использование приложений предыдущих версий Microsoft Access





Использование приложений предыдущих версий Microsoft Access


Чтобы использовать в Access 2002 существующие приложения, разработанные в предыдущих версиях Access, необходимо выяснить, возможно ли это и что для этого требуется сделать.



Использование в Access 2000 и 2002 баз данных предыдущих версий без преобразования формата



Использование в Access 2000 и 2002 баз данных предыдущих версий без преобразования формата

Access 2002, так же как и предыдущие версии Access, позволяет открывать базы данных предыдущих версий Access, не преобразуя их в новый формат. Поскольку исходный формат базы данных не меняется, остальные пользователи могут продолжать использовать эту базу данных в ранней версии Access. При этом работа с базами данных Access 2000 в Access 2002 ничем не будет ограничена, но пользователи Access 2000 или 2002 будут иметь ограничения при использовании базы данных более ранних версий: Access 2.0, 95 или 97. Можно будет просматривать и редактировать данные в таблицах, добавлять и удалять записи, но нельзя будет изменять структуру данных и объектов базы данных или добавлять новые объекты. Для этой цели базу данных необходимо открыть в той версии Access, в которой она была сохранена.

Существуют определенные ограничения при работе с базами данных предыдущих версий Access из-за неполной совместимости разных версий.

Базу данных в формате Access 2000 или 2002 нельзя открыть в предыдущих версиях Access. В частности, с базой данных в формате Access 2002 нельзя работать в режиме общего доступа вместе с пользователями Access 2000 и 97.
Нельзя установить связи с таблицами базы данных Access 2000 или 2002 в базе данных предыдущей версии. Однако можно экспортировать таблицы Access 2000 или 2002 в формат предыдущей версии Access.
Microsoft Access 97 и выше используют новый стиль панелей команд — строк меню, контекстных меню и панелей инструментов. Если база данных Access 95 открыта без преобразования в Access 2000 или 2002, пользовательские панели инструментов преобразуются согласно стилю Access 2000 или 2002, однако это преобразование не сохраняется. Пользовательские строки меню интерпретируются как строки меню нового стиля, однако макросы строки меню не преобразуются и продолжают действовать, благодаря их поддержке в новых версиях Access.
Защищенное приложение Access 2000 или более ранней версии остается таковым при открытии его в Access 2002. Можно с помощью Администратора рабочих групп установить связь с файлом рабочей группы, созданным в предыдущей версии Access. Однако рекомендуется выполнить воссоздание файла рабочей группы в новой версии Access 2000 или 2002 перед установлением связи с ним. Если используется база данных Access 2.0, 95 или 97 с исходной версией файла рабочей группы, сохраняется действие защиты для всех объектов, кроме защиты модулей. Access 2000 или выше не поддерживает защиту на уровне пользователей для кода VBA. Вместо этого применяется защита кода VBA с помощью пароля. Файл рабочей группы Access 2002 нельзя использовать в версии 97 или еще более ранней.
В результате открытия базы данных предыдущей версии Access без преобразования может увеличиться ее размер. Если база данных открывалась без преобразования в другой версии Access, а потом открывалась в Access 2002, ее размер может увеличиться еще больше. В редких случаях база данных Access 2.0 открывается без преобразования в Access 95, затем в Access 97, в Access 2000 и, наконец, в Access 2002, тогда в проекте VBA всякий раз сохраняется информация, относящаяся к формату очередной версии.
Относительно совместимости программного кода на VBA: Microsoft Access 2000 и выше не поддерживает библиотеку ОАО 2.5/З.х Compatibility Library. Если открыть в Access 2000 или выше приложение ранней версии Access, которое содержит программный код, использующий устаревшие объекты, методы и свойства объектов DAO, связанные с этой библиотекой, отобразится сообщение об ошибках компиляции проекта VBA. Поэтому перед открытием базы данных в Access 2000 следует обновить программный код, чтобы он не зависел от библиотеки DAO 2.5/3. x Compatibility Library.

Масштабируемость



Масштабируемость

Масштабируемыми (scalability) называют приложения, которые могут быть расширены (распределены) на большее число компьютеров, (возможно, использующих разные аппаратно-программные платформы) для обслуживания большего числа пользователей, но при условии, что такое расширение (то есть установка приложений на новые подключаемые к сети компьютеры) не потребует какой-либо переработки самого приложения. Многопользовательские системы на базе настольных СУБД сильно ограничены как по числу клиентов, так и по размерам баз данных, причем снять эти ограничения невозможно даже за счет наращивания ресурсов компьютеров, т. к. они присущи самим СУБД. Системы же, использующие серверы баз данных, могут поддерживать тысячи пользователей и огромные базы данных (в сотни гигабайт) за счет увеличения производительности как аппаратной, так и программной платформы сервера.



Миграция приложений


В данной главе будут рассмотрены вопросы, касающиеся преобразования приложений Access с целью переноса их в другую среду эксплуатации. Для обозначения таких преобразований мы будем применять термин миграция. Под миграцией приложений понимается целевое преобразование приложения с изменением его внутренней структуры и сохранением внешнего интерфейса. Таким образом, к миграции относится как преобразование приложений, созданных в более ранних версиях Access, в среду Access 2002, так и преобразование приложения, созданного в среде Access 2002, в двухуровневое клиент-серверное приложение, в котором обработка данных выполняется сервером базы данных.

Потребность в таких преобразованиях очевидна. При переходе на новую версию инструментального программного обеспечения возникает вопрос о том, как сохранить то, что уже наработано в предыдущих версиях, и с минимальными затратами обновить свои приложения, получив возможность использовать все преимущества новых технологий. Второй вопрос — как обеспечить дальнейшее развитие приложений не только в сторону добавления новых функций, но и в сторону их масштабирования, т. е. получить возможность подключения существенно большего количества пользователей к базе данных. В гл. 17 мы обсуждали, как создать с использованием Microsoft Access 2002 приложение, которое имело бы архитектуру "клиент-сервер". Однако необязательно разрабатывать такое приложение "с нуля". Access 2002 имеет встроенные средства, которые позволяют выполнить преобразование уже существующих приложений, перенеся на Microsoft SQL Server все таблицы, правила проверки вводимых данных и многое другое.

В данной главе мы постараемся ответить на поставленные вопросы и рассказать о том:

Когда и как выполнить преобразование настольного приложения Access в приложение с архитектурой "клиент-сервер"?
Каким образом можно использовать уже имеющиеся приложения, разработанные в предыдущих версиях Microsoft Access, в Access 2002?
Как выполнить преобразование приложений, разработанных в предыдущих версиях Microsoft Access, в Access 2002?
Как выполнить обратное преобразование, т. е. приложение, созданное в среде Access 2002, преобразовать в форматы предыдущих версий Access?

Надежность



Надежность

Наиболее важным требованием, которое обычно предъявляется к масштабным приложениям, является повышение надежности. Отдельные копии приложений, работающие на клиентских компьютерах в файл-серверных сетях, не имеют синхронизированного журнала транзакций (напомним, что транзакция представляет собой одну операцию обмена данными между клиентом и сервером), поэтому сбой на любой клиентской машине или в сети может привести к порче данных. Обычно такую базу данных можно восстановить, но это может занять достаточно продолжительное время, в течение которого никто из пользователей не сможет работать с системой. В клиент-серверных системах при централизованном управлении данными сбои в .сети или клиентских компьютерах редко влияют на базу данных. Кроме того, большинство серверов имеют возможность быстро и качественно восстановить данные. Для этого сервер использует специальный механизм управления транзакциями. Этот механизм гораздо более эффективен, чем соответствующий механизм в настольных СУБД, т. к. сервер контролирует работу транзакций централизованно. Например, процессор обработки данных Jet поддерживает обработку транзакций только во время текущей сессии (сеанса работы). Он не может разрешить проблем, возникших из-за сбоя в предыдущей сессии. Он может оставить "зависшие" блокировки в файле блокировок (файле с расширением Idb), и никто не сможет получить доступ к данным, пока вы не удалите этот файл. Он также не гарантирует защиту данных, если сбой произошел в процессе завершения транзакции. Разумеется, это очень редкое событие, но оно может стать основанием для серьезного рассмотрения вопроса о переходе к использованию клиент-серверных приложений.



с преобразованием баз данных Access



Ограничения, связанные с преобразованием баз данных Access 2000 и 2002 в формат Access97

База данных Microsoft Access 2000 или 2002 может быть преобразована в формат Access 97 только в том случае, если она не является репликой (преобразование реплик выполняется путем синхронизации с преобразованной основной репликой). К тому же, после преобразования в формат Access 97 приложение потеряет все функциональные возможности, относящиеся к специфичным возможностям Microsoft Access 2000 или 2002.

Преобразование базы данных Access 2000 или 2002 в формат Access 97 приводит к следующим изменениям.

Могут потеряться ссылки на страницы доступа к данным.
Данные, хранящиеся в формате Unicode, могут быть преобразованы неверно. Дело в том, что приложение Access 97 разработано так, что оно обеспечивает поддержку символов только одной кодовой страницы. (Кодовая страница представляет собой пронумерованное множество, состоящее из 256 символов.) Например, база данных Access 97 может использовать только ANSI-символы. В процессе преобразования базы данных результирующий набор символов для приложения Access 97 определяется параметрами сортировки, установленными в исходном приложении Access 2000 или 2002. Символы, принадлежащие другому набору символов, преобразуются некорректно.
Таблицы Access 2000/2002 могут содержать поля числового типа с атрибутом Размер поля (Field Size), имеющим значение Десятичное/Действительное (Decimal). В Access 97 такое значение атрибута Размер поля (Field Size) не определено. Чтобы успешно преобразовать базу данных, необходимо предварительно установить другое значение этого атрибута, например С плавающей точкой (4 байт)/Одинарное с плавающей точкой (Single) или С плавающей точкой (8 байт)/Двойное с плавающей точкой (Double), или изменить тип поля на Денежный (Currency).

Перенос сетевого приложения на платформу SQL Server


Перенос сетевого приложения на платформу SQL Server

Прежде чем использовать Мастера преобразования в формат SQL Server, необходимо выполнить некоторые подготовительные действия, а после завершения процесса переноса нужно просмотреть автоматически создаваемый отчет о результатах переноса и выполнить ряд действий, позволяющих подготовить полученное клиент-серверное приложение к дальнейшему использованию. Таким образом, процесс переноса разделяется на три этапа: подготовительный этап, выполнение переноса и подготовка приложения к эксплуатации.

Прежде чем приступить к переносу реального приложения, мы советуем провести подобный эксперимент, используя приложение "Борей" или любую другую демонстрационную базу данных.



Поддержка 2000 года



Поддержка 2000 года
в Microsoft Access 2000 и 2002

Правила обработки вычислений, использующих даты, в Access достаточно сложны, поэтому обработка дат производится с высокой точностью. При интерпретации двусмысленных дат Access, начиная с версии Access 2000, делает некоторые предположения. Например, если дата включает только название месяца и одну или две цифры, Access предполагает, что число от 1 до 31 определяет день указанного месяца текущего года. Допустим, пользователь ввел дату декабря 2, тогда Access воспримет ее как 2 декабря текущего года, а не как 1 декабря 2002 г. Если пользователь ввел дату декабря 32, Access воспримет ее как 1 декабря 1932 г.

В Access обработка дат, имеющих сокращенное указание года одной или двумя цифрами, происходит с учетом дат XXI века, как показано в табл. 19.2.



Подготовительный этап



Подготовительный этап

Чтобы подготовить приложение к переносу на платформу SQL Server, рассмотрим процесс переноса базы данных Access 2002 в Microsoft SQL Server на примере приложения "Борей", входящего в комплект демонстрационных приложений Microsoft Access 2002.

Создайте резервную копию базы данных. Хотя Мастер преобразования в формат SQL Server не удаляет из исходного файла переносимые объекты, лучше создать резервную копию базы данных.
Если нужно связать переносимое приложение с имеющейся на SQL Server базой данных, предварительно создайте ссылку на этот источник данных с помощью элемента Администратор ODBC (ODBC Data Sources) на панели управления (Control Panel) Windows. Если планируется создать новую базу данных, необходимо иметь ссылку на Основную базу данных (Master database) соответствующего сервера.
Проверьте, чтобы на сервере было логическое устройство (device) достаточного размера. Лучше иметь избыток свободного дискового пространства. Если после переноса базы данных на SQL Server 6.5 планируется ее расширить или добавить большой объем данных, зарезервируйте в два или более раз больше дискового пространства, чем текущий размер базы данных. SQL Server 7.0 или выше автоматически увеличивает исходный размер базы данных при его нехватке.
Присоединенные к базе данных таблицы должны иметь уникальные индексы, если требуется перенести их на SQL Server. Мастер преобразования в формат SQL Server переносит имеющиеся индексы на сервер, но не может создать новые. Поэтому если вы хотите, чтобы перенесенные таблицы можно было обновлять, удостоверьтесь, что все переносимые таблицы снабжены уникальными индексами.
Если перенос осуществляется на SQL Server 6.5, при необходимости создайте новые логические устройства. Мастер преобразования в формат SQL Server создает новые логические устройства на том же физическом диске, где находится основное логическое устройство. Если на сервере установлено несколько жестких дисков, можно поместить базу данных и журнал транзакций на разные диски. Тогда, если с одним диском что-нибудь случится, базу данных можно будет восстановить с другого. На обоих дисках необходимо иметь (или создать) логические устройства достаточного размера.

Структура хранения данных Microsoft SQL Server 7.0 и выше является более гибкой: вместо логических устройств используются файлы, поэтому при переносе базы данных на SQL Server не нужно заботиться о создании логических устройств.

Хотя SQL Server 6.5 позволяет использовать для хранения базы данных и журнала транзакций несколько логических устройств, Мастер преобразования в формат SQL Server потребует указать одно устройство для базы данных и одно устройство для журнала транзакций. Чтобы указать несколько логических устройств для базы данных или журнала транзакций, сделайте эти логические устройства (и только их) используемыми по умолчанию. После этого в процессе работы с мастером выберите для базы данных или журнала транзакций устройство по умолчанию. Если суммарный размер логических устройств, используемых по умолчанию, превышает размер базы данных или журнала транзакций, SQL Server будет использовать только необходимые для хранения логические устройства.
Установите принтер, используемый по умолчанию. Это необходимо сделать, поскольку Мастер преобразования в формат SQL Server автоматически создает отчет о результатах своей работы в виде снимка отчета.
Проверьте наличие соответствующих прав доступа к базе данных Access. Необходимо обладать правами на чтение и изменение структуры (Read и Design) всех объектов базы данных, чтобы провести процесс переноса базы данных на клиент-серверную архитектуру.
Проверьте наличие необходимых прав доступа к базе данных SQL Server. Разные способы переноса приложения в SQL Server требуют наличия прав различного уровня:
чтобы провести интеграцию приложения Access с существующей базой данных на SQL Server, необходимо обладать правами на создание таблиц (Create table) и создание по умолчанию (Create default);
чтобы создать новую базу данных в SQL Server, необходимо обладать правами на создание базы данных (Create database) и операцию выбора (Select) в системных таблицах Основной базы данных (Master database);
чтобы создать новые логические устройства, необходимо обладать правами системного администратора SQL Server.
Проверьте имена полей и таблиц в переносимой базе данных. При переносе на платформу SQL Server 6.5 будут использованы ограничения на имена, все неправильные символы в именах в результате переноса в SQL Server будут заменены символом подчеркивания (_).Эти правила заключаются в следующем: имена могут содержать до 30 символов, первым символом должна быть буква или знак (@) (коммерческое at), для остальных символов допускается использовать букву, цифру, знак доллара ($), знак номера (#) и знак подчеркивания (_). Пробелы использовать запрещено.
Хотя SQL Server 7.0 и выше поддерживает имена, допустимые в Access, рекомендуется придерживаться правил именования объектов, принятых в версии SQL Server 6.5.

Предположим, с помощью программы Enterprise Manager на SQL Server создана новая база данных Sample, которая будет использоваться для переноса приложения "Борей". Создайте ссылку на этот источник данных в SQL Server с помощью Администратора ODBC на панели управления Windows.



Подготовка клиент-серверного приложения к эксплуатации



Подготовка клиент-серверного приложения к эксплуатации

После переноса базы данных в SQL Server Мастер преобразования в формат SQL Server присоединяет к вашему приложению все созданные на сервере таблицы, старые таблицы делает локальными и создает документ — отчет о переносе базы данных, в котором описаны результаты работы мастера и все возникшие проблемы, если они были. Полезно его изучить, прежде чем работать с обновленным приложением.

Чтобы подготовить базу данных к работе после переноса на платформу SQL Server.

Проверьте, что те таблицы, которые нужно редактировать из Access, являются изменяемыми. Для этого необходимо, чтобы такая таблица обязательно имела хотя бы один уникальный индекс.
Установите права доступа к таблицам на SQL Server, т. к. все группы, пользователи и права, которые были установлены в Access, не распространяются на серверные таблицы.
Запретите, если нужно, сохранение паролей локально в клиентском приложении.
Спланируйте создание резервных копий базы данных и, если нужно, "зеркальных копий" логических устройств.
Скорее всего, ваше клиентское приложение Access придется модифицировать, чтобы оно эффективно работало с SQL Server.



Преобразование настольного приложения Access в приложение с архитектурой "клиент-сервер"


Приложение, разработанное в среде Access, является настольным приложением. Оно может быть предназначено для одного пользователя или может быть многопользовательским. Оно может быть простым или достаточно сложным, как, например, приложение, рассмотренное в гл. 16, в котором взаимодействуют несколько процессов. Однако все эти процессы работают под управлением настольной СУБД Access, a настольная СУБД имеет ограничения как по количеству одновременно работающих пользователей, так и по объему базы данных. С увеличением сложности приложения и накоплением данных в таблицах Access может возникнуть необходимость перенесения этих данных на сервер баз данных, который работает на значительно более мощной программно-аппаратной платформе. В этом случае приложения Access 2002 устанавливаются на клиентских машинах и играют роль клиентов, обращающихся к данным, хранящимся в базах данных SQL-сервера.

В клиент-серверных информационных системах на компонент "сервер" возлагается задача надежного хранения данных и обработки запросов клиента, в то время как от "клиентской" части требуется лишь обеспечение удобного интерфейса пользователя. Поэтому компонент "сервер" исполняется на специальной серверной платформе, которая обеспечивает серверное приложение необходимыми ресурсами и мощностью, а компонент "клиент" исполняется на менее мощной аппаратно-программной платформе. В нашем случае мы рассматриваем систему с серверной СУБД Microsoft SQL Server, работающей под управлением Windows NT Server, и клиентскими частями, управляемыми менее мощными СУБД Microsoft Access 2002. (О технологии "клиент-сервер" и ее применении в Access см. гл. 17.)



Производительность



Производительность

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

Требования к производительности приложения зависят от типа задач, которые оно должно выполнять. В следующей таблице указаны некоторые задачи, для которых, вероятно, лучше перейти к клиент-серверной архитектуре.



Разделение баз данных



Разделение баз данных

Небольшие приложения Microsoft Access обычно состоят из одного файла базы данных. Сетевое приложение удобнее создавать так, чтобы оно включало два файла MDB: первый — файл объектов данных (в нем хранятся таблицы), второй — файл объектов приложения (в нем хранятся все остальные объекты — формы, запросы, отчеты, страницы доступа к данным, макросы и модули VBA). При этом в файле объектов приложения устанавливаются связи с таблицами, хранящимися в файле объектов данных.

Файл объектов данных называют частью заднего плана приложения (back-end), a файл объектов приложения — частью переднего плана (front-end). Файл объектов данных обычно размешается на файловом сервере, а копии приложений переднего плана — на клиентских рабочих станциях.

Разделение базы данных дает следующие преимущества.

В однопользовательской среде можно обновлять объекты приложения, не оказывая влияния на существующие данные. При этом приложение обновляется простой заменой файла объектов приложения. Альтернативой этому способу является трудоемкая и часто вызывающая ошибки операция обновления объектов приложения в базе данных, состоящей из одного файла.
В многопользовательской среде с одними и теми же данными могут совместно работать все пользователи приложения, поскольку файл объектов данных размещается на файловом сервере. Файл объектов приложения тоже можно разместить на файловом сервере для общего доступа, а можно для каждого пользователя создать отдельную копию файла объектов приложения, поместив ее на локальный диск клиентской рабочей станции. Тогда каждый пользователь сможет быстро запускать локальную копию приложения и совместно пользоваться файлом объектов данных, расположенным на файловом сервере. Использование локальных копий приложения повышает его производительность, тогда как запуск несколькими пользователями приложения, расположенного на сервере, увеличивает нагрузку на сеть. Поэтому в сетевой среде рекомендуется использовать разделение базы данных. В такой среде легче обновлять разделенную базу данных, поскольку обновление файла объектов приложений не затрагивает файла объектов данных на сервере. Если в многопользовательской среде используется несколько копий файла объектов приложения, то нужно не забывать обновлять все эти копии.
Чтобы изучить механизм разделения базы данных, используйте копию нужной базы данных, помещенную, например, в папку Shared (Общие). Для разделения файла базы данных в Microsoft Access 2002 используется специальная надстройка — Мастер разделения баз данных. Далее описана процедура разделения файла базы данных.

Откройте в Access 2002 базу данных, которую вы будете разделять. Например, можно разделить базу данных "Борей", входящую в комплект примеров Microsoft Access 2002.
Активизируйте окно базы данных и выберите команду Сервис, Служебные программы, Разделение баз данных (Tools, Database Utilities, Database Splitter). Появится диалоговое окно Мастера разделения базы данных, приведенное на рис. 19.1. В окне сообщается, что таблицы текущей базы данных будут перемещены в новую базу данных и что эта операция может занять некоторое время. Рекомендуется создать резервную копию базы данных перед ее разделением на случай неожиданного сбоя работы мастера или операционной системы. Для разделения базы данных нажмите кнопку Разделить (Split Database).


Разрешение некорректных ссылок на библиотечные базы данных и надстройки Access



Разрешение некорректных ссылок на библиотечные базы данных и надстройки Access

Если база данных Access 2000 или 2002 содержит программный код, использующий объекты доступа к данным (DАО), то после преобразования ее в Access 97 и попытки ее использования возникнет проблема с разрешением ссылок на библиотеки Access. Будет отображаться сообщение об отсутствии, по крайней мере, одной библиотеки объектов Access. Чтобы разрешить некорректные ссылки на библиотеки объектов Access 2000 или 2002:

Запустите Access 97 и откройте в ней преобразованную базу данных. Когда появится сообщение об отсутствии библиотеки, на которую есть ссылка, нажмите кнопку ОК.
Откройте любой модуль базы данных в режиме Конструктора.
Выберите команду Сервис, Ссылки (Tools, References). Появится диалоговое окно Ссылки (References). В списке Доступные ссылки (Available References) снимите флажки, соответствующие ссылкам на отсутствующие библиотеки.
Установите флажок с названием библиотеки DАО для Access 97 — Microsoft DAO 3.51 Object Library и нажмите кнопку ОК.
Замечание

В отличие от Access 2000 и 2002, в приложении Access 97 невозможно использовать объекты управления данными ActiveX (ADO). Если база данных, которую требуется преобразовать в формат Access 97, использует надстройки или библиотеки объектов, созданные в Access 2000 или 2002, их тоже нужно преобразовать в формат Access 97.



Совместимость форматов баз данных разных версий Microsoft Access



Совместимость форматов баз данных разных версий Microsoft Access

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

В новой версии Access 2002 формат предыдущей версии Access 2000 поддерживается полностью, т. е. базы данных и проекты Access 2000 можно беспрепятственно открывать и изменять в них объекты, данные и структуру данных, пользуясь новыми инструментальными средствами Access 2002. Хотя, если возникнет потребность в использовании всего спектра новых возможностей Access 2002, базу данных или проект Access 2000 можно будет преобразовать в формат Access 2002.

Файлы баз данных ранних версий Access (1.0, 1.1, 2.0, 95, 97) существенно отличаются по структуре от формата баз данных Access 2000, в то время как между версиями Access 2000 и Access 2002 не так уж много отличий. Поэтому для полноценного использования прежних версий этих файлов необходимо их преобразование в форматы более поздних версий Access. Новые версии Access снабжаются специальными утилитами для преобразования файлов баз данных предшествующих версий. Многокомпонентная структура MDB-файлов усложняет процедуру их преобразования и не всегда допускает полную совместимость версий. Неполная совместимость с ранними версиями приводит к ограничению набора допустимых операций для работы с преобразованными таблицами. В формат Access 2002 можно преобразовать только базы данных, начиная с версии 2.0 и выше. Чтобы использовать в Access 2002 базы данных более ранних версий, требуется сначала преобразовать их в формат Access 2.0, 95, 97 или 2000 средствами этих версий Access.

Базу данных Access 2.0, 95 или 97 необязательно преобразовывать, чтобы использовать ее в новой версии Access 2002, если не требуется изменять в этой базе данных структуру данных и объектов или создавать новые объекты. Эту базу данных можно просто открыть в Access 2002 без преобразования.

Общая схема поддержки форматов предыдущих версий Microsoft Access (без преобразования) для Access 2000 и Access 2002 представлена в табл. 19.3. Каждая строка таблицы содержит сведения о типе совместимости соответствующей версии Access с другими версиями, которые перечислены в столбцах таблицы. В этой таблице использованы следующие условные обозначения:

чтение: Access позволяет читать формат файла указанной версии без использования дополнительной программы просмотра или утилиты преобразования форматов;
запись: Access дает возможность записывать изменения в исходном формате указанной версии практически без потерь эффективности полученного файла из-за различий между версиями;
изменение структуры и создание: вы можете создавать базы данных и изменять структуру данных и объектов баз данных в формате указанной версии.


Совместное использование базы данных в нескольких версиях Access



Совместное использование базы данных в нескольких версиях Access

В некоторых случаях не все пользователи многопользовательского приложения Access могут перейти к работе с новой версией Access одновременно. Хотя бы потому, что не все компьютеры организации могут иметь достаточные для этого ресурсы. Access позволяет нескольким пользователям работать с одними и теми же данными в файле базы данных, используя при этом разные версии Access. Например, база данных может быть создана в среде Access 95 или даже Access 2.0 и иметь соответствующий формат. Часть пользователей может продолжать работать с этой базой данных в той же среде Access 2.0 или Access 95, а другие пользователи могут работать с этим же файлом в среде Access 2002, имея возможность использовать большинство новых средств Access 2002. Единственное ограничение для пользователей Access 2002 — они не смогут менять структуру базы данных и создавать в ней новые объекты. Сами данные доступны им как на чтение, так и на запись. Такую стратегию можно использовать для приложений, состоящих из одного файла MDB и для разделенных на части front-end/back-end приложений.

Чтобы использовать разделенную базу данных из предыдущей версии в разных версиях Access, достаточно преобразовать файл объектов приложения в формат Access 2000 или 2002 и присоединить к нему таблицы из исходного файла объектов данных.

Чтобы использовать в разных версиях Access базу данных, состоящую из одного файла в формате одной из предыдущих версий Access:

Преобразуйте базу данных в формат Access 2000 или 2002, используя новое имя файла для преобразованной базы данных (см. разд. "Преобразование баз данных предыдущих версий Access в формат Access 2002" этой главы).
Разделите преобразованную базу данных на файл объектов данных и файл объектов приложения с помощью Мастера разделения баз данных, как описано в разд. "Разделение баз данных" этой главы.
Удалите полученный в результате разделения файл объектов данных. В качестве части заднего плана для данного приложения необходимо использовать данные, хранящиеся в исходной базе данных. Часть заднего плана должна представлять собой файл в самой ранней версии Access, из тех, в которых работают пользователи приложения.
Откройте файл объектов приложения в Access 2000 или Access 2002. Щелкните по ярлыку Таблицы (Tables). Щелкните правой кнопкой по пустому месту в окне базы данных и выберите в контекстном меню команду Связь с таблицами (Link Tables). Установите ссылки на таблицы, хранящиеся в предыдущей версии базы данных.
После этого можно расширять возможности части переднего плана базы данных, используя все новые средства Access 2000 или 2002, которые можно предоставить в распоряжение пользователей, перешедших на использование новой версии Access. Пользователи предыдущих версий Access могут продолжать использовать исходную версию базы данных. Например, если файл объектов данных сохранен в формате Access 2.0, можно использовать до пяти версий Access для части приложения переднего плана: Access 2.0 (используя исходное приложение), Access 95 и 97 (используя исходную или преобразованную версию файла объектов приложения) и Access 2000 и 2002 (используя преобразованную версию файла объектов приложения).
Если база данных предыдущей версии Access уже разделена на файл объектов данных и файл объектов приложения, остается только преобразовать файл объектов приложения в формат Access 2000 или 2002:

Оставьте файл объектов данных без изменений.
Преобразуйте файл объектов приложений в формат Access 2000 или 2002.
Откройте преобразованный файл объектов приложения в Access 2000 или 2002 и установите связи к таблицам, хранящимся в файле объектов данных с помощью Диспетчера связанных таблиц.
После этого можно наращивать функциональность файла объектов приложения, используя все новые возможности Access 2000 или 2002. (Об использовании Диспетчера связанных таблиц см. гл. 3.)



Способы преобразования приложений Access для использования их с SQL Server



Способы преобразования приложений Access для использования их с SQL Server

Предположим, у вас имеется приложение Microsoft Access, которое необходимо приспособить для работы с сервером базы данных (например, Microsoft SQL Server). Существует несколько способов выполнения такого преобразования.

Можно перенести все таблицы или часть таблиц, хранящиеся в приложении Access, на сервер, а затем присоединить их к приложению Access с помощью механизма связывания таблиц. Никакие другие объекты приложения при этом не изменятся.
Можно средствами Microsoft Access 2002 подключить клиентское приложение к базе данных на SQL Server. Предварительным шагом к созданию такого приложения является преобразование его таблиц в формат Microsoft SQL Server и перенос их с клиента на сервер.

Далее клиентское приложение можно постепенно оптимизировать, ликвидируя в первую очередь узкие места, оставляя по возможности интерфейс неизменным. В процессе развития приложения в качестве инструментальной среды для реализации дополнительных функциональных возможностей может быть выбрана среда программирования Visual Basic или средства создания динамических Web-страниц для работы с данными с помощью программы просмотра Интернета.

Можно перенести все объекты данных на SQL Server, а объекты приложений — в новый файл проекта Access 2002 (файл с расширением adp), создавая таким способом полноценное клиент-серверное приложение.

Чтобы получить клиент-серверное приложение, следует воспользоваться специальной надстройкой Accees 2002, называемой Мастер преобразования в формат SQL Server для интеграции приложения Access 2002 с SQL Server. Она позволяет преобразовать и перенести базу данных Access в существующую или новую базу данных на SQL Server, 7.0 или 6.5 (или на ограниченной версии сервера MSDE или MSDE2000) или создать новый проект Access 2002.

А перед этим можно разделить файл приложения Access на два файла: файл объектов данных и файл объектов приложения.



Сравнение преобразования и импорта файлов предыдущих версий Access



Сравнение преобразования и импорта файлов предыдущих версий Access

Есть еще одна возможность преобразования баз данных из предыдущих версий, кроме преобразования формата файла: импорт объектов баз данных. Эти два варианта имеют одно важное различие. Тот, кто импортирует объекты, становится их владельцем и, соответственно, имеет особые права доступа к ним. Преобразование же файла базы данных не изменяет владельцев хранящихся в нем объектов. (О способах импорта см. гл. 3.)



Преимущества использования сервера для некоторых задач



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

Тип обработки

Преимущества использования сервера

Большой объем транзакций, выполняемых над многими таблицами

Сетевой трафик уменьшается за счет передачи по сети только запросов клиентов и результатов обработки. Вследствие этого уменьшается время ожидания обработки запроса при той же стоимости аппаратуры. Дополнительное преимущество заключается в улучшенном управлении блокировками

Выполнение нетривиальных запросов над совместно используемыми данными Улучшенное управление приоритетами доступа. Сетевой трафик уменьшается, поскольку по сети передаются только результаты обработки данных
Изменение небольшого числа полей (даже одного) в большом количестве записей Сетевой трафик значительно уменьшается, поскольку по сети передаются лишь измененные поля

Массивная обработка данных над большими таблицами
Мощность серверной СУБД в сочетании с аппаратными возможностями самого сервера позволяет значительно повысить производительность
Иногда полезно некоторые таблицы перенести на сервер, но такие процедуры, как анализ данных, составление сложных отчетов путем слияния многих таблиц, лучше оставить на клиентских станциях. Можно даже все данные держать на сервере и дать возможность загружать нужные таблицы целиком на рабочие станции для анализа.



Поддержка дат после 2000 года



Таблица 19.2. Поддержка дат после 2000 года

Даты в формате Access

Интерпретация дат

1.1.00-31.12.29

1.1.2000-31.12.2029

1.1.30-31.12.99 1.1.1930-31.12.1999
Чтобы быть уверенным, что Access правильно проинтерпретирует введенную дату, указывайте номер года четырьмя цифрами (например, 2001 вместо 01).

Администратор приложения или системный администратор может настроить Microsoft Office, исходя из пожеланий пользователей, чтобы определить правила интерпретации дат. Например, есть возможность изменить нижнюю границу интерпретации двузначных номеров года дат XX столетия на меньшее число, чем 30 (см. табл. 19.2). Администратор может также изменить формат дат, используемый по умолчанию, для отображения четырехзначных номеров года вместо двузначных.

Информацию о настройке интерпретации дат можно найти на Web-узле Microsoft.



Совместимость форматов баз данных разных версий Microsoft Access



Таблица 19.3. Совместимость форматов баз данных разных версий Microsoft Access

Версия Access

Формат Access 2002

Формат Access 2000

Формат Access 97

Формат Access 95

Формат Access 2.0

Access 2002

чтение,

чтение,

чтение,

чтение,

чтение,

запись

запись

запись

запись

запись

изменение

изменение

структуры и создание

структуры и создание

Access 2000

чтение,

чтение,

чтение,

чтение,

запись

запись

запись

запись

изменение

структуры и создание



Если база данных впервые открывается



Таблица 19.4. Преобразование форматов в Microsoft Access 2002

Исходный формат

Целевой формат

Способ преобразования

База данных

База данных

Если база данных впервые открывается в Ac-

Access 2.0, 95

Access 2000

cess 2002, в появившемся при ее открытии диа-

или 97

или 2002

логовом окне (см. рис. 19.13) выберите пере-





ключатель Преобразовать базу данных





(Convert Database).





Иначе откройте базу данных в Access 2002 и





выберите команду Сервис, Служебные про-





граммы, Преобразовать базу данных (Tools,





Database Utilities, Convert Database) и команду к





формату Access 2000 (То Access 2000 File





Format) или команду к формату Access 2002





(То Access 2002 File Format)

База данных

База данных

Откройте базу данных в Access 2002 и выберите

Access 2000

Access 2002

команду Сервис, Служебные программы,



или 97

Преобразовать базу данных (Tools, Database





Utilities, Convert Database) и команду к формату





Access 2002 (То Access 2002 File Format) или





команду к формату Access 97 (То Access 97





File Format)

Проект

Проект

Откройте базу данных в Access 2002 и выберите

Access 2000

Access 2002

команду Сервис, Служебные программы,





Преобразовать базу данных и команду к





формату Access 2002 (Tools, Database Utilities,

    Convert Database, To Access 2002 File Format)
Проект Access 2002 Проект Access 2000 Откройте базу данных в Access 2002 и выберите команду Сервис, Служебные программы, Преобразовать базу данных и к формату Access 2000 (Tools, Database Utilities, Convert Database, To Access 2000 File Format)
База данных Access 2002

База данных Access 2000 или 97

Откройте базу данных в Access 2002 и выберите команду Сервис, Служебные программы, Преобразовать базу данных (Tools, Database Utilities, Convert Database) и команду к формату Access 2000 (То Access 2000 File Format) или команду к формату Access 97 (То Access 97 File Format)

Дополнительные действия, которые потребуется предпринять для преобразования форматов баз данных и проектов, защищенных и реплицированных баз данных, а также ограничения, связанные с преобразованием, подробно описаны в справочной системе Microsoft Access 2002.



Приложение Microsoft Access 2002 поддерживает



Варианты преобразования баз данных в Access 2002

Приложение Microsoft Access 2002 поддерживает несколько вариантов преобразования форматов баз данных. В том числе и преобразование к форматам некоторых предыдущих версий Access. Все эти варианты перечислены в табл. 19.4.



Выполнение переноса



Выполнение переноса

При переносе базы данных в SQL Server, кроме таблиц, переносятся индексы и связи между таблицами. При этом индексы отображаются в соответствующие объекты SQL Server. Индексы, использующиеся в Access и SQL Server, очень похожи, отличие состоит только в том, что SQL Server не поддерживает индексы по убыванию. Первичные ключи из Access отображаются в некластеризованные уникальные индексы в SQL Server. В SQL Server 6.x и выше они, кроме того, маркируются и как первичные ключи.

Если перенос выполняется в SQL 6.x или выше, то при переносе связей вы можете выбрать один из методов задания связей в SQL Server: декларативная ссылочная целостность (DRI —Declarative Referential Integrity) или триггер (см. рис. 19.10). DRI — это свойство SQL Server, которое позволяет задавать связи между таблицами в описаниях таблиц в виде внешних ключей (foreign keys). Однако DRI не поддерживает каскадных обновлений и удалений. Поэтому, чтобы сохранить те описания каскадных операций, которые были в базе данных Access, следует использовать триггеры (примеры триггеров и индексов приведены в гл. 17). При переносе таблиц переносятся все поля, которые были в таблицах Access, и такие их свойства, как правила проверки введенных значений (validation rules) и значения по умолчанию (default values).

Замечание

Особенным образом осуществляется перенос полей таблиц Access типа Гиперссылка (Hyperlink). SQL Server не поддерживает, полей такого типа. При переносе на SQL Server поля типа Гиперссылка (Hyperlink) преобразуются в текстовые поля, содержащие все свойства гиперссылки в одной строке: ее название, всплывающую подсказку, адрес и закладку ресурса. Но при открытии таблиц, хранящихся на SQL Server, в клиентском приложении Access гиперссылки полностью работают, ведь вся информация сохранена.

Для таблиц Access, имеющих поля типа Одинарное с плавающей точкой (Single) (это 4 байта), Двойное с плавающей точкой (Double) (это 8 байтов), Поле MEMO (Memo), Поле объекта OLE (OLE Object), в результате переноса в SQL Server создается еще поле типа Штамп времени (Timestamp). Это поле Microsoft Access использует при работе с присоединенными таблицами сервера для проверки, не было ли изменений в записи. При отсутствии этого поля работа с такими таблицами может быть не всегда корректной.

Правила проверки введенных значений для полей таблиц Access обычно представляются в SQL Server в виде триггеров, т. к. правила в SQL Server не позволяют выдавать сообщения об ошибках. Чтобы начать процесс переноса базы данных на платформу SQL Server:

Откройте в Microsoft Access 2002 базу данных, которую требуется перенести.
Выберите команду Сервис, Служебные программы, Мастер преобразования в формат SQL Server (Tools, Database Utilities, Upsizing Wizard). Появится диалоговое окно, представленное на рис. 19.6.
Если нужно создать новую базу данных на SQL Server, в которую будут перенесены таблицы из приложения Access 2002, переходите к шагу 5. Чтобы связать приложение Access 2002 с существующей базой данных в SQL Server (в нашем * примере это база данных Sample на SQL Server), выберите переключатель Использовать существующую базу данных (Use existing database) и нажмите кнопку Далее (Next). Появится диалоговое окно, представленное на рис. 19.7.


Программный продукт Microsoft Access 2002



Выводы

Программный продукт Microsoft Access 2002 имеет много новых возможностей, позволяющих улучшить разрабатываемые приложения. При этом сохраняется совместимость снизу-вверх форматов баз данных, созданных в предыдущих версиях Access. Миграция приложений может осуществляться различными путями. В зависимости от выбранной стратегии переноса в новую версию Access приложение может получить возможность расширения своей функциональности, поскольку при преобразовании в формат Access 2002 становятся доступны все новые средства Access. Кроме того, Access 2002, как и Access 2000, позволяет повысить эффективность разработанной базы данных с помощью переноса ее на SQL Server. Все перечисленные средства являются встроенными инструментами Access 2002, имеющими интуитивно понятный интерфейс и существенно облегчающими выполнение трудоемких операций преобразования форматов данных.