Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лек_10_ГМУ.doc
Скачиваний:
16
Добавлен:
27.11.2018
Размер:
3.96 Mб
Скачать

2. Многопользовательские базы данных

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

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

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

В общую компетенцию отдела администрирования базы данных входит упрощение разработки и использования базы данных. Обычно это означает поддержание баланса между противоречащими друг другу установками – на защиту базы данных и на максимизацию ее доступности и выгод от се использования. Отдел администрирования базы данных отвечает за разработку, функционирование и обслуживание базы данных и ее приложений. Перечень конкретных функций следующий:

управление структурой базы данных;

управление параллельной обработкой;

распределение прав и обязанностей по обработке;

обеспечение безопасности базы данных;

восстановление базы данных;

управление СУБД;

поддержание репозитория данных.

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

Управление параллельной обработкой

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

В большинстве приложений баз данных работа пользователей организована в форме транзакций (transactions), известных также как логические единицы работы (logical units of work, LUW). Транзакция – это последовательность действий с базой данных, в которой либо все действия выполняются успешно, либо не выполняется ни одно из них (в последнем случае база данных остается без изменений).

Когда в одно и то же время происходит обработка двух транзакций с базой данных, эти транзакции называются параллельными транзакциями (concurrent transactions). Хотя у пользователей может создаваться впечатление, что их транзакции обрабатываются одновременно, это не может быть так, ибо процессор машины, обрабатывающей базу данных, способен выполнять только одну инструкцию в каждый момент времени. Обычно транзакции выполняются попеременно, то есть операционная система переключает процессор между несколькими задачами, так что за заданный промежуток времени выполняется некоторая часть каждой из них.

При организации и реализации параллельной обработки БД с помощью транзакций могут возникать проблемы, связанные со стремлением получить монопольный доступ к БД одной из транзакций. Один из способов предотвратить проблемы при параллельной обработке – запретить совместное использование ресурсов путем блокировки данных, которые считываются для обновления.

Совместное использование данных предприятия

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

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

Системы удаленной обработки

Классическим методом поддержки многопользовательской базы данных является удаленная обработка (teleprocessing), при которой используется один компьютер и один процессор. Вся обработка производится этим единственным компьютером (рис. 4) (teleprocessing system).

Рис. 4 Связи между программами в системе

удаленной обработки данных

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

Клиент-серверные системы

На (рис. 5) изображена схема одной из таких систем, которая носит название клиент-серверной системы (client-server system). В отличие от системы удаленной обработки, в которой имеется только один компьютер, клиент-серверная система состоит из множества компьютеров, объединенных в сеть. Одни компьютеры, называемые клиентами (clients), занимаются обработкой прикладных программ. Другие компьютеры, называемые серверами (servers), занимаются обработкой базы данных.

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

Тип компьютеров может быть совершенно разным. Теоретически, в роли клиентских компьютеров могут выступать большие ЭВМ или микрокомпьютеры.

Рис. 5 Клиент-серверная архитектура

Клиенты и серверы соединяются в локальную (LAN) или глобальную (WAN) сеть.

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

Системы совместного использования файлов (рис. 6). В этой архитектуре (file-sharing), на пользовательских компьютерах находятся не только прикладные программы, по и СУБД. В этом случае сервер является файловым сервером, а не сервером базы данных. Почти во всех системах с совместным использованием файлов применяются локальные сети из микрокомпьютеров.

Архитектура с совместным использованием файлов была разработана до клиент-серверной архитектуры и во многих отношениях является более примитивной. При совместном использовании файлов СУБД каждого пользовательского компьютера посылает запросы на обработку файлов подсистеме обработки данных операционной системы файлового сервера. Это означает, что при такой архитектуре трафик в локальной сети гораздо больше, чем при клиент-серверной архитектуре.

Системы с совместным использованием файлов имеют приложения в системах, где требуется хранить большие файлы (звук, графику и анимацию) на высокоскоростных дисках большого объема. С помощью таких систем организуется также совместное использование дорогих принтеров, плоттеров и другого периферийного оборудования.

Рис. 6 Архитектура с совместным использованием файлов

Системы обработки распределенных баз данных (рис. 7) – это системы обработки распределенных баз данных, в которых база данных распределена по множеству компьютеров.

Пунктирная линия, которой обведены файлы, означает, что база данных включает в себя все сегменты, хранящиеся на всех п компьютерах. Эти компьютеры могут физически размещаться в одном помещении, а могут – в разных концах планеты.

Типы распределенных баз данных.

Есть несколько типов распределенных баз данных:

неразделенная, нереплицированная;

разделенная, нереплицированная;

неразделенная, реплицированная;

разделенная, реплицированная;

В первом случае все сегменты БД располагаются в автономном компьютере и дублирование данных отсутствует.

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

В третьем случае вся база данных продублирована (реплицирована) на двух компьютерах.

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

Методы распределенной обработки.

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

Рис. 7 Архитектура распределенной БД

При более сложном способе распределенной обработки запросы на обновление данных могут приходить со множества компьютеров, но на обработку они передаются одному специализированному компьютеру.

Наиболее сложный способ заключается в том, чтобы разрешить множественное обновление одних и тех же данных в различных местах. В этом случае могут возникнуть три вида конфликтов распределенных обновлений (distributed update conflicts). Во-первых, может быть нарушена уникальность. Другая возможность напоминает проблему потерянного обновления: на двух компьютерах может обновляться одна и та же строка. Третий конфликт возникает в ситуации, когда на одном компьютере обновляется строка, удаленная на другом компьютере.

Для разрешения конфликтов обновлений выделяется специальный компьютер. Он следит за всеми обновлениями, и возникающие конфликты разрешаются либо собственными средствами СУБД, либо приложениями.