Page 84 - 4475
P. 84

вводиться поняття “відкату” (rollback), якщо транзакцію не
               вдається  повністю  завершити,  всі  виконані  операції  буде
               відмінено і система повернеться в вихідний стан.
                      Узгодженість — система знаходиться в узгодженому
               стані  до  і  після  транзакції.  Під  час  виконання  транзакції
               можуть відбуватися неузгоджені дії, однак вони не повинні
               бути видимі і не мають впливати на кінцевий стан системи.
                      Ізоляція — під час виконання транзакції паралельні
               транзакції не мають впливати на її результат.
                      Надійність  —  незалежно  від  проблем  на  нижніх
               рівнях,  зміни,  внесені  успішно  проведеною  транзакцією,
               повинні  залишатися  збереженими  після  повернення
               системи  в  роботу.  Іншими  словами,  якщо  користувач
               отримав  підтвердження  від  системи,  що  транзакція
               виконана,  він  має  бути  впевнений,  що  зроблені  зміни  не
               будуть відмінені в результаті якогось збою.
                      Реалізація  транзакцій  в  MySQL.  В  MySQL
               транзакцію відкриває оператор: "START TRANSACTION;".
               Після  правильного  виконання  всіх  запитів  транзакцію
               можна  або  завершити,  внісши  всі  зміни  в  базу  даних  -
               "COMMIT;",  або  відкотити,  повернувши  систему  в
               початковий стан - "ROLLBACK".
                      Слід  відзначити  такі  нюанси,  які  слід  враховувати
               при              роботі               з              MySQL.
                      1.  В  MySQL  є  декілька  типів  таблиць.  Це  ISAM,
               HEAP,  MyISAM,  InnoDB,  BDB  тощо.  Транзакційний
               механізм  підтримують  тільки  InnoDB  і  BDB.  Тому  всі
               таблиці, з якими ви будете працювати через транзакції, слід
               переконвертувати              в           ці            типи.
                      2.  За  замовчуванням  MySQL  працює  в  режимі
               autocommit.  Це  означає,  що  результати  виконання  будь-
               якого  SQL-оператора,  що  змінює  дані,  будуть  відразу
               зберігатися. autocommit можна відключити командою SET
               AUTOCOMMIT=0.  При  відключеному  режимі  autocommit
               кожну  транзакцію  треба  явно  завершувати  операторами

                                            79
   79   80   81   82   83   84   85   86   87   88   89