Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Access_2007.doc
Скачиваний:
257
Добавлен:
17.03.2015
Размер:
20.6 Mб
Скачать

Уголок ностальгии. Dао против аdо

Для того чтобы усложнить жизнь, корпорация Microsoft давным-давно ввела еще одну технологию доступа к данным, названную ADO (ActiveX Data Objects, объекты данных ActiveX). И DAO, и ADO выполняют задачи обработки данных с помощью удобных объектов.

Ключевая разница между ними заключается в том, что Microsoft проектировала ADO как универсальную технологию доступа к данным, которая может работать с другими системами управления БД, например SQL Server, a DAO предназначена только для Access.

Некоторые программисты Access считают (неправильно), что ADO — приемник DAO и лучший выбор при написании программного кода для БД Access. (В действительности корпорация Microsoft, возможно, даже заявляла об этом в определенный момент, но все свидетельства этого уничтожены.) В настоящий момент официальная версия заключа­ется в том, что лучше применять DAO, поскольку эта технология настроена для про­граммы Access. Это означает, что DAO легче использовать, и она обеспечивает лучшую производительность в большинстве случаев. ADO применяют лишь опытные VB-программисты, кто уже знает, как работает эта технология, и не хочет тратить время на изучение DAO, или же разработчики, которым требуется какое-нибудь экзотическое средство, имеющееся в ADO и отсутствующее в DAO.

Часть VI

Совместное использование Access

Глава 18. Совместное использование БД несколькими пользователями

Глава 19. Импорт и экспорт данных

Глава 20. Подключение Access к SQL Server

Глава 21. Подключение Access к SharePoint

Глава 18

Совместное использование БД несколькими пользователями

Теперь, когда совершенная БД создана, возможно, вы захотите использовать ее совместно с друзьями и коллегами. В одних руках программа Access— первоклассное средство управле-ния данными. Но когда пристрастие разделяет группа людей, программа предоставляет от-личную возможность для совместной работы.

Совместное использование БД особенно важно, если она играет связующую роль в организании. Представьте себе, что вы создаете БД, которая отслеживает проекты компании и сроки их выполнения. (Обычно такая БД формируется как экономящее время средство в руках фаната Access, у которого есть небольшой избыток свободного времени.) Вскоре у других отделов возникает желание примкнуть к вам и сохранять свои проекты в вашей БД. И возможности этим не ограничиваются; если вы используете БД совместно с достаточно широкой аудиторией, можно собрать воедино все виды связанных задач. Сотрудники могут регистрировать время, потраченное на каждый проект. Тестировщики качества продукции могут фиксировать все нерешенные проблемы, влияющие на проект. Руководители проек­тов могут обозначить проекты с требующими напряжения сроками, главные начальники могут рассчитать премии, а генеральный директор оценить с высоты орлиного полета всю работу своей компании. Очень скоро будет трудно представить себе жизнь без вашей БД Access.

В этой главе вы научитесь использовать вашу БД вместе с небольшой группой, узнаете о возможных ловушках и о том, что нужно делать, чтобы все протекало гладко.

Открытие вашей базы данных всему миру

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

В целом у вас есть четыре основных подхода для того, чтобы предоставить свои данные массам.

  • Экспортирование данных. Можно взять данные из вашей БД и экспортировать их в дру­гой формат (например, в Web-страницу на языке HTML или электронную таблицу Excel). Этим путем можно пойти, если у пользователей, которым нужны ваши данные, нет программы Access. Как экспортировать данные, вы узнаете в главе 19.

  • Копирование вашей БД. Можно предоставить другим пользователям копию вашей БД. Например, если у вокальной группы "Uncle Earl" есть копия Access, можно послать им по электронной почте список семейных адресов. Ограничение такого подхода состоит в отсутствии легкого способа синхронизации изменений в разных копиях. Если группа "Uncle Earl" добавит несколько новых людей в список, ваш исходный список останется прежним. Если вы измените исходный список, устареет копия группы "Uncle Earl".

  • Переход на серверное программное обеспечение. Можно перенести ваши данные на серверный программный продукт промышленного уровня, например SQL Server или SharePoint. После этого практически неограниченное число пользователей сможет получать данные. Каждый из них использует собственную копию программы Access для соединения с сервером, у которого есть централизованное хранилище информации. Очевидный недостаток такого подхода — сложность, поскольку настройка подобных программных продуктов — непростая задача даже для технически образованных пользователей. Вы опробуете два лучших варианта подобного подхода в главе 20 (SQL Server) и в главе 21 (SharePoint).

  • Применение средств коллективного использования программы Access. Можно поместить вашу БД в папку с общим доступом (например, на сетевой диск), чтобы несколько человек могли использовать ее одновременно. В этом случае все работают с одним и тем же множеством данных (и изменения, сделанные группой "Uncle Earl", не пропадут). При таком подходе программа Access должна координировать работу пользователей. Если у вас небольшая группа — скажем, не более 40 человек используют вашу БД одновременно - коллективное использование будет функционировать. Но если группа достаточно велика, программа Access для нее не подойдет. В этом случае нужен серверный программный продукт, который рассчитан на большие объемы и многопользовательский доступ. (В следующем разделе приведен удобный перечень, который поможет решить, годится ли вам такой подход.)

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

Как действует многопользовательская поддержка в Access

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

Звучит, просто, не так ли? Но не торопитесь. Прежде чем реорганизовывать работу це­лой компании, ориентируя ее на единственный файл БД, следует учесть несколько чисел. Далее приведены некоторые индикаторы, свидетельствующие о том, что многопользова­тельская поддержка Access вам подойдет.

Не более 40 человек одновременно пользуются БД. Количество пользователей, одновременно обращающихся к БД, — это ключевой момент. Вы можете использовать одну и туже БД совместно с сотнями пользователей, при условии, что все они не будут открыватьэту БД одновременно.

Примечание

Это число (40) — осмысленная рекомендация, а не железное правило. Некоторые гуру Access проектировали БД, которые могли выдерживать от 90 до 100 одновременных пользователей. Но без серьезных (и сложных) оптимизационных мер вы очень скоро упретесь в кирпичную стену.

  • Не более 15 человек одновременно изменяют БД. Читать БД легко, а обновление БД со­пряжено с некоторыми серьезными проблемами. Очевидная проблема возникает, когда несколько человек разными способами пытаются изменить одну и ту же запись одновре­менно. Из-за проектных особенностей программы Access даже те изменения, которые не приходят в столкновение друг с другом, могут снизить общую производительность. Вы попытаетесь преодолеть это затруднение позже в данной главе, когда будут обсуждаться блокировки (см. разд. "Применение блокировок для предотвращения наложения обновле­ний "далее в этой главе).

Примечание

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

  • Структура БД меняется нечасто. Другими словами, вы не планируете регулярно изменять структуру таблиц, добавлять новые поля или корректировать связи между таблицами. В идеале следует окончательно откорректировать свои таблицы, а затем предлагать БД для совместного использования. Для получения наилучших результатов только одному человеку следует поручить роль главного разработчика таблиц, который в случае необходимости отвечает за изменение структуры БД.

  • Разные пользователи намерены работать с разными таблицами. Если все, кто пользуется вашей БД, выполняют одну и ту же задачу (и обращаются к одной и той же таблице), у вас будут проблемы. Но если один пользователь поддерживает каталог товаров, еще пять вводят заказы, а шестой регистрирует их отправку, вы в гораздо лучшей ситуации. Несмотря на то, что все пользуются одной и той же БД, их работа не перекрывается.

  • Ваша БД не является критически важной. Данные всегда важны. Но если вы обеспечиваете работу компании, занимающейся электронной коммерцией, с помощью Web-сайта, функционирующего 24 часа в сутки, вам не избежать хотя бы кратковременных затруднений. К сожалению, программа Access не может гарантировать такого рода стабильности. Хотя подобные ситуации случаются редко, внезапные сетевые проблемы или сбой компьютера в момент, когда пользователь вносит изменения, могут с большой долей вероятности повредить вашу БД.

Примечание

Всем почитателям программы Access следует выполнять регулярные копирования своих БД в течение дня. Для автоматизации этого процесса можно применять средства планирования (например, Планировщик заданий ОС Windows).

Не будет преувеличением сказать, что многопользовательские БД Access — основное ре­шение для многих маленьких компаний. Но если вы ознакомились с ограничениями про­граммы и решили, что Access не сможет удовлетворить ваши потребности, самое время пе­рейти на более мощный программный продукт, например, SQL Server. (He паникуйте —

доступна бесплатная версия, и вы можете управлять вашими данными в привычном интер­фейсе Access.) Вы узнаете об SQL Server в главе 20 и о SharePoint Server в главе 21.

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

Подготовка вашей базы данных

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

Примечание

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

Что такое разделенная БД

Разделенная база данных — это БД, объекты которой разделены на два отдельных файла:

  • внутренняя или серверная БД (back-end database) содержит исходные данные — иначе говоря, таблицы и ничего больше;

  • внешняя или клиентская БД (front-end database) содержит все, чем вы пользуетесь при работе с таблицами, а именно все объекты БД других типов, например, запросы, отчеты, формы и макросы.

После разделения базы данных внутренняя БД помещается в общедоступное место (например, на сетевой диск). Внешняя БД функционирует несколько иначе. Ее копируют на все компьютеры, которые собираются использовать внутреннюю БД. На рис. 18.1 показан этот принцип работы.

Разделенные БД обладают рядом достоинств.

  • Производительность. Когда применяется разделенная БД, у каждого клиента есть копии объектов, необходимых ему для работы, — например, формы — готовые и ждущие на его компьютере. Это означает, что пользователю не нужно извлекать эту информацию из совместно используемой БД, что потребовало бы больше времени (и создало бы дополнительный трафик в вашей сети). В этом случае из совместно используемой БД вам необходимо получить только нужные для работы данные.

  • Более легкое обновление. Изменение данных в многопользовательской БД относительно безопасно для людей, но программа Access плохо справляется с неразберихой, возникающей при попытках пользователей изменить структуру объектов БД. Разделенная БД I лишена этой проблемы, поскольку объекты, которые часто нуждаются в корректировках, например запросы, отчеты и формы, находятся в клиентской БД. Если эти объекты нужно модифицировать (или добавить новые), можно безопасно изменить клиентскую БД на одном компьютере, а затем распространить ее между всеми, кому она понадобится.

Такой подход не только легче, но и гораздо надежнее, т. к. не может возникнуть неразре­шимая проблема, именуемая разрушением или повреждением БД (см. разд. "Повреждение данных" далее в этой главе).

Рис. 18.1. В системе с разделенной БД у вас одна внутренняя или серверная БД, централизованно хранящая данные, и несколько внешних или клиентских БД для каждого пользователя, подключающегося к вашей БД

  • У разных людей разные клиентские БД. Когда применяется БД коллективного пользова­ния, можно создать разные клиентские БД для разных типов пользователей — например, отделу маркетинга необходимы отчеты, отображающие сведения о продажах, а сотруд­никам склада нужна форма, которая выводит на экран невыполненные заказы. Этим подходом можно воспользоваться для того, чтобы наверняка не показывать пользовате­лям формы, отчеты и таблицы, не предназначенные для них, что снизит риск мелких ошибок (например, генеральный директор случайно не уничтожит весь каталог товаров). Но не впадайте в крайность — чем больше создается вариантов клиентских БД, тем больше усилий понадобится для их сопровождения.

Примечание

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]