Существуют два подхода к организации обработки распределенных данных:
- технология распределенной базы данных. Такая база включает фрагменты данных, расположенные на различных узлах сети. С точки зрения пользователей она выглядит так, как будто все данные хранятся в одном месте. Естественно, такая схема предъявляет жесткие требования к производительности и надежности каналов связи;
- технология тиражирования. В этом случае в каждом узле сети дублируются данные всех компьютеров. При этом передаются только операции изменения данных, а не сами данные. Передача может быть асинхронной (неодновременной для разных узлов), данные располагаются там, где обрабатываются.
Использование технологии тиражирования позволяет снизить требования к пропускной способности каналов связи. При выходе из строя линии связи какого-либо компьютера, пользователи других узлов могут продолжать работу. Однако при этом допускается неодинаковое состояние базы данных для различных пользователей в один и тот же момент времени. Следовательно, невозможно исключить конфликты между двумя копиями одной и той же записи.
В основе распределенной обработки лежит запрос к собственной локальной БД или удаленной (БД сервера). Запрос - формализованное задание на поиск и обработку информации. Удаленный запрос - единичный запрос к одному серверу. Несколько удаленных запросов к одному серверу объединяются в удаленную транзакцию. Если отдельные запросы транзакции обрабатываются различными серверами, то транзакция называется распределенной.
Распределенная база данных и распределенная обработка не синонимы. Распределенная БД размещается на нескольких серверах, работа с ней, для получения доступа к удаленным данным, требует использования сетевой СУБД. При распределенной обработке один запрос транзакции обрабатывается одним сервером. Распределенная СУБД позволяет обрабатывать один запрос несколькими БД. Такой запрос называется распределенным.
1.5 Архитектуры СУБД
По способу организации взаимодействия с базой данных через сеть, СУБД делят на:
1) СУБД с централизованной архитектурой.
2) СУБД с архитектурой файл-сервер.
3) СУБД с архитектурой клиент-сервер.
4) СУБД с трехуровневой архитектурой: клиент - сервер приложений - сервер базы данных.
СУБД с централизованной архитектурой. СУБД и сама база данных размещается и функционирует на центральном миникомпьютере (мэйнфрейме), а пользователи получают доступ к базе данных при помощи обычных терминалов - компьютер рассматривается просто как устройство ввода и отображения информации: на мэйнфрейм передаются нажатия клавиш, в обратном направлении передаются данные, отображаемые непосредственно на мониторе пользователя. Примерами СУБД с централизованной архитектурой являются ранние версии СУБД ОВ2, ранние версии СУБД Oracle и IngresВ.
В СУБД с архитектурой файл-сервер база данных хранится на сервере, а копии СУБД устанавливаются на компьютерах пользователей. Файл базы данных, находящийся на сервере, совместно используется всеми пользователями одновременно, при помощи сетевого программного обеспечения и самой операционной системы. Ярким примером такой архитектуры является СУБД MS Access: копии СУБД установлены на компьютере каждого пользователя, а сам файл базы данных находится на сервере в сетевой папке. Архитектура файл-сервер позволяет добиться приемлемой производительности, т.к. в распоряжении каждой копии СУБД находятся все ресурсы компьютера пользователя. С другой стороны, производительность такой схемы для каждого пользователя, напрямую зависит от характеристик компьютера пользователя. Кроме того, такая схема работы значительно загружает сеть. Допустим, что пользователю необходимо отобрать строки таблицы с товарами, по которым объем продаж не превышает00 тыс. руб. Поскольку строки в таблице не упорядочены, то скорее всего по сети будут переданы все строки таблицы, из которых СУБД уже "на месте" (на компьютере пользователя) отберет нужные. Очевидно, что такая схема нерациональна при больших объемах обрабатываемой информации или большом числе пользователей базы данных. Поэтому, для таких БД целесообразнее применять архитектуру клиент-сервер.
При архитектуре клиент-сервер база данных хранится на сервере, а СУБД подразделяется на две части: клиентскую и серверную. Клиентская часть СУБД выполняется на стороне клиента и обеспечивает интерактивное взаимодействие с пользователем и формирование запросов к базе данных (на языке SQL). Серверная часть работает на сервере и взаимодействует с базой данных, обеспечивая выполнение запросов клиентской части, т.е., если провести аналогию с рассмотренным выше примером, то клиентская часть сформирует и отправит серверной части запрос "Отбери для меня строки таблицы с товарами, по которым объем продаж не превышает00 тыс. рублей", серверная часть выполнит данный запрос и отошлет клиентской части только те строки, которые необходимо, не передавая по сети все строки таблицы. Большинство современных СУБД реализованы по архитектуре клиент-сервер: Oracle, MS SQL Server, PostgreSQL, MySQL, Infonnix, ОВ2 и др.
Однако и архитектура клиент-сервер не лишена недостатков. Если деловая логика взаимодействия с базой данных (логика, определяющаяся порядком работы предприятия: какие таблицы и в каком порядке заполнять, что делать при добавлении нового сотрудника и т.д.) изменяется, то приходится заново переписывать клиентские программы (вводить новые формы, менять порядок их заполнения и т.д.). Если изменения происходят слишком часто, а количество рабочих мест велико, то постоянная переустановка программного обеспечения (которая, кстати, должна осуществляться достаточно быстро) становится серьезной проблемой. В таких случаях, следует переходить к трехуровневой архитектуре: клиент - сервер приложений - сервер базы данных. При трехуровневой архитектуре в функции клиентской части входит только интерактивное взаимодействие с пользователем, а вся деловая логика вынесена на сервер приложений, который собственно и обеспечивает формирование запросов к базе данных, передаваемых на выполнение серверу базы данных. "Тонкий клиент" находится на компьютере пользователя и чаще всего представляет из себя Web-броузер (например, Intemet Explorer) с применением в соответствующей НТМL-странице средств Java или компонентов ActiveX. Сервер приложений находится на сервере и может являться специализированной программой (например, Oracle Fonns Server) или обычным Web-сервером, вызывающим для обработки НТТР-запроса внешнюю программу через интерфейс CGI (см. рис.).
Трехуровневая архитектура
Преимущества трехуровневой архитектуры очевидны: при необходимости изменений в деловой логике, изменения вносятся только один раз - на сервере приложений. Изменять или переустанавливать клиентские программы нет никакой необходимости.
1.6 Основные функции системы управления базами данных
При значительном увеличении объема информации и необходимости отслеживания связей между файлами, при возникновении необходимости подтверждения правильности ввода информации, возникает необходимость создания системы управления базами данных (СУБД).
СУБД - это совокупность набора данных (баз данных) и программ на обслуживание выполняющей управление БД (упорядочение, сортировка и т.д.).
Создание баз данных производится в несколько этапов.
1) Первый этап заключается в определении структуры базы данных, на нем устанавливается из каких полей, состоит отдельная запись базы данных и задается тип каждого поля. Например, бывают текстовые и числовые поля.
2) После разработки структуры базы данных осуществляется ввод данных. Это второй этап. Использование специальных форм упрощает как ввод, так и вывод данных - отдельных записей.
3) Третий этап - поиск информации в базе данных. Осуществляется на основе критериев поиска, который применяется к содержимому определенных полей базы данных. Совокупность критериев поиска предназначенных для отбора информации из набора данных называется запросом. В результате запроса отображаются только те данные, которые соответствуют заданным критериям.
4) Четвертый этап - оформление записей, полученных в результате запроса.
На основе этапов разработки СУБД можно сформулировать основные функции СУБД:
1) Определение данных: можно определить, какие сведения хранятся в базе данных, их типы и взаимосвязи друг с другом.
2) Обработка данных. Данные можно обрабатывать самыми различными способами: фильтровать, сортировать, выбирать итоговые значения, а также изменять копировать и удалять.
3) Управление данными: можно определить, какому пользователю или группе пользователей разрешен доступ к тем или иным данным, определить порядок изменения и удаления данных для каждого из пользователей.
2. СУБД Microsoft Access
2.1 Microsoft Access как реляционная СУБД
2.1.1 Возможности Microsoft Access
Для разработки прикладных программ на персональных компьютерах по заказу.
При нынешней конкуренции на рынке прикладного программного обеспечения побеждает тот разработчик, который быстро и за невысокую плату может предоставить пользователю нужное приложение. Для разработчиков прикладных программ Microsoft Access позволяет создавать законченные приложения для заказчика с помощью определенного набора запросов, форм и отчетов в очень краткие сроки. Если же клиент предъявляет какие - то особые требования, то в этом случае можно использовать возможности предоставляемые языком VBA.Для разработчиков прикладных программ в определенной области Microsoft Access позволяет строить ядро приложения и настраивать его в соответствии с потребностями конкретного заказчика. Кроме того, можно создавать дополнительные встраиваемые средства. При разработке конкретного приложения, если требования заказчика не слишком велики, то вполне хватает возможностей Microsoft Access. При больших же объемах данных со сложной структурой можно, не изменяя своего приложения, подключить его к Microsoft SQL Server, который является более сложным приложением по сравнению с Microsoft Access. Таким образом, основными средствами при разработке прикладных программ являются: