Microsoft Access — эффективное ИТ-решение для создания простых баз данных для нужд компании, особенно при ограниченном бюджете. Приведенные в данной статье советы помогут построить эффективные базы данных и сократить время обработки.
СОВЕТ 1.
Всегда закрывайте Access, если база данных не используется
Неиспользуемую базу данных Access удобно оставить открытой и свернуть, но при этом возникает опасность порчи базы данных, особенно если она коллективно используется в сети. Закрывая файлы базы данных и выходя из Access, пользователь не только освобождает ресурсы и соединения с базой данных, но и исключает порчу информации при неожиданном отключении компьютера.
СОВЕТ 2.
Определение лиц, использующих базу данных
При необходимости создать резервную копию или получить исключительный доступ к базе данных можно выяснить, используются ли файлы базы данных другими лицами. Access отслеживает информацию о соединениях пользователей в файле .ldb, который находится в одной папке с приложением Access. В файле .ldb перечислены имена рабочих станций и имена регистрации всех пользователей, подключенных в данный момент к файлу базы данных Access. Если .ldb-файл не существует, это означает, что никто из пользователей не установил соединение с базой данных и к ней можно получить исключительный доступ или выполнить резервное копирование. Если ldb-файл существует, то его можно открыть в Microsoft Notepad или WordPad. Если файл не удается открыть с помощью этих программ, то следует сохранить его с новым именем, а затем попытаться открыть.
СОВЕТ 3.
Регулярно копируйте базу данных
В сетевой среде необходимо удостовериться, что плановое резервное копирование базы данных выполнено успешно. Прежде чем запустить процедуру резервного копирования, следует убедиться, что все файлы базы данных закрыты; в противном случае открытые файлы могут быть пропущены. Прежде чем приступить к изменению файла базы данных, полезно скопировать файл в резервную папку. Можно выполнить и быстрое копирование, выбрав Tools в панели инструментов Access, а затем Database Utilities и Back Up Database.
СОВЕТ 4.
Компактная база данных менее подвержена разрушению
Сжатие базы данных — один из лучших способов избежать порчи базы данных и повысить производительность. Подобно дефрагментации диска, сжатие базы данных позволяет реорганизовать и оптимизировать используемое и неиспользуемое дисковое пространство в базе данных благодаря удалению старых файлов Access и их замене компактными версиями. Если база данных Access размещена в файловой системе NTFS, то лучше всего установить файловые разрешения и применить защиту на уровне пользователя Access, так как в процессе сжатия всем разрешениям файлового уровня присваиваются стандартные значения. Начать сжатие базы данных необходимо с ее резервного копирования. Требуется выбрать Tools из панели инструментов Access, затем Database Utilities и запустить процедуру Compact and Repair Database. При использовании сценария Visual Basic for Applications (VBA) компактную базу данных можно получить с помощью команды Application.CompactRepair(SourceFile,DestinationFile, LogFile)
СОВЕТ 5.
Разделение базы данных на внешний и внутренний компоненты
При проектировании многопользовательской базы данных Access имеет смысл разделить информацию на две части — внешнюю и внутреннюю, чтобы преодолеть ограничение в 2 Гбайт, накладываемое на размер базы данных, и повысить производительность. Например, внешний компонент может содержать формы, отчеты, запросы и модули, а во внутренней базе данных могут храниться таблицы данных. Благодаря разделению базы данных упрощается ввод новых и изменение существующих данных. Например, после разделения достаточно обновить только внешнюю базу данных для изменения форм и отчетов, а внутренняя база данных остается без изменений. Чтобы разделить базу данных, следует выбрать меню Tools из панели инструментов Access, затем пункт Database Utilities и активизировать функцию Database Splitter.
При работе в глобальной сети более эффективно загрузить внешний компонент, чем базу данных, содержащую все объекты (формы, записи и таблицы). Чтобы избежать порчи базы данных в многопользовательской среде, рекомендуется компилировать внешнюю базу как базу данных MDE (т. е. базу данных Access), выбрав меню Tools из панели Access, затем пункт Database Utilities и функцию Make MDE File. После этого MDE-файл следует разослать по локальным машинам пользователей.
СОВЕТ 6.
Создание первичного ключа для предотвращения дублирования записей
Фундаментальное правило проектирования баз данных — освободить базу данных от дублированных записей. Простой способ избавиться от дублированных записей — определить первичный ключ или набор первичных ключей, уникально идентифицирующих каждую запись в таблице. Первичный ключ также играет роль уникального индекса или идентификатора. Некоторые примеры первичных ключей — номер элемента (AutoNumber), номер социального обеспечения или местоположение. В Access существует три типа данных первичных ключей: AutoNumber, с одним и несколькими полями. Чаще используются первичные ключи AutoNumber и ключи с одним полем.
СОВЕТ 7.
Использование индекса для ускорения обработки
Благодаря использованию индексов ускоряется сортировка и извлечение записей в таблице. Поле, используемое в качестве индекса, часто определяется тем, какое поле (или поля) чаще всего применяется в предложении WHERE в запросах. Можно указать, будет ли индексное поле уникальным или разрешить дублирование, выбрав Yes (уникальное) или No (разрешить дублирование) в поле свойств Unique индекса. Если первичный ключ таблицы базы данных имеет тип данных AutoNumber, то следует установить свойство Unique в значение Yes, чтобы пользователь не мог ввести одну и ту же запись дважды. Индекс можно также настроить на одно или несколько полей. При использовании индексов увеличиваются занимаемое дисковое пространство и время обработки, поэтому не следует назначать индексы без необходимости.
СОВЕТ 8.
Присвоение полю AutoNumber значения 1
Поле AutoNumber — одно из полей, используемых в Access в качестве первичного ключа. Access автоматически назначает следующий номер каждой новой записи в соответствии со значением (Increment или Random) поля свойства New Value. Следует обратить внимание, что поле AutoNumber не может принимать значение 0. Значение поля AutoNumber нельзя вводить или редактировать вручную, но пользователь может сбросить значение этого поля, чтобы вновь начать нумерацию с 1, даже если в таблице есть записи. Чтобы перенести записи из таблицы, следует создать ее резервную копию с помощью функции Copy или Save As и удалить из таблицы все существующие записи. Выберите Tools из инструментальной панели Access, затем Database Utilities и функцию Compact and Repair Database, пока таблица пуста. После того как будут присоединены старые записи из резервной таблицы, начальным значением поля AutoNumber будет 1.
СОВЕТ 9.
Использование свойств CanGrow и CanShrink для больших текстовых полей
Свойства CanGrow и CanShrink существуют для таких объектов управления, как подотчеты, подформы и текстовые поля, а также разделы отчетов. По умолчанию свойство CanGrow имеет значение No. Чтобы увеличить длину вертикального поля в соответствии с размером данных, свойство CanGrow должно иметь значение Yes. Разработчики отчетов и форм не всегда могут точно предсказать размер текста в записи, поэтому данное свойство полезно, когда необходимо отображать большие текстовые поля. При размещении элемента управления в режиме конструирования необходимо проверить наличие достаточного пространства вокруг поля; в противном случае свойство CanShrink будет функционировать некорректно. Дополнительные сведения о специализированных функциях, с помощью которых можно удалить ненужное пространство, приведены в статье Microsoft «Eliminating Unwanted Blank Lines in Labels and Reports» по адресу http://office.microsoft.com/en-us/assistance/HA011494721033.aspx.
СОВЕТ 10.
Корректный выбор библиотеки ссылок для обновления
На многих предприятиях существует множество баз данных Access или проектов, выполняемых пользователями с применением различных версий Access (например, Access 2003, Access XP). Access 2003 позволяет открывать различные версии баз данных Access. Однако необходимо сохранить отдельные экземпляры эталонных библиотек, используемых файлом базы данных на рабочей станции. В противном случае при попытке открыть и редактировать файл базы данных Access XP с использованием Access 2003 библиотека Access XP может быть автоматически обновлена с использованием эталонных библиотек, что приведет к некорректному функционированию части программного кода VBA. К эталонной библиотеке можно обратиться с помощью редактора VBA, выбрав меню Tools, а затем References. Во избежание несовместимости рекомендуется проектировать базу данных Access с применением той же версии программы и пакетов обновлений Access, которая имеется у пользователей.
Алан Сугано — президент компании ADS Consulting Group, консультант в области сетевых технологий, специализированного программирования, Web-разработки Microsoft .NET и проектирования SQL Server. asugano@adscon.com
Джин Хси — директор ADS Consulting Group. Имеет 13-летний опыт проектирования специализированных приложений Microsoft Access, Visual Studio, баз данных и SQL Server.