Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lect_DB.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
323.07 Кб
Скачать

Поняття транзакцій

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

Якщо одна зі змін, що вноситься в БД в рамках транзакції, завершується неуспішно, потрібно виконати відкат до стану бази даних, який мав місто до початку транзакції. Отже, всі зміни, що вносяться в БД в рамках транзакції, або одночасно підтверджуються всі, або не підтверджується жодне.

Розглянемо приклад. Нехай існує БД, що містить відомості про продаж товарів зі складу, що складається з таблиць:

Товари (Товар, Од. Виміру, Ціна за од.))

Покупці(Покупець, Місто, Адреса))

Накладні(Номер накладної, Дата, Покупець)

Продаж товарів(Товар, Номер накладної, Кількість)

Статистика по товару (Товар, Всього продано) – відомості про сумарний продаж кожного товару зі складу з початку року

Статистика по покупцю (Покупець, Всього продано) – відомості про сумарний продаж товарів кожному покупцеві з початку року

Тоді транзакція по додаванню в БД відомостей про продаж товару зі складу буде складатись з наступних операцій:

• додавання запису в таблицю "Продаж товарів";

• пошук запису по даному товару в таблиці "Статистика по товару" і збільшення значения поля "Всього продано" на значення "Кількість"; якщо запис по такому товару в таблиці "Статистика по товару" відсутній, його потрібно додати;

• пошук запису по даному товару в таблиці "Статистика по покупцю", обчислення вартості проданого товару і збільшення на це значения поля "Всього продано"; якщо запис по покупцю в таблиці "Статистика по покупцю" відсутній, його потрібно додати.

Якщо в рамках транзакції відбувся збій при виконанні однієї з цих операцій, необхідно скасувати результати виконання усіх інших операцій, інакше інформація в БД будет недостовірною (відкат транзакції).

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

БД, які підтримуються в Delphi

Є чотири різновиди архітектури баз даних:

• локальні бази даних;

• архітектура "файл-сервер";

• архітектура "клієнт-сервер";

• багаторівнева (трирівнева N-tier або multi-tier) архітектура.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]