Проектування баз даних
36


Поняття   багатозначної  залежності   складніше,   ніж   поняття функціональної залежності. Для виявлення багатозначної залежності потрібен значно глибший семантичний аналіз атрибутів. Існують поняття тривіальної і нетривіальної багатозначних залежностей. Залежність типів Х —>> Y і Y —>> Х є тривіальною, а залежність типів Х —>> Y і Y —/—>> X нетривіальною. Присутність нетривіальних багатозначних зале­жностей у схемі відношення і незалежність їх лівих частин призводять до комбінаторики правих частин відношення.

Означення. Відношення R перебуває в 4НФ, якщо в структурі багатозначної залежності, визначеної на множині атрибутів, є лише тривіальні чи/або такі нетривіальні багатозначні залежності, що ліва частина будь-якої з них з ключем.

Отже, зводячи до 4НФ, у відношенні потрібно виділяти в окреме відношення нетривіальні багатозначні залежності, в яких ліва частина не з ключем.

Розглянемо ще один приклад. Дано відношення ВИКЛАДАЧ (прізвище, група, предмет), у якому присутні багатозначні залежності:

прізвище ->> група, прізвище —>> предмет. У цьому відношенні є дві незалежні одна від одної багатозначні залежності, які можуть спричинити аномалії. Якщо у викладача з'являється нова група, доводиться добавляти не один кортеж, а стільки, скільки предметів він читає в цій групі. Аналогічна ситуація спостерігається з уведенням нового предмета. Тому потрібно виконати декомпозицію початкового відношення на два таких:

Викладач_Група (прізвище, група), Викладач_Предмет (прізвище, пред­мет). Декомпозиція початкового відношення на кілька інших має гаран­тувати його зворотність, тобто забезпечувати отримання початкового відношення шляхом об'єднання відношень, які було отримано в результаті декомпозиції. Однак не завжди декомпозиція гарантує зворотність.

Відношення, яке вміщує більш як три багатозначні залежності, потре­бує спеціальних прийомів для забезпечення процесу зворотності декомпозиції. Для цього існує ЗНФ. Декомпозицією з 4НФ отримують такі проекції, щоб кожна з них вмішувала щонайменше один можливий ключ і принаймні один неключовий атрибут початкового відношення. ЗНФ усуває надлишковістю і водночас аномалії поповнення БД.

ПИТАННЯ ДЛЯ САМОПЕРЕВІРКИ

1. Дайте визначення реляційного відношення та схарактеризуйте пра­вила його побудови.

2. Що являє собою оптимальна логічна модель даних?

3. Що таке аномалія та якими аномаліями характеризується ненормалізоване відношення?

4. Дайте визначення функціональної залежності.

5. Дайте визначення неповної функціональної залежності.

6. Що таке транзитивна залежність?

7. Дайте визначення багатозначної залежності.

8. У чому полягає суть зведення реляційного відношення до 1 НФ?

9. У чому полягає суть зведення реляційного відношення до 2НФ?

10. У чому полягає суть зведення реляційного відношення до ЗНФ?

11. У чому полягає суть зведення реляційного відношення до 4НФ?

12. Переваги нормалізованої бази даних.

ПРАКТИЧНІ ЗАВДАННЯ ДЛЯ САМОСТІЙНОЇ РОБОТИ

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

Потрібно спроектувати реляційну базу даних, що характеризує описану предметну область, і звести її до ЗНФ (4НФ). 

Завдання 2. Наведено реляційне відношення, що перебуває в 1 НФ:

ПОСТАВКА (код постачальника, назва постачальника, адреса постачальника, телефон, номер розрахункового рахунку постачальника, код Товару, назва товару, одиниця вимірювання, оптова ціна за одиницю, номер договору на постачання, дата укладання договору, дата виконання договору, кількість товару згідно з договором.                               

Потрібно побудувати діаграму функціональних залежностей та звести і відношення до ЗНФ (4НФ).                                         

Завдання 3. Дано реляційне відношення, що перебуває в 1 НФ:

УСПІШНІСТЬ (прізвище, ім'я та по батькові студента, номер залікової);

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