Главная страница
Навигация по странице:

  • Транзакция A Время Транзакция B

  • Потеря результата обновления

  • Работа с "грязными" данными

  • Неповторяемое считывание

  • Введение в системы управления баз данных. !Пушников Введение в системы управления базами данных. В системы управления базами данных 2 Оглавление 2 Глава


    Скачать 2.18 Mb.
    НазваниеВ системы управления базами данных 2 Оглавление 2 Глава
    АнкорВведение в системы управления баз данных
    Дата04.02.2020
    Размер2.18 Mb.
    Формат файлаdoc
    Имя файла!Пушников Введение в системы управления базами данных.doc
    ТипДокументы
    #107076
    страница22 из 26
    1   ...   18   19   20   21   22   23   24   25   26

    Проблема потери результатов обновления


    Две транзакции по очереди записывают некоторые данные в одну и ту же строку и фиксируют изменения.

    Транзакция A

    Время

    Транзакция B

    Чтение



    ---

    ---



    Чтение

    Запись



    ---

    ---



    Запись

    Фиксация транзакции



    ---

    ---



    Фиксация транзакции

    Потеря результата обновления

     

     

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

    Проблема незафиксированной зависимости (чтение "грязных" данных, неаккуратное считывание)


    Транзакция B изменяет данные в строке. После этого транзакция A читает измененные данные и работает с ними. Транзакция B откатывается и восстанавливает старые данные.

    Транзакция A

    Время

    Транзакция B

    ---



    Чтение

    ---



    Запись

    Чтение



    ---

    Работа с прочитанными данными



    ---

    ---



    Откат транзакции

    Фиксация транзакции



    ---

    Работа с "грязными" данными

     

     

    С чем же работала транзакция A?

    Результат. Транзакция A в своей работе использовала данные, которых нет в базе данных. Более того, транзакция A использовала данные, которых нет, и не было в базе данных! Действительно, после отката транзакции B, должна восстановиться ситуация, как если бы транзакция B вообще никогда не выполнялась. Таким образом, результаты работы транзакции A некорректны, т.к. она работала с данными, отсутствовавшими в базе данных.

    Проблема несовместимого анализа


    Проблема несовместимого анализа включает несколько различных вариантов:

    • Неповторяемое считывание.

    • Фиктивные элементы (фантомы).

    • Собственно несовместимый анализ.

    Неповторяемое считывание


    Транзакция A дважды читает одну и ту же строку. Между этими чтениями вклинивается транзакция B, которая изменяет значения в строке.

    Транзакция A

    Время

    Транзакция B

    Чтение



    ---

    ---



    Чтение

    ---



    Запись

    ---



    Фиксация транзакции

    Повторное чтение



    ---

    Фиксация транзакции



    ---

    Неповторяемое считывание

     

     

    Транзакция A ничего не знает о существовании транзакции B, и, т.к. сама она не меняет значение в строке, то ожидает, что после повторного чтения значение будет тем же самым.

    Результат. Транзакция A работает с данными, которые, с точки зрения транзакции A, самопроизвольно изменяются.
    1   ...   18   19   20   21   22   23   24   25   26


    написать администратору сайта