Сервер базы данных предоставляет более мощные средства защиты данных от несанкционированного доступа, чем настольные СУБД. Права доступа могут устанавливаться очень гибко — до уровня полей таблиц. Можно, например, вообще запретить пользователю прямое обращение к таблицам, регламентируя взаимодействие пользователя только через промежуточные объекты — представления и хранимые процедуры.
Выбор архитектуры приложения главным образом зависит от поставленной задачи. Многие задачи успешно реализуются в небольших сетях с файловым сервером. В других случаях нужно применять более мощную клиент-серверную архитектуру. Преобразование настольного приложения в клиент-серверное (upsizing) целесообразно с точки зрения обеспечения четырех важнейших требований:
Глава 19. Миграция приложений Преобразование настольного приложения Access в приложение с архитектурой "клиент-сервер" Целесообразность перехода к клиент-серверной архитектуре Надежность Производительность Масштабируемость Безопасность Способы преобразования приложений Access для использования их с SQL Server Разделение баз данных Перенос сетевого приложения на платформу SQL Server Подготовительный этап Выполнение переноса Подготовка клиент-серверного приложения к эксплуатации Использование приложений предыдущих версий Microsoft Access Поддержка 2000 года в Microsoft Access 2000 и 2002 Совместимость форматов баз данных разных версий Microsoft Access Совместное использование базы данных в нескольких версиях Access Использование в Access 2000 и 2002 баз данных предыдущих версий без преобразования формата Использование файлов объектов приложения предыдущих версий Access Использование файлов объектов данных предыдущих версий Access Варианты преобразования баз данных в Access 2002 Сравнение преобразования и импорта файлов предыдущих версий Access Разрешение некорректных ссылок на библиотечные базы данных и надстройки Access Ограничения, связанные с преобразованием баз данных Access 2000 и 2002 в формат Access 97 Выводы |
Если база данных, созданная в ранней версии 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 2000 или 2002 только файла объектов приложения с сохранением прежней версии файла объектов данных. Связанный файл объектов данных может быть совместно использован пользователями, работающими с 16-разрядной версией Access, с Access 95, 97, 2000, 2002 и с Visual Basic версии 3.0 и выше. Присоединение связанной таблицы из файла объектов данных происходит без вывода предупреждающих диалоговых окон. Однако при этом нельзя будет воспользоваться некоторыми новыми возможностями Access 2000 или 2002, например, такими как репликация, при работе с файлами предыдущих версий.
Файлы баз данных ранних версий Access не следует преобразовывать в формат Access 2000 или 2002 в следующих случаях:
Если с помощью предыдущих версий Access разработано несколько приложений для рабочей группы, необходимо оставить разделяемый файл объектов данных в исходном формате до тех пор, пока все файлы объектов приложения не будут преобразованы в формат Access 2000 или 2002. Установление связи с таблицами и сохранение исходного формата файла объектов данных сопряжено с минимальными усилиями или совсем их не требует.
Чтобы использовать в Access 2002 существующие приложения, разработанные в предыдущих версиях Access, необходимо выяснить, возможно ли это и что для этого требуется сделать.
Access 2002, так же как и предыдущие версии Access, позволяет открывать базы данных предыдущих версий Access, не преобразуя их в новый формат. Поскольку исходный формат базы данных не меняется, остальные пользователи могут продолжать использовать эту базу данных в ранней версии Access. При этом работа с базами данных Access 2000 в Access 2002 ничем не будет ограничена, но пользователи Access 2000 или 2002 будут иметь ограничения при использовании базы данных более ранних версий: Access 2.0, 95 или 97. Можно будет просматривать и редактировать данные в таблицах, добавлять и удалять записи, но нельзя будет изменять структуру данных и объектов базы данных или добавлять новые объекты. Для этой цели базу данных необходимо открыть в той версии Access, в которой она была сохранена.
Существуют определенные ограничения при работе с базами данных предыдущих версий Access из-за неполной совместимости разных версий.
Масштабируемыми (scalability) называют приложения, которые могут быть расширены (распределены) на большее число компьютеров, (возможно, использующих разные аппаратно-программные платформы) для обслуживания большего числа пользователей, но при условии, что такое расширение (то есть установка приложений на новые подключаемые к сети компьютеры) не потребует какой-либо переработки самого приложения. Многопользовательские системы на базе настольных СУБД сильно ограничены как по числу клиентов, так и по размерам баз данных, причем снять эти ограничения невозможно даже за счет наращивания ресурсов компьютеров, т. к. они присущи самим СУБД. Системы же, использующие серверы баз данных, могут поддерживать тысячи пользователей и огромные базы данных (в сотни гигабайт) за счет увеличения производительности как аппаратной, так и программной платформы сервера.
В данной главе будут рассмотрены вопросы, касающиеся преобразования приложений Access с целью переноса их в другую среду эксплуатации. Для обозначения таких преобразований мы будем применять термин
миграция.
Под миграцией приложений понимается целевое преобразование приложения с изменением его внутренней структуры и сохранением внешнего интерфейса. Таким образом, к миграции относится как преобразование приложений, созданных в более ранних версиях Access, в среду Access 2002, так и преобразование приложения, созданного в среде Access 2002, в двухуровневое клиент-серверное приложение, в котором обработка данных выполняется сервером базы данных.
Потребность в таких преобразованиях очевидна. При переходе на новую версию инструментального программного обеспечения возникает вопрос о том, как сохранить то, что уже наработано в предыдущих версиях, и с минимальными затратами обновить свои приложения, получив возможность использовать все преимущества новых технологий. Второй вопрос — как обеспечить дальнейшее развитие приложений не только в сторону добавления новых функций, но и в сторону их масштабирования, т. е. получить возможность подключения существенно большего количества пользователей к базе данных.
В гл. 17
мы обсуждали, как создать с использованием Microsoft Access 2002 приложение, которое имело бы архитектуру "клиент-сервер". Однако необязательно разрабатывать такое приложение "с нуля". Access 2002 имеет встроенные средства, которые позволяют выполнить преобразование уже существующих приложений, перенеся на Microsoft SQL Server все таблицы, правила проверки вводимых данных и многое другое.
В данной главе мы постараемся ответить на поставленные вопросы и рассказать о том:
Наиболее важным требованием, которое обычно предъявляется к масштабным приложениям, является повышение надежности. Отдельные копии приложений, работающие на клиентских компьютерах в файл-серверных сетях, не имеют синхронизированного журнала транзакций (напомним, что транзакция представляет собой одну операцию обмена данными между клиентом и сервером), поэтому сбой на любой клиентской машине или в сети может привести к порче данных. Обычно такую базу данных можно восстановить, но это может занять достаточно продолжительное время, в течение которого никто из пользователей не сможет работать с системой. В клиент-серверных системах при централизованном управлении данными сбои в .сети или клиентских компьютерах редко влияют на базу данных. Кроме того, большинство серверов имеют возможность быстро и качественно восстановить данные. Для этого сервер использует специальный механизм управления транзакциями. Этот механизм гораздо более эффективен, чем соответствующий механизм в настольных СУБД, т. к. сервер контролирует работу транзакций централизованно. Например, процессор обработки данных Jet поддерживает обработку транзакций только во время текущей сессии (сеанса работы). Он не может разрешить проблем, возникших из-за сбоя в предыдущей сессии. Он может оставить "зависшие" блокировки в файле блокировок (файле с расширением Idb), и никто не сможет получить доступ к данным, пока вы не удалите этот файл. Он также не гарантирует защиту данных, если сбой произошел в процессе завершения транзакции. Разумеется, это очень редкое событие, но оно может стать основанием для серьезного рассмотрения вопроса о переходе к использованию клиент-серверных приложений.
База данных Microsoft Access 2000 или 2002 может быть преобразована в формат Access 97 только в том случае, если она не является репликой (преобразование реплик выполняется путем синхронизации с преобразованной основной репликой). К тому же, после преобразования в формат Access 97 приложение потеряет все функциональные возможности, относящиеся к специфичным возможностям Microsoft Access 2000 или 2002.
Преобразование базы данных Access 2000 или 2002 в формат Access 97 приводит к следующим изменениям.
Перенос сетевого приложения на платформу SQL Server
Прежде чем использовать Мастера преобразования в формат SQL Server, необходимо выполнить некоторые подготовительные действия, а после завершения процесса переноса нужно просмотреть автоматически создаваемый отчет о результатах переноса и выполнить ряд действий, позволяющих подготовить полученное клиент-серверное приложение к дальнейшему использованию. Таким образом, процесс переноса разделяется на три этапа: подготовительный этап, выполнение переноса и подготовка приложения к эксплуатации.
Прежде чем приступить к переносу реального приложения, мы советуем провести подобный эксперимент, используя приложение "Борей" или любую другую демонстрационную базу данных.
Правила обработки вычислений, использующих даты, в 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.
Структура хранения данных Microsoft SQL Server 7.0 и выше является более гибкой: вместо логических устройств используются файлы, поэтому при переносе базы данных на SQL Server не нужно заботиться о создании логических устройств.
Хотя 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, является настольным приложением. Оно может быть предназначено для одного пользователя или может быть многопользовательским. Оно может быть простым или достаточно сложным, как, например, приложение, рассмотренное
в гл. 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 2000 или 2002 содержит программный код, использующий объекты доступа к данным (DАО), то после преобразования ее в Access 97 и попытки ее использования возникнет проблема с разрешением ссылок на библиотеки Access. Будет отображаться сообщение об отсутствии, по крайней мере, одной библиотеки объектов Access. Чтобы разрешить некорректные ссылки на библиотеки объектов Access 2000 или 2002:
Замечание
В отличие от Access 2000 и 2002, в приложении Access 97 невозможно использовать объекты управления данными ActiveX (ADO). Если база данных, которую требуется преобразовать в формат Access 97, использует надстройки или библиотеки объектов, созданные в Access 2000 или 2002, их тоже нужно преобразовать в формат Access 97.
Рис. 19.5. Диалоговое окно Диспетчер связанных таблиц
Выберите желаемый вариант преобразования. При этом в случае создания проекта Access нужно задать имя файла проекта (с расширением adp). Можно также установить флажок, указывающий на необходимость сохранения имени пользователя и пароля для регистрации.
При разработке новых версий 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 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 уже разделена на файл объектов данных и файл объектов приложения, остается только преобразовать файл объектов приложения в формат Access 2000 или 2002:
После этого можно наращивать функциональность файла объектов приложения, используя все новые возможности Access 2000 или 2002. (Об использовании Диспетчера связанных таблиц см. гл. 3.)
Предположим, у вас имеется приложение Microsoft Access, которое необходимо приспособить для работы с сервером базы данных (например, Microsoft SQL Server). Существует несколько способов выполнения такого преобразования.
Далее клиентское приложение можно постепенно оптимизировать, ликвидируя в первую очередь узкие места, оставляя по возможности интерфейс неизменным. В процессе развития приложения в качестве инструментальной среды для реализации дополнительных функциональных возможностей может быть выбрана среда программирования Visual Basic или средства создания динамических Web-страниц для работы с данными с помощью программы просмотра Интернета.
Чтобы получить клиент-серверное приложение, следует воспользоваться специальной надстройкой Accees 2002, называемой Мастер преобразования в формат SQL Server для интеграции приложения Access 2002 с SQL Server. Она позволяет преобразовать и перенести базу данных Access в существующую или новую базу данных на SQL Server, 7.0 или 6.5 (или на ограниченной версии сервера MSDE или MSDE2000) или создать новый проект Access 2002.
А перед этим можно разделить файл приложения Access на два файла: файл объектов данных и файл объектов приложения.
Есть еще одна возможность преобразования баз данных из предыдущих версий, кроме преобразования формата файла: импорт объектов баз данных. Эти два варианта имеют одно важное различие. Тот, кто импортирует объекты, становится их владельцем и, соответственно, имеет особые права доступа к ним. Преобразование же файла базы данных не изменяет владельцев хранящихся в нем объектов.
(О способах импорта см. гл. 3.)
Тип обработки
|
Преимущества использования сервера
|
||
Большой объем транзакций, выполняемых над многими таблицами |
Сетевой трафик уменьшается за счет передачи по сети только запросов клиентов и результатов обработки. Вследствие этого уменьшается время ожидания обработки запроса при той же стоимости аппаратуры. Дополнительное преимущество заключается в улучшенном управлении блокировками |
||
Выполнение нетривиальных запросов над совместно используемыми данными | Улучшенное управление приоритетами доступа. Сетевой трафик уменьшается, поскольку по сети передаются только результаты обработки данных | ||
Изменение небольшого числа полей (даже одного) в большом количестве записей |
Сетевой трафик значительно уменьшается, поскольку по сети передаются лишь измененные поля |
||
Массивная обработка данных над большими таблицами |
Мощность серверной СУБД в сочетании с аппаратными возможностями самого сервера позволяет значительно повысить производительность |
Иногда полезно некоторые таблицы перенести на сервер, но такие процедуры, как анализ данных, составление сложных отчетов путем слияния многих таблиц, лучше оставить на клиентских станциях. Можно даже все данные держать на сервере и дать возможность загружать нужные таблицы целиком на рабочие станции для анализа.
Даты в формате 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.
Версия Access
|
Формат Access 2002
|
Формат Access 2000
|
Формат Access 97
|
Формат Access 95
|
Формат Access 2.0
|
||
Access 2002 |
чтение, |
чтение, |
чтение, |
чтение, |
чтение, |
||
|
запись |
запись |
запись |
запись |
запись |
||
|
изменение |
изменение |
|
|
|
||
|
структуры и создание |
структуры и создание |
|
|
|
||
Access 2000 |
|
чтение, |
чтение, |
чтение, |
чтение, |
||
|
|
запись |
запись |
запись |
запись |
||
|
|
изменение |
|
|
|
||
|
|
структуры и создание |
|
|
|
||
Исходный формат
|
Целевой формат
|
Способ преобразования
|
||
База данных |
База данных |
Если база данных впервые открывается в 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.
При переносе базы данных в 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: