- •Організація баз даних
- •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. Перспективи розвитку бд.
5.Алгоритм роботи скбд при внесенні та видаленні запису в таблицю, що містить індексовані поля з використанням технології в-дерева.
Основною "ізюминкою" B-дерев є автоматична підтримка властивості збалансованості. Розглянемо, як це робиться при виконанні операцій вставки і видалення записів.
5.1.При вставці нового запису в таблицю виконується:
1.Пошук листкової сторінки. Фактично, виконується звичайний пошук по ключу. Якщо в B-дереві відсутній ключ із заданим значенням, то буде отримано номер сторінки, у якій йому слід знаходитись, і відповідні координати усередині сторінки.
2.Переміщення запису на місце. Природно, що вся робота виконується в буферах оперативної пам'яті. Листкова сторінка, у яку потрібно занести запис, зчитується в буфер, і в ньому виконується операція вставки. Розмір буфера повинний перевищувати розмір сторінки зовнішньої пам'яті.
3.Якщо після виконання вставки нового запису розмір використаної частини буфера не перевершує розміру сторінки, то на цьому виконання операції занесення запису закінчується. Сторінка може бути негайно виштовхнута у зовнішню пам'ять, або тимчасово залишатись в оперативній пам'яті в залежності від політики керування сторінками.
4.Якщо ж виникло переповнення сторінки (тобто розмір його використаної частини буфера перевершує розмір сторінки), то виконується розщеплення сторінки. Для цього створюється нова сторінка зовнішньої пам'яті, використана частина буфера розбивається приблизно навпіл (по границі ключа - з початку запису елемента індекса), і друга половина записується в нову виділену сторінку, а в старій сторінці модифікується значення розміру вільної пам'яті. Природно, модифікуються посилання за списком листкових сторінок.
5.Щоб забезпечити доступ від кореня дерева до ново створеної сторінки, необхідно відповідним чином модифікувати внутрішню сторінку, що є предком раніше існуючої листкової сторінки, тобто вставити в неї відповідне значення ключа і посилання на нову сторінку. При виконанні цієї дії може знову відбутися переповнення тепер уже внутрішньої сторінки, і вона також буде розщеплена на дві. У результаті буде потрібно вставити значення ключа і посилання на нову сторінку у внутрішню сторінку-предка вище по ієрархії і т.д.
Граничним випадком є переповнення кореневої сторінки B-дерева. У цьому випадку вона теж розщеплюється на двох, і заводиться нова коренева сторінка дерева, тобто його глибина збільшується на одиницю.
5.2.При видаленні запису виконуються наступні дії:
1.Пошук запису по ключу. Якщо запис не знайдений, то значить видаляти нічого не потрібно.
2.Реальне видалення запису в буфері, у якому прочитана відповідна листова сторінка.
3.Якщо після виконання цієї під операції розмір зайнятої в буфері області виявляється таким, що його сума з розміром лівої (чи правої – в залежності від алгоритму) сусідньої листкової сторінки, більше, ніж розмір сторінки, операція завершується.
4.Інакше виконується злиття з лівою (чи правою – в залежності від алгоритму) сусідньою листковою сторінкою, тобто в буфері генерується новий образ сторінки, що містить загальну інформацію двох сторінок, що об’єднуються.
5.Листкова сторінка, що стала непотрібною, заноситься в список вільних сторінок. Відповідним чином коректується список листкових сторінок.
6.Щоб усунути можливість доступу від кореня до звільненої сторінки, потрібно видалити відповідне значення ключа і посилання на звільнену сторінку з внутрішньої сторінки - її предка. При цьому може виникнути потреба в злитті цієї сторінки з її лівою або правою сусідньою внутрішньою сторінкою і т.д.
Граничним випадком є повне спустошення кореневої сторінки дерева, що можливо після злиття останніх двох нащадків кореня. У цьому випадку коренева сторінка звільняється, а глибина дерева зменшується на одиницю.
Як видно, при виконанні операцій вставки і видалення записів властивість збалансованості B-дерева зберігається, а зовнішня пам'ять витрачається досить ощадливо.
Проблемою є те, що при виконанні операцій модифікації занадто часто можуть виникати розщеплення і злиття. Щоб домогтися ефективного використання зовнішньої пам'яті з мінімізацією числа розщеплень і злиттів, застосовуються більш складні прийоми, у тому числі:
-розщеплення, що випереджають, тобто розщеплення сторінки не при її переповненні, а трохи раніш, коли ступінь заповнювання сторінки досягає деякого рівня;
- переливання, тобто підтримка рівноважного заповнення сусідніх сторінок;
-злиття 3-в-2, тобто породження двох листових сторінок на основі вмісту трьох сусідніх.
Варто зауважити, що при організації мультидоступу (багатокористувацького режиму) до B-дерев, характерного для їх використання в СУБД, приходиться вирішувати ряд нетривіальних проблем, для яких найбільш простий і очевидне рішення монопольного захоплення B-дерева на усе виконання операції модифікації не є припустимим.
