Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
вторая часть по экзамену БИС.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
78.7 Кб
Скачать

Принципы организации совместного доступа к данным

Для контроля и отслеживания параллельного доступа к данным применяются два варианта сетевой обработки:

1. Проверка параллелизма. Ее смысл заключается в том, что главный этап контроля осуществляется при сохранении данных. Схема выполнения:

  1. Пользователь 1 запрашивает часть данных. Данные ему передаются, и одновременно сохраняется образ (версия) переданных данных.

  2. Пользователь 2 запрашивает те же самые данные. Они ему передаются, и точно также сохраняется образ данных.

  3. Пользователь 2 производит изменение данных и выполняет сохранение. В этот момент происходит сравнение текущих данных на сервере с образом данных, ранее сохраненным для пользователя 2.

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

2. Система блокировки. В этом подходе данные, передающиеся пользователю для изменения блокируются. Другому пользователю для параллельного изменения эти данные не могут быть переданы. Для этого способа вводятся два варианта получения данных:

1. Для просмотра

2. Для изменения.

И два типа блокировок

1. Исключающая

2. Разделяемая

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

Способ блокировок несколько сложнее в реализации, однако требует меньше ресурсов, более быстродейственный и производительный. Он требует от пользователей соблюдения правил работы. На сегодняшний день этот способ наиболее широко распространен. при работе в достаточно сложных системах пользователь часто использует разнообразные связанные наборы данных. В таком случае, изменение каких-либо основных данных должно вызывать последовательные изменения в других группах данных, логически связанных с основными. Следует отметить, что блокировку связанных групп данных никто не совершает. Для успешной работы с последовательным изменением связанных групп данных используются транзакции. Транзакции - это цепочка последовательных элементарных действий, определенных как единое целое. Основной принцип: транзакция выполняется либо целиком, либо вообще не выполняется. При неуспешном прохождении транзакции существуют следующие варианты действий: 1. Автоматическое многократное повторение определенное количество раз. 2. Управляемое пользователем повторение 3. Ручное снятие транзакции (можно провести всегда). Эти способы позволяют обходить такие моментов, как взаимные перекрестные блокировки, то есть когда основные данные одного пользователя являются дополнительными для другого (они взаимно ссылаются на данные друг-друга). В случае, если в системе нет сброса транзакции она зацикливается и работать не может.