3.6 Створення оптимальної моделі баз даних

 

Під оптимальною логічною моделлю баз даних розуміють модель, яка не має аномалій, пов'язаних з модифікацією БД, тобто проблем, що можуть виникнути у зв'язку із замінами, вставками і вилученнями даних із БД.

Для створення такої моделі баз даних незалежно від того, яка СУБД використовується - ієрархічна, сіткова чи реляційна, застосовується теорія нормалізації реляційних баз даних. Використання реляційного підходу дає змогу спроектувати оптимальну логічну модель БД, яка потім досить просто трансформується в ієрархічну чи сіткову модель.

                               В основу реляційних моделей покладено поняття відношення, яке подають у вигляді двовимірної таблиці.

Реляційна БД - це набір взаємоз'язаних відношень. Кожне відношення (таблиця) в ЕОМ подається як файл. Відношення можна поділити на два класи: об'єктні і зв'язкові.

Об'єктні відношення зберігають дані про інформаційні об'єкти предметної області. Наприклад: КЛІЄНТ (код клієнта, назва клієнта, адреса, телефон) є об'єктним відношенням.

В об'єктному відношенні один із атрибутів однозначно ідентифікує окремий об'єкт. Такий атрибут називається первинним ключем відношення. У наведеному відношенні роль ключа виконує атрибут «код клієнта». Ключ може вміщувати кілька атрибутів, тобто бути складеним. В об'єктному відношенні не повинно бути рядків з однаковим ключем, тобто не допускається дублювання об'єктів. Це основне обмеження реляційної моделі для забезпечення цілісності даних.

Зв'язкове відношення зберігає первинні ключі двох або більше об'єктних відношень. Ключі зв'язкового відношення мають на меті встановлення зв'язків між об'єктними відношеннями.

Розглянемо, наприклад, ще одне об'єктне відношення БАНК (код банку, назва банку, адреса банку).

 

Тоді зв'язкове відношення БАНК-КЛІЄНТ (код банку, код клієнта) буде сполучним між двома об'єктними відношеннями БАНК і КЛІЄНТ. У зв'язковому відношенні можуть дублюватися ключові атрибути. Крім ключів, за якими встановлюють зв'язок у зв'язковому відношенні, можуть бути ще й інші атрибути, які функціонально залежать від цього складового ключа.

Ключі в зв'язкових відношеннях називаються вторинними, або зовнішніми ключами, оскільки вони є первинними ключами об'єктів інших відношень. Реляційна модель накладає на зовнішні ключі обмеження, яке називають посилковою цілісністю. Воно необхідне для забезпечення цілісності даних.

Посилкова цілісність — це відповідність між об'єктними та зв'язковими відношеннями, яка полягає в тому, що кожному зовнішньому ключеві зв'язкового відношення має відповідати рядок якогось об'єктного відношення. Без такого обмеження може статися так, що зовнішній ключ посилається на об'єкт, про який нічого не відомо.

У реляційній БД накладається ще одне обмеження — відношення мають бути нормалізованими.

Нормалізація відношень — це ітераційний зворотний процес декомпозиції початкового відношення на кілька простіших відношень меншої розмірності. Під зворотністю процесу розуміють те, що операція об'єднання відношень, здобутих у результаті декомпозиції, має дати початкове відношення. У результаті нормалізації склад атрибутів відношень БД має відповідати таким вимогам:

між атрибутами мають виключатися небажані функціональні залежності;

групування атрибутів не повинно мати збиткового дублювання даних;

забезпечувати обробку і поновлення атрибутів без ускладнень.

Нормалізована база даних вимагає значно менше пам’яті  для її зберігання, ніж ненормалізована база даних.