Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Керування транзакціями

Читайте также:
  1. Засоби подання знань і стратегії керування
  2. Керування адресним простором під час створення процесів
  3. Керування буферами оперативної пам'яті
  4. Керування персоналом у Японії
  5. Керування персоналом у Японії
  6. Керування позакласним читанням
  7. Керування появою та рухом тексту
  8. Керування роботою пакета
  9. Лекція 2: Керування порядком обчислень

Транзакція - це послідовність операцій над БД, що розглядається СКБД як єдине ціле. Транзакція або успішно виконується, і СКБД фіксує (COMMIT) зміни БД, що зроблені цією транзакцією у зовнішній пам'яті, або жодна із цих змін ніяк не відбивається на стані БД. Поняття транзакції необхідно для підтримки логічної цілісності БД. Якщо розглянути приклад інформаційної системи, що складається з таблиць:

ВІДДІЛИ (ВІД_НОМ,ВІД_КІЛЬК, ВІД_ЗАРП); де­:

ВІД_НОМ – номер відділу (первинний ключ таблиці ВІДДІЛИ);

ВІД_КІЛЬК – кількість співробітників у відділі;

ВІД_ЗАРП – сумарна зарплата співробітників відділу;

та

СПІВРОБІТНИКИ (СПІВР_НОМ,СПІВР_ПІБ,СПІВР_ЗАРП,ВІД_НОМ), де:

СПІВР_НОМ – табельний номер співробітника (первинний ключ таблиці СПІВРОБІТНИКИ);

СПІВР_ПІБ – прізвище, ім’я, по-батькові співробітника;

СПІВР_ЗАРП – зарплата співробітника;

ВІД_НОМ – номер відділу, у якому працює співробітник (зовнішній ключ до таблиці ВІДДІЛИ).

Не важко прийти до висновку, то єдиним способом не порушити цілісність БД при виконанні операції прийому на роботу нового або звільнення працюючого співробітника є об'єднання елементарних операцій над файлами, що на фізичному рівні представляють таблиці СПІВРОБІТНИКИ й ВІДДІЛИ, в одну транзакцію. Таким чином, підтримка механізму транзакцій є обов'язковою умовою навіть однокористувальницьких СКБД (якщо, звичайно, така система заслуговує назви СКБД). Але поняття транзакції набагато більш важливо в багатокористувальницьких СКБД.

Та властивість, що кожна транзакція починається при узгодженому стані БД і залишає цей стан узгодженим після свого завершення, робить дуже зручним використання поняття транзакції як одиниці активності користувача стосовно БД. При відповідному керуванні транзакціями, що паралельно виконуються, з боку СКБД кожний з користувачів може в принципі відчувати себе єдиним користувачем СКБД (насправді, це трохи ідеалізоване представлення, оскільки в деяких випадках користувачі багатокористувальницьких СКБД можуть відчути присутність своїх колег).

З керуванням транзакціями в багатокористувальницькій СКБД зв'язані важливі поняття серіалізації транзакцій і серіального плану виконання суміші транзакцій. Під серіалізацією транзакцій, що виконуються паралельно, розуміється такий порядок планування їхньої роботи, при якому сумарний ефект суміші транзакцій еквівалентний ефекту їх деякого послідовного виконання. Серіальний план виконання суміші транзакцій - це такий план, що приводить до транзакцій. Зрозуміло, що якщо вдається домогтися дійсно серіального виконання суміші транзакцій, то для кожного користувача, з ініціативи якого утворена транзакція, присутність інших транзакцій буде непомітною (якщо не вважати деякого вповільнення роботи з порівняння з однокористувальницьким режимом).

Існує кілька базових алгоритмів серіалізації транзакцій. У централізованих СКБД найпоширеніші алгоритми, засновані на синхронізаційних захопленнях об'єктів БД. При використанні будь-якого алгоритму серіалізації можливі ситуації конфліктів між двома або більше транзакціями шодо доступу до об'єктів БД. У цьому випадку для підтримки серіалізації необхідно виконати відкіт (ліквідувати всі зміни, зроблені в БД) одній або більше транзакцій. Це один з випадків, коли користувач багатокористувальницької СКБД може реально (і досить неприємно) відчути присутність у системі транзакцій інших користувачів.




Дата добавления: 2015-01-30; просмотров: 43 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав