Продолжаю читать книгу «PostgreSQL Изнутри».
Будет рассмотрены только один раздел:
2.2. Уровни изоляции и аномалии в стандарте SQL
Для начала, приведу историю версий SQL стандарта и ссылки на первые его тексты:
Год | Название | Примечание | |
1986 | SQL-86 | Не являлся международным стандартом | |
1989 | SQL-89 | SQL-1 | text_en |
1992 | SQL-92 | SQL-2 | text_ru |
1999 | SQL:1999 | SQL-3 | text_en |
2003 | SQL:2003 | ||
2006 | SQL:2006 | ||
2008 | SQL:2008 | ||
2011 | SQL:2011 | ||
2016 | SQL:2016 | ||
2023 | SQL:2023 |
Начиная с SQL:2003 перестали присваивать нумерацию версиям стандарта. Наверное, стали использовать годовую нумерацию.
Интересно что про уровни изоляции говорится только в версии стандарта от 1992 года. А до этого аж две версии было выпущено! Да и в проекте POSTGRES вышла уже четвёртая версия.
Интересно что в первой версии стандарта было чуть больше ста страниц. В текущей версии 2023 года — уже более нескольких тысяч страниц!
Уровни изоляций в соответствии со стандартом:
- чтение незафиксированных данных (READ UNCOMMITED)
- чтение зафиксированных данных (READ COMMITED)
- повторимое чтение (REPEATABLE READ)
- сериализуемость (SERIALIZABLE)
Если эта тема интересна, рекомендую ещё ознакомиться со статьей:
либо перевод её на русский:
Пока стандарты искал, несколько раз встретил отсылку на эту статью.
И, скажем так, краткое описание стандарта 1992 года:
В книге показаны аномалии:
- потерянное обновление (lost update)
- грязное чтение (dirty read)
- неповторяющееся чтение (non-repeatable read)
- фантомное чтение (phantom read)
А вот это предложение я отдельно отмечу:
Существует значительно больше известных аномалий, чем перечислено в стандарте, и еще неизвестное число пока неизвестных.
Leave a Reply