Справочник от Автор24
Поделись лекцией за скидку на Автор24

Управление структурой многопользовательских БД. Атомарные транзакции. Проблема параллельной обработки запросов

  • 👀 411 просмотров
  • 📌 355 загрузок
Выбери формат для чтения
Статья: Управление структурой многопользовательских БД. Атомарные транзакции. Проблема параллельной обработки запросов
Найди решение своей задачи среди 1 000 000 ответов
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Управление структурой многопользовательских БД. Атомарные транзакции. Проблема параллельной обработки запросов» pdf
Администрирование баз данных ЛЕКЦИЯ 3. УПРАВЛЕНИЕ МНОГОПОЛЬЗОВАТЕЛЬСКИМИ БД. СОДЕРЖАНИЕ ЛЕКЦИИ:  Управление структурой многопользовательских БД.  Атомарные транзакции.  Проблема параллельной обработки запросов. 2 1. Управление структурой многопользовательских БД Базы данных, одним из ключевых требований реализации которых является возможность совместной работы нескольких пользователей с одной и той же совокупностью данных называются многопользовательскими. 3 Функции администратора БД 1. Управление структурой БД. 2. Управление параллельной обработкой данных (блокировки). 3. Распределение прав и обязанностей по обработке данных (один из факторов обеспечения безопасности информации). 4. Обеспечение безопасности БД. 5. Осуществление процедур сохранения, восстановления и переноса БД. 6. Управление СУБД. 7. Поддержание репозитория данных в рабочем состоянии. Волк В.К. Проектирование, программирование, управление и администрирование БД 4 Функции администратора по управлению структурой БД 1. Участие в разработке БД и приложений: - оказание поддержки на стадии определения требований к БД; - Частичное участие в проектировании и реализации БД. 2. Оказание помощи в изменении структуры БД: - поиск решений во взаимодействии с пользователями; - оценка воздействия изменений в БД на изменение в бизнес-процессах организации и опыт взаимодействия пользователя с приложениями баз данных; - обсуждение вопросов управления конфигурациями БД; - проработка вариантов решения проблем, возникающих после внесения изменений в конфигурации БД; - ведение сопутствующей документации. 5 Управление параллельной обработкой данных – меры и мероприятия, предпринимаемые с целью ограничить влияние действий, осуществляемых пользователями во время сеанса работы с БД друг на друга. 6 2. Атомарные транзакции (LUW) Ключевая функция многопользовательских СУБД. Применяется в большинстве ПО по управлению базами данных. АТ (атомарной транзакцией) или LUW (logical units of work) считаются серии действий, предпринимаемых с базой данных, которые выполняются успешно все, или не выполняются совсем (в обратном случае). 7 Визуализация проблемы потерянного обновления: Действия: 1. Добавить данные о новом заказе в таблицу «клиент»; 2. Добавить данные о новом заказе в таблицу «продавец»; 3. Добавить новый заказ в таблицу «заказ». Решение проблемы LUW через транзакцию: Транзакция: 1. Добавить данные о новом заказе в таблицу «клиент»; 2. Добавить данные о новом заказе в таблицу «продавец»; 3. Добавить новый заказ в таблицу «заказ». Если нет ошибок, сохранить транзакцию, иначе – отменить Транзакцию. 8 Логическое описание транзакции BEGIN Транзакция Изменить данные Клиент Изменить данные Продавец Вставить данные в Заказ IF Все успешно THEN COMMIT Транзакция ELSE ROLLBACK Транзакция END IF USE test; -- Начало транзакции BEGIN TRANSACTION UPDATE Employee SET Id = 14568 WHERE Id = 10102 IF (@@error <> 0) -- Отменить транзакцию, если есть ошибки ROLLBACK 9 COMMIT Свойства транзакций - атомарность (Atomicity); - согласованность (Consistency); - изолированность (Isolation); - долговечность (Durability). Волк В.К. Проектирование, программирование, управление и администрирование БД 10 атомарность согласованность обеспечивает неделимость набора инструкций, который модифицирует данные в базе данных и является частью транзакции. Это означает, что или выполняются все изменения данных в транзакции, или в случае любой ошибки осуществляется откат всех выполненных изменений в результате выполнения транзакции база данных не будет содержать несогласованных данных. Иными словами, выполняемые транзакцией трансформации данных переводят базу данных из одного согласованного состояния в другое. 11 изолированность долговечность отделяет все параллельные транзакции друг от друга. Активная транзакция не может видеть модификации данных в параллельной или незавершенной транзакции. Это означает, что для обеспечения изоляции для некоторых транзакций может потребоваться выполнить откат. обеспечивает одно из наиболее важных требований баз данных: сохраняемость данных. Эффект транзакции должен оставаться действенным даже в случае системной ошибки. По этой причине, если в процессе выполнения транзакции происходит системная ошибка, то осуществляется откат для всех выполненных инструкций этой 12 Инструкции Transact-SQL BEGIN TRANSACTION [ {transaction_name | @trans_var } [WITH MARK ['description']]] В параметре transaction_name указывается имя транзакции, которое можно использовать только в самой внешней паре вложенных инструкций BEGIN TRANSACTION/COMMIT или BEGIN TRANSACTION/ROLLBACK. В параметре @trans_var указывается имя определяемой пользователем переменной, содержащей действительное имя транзакции. Параметр WITH MARK указывает, что транзакция должна быть отмечена в журнале. Аргумент description - это строка, описывающая эту отметку. В случае использования параметра WITH MARK требуется указать имя транзакции. 13 BEGIN DISTRIBUTED TRANSACTION запускает распределенную транзакцию, которая управляется Microsoft Distributed Transaction Coordinator (MS DTC координатором распределенных транзакций Microsoft). Координатором распределенной транзакции является сервер, запустивший инструкцию BEGIN DISTRIBUTED TRANSACTION, и поэтому он и управляет выполнением распределенной транзакции. Распределенная транзакция - это транзакция, которая используется на нескольких базах данных и на нескольких серверах. Поэтому для таких транзакций требуется координатор для согласования выполнения инструкций на всех вовлеченных серверах. 14 COMMIT WORK успешно завершает транзакцию, запущенную инструкцией BEGIN TRANSACTION. Это означает, что все выполненные транзакцией изменения фиксируются и сохраняются на диск. Инструкция COMMIT WORK является стандартной формой этой инструкции. COMMIT TRANSACTION функционально равнозначна инструкции COMMIT WORK, с той разницей, что она принимает определяемое пользователем имя транзакции. Инструкция COMMIT TRANSACTION является расширением языка Transact-SQL, соответствующим стандарту SQL. 15 ROOLBACK WORK сообщает о неуспешном выполнении транзакции. Используют инструкцию, в том случае если база данных может оказаться в несогласованном состоянии. В таком случае выполняется откат всех произведенных инструкциями транзакции изменений. SAVE TRANSACTION устанавливает точку сохранения внутри транзакции. Точка сохранения (savepoint) определяет заданную точку в транзакции, так что все последующие изменения данных могут быть отменены без отмены всей транзакции. (Для отмены всей транзакции применяется инструкция ROLLBACK.) Инструкция SAVE TRANSACTION в действительности не фиксирует никаких выполненных изменений данных. Она только создает метку для последующей инструкции ROLLBACK, имеющей такую же метку, как и данная инструкция SAVE TRANSACTION. 16 3. Проблема параллельной обработки запросов Два источника проблемы параллельной обработки данных или запросов: Проблема потерянного обновления (lost update problem, LUP) – пользователи получают при параллельной обработке запроса верные данные на тот момент, когда они составили запрос. Проблема непоследовательного чтения (inconsistent read problem, IRP) – некоторые пользователи получают изначально неверные данные (ситуация, обратная LUP). И.В. Ананченко, И.В. Козлов. Администрирование Microsoft SQL Server 17 Нормальный режим параллельной обработки: Пользователь:1 Считать элемент 200 Изменить элемент 200 Записать элемент 200 Порядок обработки на сервере БД: 1. Считать элемент 200 для 1 2. Считать элемент 300 для 2 3. Изменить элемент 200 для 1 4. Записать элемент 200 для 1 5. Изменить элемент 300 для 2 6. Записать элемент 300 для 2 Пользователь: 2 Считать элемент 300 Изменить элемент 300 Записать элемент 300 18 Проблемы “потерянного обновления” Пользователь:1 Считать элемент 100 (кол-во элементов равно 10) Уменьшить количество элементов на 5 Записать элемент 100 Пользователь: 2 Считать элемент 100 (кол-во элементов равно 10) Уменьшить количество элементов на 3 Записать элемент 100 Порядок обработки на сервере БД: 1. Считать элемент 100 (для 1) 2. Считать элемент 100 (для 2) 3. Установить количество элементов равным 5 (для 1) 4. Записать элемент 100 для 1 5. Установить количество элементов равным 7 (для 2) 6. Записать элемент 100 для 2 19
«Управление структурой многопользовательских БД. Атомарные транзакции. Проблема параллельной обработки запросов» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

Тебе могут подойти лекции

Смотреть все 70 лекций
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot