Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СУБД Oracle / Лекции / Лек_ORAC / Lfg / Алгоритмы совместного доступа к базам данных.doc
Скачиваний:
60
Добавлен:
16.04.2013
Размер:
124.93 Кб
Скачать

Алгоритмы совместного доступа к базам данных

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

  • Концепции параллельности и согласованности данных

  • Автоматические и управляемые вручную алгоритмы блокиро­вания

  • Алгоритм многовариантности

Конкуренция, параллельность и согласованность

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

Конкуренция, параллельность и согласованность — это близкие по смыслу термины, однако они имеют некоторые отличия:

  • Конкуренция (contention) —ситуация, когда двое пользователей пытаются одновременно обратиться к одному и тому же ресурсу, например к файлу или принтеру.

  • Параллельность (concurrency) —ситуация, когда несколько пользователей могут обращаться к одному и тому же ресурсу, как если бы каждый пользователь обращался к этому ресурсу отдельно от других. Параллельность высока, когда пользователь не замечает задержки при обращении к разделяемому ресурсу. И наоборот, параллельность низка, когда пользователь должен долгое время ожидать доступа к разделяемому ресурсу.

  • Согласованность (consistency) —ситуация, когда пользователь обращается к разделяемому ресурсу, и этот ресурс демонстрирует неизменность своих характеристик во время выполнения различных операций.

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

Алгоритмы Oracle, обеспечивающие параллельность и согласованность

Oracleпредставляет собой систему управления доступом к единственной базе данных со стороны многих пользователей. Поэтому вOracleимеются алгоритмы параллельности и согласованности, устра­няющие конкуренцию среди пользователей за одни и те же ресурсы базы данных и позволяющие одновременно осуществлять безопасный доступ к базе данных. В то же время алгоритмы параллельности и согласованности не усложняют процесса обращения к базе данных и не ухудшают производительности системы. Например, если два пользователя хотят обновить одну и ту же строку таблицы почти одно­временно,Oracleприменяет автоматический алгоритм блокирования, чтобы так упорядочить(serialze) транзакции, как если бы они выполнялись по отдельности(isolation).Когда пользователь хочет обка­титься с запросом к таблице, которая в это время модифицируется другим пользователем, алгоритм многовариантности (multiversioning)разрешает сразу же обработать запрос первого пользователя, считывая данные в таком виде, в каком они находились до того, как открытая транзакция их изменила.

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