LEADERSOFT.ru Разработка на заказ программ и сайтов
ЕСЛИ БАЗА ВАМ НУЖНА В ЛИДЕРСОФТ ЗАЙДИ СПЕРВА!
Список всех статей ... Подписка на новости (рассылка через subscribe.ru)




































Выпуск 10. Зачем делить базу данных на mdb и mde?

Подписка: "Access 2000 - программирование и готовые решения"
Дата:         19.09.2000
Сайт:         http://www.leadersoft.ru
Слоган:     Если база Вам нужна, в LeaderSoft зайди сперва.
Комментарий: 
      Мы разрабатываем по заказам клиентов различные программы, используя Microsoft Access. Базы данных разрабатываются "с нуля" или, используя готовые решения (Склад, Касса, Банк и т.п.), что позволяет достаточно гибко решать финансовые вопросы по оплате услуг за разработку. Для регистрации заказа заполните форму: Регистрация заказа на разработку


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

Письмо. Совет по делению базы на mdb и mde встречается почти везде, но ни у кого я не встречал внятного объяснения того, зачем это надо. Такое ощущение, что все просто повторяют прочитанную где-то в учебнике по Access фразу. Сжимается база прекрасно и без деления - просто в Tools->Options->General ставится галочка в поле "Compact on close". Так какой же реальный смысл в создании mde для новичков? У меня например, с mde файлами были одни проблемы - пытаясь чему-то научиться, я скачал множество образцов баз данных у microsoft (их программа ms office extentions) - и ни одна база на основе mde, написанная для access 97 нормально не открывается в access 2000 - все выдают ошибки при конвертации. В тоже время любые mdb базы из ранних версий access прекрасно конвертируются в access 2000. Учитывая, что новые версии офиса всегда не за горами - хотелось бы знать зачем огород городить!

Считаю, что вопрос по делению базы данных на mdb и mde является очень важным для "серьезных" программ, поэтому и даю подробный ответ для чего это нужно:

[1. Для скорости]. Файл mde является "родным" для Access, т.е. структура его близка к машинно-двоичному виду, практически это тоже самое как файл exe для Windows. Следовательно, если Вы выделите из базы данных таблицы (кстати по объему информации они всегда стоят на первом месте) и скомпилируете все остальное в mde файл, Вы получите программу с минимальным размером. Отсюда следует, что пользователи будут быстрее загружать программу и работать с ней будет надежнее и удобнее. (Замечание. Не тратьте много усилий на конвертирование mde файлов к другим версиям Access и не пытайтесь их открывать из других версий Access - это не получится. Файлы mde не имеют исходных текстов программ на Бэйсике, следовательно для компилятора Access - это китайская грамота, так же как для большинства из нас язык племени Юмба-Намба из Северной Африки).

[2. Для защиты]. Если Вы разрабатываете программу уже несколько лет и потратили много сил и энергии, то нет смысла ее распространять в открытом виде. Через 2-3 недели, изменив ваши авторские права на свои, уже кто-то начнет ее продавать как собственную разработку.

[3. Для надежности]. Ядро Access легче обрабатывает базу данных в которой хранятся одни таблицы. Следовательно, если в вашей mde-программе есть скрытые ошибки в расчетах, то может произойти разрушение mde-файла, но в случае раздельного хранения данных Ваши данные в таблицах останутся.

[4. Для обслуживания]. При работе в сети базу данных mdb размещают на сервере, а mde-программы на компьютерах пользователя. Если Вам надо поменять старую версию программы на новую, то не зачем останавливать всю работу предприятия в случае с одним mdb файлом. Вы просто отлаживаете mde-программу на своем компьютере, добавляете поля, таблицы в базу данных mdb на сервере, а потом заменяете по сети mde-файлы пользователей. Все это занимает несколько минут, и практически различные отделы, например, Бухгалтерия, Сбыт, ОТиЗ работают без остановки.

[5. Для удобства]. У меня программа, например, "Склад и Реализация.mde" работает сразу с многими филиалами и организациями. Для каждой организации или филиала отводится файл данных mdb, чтобы не мешать складскому и бухгалтерскому учету. Сейчас их на диске хранится более 50 штук. Если бы в этих файлах хранились еще формы и VBA-программы, бухгалтеру каждый раз нужно было бы закрывать и открывать Access программы. Для него это очень утомительно и неудобно, т.к. надо постоянно помнить все файлы. Сейчас бухгалтер не закрывает программу "Склад и Реализация.mde", если нужно найти данные другого филиала, он только выбирает филиал, а все остальные действия по поиску mdb-файла и установке связи с новой базой данных делает программа.

[6. Для совместимости]. Если у Вас один файл mdb обеспечить совместимость разных версий Access практически не возможно, т.е. трудно будет работать с файлом mdb из Access версий 2, 97 и 2000. Если же mdb-таблицы хранятся на сервере, Вы можете подключиться к ним через внутренние или внешние драйверы ODBC из любой версии Access

[7. Для мобильности]. Если Вы работаете с программой складского учета, то Вам требуется описать примерно 40-50 разных таблиц для склада, администрирования или настройки. Но этого явно недостаточно, т.к. по складу должны проходить и таблицы, связанные с кассой, с банком и себестоимостью (~60 штук). Если все это записать в один файл, то не только бухгалтера, но и Вы начнете путаться в них. Поэтому и надо разделять базу данных на несколько частей.

[8. Для администрирования]. Работая с "серьезной" базой данных надо заботиться о ее сохранении и развитии. Для этого существуют различные команды: архивирование и восстановление, копирование и удаление, репликация, т.е. добавление новых полей и таблиц. Все эти действия легче всего осуществить, если в Вашей базе данных будут одни таблицы. Зайдите на мой сайт и посмотрите введение к базе данных "Склад и Реализация", там есть что почитать.

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