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