Sobes.tech
Junior — Middle

Деректер қорларын басқару жүйелеріндегі транзакция оқшаулануының әртүрлі деңгейлерін түсіндіре аласыз ба?

sobes.tech AI

AI-дан жауап

Транзакция деңгейлері транзакция басқа параллель транзакциялар жасаған өзгерістерді қаншалықты көре алатынын анықтайды. Дерекқор басқару жүйесіндегі негізгі деңгейлер:

  1. Read Uncommitted (Жазылмаған деректерді оқу) — транзакция басқа транзакциялар жасаған өзгерістерді көре алады, тіпті олар әлі бекітілмеген болса да. Бұл "лас оқуды" тудыруы мүмкін.

  2. Read Committed (Бекітілген деректерді оқу) — транзакция тек бекітілген өзгерістерді көреді. Лас оқуды болдырмайды, бірақ қайталанбайтын оқуларға (non-repeatable reads) әкелуі мүмкін.

  3. Repeatable Read (Қайталанатын оқу) — транзакция деректерді оқығанда, қайта оқығанда деректер өзгермейді деп кепілдік береді. Қайталанбайтын оқуларды болдырмайды, бірақ фантомды оқуларға (phantom reads) әкелуі мүмкін.

  4. Serializable (Сериализацияланған) — ең қатаң деңгей, транзакциялар бір-бірінен бөлек орындалатын сияқты орындалады. Барлық аномалия түрлерін болдырмайды, бірақ параллелизмді төмендетеді.

C# тілінде деңгейді пайдалану мысалы:

using (var transaction = connection.BeginTransaction(System.Data.IsolationLevel.Serializable))
{
    // дерекқор операциялары
    transaction.Commit();
}