Содержание

  1. Транзакции
    1. Определение
    2. Свойства транзакций
  2. Восстановление
    1. Сбои и их типы
    2. Журнал транзакций
    3. Классический алгоритм восстановления
    4. Алгоритм ARIES
    5. Повторные сбои
    6. Отказ оборудования
  3. Параллельное исполнение
    1. Изоляция и конфликты
    2. Блокировки
    3. Упорядочиваемость
    4. Восстановление
    5. Гранулярность блокировок
  4. Транзакции в SQL
    1. Уровни изоляции транзакций
      1. Уровни изоляции
      2. Аномалии
    2. Синтаксис
      1. Транзакции
      2. Точки сохранения

Слайды

HTML

Экзаменационные вопросы

  1. Транзакции. Восстановление. Классический алгоритм
  2. Транзакции. Восстановление. Алгоритм ARIES
  3. Транзакции. Параллельное исполнение. Блокировки.
  4. Транзакции. Параллельное исполнение. Уровни изоляции.

Практические навыки

  1. Выбор границ транзакции
  2. Объявление транзакций на языке SQL

Библиография

  1. Дейт К. Введение в системы баз данных (главы 15 и 16)
  2. Уидом Д., Ульман Д. Основы реляционных баз данных (раздел 7.2)
  3. Mohan C., Haderle D., Lindsay B., Pirahesh H., Schwarz P. ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-Ahead Logging
  4. Mohan C. Repeating History Beyond ARIES
  5. Bernstein P.A., Hadzilacos V., Goodman N. Concurrency Control and Recovery in Database Systems

Домашнее задание 8

В базе данных Airline информация о рейсах самолётов задана в виде таблиц Flights(FlightId, FligtTime, PlaneId), Seats(PlaneId, SeatNo).

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

  1. Одно место не может быть продано или забронировано более чем один раз (в том числе, продано и забронировано одновременно).
  2. Бронь можно обновить, после чего она будет действительна ещё одни сутки.
  3. Бронь автоматически снимается через сутки после последнего обновления, но не позже, чем за сутки, до вылета рейса.
  4. Бронирование автоматически закрывается за сутки до времени рейса.
  5. Продажи автоматически закрываются не позднее двух часов до вылета рейса, либо при распродаже всех мест либо по запросу администратора.

Спроектируйте соответствующую базу данных, и напишите запросы:

  1. По номеру рейса — список мест, доступных для продажи и бронирования.
  2. Бронирование места.
  3. Продление брони.
  4. Покупка места.
  5. Покупка места по брони.
  6. Закрытие продаж на рейс по запросу администратора.
  7. Статистика по рейсам: возможность бронирования и покупки, число свободных, забронированных и проданных мест.