Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диго С.М. Базы данных проектирование и использование.doc
Скачиваний:
723
Добавлен:
14.05.2016
Размер:
12.04 Mб
Скачать

10.7. Работа в распределенной среде при использовании субд Access

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

Access, как известно, относится к классу настольных СУБД. Ес­тественно, что сетевые возможности наиболее развиты в корпоратив­ных СУБД, но в связи с повсеместной распространенностью сетевых технологий настольные СУБД также обеспечивают работу в много­пользовательском режиме.

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

Кроме самостоятельного использования Access может применять­ся как средство проектирования при создании РБнД, а также в каче­стве интерфейсного средства при работе в гетерогенном РБнД; как правило, Access используется совместно с MS SQL-сервером.

Как указывалось выше, в Access используется своеобразное по­нятие базы данных: базы данных включают в своем составе не толь­ко таблицы и связи между ними (что традиционно считается базой данных), но и запросы, отчеты, модули, макросы и другие объекты. В связи с этим при работе в многопользовательском режиме возникают дополнительные проблемы и имеются специальные средства для их разрешения.

Существует несколько способов совместного использования дан­ных в многопользовательской среде.

  1. Совместное использование всей базы данных Microsoft Access.

  2. Совместное использование таблиц базы данных Microsoft Access.

  3. Совместное использование объектов базы данных Microsoft Access или страниц доступа к данным в Интернете.

  4. Репликация базы данных Microsoft Access.

  5. Создание приложения в архитектуре «клиент-сервер».

Различие в первых двух возможностях обусловлено особенностя­ми архитектуры Access и является специфичным именно для этой СУБД. Напомним, что в Access база данных - это не только таблицы с данными, но и формы, отчеты, запросы, макросы и модули.

Можно поместить всю базу данных Access (т.е. базу данных, со­держащую все эти объекты) на сетевой сервер или в общую папку. Далее следует убедиться, что для базы данных задано открытие в ре­жиме совместного доступа. Этот режим используется по умолчанию. Чтобы установить этот режим, необходимо в меню Сервис выбрать команду Параметры, затем на вкладке Другие в группе параметров Режим открытия по умолчанию выбрать параметр общий доступ (рис. 10.8).

Путем соответствующей настройки можно также определить па­раметры, управляющие блокировкой данных и обновлением данных в общей базе данных, такие, как «блокировка по умолчанию» (опре­деляет блокируемую информационную единицу), «число повторов обновления» (определяет число попыток обновления записи, если она оказалась заблокированной) и некоторые другие.

Совместное использование всей базы данных является наиболее простым способом организации совместного доступа. Все работают с одними и теми же данными, формами, отчетами, запросами, макро­сами и модулями. Это приемлемо, когда информационные потребно­сти всех пользователей совпадают.

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

Для того чтобы выполнить разделение баз данных, необходимо выполнить следующие шаги:

  • в меню Сервис выбрать команду Служебные программы и подкоманду Разделение баз данных;

  • в ответ на вопрос Мастера «Разделить базу данных» указать ме­сто на диске, где будет размещена отделенная БД, т.е. часть исходной базы данных, которая содержит таблицы.

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

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

  • доступ к БД осуществляется быстрее, поскольку отсутствуют траты времени на передачу объектов по сети;

  • резервирование данных и обновление других объектов упро­щается, если таблицы хранятся отдельно от остальных объек­тов БД;

  • пользователь может менять свои формы и отчеты, не оказы­вая влияние на компоненты, разработанные другими пользовате­лями.

Присоединенные таблицы могут находиться не только в другой БД Access, но даже в БД других СУБД.

Распределенные базы данных могут быть расположены как в ло­кальной, так и в глобальной сети. Обеспечить совместное использо­вание данных из БД при работе в Интернете можно несколькими спо­собами. Имеется возможность вывести один (или несколько) объект базы данных в формате статического HTML или генерируемого сер­вером HTML, а также создать страницы доступа к данным, а затем отображать их в обозревателе, например в Microsoft Internet Explorer, в Интернете.

Существуют различные способы выполнения репликации и син­хронизации баз данных в Access:

портфельная репликация;

  • команды репликации в меню Сервис Microsoft Access;

  • репликация в проекте Microsoft Access;

  • программная репликация;

  • диспетчер репликации Microsoft.

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

При работе в среде «клиент-сервер» можно использовать име­ющиеся дополнительные возможности и способы защиты, обес­печиваемые сервером. Данные сохраняются в таблицах на сервере базы данных, например на Microsoft SQL Server, а не в локальных таблицах в Microsoft Access. Приложение Access (клиент) прини­мает требующиеся ему данные с сервера. Сервер поддерживает це­лостность данных и выполняет любые запросы, которые он может распознать.

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

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

Microsoft Access позволяет отслеживать состояние записей во вре­мя внесения в них изменений и обеспечить использование самых све­жих данных. Если два (или более) пользователя пытаются внести из­менения в одну и ту же запись, на экране появляется сообщение, по­могающее разрешить конфликт. Например, при попытке сохранить запись, заблокированную другим пользователем, на экране появляет­ся имя заблокировавшего ее пользователя.

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

Одной из возможностей поддержки удаленных пользователей с помощью реплицирования в СУБД Access является использова­ние команды Репликация в меню Сервис Microsoft Access. Для этого в меню Сервис следует выбрать позицию Репликация, а затем - Создать реплику (рис. 10.9). Реплицировать можно только закрытую базу данных. При этом она не должна быть защищена па­ролем.

Реплицирование может применяться не только при работе несколь­ких пользователей в сети, но и, например, при использовании как на­стольного, так и переносного компьютера. При этом на переносном компьютере создается «оторванная» реплика, с которой можно рабо­тать автономно. Впоследствии, когда появится возможность, в слу­чае необходимости (если в реплику вносились изменения, которые должны быть учтены в основной базе данных) можно произвести син­хронизацию.

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

Реплицирование может использоваться не только при работе не­скольких пользователей в сети, но и, например, при использовании как настольного, так и переносного компьютера.

В Microsoft Access 2000 и более поздних версиях реплике в набо­ре реплик при ее создании назначается приоритет, и в случае конф­ликта синхронизации применяется реплика с наивысшим приорите­том. При равенстве приоритетов используется реплика с минималь­ным значением свойства «ReplicalD».