
- •Вступ до баз даних. Загальна характеристика основних понять
- •1.1. Розвиток основних понять представлення даних
- •Лекція 6
- •Друга стадія концептуального проектування бд. (Моделі даних субд. Представлення концептуальної моделі засобами моделі даних субд)
- •6.1. Представлення концептуальній моделі засобами моделі даних субд
- •6.2 Типові моделі даних субд і представлення концептуальної моделі
- •6.2.1. Мережева модель даних
- •6.2.2. Ієрархічна модель даних
- •6.2.3. Реляційна модель даних
- •6.2.4. Багатовимірна модель даних
- •6.3. Засоби автоматизованого проектування концептуальної моделі
- •Лекція 6
- •Друга стадія концептуального проектування бд. (Моделі даних субд. Представлення концептуальної моделі засобами моделі даних субд)
- •6.1. Представлення концептуальній моделі засобами моделі даних субд
- •6.2 Типові моделі даних субд і представлення концептуальної моделі
- •6.2.1. Мережева модель даних
- •6.2.2. Ієрархічна модель даних
- •6.2.3. Реляційна модель даних
- •6.2.4. Багатовимірна модель даних
- •6.3. Засоби автоматизованого проектування концептуальної моделі
- •Лекція 7
- •Формалізація реляційної моделі
- •7.1. Формалізований опис відношень і схеми відношень
- •7.2. Маніпулювання даними в реляційній моделі
- •7.3. Операції реляційної алгебри
- •Лекція 8
- •Використання формального апарату для оптимізації схем відношень
- •8.1. Проблема вибору раціональних схем відношень
- •8.2. Функціональні залежності (залежності між атрибутами відношення)
- •8.3. Декомпозиція схеми відношення
- •8.4 .Вибір раціонального набору схем відношень шляхом нормалізації
- •8.5. Приклад нормалізації до 3нф
- •8.6. Цілісна частина реляційної моделі. Реалізація умови цілісності даних в сучасних субд
- •Лекція 9
- •Фізичні моделі даних (внутрішній рівень)
- •9.1. Структура пам'яті еом
- •9.2. Представлення екземпляра логічного запису
- •9.3. Організація обміну між оперативною і зовнішньою пам'яттю
- •9.4. Структури зберігання даних у зовнішній пам'яті еом
- •9.4.1. Послідовне розміщення фізичних записів
- •Пошук запису із заданим значенням ключа
- •9.4.2. Розміщення фізичних записів у вигляді спискової структури
- •Пошук запису із заданим значенням ключа
- •9.4.3. Використання індексів (індексування)
- •Пошук і читання запису із заданим значенням ключа
- •Модифікація (коректування) запису
- •Видалення запису
- •Додавання запису
- •9.4.5. Розміщення записів з використанням хешування
- •Пошук запису із заданим значенням ключа і читання
- •Модифікації запису
- •Видалення запису
- •Додавання запису
- •9.4.6. Комбіновані структури зберігання
- •Лекція 10
- •Структура сучасної субд на прикладі Microsoft sql Server 2008
- •10.1 Загальна структура субд
- •10.2. Архітектура бази даних. Логічний рівень
- •Тип даних hierarchyid
- •Просторові типи даних
- •Індекси
- •Представлення
- •Складки
- •Обмеження
- •Правила
- •Значення за замовчуванням
- •10.3. Архітектура бази даних. Фізичний рівень
- •Файли і файлові групи
- •Сторінки і екстенти
- •Сторінки файлів даних
- •Організація таблиць та індексів
- •Управління роботою з екстентами і вільним місцем
- •Відстежування вільного місця
- •Лекція 11
- •Програмне забезпечення роботи з сучасними базами даних
- •11.1. Основні завдання програмного забезпечення баз даних
- •11.2. Проблеми створення і ведення реляційних баз даних
- •11.3. Поняття мови sql і його основні частини
- •11.3.1. Історія виникнення і стандарти мови sql
- •11.3.2. Переваги мови sql
- •11.3.2. Загальна характеристика sql
- •Термінологія
- •Різновиди sql
- •Лекція 12
- •Основні оператори мови sql. Інтерактивний sql
- •12.1. Загальне уявлення про основні оператори мови sql
- •12.2 Інтерактивний режим роботи з sql (інтерактивна sql)
- •12.3. Використання мови sql для вибору інформації з таблиці
- •12.4. Використання sql для вибору інформації з декількох таблиць
- •12.5. Використання sql для вставки, редагування і видалення даних у таблицях
- •Лекція 13
- •Використання мови sql у прикладних програмах
- •13.1. Програмний (вбудований) sql
- •13.2. Статичний sql
- •13.3. Динамічний sql
- •13.4. Інтерфейси програмування додатків (api). Db‑Library, odbc, oci, jdbc
- •Протокол odbc
- •Протокол jdbc
- •Бібліотека db-Library
- •Лекція 14
- •Напрями розвитку баз даних
- •14.1. Об'єктно-орієнтований підхід до організації баз даних
- •Об'єктно-орієнтоване програмування
- •Об'єктно-орієнтовані бази даних
- •Об'єктно-реляційні субд
- •14.2. Розподілені бази даних
- •14.3. Сховища даних
- •Основи криптології
9.4.2. Розміщення фізичних записів у вигляді спискової структури
Основна проблема у використанні викладеного в п. 9.4.1 способу організації записів полягає у відображенні додавання логічного запису в довільне місце таблиці. При цьому доводиться переписувати в пам'яті (зсувати на одну позицію) фізичні записи, відповідні логічним записам таблиці, розташованим нижче місця вставки рядка, що додається. Відповідну проблему можна усунути, використовуючи для представлення фізичних записів зв'язний список (мал. 9.4).
Мал.
9.4. Список фізичних записів
Окрім цього списку у ВП формується список вільних елементів ("порожніх" фізичних записів), елементи якого використовуються при введенні нового запису з даними (мал. 9.5).
Нагадаємо, що кожен фізичний запис складається, як і раніше, із k логічних записів.
Мал. 9.5. Список вільних елементів
Розглянемо, як реалізуються основні елементарні операції моделі даних у цій структурі зберігання.
Пошук запису із заданим значенням ключа
Відмітимо, що впорядкування записів за значеннями ключа не дає тут прискорення процедури пошуку. Це пов'язано з тим, що після ряду додавань нових записів і видалення якихось існуючих записів фізична і логічна послідовність записів у списку істотно відрізнятиметься. При цьому буде неможливо за номером запису визначити його адресу і звертатися до запису, відповідної середини таблиці, для реалізації дихотомічного методу пошуку. Тому пошук можна вести лише за допомогою перебору. В ОП зчитується перший запис списку, розблоковується, значення ключових полів логічних записів цього фізичного запису порівнюються із заданим значенням. Якщо значення співпали, потрібний запис знайдений, якщо не збіглися, із записів вибирається адреса наступного запису списку, читається цей запис. Далі процедура повторюється. Середня кількість звернень до ВП буде рівною, як і в 9.4.1, (1+[N/k]) /2.
Читання запису
Після завершення попередньої операції запис зчитується в ОП. Оцінка кількості звернень до ВП таж.
Коректування запису
Зчитаний запис коректується і заноситься у ВП на своє місце (за своєю адресою). Кількість звернень до ВП на одиницю є більшою, ніж при читанні.
Видалення запису
Відмітимо, що ми говоримо про операції над логічними записами. Операція видалення логічного запису аналогічна операції коректування. Службове поле відповідного логічного запису позначається як "видалений запис". Сформований фізичний запис заноситься у ВП. Кількість звернень до ВП рівна ТР+1.
Додавання запису
Для визначеності вважатимемо, що заданий ключ логічного запису, після якого має бути доданий новий запис. Здійснюється операція пошуку і читання фізичного запису, в якому розташований запис з ключем РК. Якщо в цьому блоці є логічний запис, помічений як видалений запис, що додається, заноситься на його місце. Блок записується у ВП. Кількість звернень до ВП рівна ТР+1. Якщо у цьому блоці немає логічних записів, помічених як видалені, необхідно додавати новий фізичний запис, що вибраний із списку вільних елементів. З цією метою адреса зв'язку знайденого раніше фізичного запису замінюється на адресу початку списку вільних елементів.
Читається перший фізичний запис списку вільних елементів. Адреса зв'язку цього запису замінює адресу початку порожнього списку. В ОП формується новий фізичний запис, який буде доданий, що містить логічний запис. В ролі адреси зв'язку заноситься адреса зв'язку з фізичного запису, що передує тому запису який додається. Кожен з цих записів заноситься у ВП. Кількість звернень до ВП при додаванні запису буде приблизно рівною ТР+3.
Розглянутий метод організації структури зберігання досить ефективно вирішує проблеми додавання і видалення записів, але не уникає перебору при пошуку потрібного запису.