ТРАНЗАКЦІЇ

Примітка Тему цього розділу не можна віднести виключно до теми реляційних систем Тим не менш, вона тут доречна, оскільки розуміння основної ідеї необхідно для засвоєння деяких понять та логічного переходу до частини II Однак тут дана тема навмисно розглядається лише поверхово

Транзакція як логічна одиниця роботи

Транзакція – Це логічна одиниця роботи вона починається з виконання операції BEGIN TRANSACTION і закінчується операцією COMMIT або ROLLBACK На рис 151 показаний псевдокод транзакції, яка призначена для перерахування суми 100 доларів з рахунку 123 на рахунок 456 Цілком очевидно, що операція переказу грошей з одного рахунку на інший, яка за самою своєю суттю є […]

Концепція блокувань в SQL Server

SQL Server реалізує властивість ізоляції за допомогою блокувань, які захищають рядки транзакцій від впливу інших транзакцій Блокування SQL Server не можна уявляти собі тільки як стану сторінка заблокована і сторінка розблокована . Насправді все набагато складніше І перед тим як почати управляти блокуваннями, потрібно зрозуміти схему їх дії

КРИТИКА підхід, заснований на використанні властивостей ACID

Як було сказано в главі 15, в цій главі буде продовжено опис властивостей ACID транзакцій Насправді, у автора склалося досить нестандартне думку з цієї теми, як незабаром стане очевидним Спочатку нагадаємо, що ACID – це скорочене позначення таких властивостей транзакцій, як нерозривність, правильність, ізольованість і стійкість (atomicitycorrectness-isolation-durability) Нижче ці властивості коротко описані повторно

Управління блокуваннями в SQL Server

Якщо ви вже коли-небудь писали схеми блокувань на інших мовах баз даних для подолання нестачі блокувань (як я), то у вас могло залишитися почуття, що обовязково потрібно самому займатися блокуваннями Дозвольте вас запевнити, що диспетчеру блокувань можна повністю довіряти Проте SQL Server пропонує кілька методів управління блокуваннями, про які ми детально поговоримо в цьому розділі

БЛОКИРОВКА

Як було зазначено в розділі 161, всі проблеми, описані в розділі 162, можуть бути усунені за допомогою механізму управління паралельним виконанням, званого блокуванням У його основі лежить проста ідея – якщо для деякої транзакції А потрібно гарантія, щоб певний обєкт, в якому вона зацікавлена ​​(як правило, кортеж бази даних), не змінився якимось чином без її […]

РІВНІ ІЗОЛЯЦІЇ

Упорядочіваемость гарантує ізольованість транзакцій, в тому трактуванні цього терміна, яка застосовується при описі властивостей ACID Одним з безпосередніх і вельми сприятливих наслідків з цього факту є те, що якщо всі графіки – впорядковує, то прикладний програміст, розробляючи код для будь-якої конкретної транзакції А, не повинен звертати абсолютно ніякої уваги на той факт, що одночасно з […]

Взаімоблокіровке

Вище було описано, як може використовуватися блокування (а точніше, строгий протокол двофазної блокування) для вирішення трьох основних проблем управління паралельним виконанням Але, на жаль, було також показано, що блокування може сама стати причиною виникнення проблем, з яких основною є проблема взаимоблокировки У попередньому розділі були наведені два приклади взаимоблокировки На рис 1610 показаний трохи більш […]

Цілісність даних

Здатність гарантувати коректність витягнутих даних є першим принципом інформаційної архітектури І водночас це – головна проблема, яка виникає у світі баз даних За відсутності цілісності даних відповідь на будь-який запит може виявитися некоректним, отже, вже немає особливого сенсу в забезпеченні продуктивності та доступності

Намічений БЛОКИРОВКИ

До цього часу в основному передбачалося, що одиницею виміру обсягу даних, застосовуваних з метою блокування, є окремий кортеж Але, в принципі, немає ніяких підстав, за якими блокування не можна було б застосовувати до більшим чи меншим одиницям даних, наприклад, до всієї змінної відносини, або навіть до всієї бази даних, або (переходячи в іншу крайність) до […]