- •Організація баз даних
- •1.Вступ
- •2.Основні поняття.
- •1.1. Класифікація інформаційних систем
- •2.Файлові системи бд. Підхід, використовуваний у файлових системах. Обмеження, властиві файловим системам.
- •3.Системи з базами даних. База даних. Система керування базами даних — скбд. Компоненти середовища скбд. Переваги і недоліки скбд.
- •3.1.Компоненти середовища скбд
- •Контроль за надмірністю даних
- •3.4.Недоліки скбд
- •4.Етапи життєвого циклу інформаційної системи. Розробка бази даних. Розподіл обов'язків у системах з базами даних. Адміністратори даних і адміністратори баз даних.
- •2.1.Трьохрівнева архітектура ansi-sparc.
- •2.2. Схеми, відображення й екземпляри
- •2.3.Незалежність від даних
- •1. Функції субд (3.11.01.02).
- •1.Безпосереднє управління даними в зовнішній пам'яті
- •2.Управління транзакциями
- •3.Журналізація
- •4.Підтримка мов бд
- •5.Адміністрування бд.
- •2. Концепція відкритих систем. Відкритий зв’язок з бд odbc (3.11.04.01).
- •3. Багатокористувацькі субд та їх архітектура.
- •3.1. Телеобробка
- •3 .2.Архітектура іс з файловим сервером
- •3.3.Технологія "клієнт/сервер"
- •3.4.Розподілена архітектура.
- •3.5.Інтернет - архітектура.
- •4.1.Модель даних, мета побудови, класифікація, область застосування
- •4.2. Об'єктні моделі даних
- •4.3. Моделі даних на основі записів
- •4.2.1.Ієрархічна модель даних
- •4.2.2.Мережева модель даних у мережній структурі при тих же основних поняттях (рівень, вузол, зв'язок) кожний елемент може бути пов'язаний з будь-яким іншим елементом.
- •4.2.3.Реляційна модель даних
- •4.4. Фізичні моделі даних
- •5.1. Математичні відношення. Структура реляційних даних.
- •5.2.Домени
- •Лекція 6. Концептуальне проектування. Метод er-діаграми.
- •6.1.Рівні проектування предметної області (3.11.06.01).
- •6.2. Інфологічне проетування бд (3.11.06.02).
- •6.2. Концептуальне проектування бази даних та методологія.
- •6.3. Логічне проектування бд.
- •6.4. Даталогічна або фізична модель даних (3.11.06.03).
- •6.5. Проектування бд методом “сутність-зв’язок” er-діаграми (3.11.06.06)
- •6.5.2.Представлення зв'язків та сутностей на діаграмах.
- •6.5.4.Правила формування зв’язків між сутностями концептуальної схеми.
- •5.3.Нормалізація.
- •5.3.2.Процес нормалізації.
- •5.3.3.Нормальна форма Бойса-Кодда (нфбк). Визначення нормальної форми Бойса-Кодда.
- •5.3.4. Четверта нормальна форма (4нф). Визначення четвертої нормальної форми.
- •5.3.5. П'ята нормальна форма (5нф) Властивості з'єднання без втрат і збереження залежності
- •8.2. Виникаючі проблеми при використанні універсального відношення.
- •7.1. Введення в реляційну алгебру і реляційне числення.
- •7.2. Реляційна алгебра та її операції.
- •Вихідне відношення r та результуюче відношення s.
- •7.5.1. Операція декартового добутку
- •7.5.2. Операція об’єднання
- •7.5.3. Операція різниці.
- •7.5.4.Операції з'єднання
- •7.5.4.5.2. Праве відкрите зовнішнє з'єднання.
- •7.5.4.5.2. Повне відкрите зовнішнє з'єднання.
- •7.5.5.Операція перетинання
- •7.5.6.Операція ділення
- •10.1. Вступ Основні поняття sql.. Історія розвитку
- •10.2. Структура мови sql-92.
- •10.3. Основні оператори мови dml.
- •10.4 Зміна вмісту бази даних. Запити на оновлення даних
- •10.5. Оператори адміністрування:
- •10.63. Загальний огляд методів обробки запитів.
- •10.7. Архітектура клієнт-сервера і мова sql.
- •10.8 Забезпечення безпеки
- •11.1. Основні оператори мови ddl.Запити на створення та оновлення схеми бд, таблиць та представлень.
- •11.1.1. Створення баз даних.
- •11.1.2.Створення таблиць (оператор create table). Видалення таблиць (оператор drop table).
- •11.1.3.Створення відображення(представлення).В идаленнявідображення.
- •11.1.4.Створення індексу (оператор create index). Видалення індексу (оператор drop index).
- •11.2. Мова sql та qbe
- •10. Внутрішня мова субд.
- •11. Зберігаємі процедури та тригери. Призначення та переваги.
- •12. Технології доступу bde, ado, ado.Net, jdbc
- •Лекція 12. Транзакції. Паралельне виконання транзакцій.
- •12.1. Визначення транзакції. Виконання. Відкат.
- •12.2. Властивості транзакції. Види транзакцій.
- •12.3. Блокування. Рівні ізолювання транзакцій.
- •12.4. Управління транзакціями в мовах програмування.
- •12.4. Впорядкованість і відновлюваність.
- •12.5 Методи керування паралельністю.
- •Лекція 13. Індексація даних в бд.
- •13.1. Поняття індексації даних.
- •2.Структура індекса. Аналогією індекса може слугувати зміст будь якої книги з вказаними номерами сторінок, де починається той чи і інший розділ.
- •3. Технологія b-дерева
- •3.1.Типи індексів b-дерева.
- •3.1.1.Кластерні індекси
- •3.1.2.Некластерні індекси
- •4. Технологія хеширування.
- •5.Алгоритм роботи скбд при внесенні та видаленні запису в таблицю, що містить індексовані поля з використанням технології в-дерева.
- •5.1.При вставці нового запису в таблицю виконується:
- •5.2.При видаленні запису виконуються наступні дії:
- •6.Властивості індексів.
- •7.Індексація. За і проти. Ефективність використання.
- •8.Обмеження використання індексів.
- •8.1.Обмеження послідовності стовпців складного ключа.
- •8.2.Обмеження пов’язані з низькою селективністю індекса.
- •9.Індексація данних бд та оптимізатор sql-запитів.
- •10. Повнотекстові індекси
- •14.1. Розподіленні бази даних.
- •14.1.1. Класифікація рбд.
- •14.1.2. Переваги рбд.
- •14.1.3. Недоліки рбд.
- •14.1.4. Функції сурбд.
- •14.1.5. Архітектура рбд.
- •14.2. Компонентна структура рбд.
- •14.3. Проектування розподілених баз даних.
- •Фрагментація повина відповідати правилам:
- •14.4. Забезпечення прозорості.
- •16.1. Апаратні та програмні складові.
- •16.2. Особливості oltp, dss та olap систем
- •16.6. Безпека бази даних
- •16.3. Управління користувачами.
- •16.2. Управління доступом. Засоби підтримки безпеки в sql.
- •17.1. Недоліки реляційних систем.
- •17.2. Основні концепції об’єктно-орієнтованого підходу.
- •17.3. Альтернативні стратегії розробки об’єктно-орієнтованих субд.
- •17.4. Переваги та недоліки об’єктно-орієнтованих субд.
- •17.5. Перспективи розвитку бд.
12.4. Впорядкованість і відновлюваність.
Очевидне вирішення названих вище проблем полягає у виконанні в кожен момент часу тільки однієї транзакції. Такий режим виконання відповідає послідовному графіку - при якому операції кожної з транзакцій виконуються строго послідовно і не можуть чергуватися з операціями, виконуваними в інших транзакціях.
Послідовний графік запобігає виникненню проблем, але виключає паралельність, що протирічить призначенню багатокористувацьких СУБД, де має забезпечуватись максимальна ступінь паралельності виконання транзакцій.
Вирішення проблеми полягає в переході до непослідовного графіку виконання транзакцій, у якому чергуються операції з деякого набору одночасно виконуваних транзакцій.
Розрізняють впорядкований та відновлюваний непослідовні графіки:
Упорядкованими називаються такі графіки, що дозволяють зберегти несуперечливість бази даних у припущенні, що жодна з транзакцій цього графіка не буде скасована.
Суть впорядкування полягає у відшукуванні таких непослідовних графіків, що дозволять транзакціям виконуватися паралельно, але без взаємного впливу одної на одну і, привести базу даних у стан, що може бути досягнутий при використанні послідовного графіка.
Якщо дві транзакції тільки зчитують деякий елемент даних, вони не будуть конфліктувати між собою і порядок їхнього виконання не має значення.
Якщо дві транзакції зчитують або записують зовсім незалежні елементи даних, вони не будуть конфліктувати між собою і порядок їхнього виконання не має значення.
Якщо одна транзакція записує елемент даних, а інша транзакція цей же елемент даних зчитує або записує, порядок їхнього виконання має істотне значення.
Відновлюваний графік – це графік, у якому для кожної пари транзакцій Тi і Tj виконується наступне правило: якщо транзакція Тj зчитує елемент даних, попередньо записаний транзакцією Тi, то фіксація результатів транзакції Тi повинна виконуватися до фіксації результатів транзакції Тj.
Є протилежним підходом стосовно упорядкованого графіка, що аналізує відновлюваність транзакцій, які входять у даний графік.
12.5 Методи керування паралельністю.
Керування паралельністю – це процес організації одночасного виконання в базі даних різних операцій, що гарантує виключення їхнього взаємного впливу одної на одну.
Впорядкованість може бути досягнута декількома різними способами. Існує два основних методи керування паралельністю, що дозволяють організувати одночасне безпечне виконання транзакцій при дотриманні певних обмежень: метод блокування і метод часових міток.
По своїй суті обидва методи є консервативними (або песимістичними) підходами, оскільки вони відкладають виконання транзакцій, здатних у майбутньому в той або інший момент часу ввійти в конфлікт з іншими транзакціями.
Оптимістичні методи, базуються на припущенні, що імовірність конфлікту невисока, тому вони допускають асинхронне виконання транзакцій, а перевірка на наявність конфлікту виконується на момент їхнього завершення і фіксації в базі даних.
Блокування – це процедура, використовувана для керування паралельним доступом до даних. Коли деяка транзакція одержує доступ до бази даних, механізм блокування дозволяє (з метою виключення одержання некоректних результатів) відхилити спроби одержання доступу до цих же даних з боку інших транзакцій.
Саме методи блокування найчастіше використовуються на практиці для забезпечення упорядкованості паралельно виконуваних транзакцій. Існує кілька різних варіантів цього механізму, однак усі вони побудовані на одному фундаментальному принципі: транзакція повинна виконати блокування для читання (поділювану) або для запису (ексклюзивну) частину деякого елемента даних перед тим, як вона зможе виконати в базі даних відповідну операцію читання або запису.
Встановлений блок перешкоджає модифікації елемента даних іншими транзакціями або навіть зчитуванню його, якщо цей блок був встановлений для запису. Блокування може бути виконано для будь яких елементів даних — починаючи з бази даних у цілому і закінчуючи окремим полем конкретного запису.
Розмір блокованого елемента задається рівнем деталізації встановлюваного блоку. Реально блокування може здійснюватися за допомогою установки деякого біта у відповідному елементі даних, означаючого, що цей фрагмент бази даних є заблокованим.
Інший підхід складається в організації списку заблокованих елементів бази. Існують і інші методи реалізації даного механізму. Основні правила методу блокування:
якщо транзакція встановила блокування елемента даних для читання, воно зможе читати його, але не зможе оновити.
якщо транзакція встановила блокування елемента даних для запису, вона може як читати, так і оновляти цей елемент.
Оскільки операція читання не може служити причиною конфлікту, допускається встановлювати блокування для читання того самого елемента одночасно з боку відразу декількох транзакцій.
У той же час блокування елемента для запису надає транзакції ексклюзивне право доступу до нього. Отже, допоки транзакція буде утримувати деякий елемент заблокованим для запису, ніяка інша транзакція не зможе ні читати, ні оновити його.
Порядок блокування:
будь-яка транзакція, якій необхідно одержати доступ до елемента даних, повинна спочатку виконати блокування цього об'єкта;
якщо елемент ще не заблокований іншою транзакцією, блокування елемента буде виконано успішно;
якщо елемент даних у даний момент уже заблокований, СУБД проаналізує, чи є тип отриманого запиту сумісним з типом вже існуючого блоку. Якщо вимагається доступ для читання елемента, що заблокований для читання, доступ до елемента даних буде дозволено інакше транзакція буде переведена в стан очікування, що буде продовжуватися поки існуючий блок не буде знятий;
транзакція продовжує утримувати елемент даних заблокованим доти, поки вона явно не звільнить його в ході виконання транзакції, або по її закінченні шляхом підтвердження або відкату. Тільки після того як з елемента даних буде знято блокування для запису, інші транзакції зможуть "побачити" результати проведеної операції запису.
Крім цих правил, у деяких системах транзакціям дозволяється встановлювати блокування для читання, що пізніше може розширюватися і перетворюватися в блокування для запису.
Такий підхід підвищує ефективність роботи, дозволяючи транзакціям спочатку проаналізувати дані, а потім прийняти рішення. Якщо механізм розширення блокування не підтримується транзакція змушена буде утримувати блокування для запису у відношенні всіх елементів даних, що їй можуть знадобитися обновити в деякий момент свого виконання, а це потенційно знижує можливий рівень паралельності обробки даних у системі.
По цій же причині в деяких системах транзакціям дозволяється встановлювати блокування елемента даних для запису, з наступним звуженням її до рівня блокування для читання.
Використання в транзакціях блокувань саме по собі не гарантує упорядкованості одержуваних графіків.
Для забезпечення упорядкованості необхідно скористатися додатковим протоколом, що визначає моменти встановлення і зняття блокування для кожної з транзакцій. Найвідомішим з таких протоколів є метод 2-фазного блокування (2PL) – ним запроваджується правило, згідно якого всі операції блокування повинні передувати першій операції розблокування.
Відповідно, кожна транзакція може бути розділена на дві фази:
-фазу наростання, у якій виконуються всі необхідні блокування і не звільняється жодного з елементів даних;
-фазу стискування, у якій знімаються усі, виконані раніше, блокування елементів даних.
Засоби підтримки підсистеми транзакцій
З
а
виконання транзакцій відповідає
Менеджер транзакцій.
Він здійснює координацію роботи
транзакцій, виконуваних прикладними
програмами. Він взаємодіє з планувальником,
що відповідає
за реалізацію обраної стратегії керування
паралельністю. Інколи його називають
менеджером
блокування, якщо
використовуваний протокол керування
паралельністю будується на основі
системи блокування. Метою планувальника
є досягнення максимально можливого
рівня паралельності, за умови виключення
впливу одної на одну паралельно
виконуваних транзакцій , оскільки це
може послужити джерелом порушення
погодженості бази даних.
Задачею менеджера відновлення є надання гарантій того, що у випадку невдачі база даних буде автоматично повернута до погодженого (несуперечливого) стану.
