Небольшие приложения Microsoft Access обычно состоят из одного файла базы данных. Сетевое приложение удобнее создавать так, чтобы оно включало два файла MDB: первый — файл объектов данных (в нем хранятся таблицы), второй — файл объектов приложения (в нем хранятся все остальные объекты — формы, запросы, отчеты, страницы доступа к данным, макросы и модули VBA). При этом в файле объектов приложения устанавливаются связи с таблицами, хранящимися в файле объектов данных.
Файл объектов данных называют частью заднего плана приложения (back-end), a файл объектов приложения — частью переднего плана (front-end). Файл объектов данных обычно размешается на файловом сервере, а копии приложений переднего плана — на клиентских рабочих станциях.
Разделение базы данных дает следующие преимущества.
- В однопользовательской среде можно обновлять объекты приложения, не оказывая влияния на существующие данные. При этом приложение обновляется простой заменой файла объектов приложения. Альтернативой этому способу является трудоемкая и часто вызывающая ошибки операция обновления объектов приложения в базе данных, состоящей из одного файла.
- В многопользовательской среде с одними и теми же данными могут совместно работать все пользователи приложения, поскольку файл объектов данных размещается на файловом сервере. Файл объектов приложения тоже можно разместить на файловом сервере для общего доступа, а можно для каждого пользователя создать отдельную копию файла объектов приложения, поместив ее на локальный диск клиентской рабочей станции. Тогда каждый пользователь сможет быстро запускать локальную копию приложения и совместно пользоваться файлом объектов данных, расположенным на файловом сервере. Использование локальных копий приложения повышает его производительность, тогда как запуск несколькими пользователями приложения, расположенного на сервере, увеличивает нагрузку на сеть. Поэтому в сетевой среде рекомендуется использовать разделение базы данных. В такой среде легче обновлять разделенную базу данных, поскольку обновление файла объектов приложений не затрагивает файла объектов данных на сервере. Если в многопользовательской среде используется несколько копий файла объектов приложения, то нужно не забывать обновлять все эти копии.
Чтобы изучить механизм разделения базы данных, используйте копию нужной базы данных, помещенную, например, в папку Shared (Общие). Для разделения файла базы данных в Microsoft Access 2002 используется специальная надстройка — Мастер разделения баз данных. Далее описана процедура разделения файла базы данных.
Видеоинструкции по работе в ПО SurvX — Настройка базы (внутренний GSM)
- Откройте в Access 2002 базу данных, которую вы будете разделять. Например, можно разделить базу данных «Борей», входящую в комплект примеров Microsoft Access 2002.
- Активизируйте окно базы данных и выберите команду Сервис, Служебные программы, Разделение баз данных (Tools, Database Utilities, Database Splitter). Появится диалоговое окно Мастера разделения базы данных, приведенное на рис. 19.1. В окне сообщается, что таблицы текущей базы данных будут перемещены в новую базу данных и что эта операция может занять некоторое время. Рекомендуется создать резервную копию базы данных перед ее разделением на случай неожиданного сбоя работы мастера или операционной системы. Для разделения базы данных нажмите кнопку Разделить (Split Database).
Рис. 19.1. Диалоговое окно Разделение базы данных
Obsidian: обзор программы для структурирования мыслей и заметок
- После нажатия кнопки Разделить (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. Диалоговое окно Диспетчер связанных таблиц
Источник: www.taurion.ru
Разделение базы 1С по организациям
В мире 1С встречается несколько типов задач, с которыми регулярно приходится встречаться. Это такие задачи, как свертка базы 1С, перенос данных из старой базы в новую или например организация регулярного обмена данными. А также задача разделения базы 1С по организациям.
Специалисты компании MoscowSoft неоднократно решали задачу разделения базы 1С по организациям для наших заказчиков и даже создали готовые инструменты для этого.
С чего можно начать в решении этой задачи — помнить, что платформа 1С дает нам инструменты для поиска ссылок на те организации, которые есть в базе. Эта функция называется “НайтиПоСсылкам”. То есть вы передаете массив готовых ссылок и, соответственно, результатом выполнения функции становится массив объектов баз данных. Но если выполнять корректно после такого поиска удаление данных (с контролем ссылочной целостности), этот процесс займет очень много времени. В этом главная сложность такой задачи — требуется максимально ускорить удаление данных.
Также следует сказать, как технически можно организовать разделение базы 1С на две отдельные базы по организациям. Как правило, используют один из двух вариантов:
- Либо перенос данных между идентичными конфигурация, то есть запуск обработки “Выгрузка / загрузка данных XML”.
- Либо используется алгоритм для удаления “лишних” организации. То есть делается копия базы данных, и в ней запускается процесс удаления документов по тем организациям, учет по которым в новой базе данных не должен вестись.
Таким образом остаются только нужные организации.
После различных экспериментов, различных попыток решить данную задачу для базы данных не самого большого размера (около 20 гигабайт), мы в итоге остановились на втором способе. Но удаление аккуратное, с контролем ссылочной целостности по каждому удаляемому объекту, могло длиться неделями даже для базы данных небольшого размера.
В итоге пришли к следующему решению — создали отдельную обработку для контроля одновременных перекрестных ссылок объектов на разные организации. О чем идет речь? В базе данных по ошибке или не по ошибке могут появиться ситуации, что один и тот же объект имеет прямые или непрямые ссылки сразу на две организации. Например, через какой-то подчиненный объект. Например, в документе “Операция бух” в шапке выбрана одна организация, а в табличной части данного документа выбран договор, который принадлежит другой организации.
Если мы будем выполнять удаление “лишних организаций” и договор который в табличной части в движениях документа “Операция бух” будет удален, то будет удален и документ сам “Операция бух”. Таким образом, движения и остатки по той организации, которая должна остаться, станут некорректными после процесса удаления. Чтобы избежать таких ошибочных ситуаций, мы разработали инструмент для поиска таких прекрасных ссылок, то есть инструмент их находит, а разобраться с ними предлагает уже пользователям. Понятно, что возможны и другие ситуации, когда один и тот же объект либо прямо, либо опосредованно может иметь в себе ссылки на разные организации. Уже после ручного удаления перекрестных ссылок приступаем к процессору удаления данных по организациям.
Сначала был разработан алгоритм, который для каждого объекта перед удалением запускал поиск ссылок на него и если их не было, то запускал удаление, но этот процесс занимал очень много времени. В последующем для ускорения перешли к другому алгоритму.
Сначала происходит удаление всех документов, где есть реквизит шапки “Организация” и это удаление производится без контроля ссылочной целости. Обратите внимание — это самый быстрый способ удаление данных из базы 1С. Разумеется, кроме использования прямых SQL запросов, которые является нарушением лицензионной политики 1С, а без них быстрее удалить по-другому никак не получится.
И уже после завершения удаления документов, происходит удаление записи регистров сведений, кстати многие записи удаляются автоматически при удалении документов, а документы предварительно надо распровести. И уже после этого происходит удаление справочников, причем тоже можно работать сначала удалить известные справочники: банковские счета организации, договоры контрагентов и так далее. Таким образом, когда будут удалены все ссылочные данные на самом последнем этапе удаляется собственно сама организация, в этот момент на нее никаких ссылок уже не остается.
Разумеется для решения данной задачи мы сделали обработку, она много лет присутствует на инфостарте и также предлагается на нашем сайте. И мы и наши заказчики активно ее используем на проектах. И эта обработка выполняет эту задачу разделения баз данных на части. Кроме того стоит помнить и о дополнительных моментах при выполнении такой операции. Что имеется в виду?
В первую очередь имеется в виду настройка прав пользователей. Вторая задача это удаление обменов данными которые были в исходной базе, либо возможно настройка новых обменов данными, то есть интеграция данной базы 1с в информационное пространств организации, то есть настройка таких обменов.
Что еще стоит иметь в виду: настройка ИТС в этом случае будет выполнена автоматически. Все внешние обработки так же будут в базе присутствовать все доступы к внешним ресурсам, все расширения так же в ней останутся ну что является скорее плюсом да, то есть забыть об этом а не получится. Но, разумеется, потребуется отключить тот функционал, который в новый базе по новой организации уже не требуется для ее облегчения, возможно, в каких то ситуациях необходимо будет сделать базу типовой.
Посмотреть описание обработки разделения базы 1С по организациям >>
Есть вопросы по работе с 1С?
Источник: moscowsoft.com
Разделение базы данных Access вручную в Microsoft Access
Дополнительно: требуется опыт программирования, взаимодействия и многопользовательских навыков.
Эта статья применима к файлам баз данных Microsoft Access (.mdb) или (.accdb).
Аннотация
По различным причинам вы можете разделить базу данных на интерфейсное приложение или серверное приложение. Серверная база данных содержит таблицы и хранится на файловом сервере. Интерфейсная база данных, которая ссылается на серверные таблицы, содержит все формы, запросы, отчеты, макросы и модули. Интерфейсная база данных распространяется на рабочие станции пользователей.
В этой статье описывается, как разделить базу данных вручную, а не с помощью служебной программы «Разделитель баз данных».
Дополнительные сведения
Чтобы разделить базу данных в Microsoft Office Access 2003 и более ранних версиях Access, выполните следующие действия.
- Создайте пустую базу данных Access.
- В меню «Файл» наведите указатель на пункт «Получить внешние данные» и нажмите кнопку «Импорт».
- Найдите и выберите базу данных, которую нужно разделить.
- На вкладке «Таблицы » нажмите кнопку «Выбрать все» и нажмите кнопку » ОК». Обратите внимание, что Access импортирует все таблицы в новую базу данных, которая является серверной базой данных.
- Сохраните новую серверную базу данных в сетевой папке и убедитесь, что все пользователи имеют полные разрешения на доступ к общей папке.
- Создайте вторую пустую базу данных Access.
- В меню «Файл» наведите указатель на пункт «Получить внешние данные» и выберите команду «Связать таблицы».
- Выберите только что созданную серверную базу данных.
- На вкладке «Таблицы » нажмите кнопку «Выбрать все » и нажмите кнопку » ОК». Обратите внимание, что Access связывает таблицы серверной базы данных с интерфейсной базой данных.
- В меню «Файл» наведите указатель на пункт «Получить внешние данные» и нажмите кнопку «Импорт».
- Выберите исходную базу данных, которую вы разделяете, и нажмите кнопку «Импорт».
- На вкладке «Формы» нажмите кнопку «Выбрать все». Повторите этот шаг на всех вкладах, кроме вкладки «Таблицы». Так как вы уже связаны с таблицами, необходимо импортировать только остальные объекты.
- После выбора всех объектов, кроме таблиц, нажмите кнопку «ОК». Обратите внимание, что теперь все таблицы связаны и импортированы остальные объекты.
Чтобы разделить базу данных в Microsoft Office Access 2007 или более поздней версии, выполните следующие действия.
- Создайте пустую базу данных Access.
- На вкладке «Внешние данные » щелкните «Доступ » в группе «Импорт «.
- В диалоговом окне «Получение внешних данных» нажмите кнопку «Обзор», чтобы найти и выбрать базу данных, которую нужно разделить, щелкните, чтобы выбрать импорт таблиц, запросов, форм, отчетов, макросов и модулей в текущую базу данных. Установите флажок и нажмите кнопку «ОК».
- В диалоговом окне «Импорт объектов» нажмите кнопку «Выбрать все» на вкладке «Таблицы» и нажмите кнопку «ОК». Обратите внимание, что Access импортирует все таблицы в новую базу данных, которая является серверной базой данных.
- Сохраните новую серверную базу данных в сетевой папке и убедитесь, что у всех пользователей есть полные разрешения на доступ к общей папке.
- Создайте вторую пустую базу данных Access.
- На странице «Внешние данные» щелкните «Доступ » в группе импорта .
- В диалоговом окне «Получение внешних данных» нажмите кнопку «Обзор», чтобы выбрать созданную серверную базу данных, щелкните ссылку на источник данных, создав связанную таблицу. Установите флажок и нажмите кнопку «ОК».
- В диалоговом окне «Импорт объектов» нажмите кнопку «Выбрать все» на вкладке «Таблицы» и нажмите кнопку «ОК». Обратите внимание, что Access связывает таблицы серверной базы данных с интерфейсной базой данных.
- На странице «Внешние данные» щелкните «Доступ » в группе импорта .
- В диалоговом окне «Получение внешних данных» нажмите кнопку «Обзор», чтобы выбрать исходную базу данных, которую вы разделяете, щелкните, чтобы выбрать таблицы, запросы, формы, отчеты, макросы и модули в текущей базе данных. Установите флажок и нажмите кнопку «ОК».
- В диалоговом окне «Импорт объектов» нажмите кнопку «Выбрать все» на вкладке «Формы», повторите этот шаг на всех остальных вкладах, кроме вкладки «Таблицы», так как вы уже связаны с таблицами. Теперь необходимо импортировать только остальные объекты, а затем нажмите кнопку » ОК». Обратите внимание, что теперь все таблицы связаны и импортированы остальные объекты.
Примечания.
Эта база данных является интерфейсной базой данных. Эту интерфейсную базу данных можно распределить на рабочие станции, чтобы у каждого пользователя была собственная копия интерфейсной базы данных.
Теперь вы успешно разделили базу данных, что повышает производительность. Теперь, когда пользователь открывает форму, она открывается локально на компьютере и не отправляется по сети. Только данные, поступающие по сети, — это данные в связанных таблицах.
Причины, по которым может потребоваться разделить базу данных
Ниже приведены типичные причины для разделения базы данных.
- Вы совместно используете базу данных с несколькими пользователями в сети.
- У вас есть несколько разработчиков в базе данных, и у вас не установлен Microsoft Visual Source Safe.
- Вы не хотите, чтобы пользователи могли вносить изменения в дизайн таблиц.
Наиболее распространенной причиной разделения базы данных является предоставление общего доступа к базе данных нескольким пользователям в сети. Если вы просто храните базу данных в сетевой папке, когда пользователи открывают форму, запрос, макрос, модуль или отчет, эти объекты должны быть отправлены по сети каждому пользователю, который использует базу данных. При разделении базы данных у каждого пользователя есть собственная копия форм, запросов, макросов, модулей и отчетов. Таким образом, единственными данными, которые должны быть отправлены по сети, будут данные в таблицах.
Примечание Чтобы разделить базу данных, можно также использовать служебную программу разделения баз данных.
Обратная связь
Были ли сведения на этой странице полезными?
Источник: learn.microsoft.com