
- •Вступ до баз даних. Загальна характеристика основних понять
- •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.2. Представлення екземпляра логічного запису
Логічний запис представляється в оперативній пам'яті таким чином:
Логічний запис |
|
Послідовність байтів ОП |
||||||
Поле 1 |
Поле 2 |
... |
Поле N |
|
B1 |
B2 |
... |
BN |
Тип поля |
|
Bi – послідовність байтів ОП, використовувана для зберігання поля i
|
||||||
Характеристика поля |
||||||||
Довжина |
Пряма адресація байтів дозволяє процесору вибирати для обробки потрібне поле.
Відмітимо, що вказане представлення не відрізняється для записів у мережевій, ієрархічній і реляційних моделях. У випадку мережевої та ієрархічної моделей деякі поля можуть бути покажчиками, тоді послідовність байтів, використовувана для зберігання цих полів, містить адресу початку послідовності байтів, відповідному запису – члену відношення.
У більшості сучасних СУБД використовується формат записів фіксованої довжини. У цьому випадку всі записи мають однакову довжину, яка визначається сумарною довжиною полів, що складають запис. У СУБД інші формати записів (змінної довжини, невизначеної довжини) зустрічаються набагато рідше, тому в наших лекціях ці формати не будемо розглядати. Відмітимо, що поля запису, що набувають значень істотно різної довжини в різних екземплярах записів, у предметній області зустрічаються досить часто. Прикладом може служити поле резюме в запису СПІВРОБІТНИК. Резюме може складати пів сторінки тексту, сторінку і т. д. Виникає проблема – як цю інформацію змінної довжини представити в запису фіксованої довжини. Можливим варіантом є встановлення розміру відповідного поля за максимальним значенням. У цьому випадку в багатьох екземплярах запису вказане поле буде заповнено не повністю і, таким чином, пам'ять ЕОМ використовуватиметься неефективно. Ефективніший і часто використовуваний в СУБД прийом організації таких записів полягає в наступному. Замість поля (полів), що набуває значення істотно різної довжини, в запис включається поле-покажчик на область пам'яті, де розміщуватиметься значення вихідного поля. Як правило, ця область є областю зовнішньої пам'яті прямого доступу. В процесі введення відповідного значення у виділеній області займається стільки пам'яті, яка довжина цього значення.
На мал. 9.2 представлений приклад вищезгаданого представлення екземплярів записів з N полів, причому поле N набуває (приймає) значень відповідно різної довжини в різних екземплярах записів.
Мал. 9.2. Представлення полів змінної довжини
Конкретною реалізацією такої схеми є поле типа МЕМО в СУБД (dBase III+, FoxPro, Access і т.д.).
9.3. Організація обміну між оперативною і зовнішньою пам'яттю
Одиницею обміну даними між оперативною і зовнішньою пам'яттю є фізичний запис. Фізичний запис читається (записується) за одне звернення до зовнішньої пам'яті. Зокрема, фізичний запис може відповідати одному екземпляру логічного запису. Кількість звернень до зовнішньої пам'яті при роботі з базою даних суттєво впливає на час відгуку системи. У зв'язку з цим для зменшення кількості звернень до БД при роботі з нею збільшують довжину фізичного запису (об'єднують в один фізичний запис декілька екземплярів логічних записів). У цьому випадку фізичний запис називають також блоком,
Кількість k екземплярів логічних записів, що складають фізичний запис, називають коефіцієнтом блокування.
Введення вихідних даних у БД здійснюється таким чином:
в ОП послідовно вводяться k екземплярів логічних записів (кортежів);
введені k екземпляри об'єднуються у фізичний запис (блок);
фізичний запис заноситься в зовнішню пам'ять.
Введення k екземплярів записів вихідної таблиці, що складають i‑ий фізичний запис, зображене на мал. 9.3.
Мал.
9.3. Схема занесення записів у зовнішню
пам'ять
Обробка даних, що зберігаються в зовнішній пам'яті, здійснюється таким чином:
фізичний запис (блок) прочитується в оперативну пам'ять;
обробляються екземпляри логічних записів усередині блоку (вибираються потрібні поля, проводиться порівняння ключового поля із заданим значенням, здійснюється коректування полів, виконуються операції видалення і т. п.).
У деяких СУБД (наприклад, MS SQL Server) одиницею обміну між оперативною і зовнішньою пам'яттю є сторінка (вид фізичного запису, розмір якого фіксований і не залежить від довжини логічного запису). Організація обміну між оперативною і зовнішньою пам'яттю у цьому випадку аналогічна вищеописаній. Відмінність тут полягатиме в тому, що екземпляри логічних записів формуються в буфері, розміром у сторінку, якщо розмір сторінки не кратний довжині логічного запису, сторінка може бути заповнена неповністю, фізичний запис на зовнішньому носієві, відповідно, буде заповнений не повністю.