Транзакцияларни блокировкалаш даражалари ва бутунлик хатоликлари
Блоклаш даражаси
Lost update- йўқотилган янгилаш
Dirty read-«Ифлос» ўқиш
Non-repeatable read-такроланмайдиган ўқиш
Phantom read- Фантом ўқиш
Сериализуемый Serializable
Нет
Нет
Нет
Нет
Повторяющиеся операции чтения Repeatable Read
Нет
Нет
Нет
Да
Зафиксированные операции чтения Read Committed
Нет
Нет
Да
Да
Не зафиксированные операции чтения Read Uncommitted
Нет
Да
Да
Да
Моментальный снимок Snapshot
Нет
Нет
Нет
Нет
Транзакцияларни блокировкалаш даражалари ва бутунлик хатоликлари
Блоклаш даражаси
Lost update- йўқотилган янгилаш
Dirty read-«Ифлос» ўқиш
Non-repeatable read-такроланмайдиган ўқиш
Phantom read- Фантом ўқиш
Сериализуемый Serializable
Нет
Нет
Нет
Нет
Повторяющиеся операции чтения Repeatable Read
Нет
Нет
Нет
Да
Зафиксированные операции чтения Read Committed
Нет
Нет
Да
Да
Не зафиксированные операции чтения Read Uncommitted
Нет
Да
Да
Да
Моментальный снимок Snapshot
Нет
Нет
Нет
Нет
READ UNCOMMITTED – ихтиёрий янгиланган ва қайд этилмаган маълумотга мурожаат мумкин. Энг бўш режим.
Ўқиш учун блок ўрнатилмайди
Транзакциялар бошқа транзакциялар томонидан ўзгартирилган ва қайд қилинмаган сатрларни ўқийди. Бу қайд этилмаган ўзгаришларни ўқишга рухсат этади ва «ифлос» ўқиш деб аталади.
Маълумотлар қийматлари ўзгартиирилиши мумкин ва транзакция тугашигача маълумотлар тўпламида сатрлар пайдо бўлиши ва йўқолиши мумкин. Бу изоляциялаш даражасининг энг кичик чекловлисидир.
Бошқа транзакциялар томонидан ўзгартирилган ва хали қайд этилмаган («ифлос») маълумотларни ўқиш мумкин эмас.
Ўқилган маълумотлар жорий транзакция фаол бўлганда бошқа транзакциялар томонидан ўзгартирилиши мумкин, наижада такрорланмаган ўқиш ёки нотўғри маълумотлар юзага келади.
Бу режим SQL Server да жимликка кўра ўрнаилган.
REPEATABLE READ - янгиланган ёки ўчирилган маълумотга мурожаат мумкин эмас, бироқ янги киритилган маълумотга мурожаат мумкин
Бошқа транзакция томонидан ўзгартирилган ва хали қайд қилинмаган маълумотларни ўқиш мумкин эмас.
Биргаликдаги блокировкалар барча ўқилган маълумотларга қўлланилади ва транзакция тугагунча давом этади. Бу бошқа транзакцияларга жорий транзакция ўқиб олган сатрларни ўзгартиришни тақиқлайди.
Бошқа транзакциялар жорий транзакцияни излаш шартига мос янги сатрларни киритиши. Жорий транзакция диапазонни қайта ўқиганида янги «фантом» сатрлар пайдо бўлиши мумкин.
Бу режим MySQL да жимликка кўра ўрнатилган бўлади
SNAPSHOT
Транзакция бошланишида МБ нусхалаб олинади. Жорий транзакция ўзидан кейин ишга тушган бошқа транзакциялар бажарган ўзгаришларни кўрмайди.
Транзакция томонидан моментдаги тасвирларни нусхаланиб олиниши бошқа транзакциялар томонидан ёзишни блокламайди.
Агар транзакция ишга тушгандан кейин бирор транзакция томонидан ўзгартирилган маълумотни ёзишга харакат қилса, у холда уриниш бекор қилинади.
SNAPSHOT
Моментдаги тасвир изоляция даражасини қўлловчи транзакцияни ишга туширишдан олдин МБ нинг ALLOW_SNAPSHOT_ISOLATION параметрини ON холатига ўрнатиш зарур.
SERIALIZABLE – бошқа транзакция қайта ишлаётган маълумотга мурожаат этиш мумкин эмас. Энг қатъий режим.
Бошқа транзакция томонидан ўзгартирилган ва хали қайд этилмаган маълумотларни ўқиш мумкин эмас.
Бошқа транзакциялар жорий транзакция ўқиб олган маълумотларни ўзгартиролмайди.
Бошқа транзакциялар жорий транзакцияни ўқиб олиш шартига мос янги сатрларни жорий транзакция тугамагунча киритлолмайди. Жорий транзакция маълумотларни қайта ўқиганида аввалги маълумотлар тўпламини ўқиб олади.