- •Поняття інформаційної системи. Поняття інформаційних технологій. Міжнародні інформаційні системи та технології
- •Життєвий цикл інформаційних систем
- •Поняття бази даних (бд). Місце бд в інформаційних системах
- •Розвиток основних понять представлення даних. Приклад щодо нарахування заробітної плати
- •Розвиток основних понять представлення даних. Приклад щодо обліку кадрового складу
- •Системи управління базами даних (субд). Головні поняття. Основні функції субд
- •Різні архітектурні рішення, які використовуються при реалізації багато користувальницьких субд. Централізована архітектура
- •Різні архітектурні рішення, які використовуються при реалізації багато користувальницьких субд. Технологія з мережею та файловим сервером
- •Різні архітектурні рішення, які використовуються при реалізації багато користувальницьких субд. Технологія «клієнт-сервер»
- •Різні архітектурні рішення, які використовуються при реалізації багато користувальницьких субд. Триланкова архітектура «клієнт-сервер»
- •Огляд субд. Настільні субд. Серверні субд. Ms sql Server. Oracle. Серверні бази даних компанії івм
- •Різні уявлення про дані в базах даних
- •Основні етапи проектування бази даних
- •Перша стадія концептуального проектування бази даних. Опис інформаційного представлення предметної області. Er-діаграма
- •Перша стадія концептуального проектування бази даних. Атрибут. Зв’язки. Максимальні кардинальні числа
- •Побудова концептуальної моделі у вигляді er-діаграми. Головні етапи побудови Побудова концептуальної моделі у вигляді er-діаграми Перший етап
- •Другий етап
- •Третій етап
- •Побудова концептуальної моделі у вигляді er-діаграми. Моделювання локальних представлень
- •Побудова концептуальної моделі у вигляді er-діаграми. Об’єднання локальних представлень
- •Побудова концептуальної моделі у вигляді er-діаграми. Обмеження цілісності
- •Друга стадія концептуального проектування бд. Представлення концептуальної моделі засобами моделі даних субд
- •Друга стадія концептуального проектування бд. Типові моделі даних субд і представлення концептуальної моделі. Мережева модель даних
- •Друга стадія концептуального проектування бд. Типові моделі даних субд і представлення концептуальної моделі. Ієрархічна модель даних
- •Друга стадія концептуального проектування бд. Типові моделі даних субд і представлення концептуальної моделі. Реляційна модель даних
- •Друга стадія концептуального проектування бд. Типові моделі даних субд і представлення концептуальної моделі. Багатовимірна модель даних
- •Засоби автоматизованого проектування концептуальної моделі
- •Використання формального апарату для оптимізації схем відношень. Проблема вибору раціональних схем відношень
- •Використання формального апарату для оптимізації схем відношень
- •Функціональні залежності між атрибутами відношень
- •Використання формального апарату для оптимізації схем відношень. Декомпозиція схеми відношення
- •Вибір раціонального набору схеми відношень шляхом нормалізації. Нормальні форми
- •Приклади нормалізації до 3нф
- •Фізичні моделі даних (внутрішній рівень). Структура пам’яті комп’ютера
- •Представлення екземпляра логічного запису
- •Організація обміну між оперативною і зовнішньою пам’яттю
- •Структура зберігання даних у зовнішній пам’яті комп’ютера. Послідовне розміщення фізичних записів
- •Пошук запису із заданим значенням ключа
- •Структура зберігання даних у зовнішній пам’яті комп’ютера. Розміщення фізичних записів у вигляді спискової структури
- •Пошук запису із заданим значенням ключа
- •Структура зберігання даних у зовнішній пам’яті комп’ютера. Використання індексів. В-дерева
- •Пошук і читання запису із заданим значенням ключа
- •Модифікація (коректування) запису
- •Видалення запису
- •Додавання запису
- •Структура зберігання даних у зовнішній пам’яті комп’ютера. Розміщення записів з використанням хешування
- •Пошук запису із заданим значенням ключа і читання
- •Модифікації запису
- •Видалення запису
- •Додавання запису
- •Загальна структура сучасної субд (на прикладі ms sql Server)
- •Архітектура бд. Логічний рівень
- •Тип даних hierarchyid
- •Просторові типи даних
- •Індекси
- •Представлення
- •Складки
- •Обмеження
- •Правила
- •Значення за замовчуванням
- •Архітектура бд. Фізичний рівень
- •Файли і файлові групи
- •Сторінки і екстенти
- •Сторінки файлів даних
- •Організація таблиць та індексів
- •Управління роботою з екстентами і вільним місцем
- •Відстежування вільного місця
- •Програмне забезпечення роботи з сучасними бд. Основні завдання пз бд
- •Програмне забезпечення роботи з сучасними бд. Проблеми створення і ведення реляційних бд
- •Поняття мови sql і його основні частини. Історія виникнення і стандарти мови sql
- •Поняття мови sql і його основні частини. Переваги мови sql. Загальна характеристика sql
- •Напрями розвитку бд. Об’єкто-орієнтований підхід до організації бд
- •Об'єктно-орієнтоване програмування
- •Об'єктно-орієнтовані бази даних
- •Напрями розвитку бд. Об’єктно-реляційні субд
- •Напрями розвитку бд.. Розподілені бд. Сховища даних
- •Сховища даних
Пошук і читання запису із заданим значенням ключа
Читається верхній індекс. Порівнюємо задане значення ключа із значенням ключа записів індексу. Якщо задане значення ключа більше, ніж значення ключа наступного запису індексу (якщо такий запис є), або дорівнює йому, то за адресою зв'язку, вказаною в поточному записі, читається блок записів індексу наступного рівня. Далі процес повторюється.
Вважаємо, що всі блоки розташовані у ВП. Тоді кількість звернень до ВП при пошуці інформації дорівнюватиме кількості рівнів дерева. Кількість рівнів дерева дорівнює мінімальному значенню l, при якому виконується умова kl N (N – кількість логічних записів).
Модифікація (коректування) запису
Після пошуку і читання запису змінюються відкоректовані поля. Якщо коректується не ключ запису, то змінений запис заноситься на своє місце. Якщо змінено значення ключа, то старий запис видаляється (у відповідному блоці з'являється "порожній" запис), а змінений запис заноситься так само, як і новий запис що додається.
Видалення запису
Після пошуку знайдений запис видаляється (у відповідний блок на місце цього запису заноситься "порожній" запис).
Додавання запису
Перш за все визначається, де має бути розташований запис, що додається, із заданим значенням ключа. Процедура пошуку блоку, де має бути розташований цей запис, аналогічна вищеописаній процедурі пошуку записів із заданим значенням ключа. Якщо в знайденому блоці нижчого рівня є "порожній" запис, запис, що додається, заноситься в цей блок (з необхідним переупорядковуванням записів усередині блоку).
Якщо у відповідному блоці нижчого рівня немає порожнього місця, блок ділиться на два блоки. У перший з них заноситься [k/2] записів, у другий заносяться останні. Значенням ключа кожного з указаних блоків буде, як і описано раніше, мінімальне значення ключів у записах, що входять у блок. Запис, що додається, заноситься в той блок, значення ключа якого менше значення ключа запису, що додається. Поява нового блоку з новим значенням ключа обумовлює необхідність формування відповідного нового запису в індексі на попередньому рівні. Цей запис містить нове значення ключа нового блоку і вказівник на його місце розташування. Процедура додавання такого запису аналогічна описаній вище. Знаходиться блок попереднього рівня, куди має бути поміщений цей запис. Якщо у блоці є порожнє місце, запис додається в блок, якщо блок повний, він ділиться на два блоки, запис заноситься в один з блоків, формується запис індексу попереднього рівня і т. д.
Можливий варіант, коли доведеться ділити блок самого верхнього рівня і формувати ще один рівень дерева.
Розглянемо для прикладу, додавання запису з ключем 10, зображеного на мал. 9.7
1. Порівняння на першому рівні.
2<10<43
Рух по лівій гілці.
2. Порівняння на другому рівні.
2<10<15
Рух по лівій гілці.
3. Порівняння на третьому рівні.
2<8<10
Рух по правій гілці.
Шуканий
блок
4. Блок заповнений.
Він
ділиться на 2 блоки
Порівняння 8<10<12.
Запис
з ключем 10 заноситься у блок 1
На нижчому рівні з'явився новий запис із значенням ключа 12. Необхідне додавання новому запису з ключем 12 і покажчиком на запис нижчого рівня до індексу попереднього рівня.
5.
Запис із ключем 12 рівня 3 повинен
додаватися у блок
.
Блок заповнений, він ділиться на два
блоки
Порівняння 8<12.
Запис додається в другий блок
6. На рівні 3 з'явився блок з новим ключем 8. Необхідне додавання новому запису з ключем 8 і покажчиком на відповідний блок рівня 3 на рівні 2.
7.
Запис з ключем 8 рівня 2 повинен додатися
у блок
.
Блок заповнений, він ділиться на два
блоки.
2<8<15
Запис додається у блок1 .
8. На рівні 2 з'явився блок з новим ключем 15, необхідне додавання нового запису з ключем 15 і покажчиком на відповідний блок рівня 2 на рівні 1.
9. Запис з ключем 15 рівня 1 повинен додаватися у блок . Блок заповнений, він ділиться на два блоки.
2<15<43
Запис з ключем 15 додається в перший блок
10.
Необхідно сформувати ще один рівень
дерева
.
Отримана структура матиме вигляд, зображена на мал. 9.8.
Необхідно відмітити, що використовуваний прийом ділення навпіл повністю заповненого блоку при додаванні в нього запису приведе до того, що блоки будуть заповнені, в середньому, наполовину. Тоді процедура додавання запису буде істотно менш трудомісткою (якщо в потрібному блоці є місце, запис додається в цей блок і вищестоящі рівні не перебудовуються).
Структура зберігання у вигляді B-дерева дозволяє ефективно проводити операції пошуку, читання, видалення, модифікації з оцінкою кількості звернень до зовнішньої пам'яті кількістю рівнів дерева l (l logkN), що істотно менше кількості звернень при переборі [N/k].
Процедура додавання запису теж досить ефективна. Відповідна структура зберігання, зокрема, використовується у вітчизняній СУБД НІКА (раніше використовувалася в системі ІНЕС) і на реальних задачах показала високу ефективність.
