- •1. Критерії якості логічних моделей бд
- •2. Універсальне відношення як основа реляційного представлення даних
- •3. Проектування реляційних бд із застосуванням нормалізації. Поняття нормальної форми
- •4. Функціональні залежності
- •5. Різновиди нормальних форм. Перша нормальна форма
- •6. Друга нормальна форма. Приведення моделі бд до другої нормальної форми.
- •7. Третя нормальна форма. Приведення моделі бд до третьої нормальної форми
- •8. Алгоритм нормалізації (приведення до 3нф)
- •9. Переваги та недоліки різних ступенів нормалізації
- •10. Коректність процедури нормалізації. Теорема Хеза
3. Проектування реляційних бд із застосуванням нормалізації. Поняття нормальної форми
Таким чином, основна мета логічного проектування бази даних - скорочення надмірності збережених даних і усунення можливих потенційних аномалій роботи з базами даних. Для задоволення цих вимог Е.Коддом запропонований апарат нормалізації відношень.
Нормалізація відношень - це покроковий оборотний процес композиції чи декомпозиції вихідних відношень у відношення, що мають кращі властивості при включенні, зміні і видаленні даних.
При класичному підході до проектування БД весь процес проектування провадиться в термінах реляційної моделі даних методом послідовних наближень до задовільного набору схем відношень. Вихідною точкою є представлення предметної області у вигляді одного чи кількох відношень, і на кожнім кроці проектування створюється деякий набір схем відношень, що посідають кращі властивості. Процес проектування являє собою процес нормалізації схем відношень, причому кожна наступна нормальна форма має властивості кращі, ніж попередня.
У теорії реляційних БД звичайно виділяють 5 нормальних форм (перша (1NF), друга (2NF), третя (3NF), четверта (4NF), п’ята, чи нормальна форма проекції-з'єднання (5NF чи PJ/NF) та кілька їх різновидів, зокрема нормальна форма Бойса-Кодда (BCNF) (різновид 3-ї нормальної форми).
В основі процесу проектування реляційних БД лежить метод нормалізації. В процесі нормалізації здійснюється декомпозиція відношень, що знаходяться в попередній нормальній формі, у два чи більше відношень, що задовольняють вимогам наступної нормальної форми (НФ). Кожній нормальній формі відповідає деякий певний набір обмежень, і відношення знаходиться в певній нормальній формі, якщо задовольняє властивому їй набору обмежень. Чим вище НФ, тим більше потенційних аномалій даних виключається, але й тим більше відношень міститься у схемі БД.
Основні властивості нормальних форм:
кожна наступна нормальна форма в деякому сенсі є більш обмеженою, але й кращою, ніж попередня;
при переході до наступної нормальної форми позитивні властивості (переваги) попередніх нормальних форм зберігаються.
За максимального ступеня нормалізації у БД міститиметься максимальне число відношень з мінімальним степенм кожного з них; при цьому суперечливість даних виключаються. Як наслідок, забезпечується адекватність БД предметній галузі, легкість її розробки і супроводження, швидкість операцій оновлення даних, але падає швидкість виконання вибірки даних, оскільки запит на вибірку переважно потребує виконання операції з’єднання відношень. Якщо цей параметр є критичним, у БД допускають певну надмірність даних, яку компенсують відповідними збереженими процедурами.
Нормальні форми відношень ґрунтуються на фундаментальних у теорії реляційних баз даних поняттях функціональної і багатозначної залежності, з яких випливають вимоги до групування атрибутів.
4. Функціональні залежності
Реляційна база даних містить як структурну, так і семантичну інформацію. Структурна інформація задається схемою відношення, а семантична виражається функціональними зв'язками між атрибутами схеми.
Дамо визначення функціональної залежності.
Визначення. Функціональна залежність.
У відношенні R атрибут Y функціонально залежить від атрибута X (X і Y можуть бути складеними) у тому і тільки в тому випадку, якщо кожному значенню X відповідає в точності одне значення Y: R.X ->R.Y.
Табельний номер ->Прізвище; Посада ->Зарплата.
Функціональна залежність позначається X -> Y. Відзначимо, що X і Y можуть являти собою не тільки одиничні атрибути, але і групи, складені з декількох атрибутів одного відношення. Можна сказати, що функціональні залежності являють собою зв'язки типу "один до багатьох", що існують усередині відношення.
Визначення. Повна функціональна залежність.
Функціональна залежність R.X -> R.Y називається повною, якщо атрибут Y не залежить функціонально від будь-якої точної підмножини X.
Визначення. Неключовий атрибут.
Неключовим атрибутом називається будь-який атрибут відношення, який не входить до складу ключа (зокрема, первинного).
Визначення. Функціонально повна і часткова залежність неключового атрибута від складеного ключа.
Неключовий атрибут функціонально повно залежить від складеного ключа, якщо він функціонально залежить від ключа, але не знаходиться у функціональній залежності ні від якої частини ключа, у протилежному випадку має місце часткова залежність.
Відношення:
Читання лекцій (Таб_номер, Назва_курсу, Кількість_годин)
Назва_курсу ->У_годин
Залежність неключового атрибута Кількість_годин від частини складеного ключа говорить про часткову залежність.
Визначення. Транзитивна функціональна залежність.
Функціональна залежність R.X -> R.Y називається транзитивною, якщо існує такий атрибут Z, що існують функціональні залежності R.X -> R.Z і R.Z -> R.Y і відсутня функціональна залежність R.Z ->R.X. (При відсутності останньої вимоги ми мали б "нецікаві" транзитивні залежності в будь-якому відношенні, що має кілька ключів.)
Прізвище ->Офіс ->Телефон.
Визначення. Взаємно незалежні атрибути.
Два чи більше атрибутів взаємно незалежні, якщо жоден з цих атрибутів не є функціонально залежним від інших.
У відношенні Читання лекцій:
В_годин ->->Таб_номер;
Таб_номер ->-> Кількість_годин.
Деякі функціональні залежності можуть бути небажаними.
Надлишкова функціональна залежність - залежність, що містить в собі таку інформацію, яка може бути отримана на основі інших залежностей, що є в базі даних.
Коректною вважається така схема бази даних, у якій відсутні надлишкові функціональні залежності. Звідси випливають умови до групування атрибутів по сутностях:
між атрибутами не повинно бути небажаних функціональних залежностей і вони повинні забезпечувати мінімальне дублювання даних;
обраний склад відношень повинен відрізнятися мінімальною надлишковістю атрибутів;
обрані для відношення первинні ключі повинні бути мінімальними;
не повинно бути труднощів при виконанні операцій включення, видалення і модифікації (аномалії);
перебудова набору відношень при введенні нових типів повинна бути мінімальною.
Якщо первинно у схемі відношень присутні надлишкові функціональні залежності, то доводиться удаватися до процедури декомпозиції (розкладання) наявної множини відношень. При цьому породжується множина відношень, що містить більшу кількість відношень, що є проекціями відношень вихідної множини. Оборотний покроковий процес заміни даної сукупності відношень іншою схемою з усуненням надлишкових функціональних залежностей і називається нормалізацією.
Умова оборотності вимагає, щоб декомпозиція зберігала еквівалентність схем при заміні однієї схеми на іншу, тобто в результуючих відношеннях:
не повинні з'являтися раніше відсутнє кортежі;
на відношеннях нової схеми повинна виконуватися вихідна множина функціональних залежностей.
