Нормалізація
Нормалізація
План
1. Постановка задачі
2. Нормальні форми
3. Денормалізація
Постановка задачі
Нормалізація - це процедура визначення того, які атрибути зв'язані у відношенні. Одна з головних задач при розробці реляційної БД - об'єднання в одному відношенні тих атрибутів, які зв'язані між собою (між якими є функціональні залежності). Нормалізація являє собою поетапний процес заміни сукупності відношень іншою сукупністю (схемою), в якій відношення мають просту і регулярну структуру. Результатом нормалізаії є логічна модель БД.
Надлишковість даних в БД є небажаним явищем, оскільки призводить до збільшення об'єму пам'яті, уповільнює роботу БД. Надлишковість даних є результатом в першу чергу дублювання даних. Розрізняють незбиткове та збиткове дублювання даних. Повністю усувати надлишковість не потрібно, оскільки при цьому неможливо буде підтримувати БД як єдине ціле. Слід тільки мінімізувати надлишковість, залишивши необхідне дублювання даних.
Дублювання даних створює проблеми при виконанні операцій з БД. Ці проблеми виникають при спробі зробити операції: редагування, додавання або вилучення даних.
Аномаліями називається така ситуація в БД, яка призводить до протирічь у БД, або суттєво ускладнює обробку даних. Розрізняють аномалії модифікації, додавання і вилучення.
Приклад. Розглянемо відношення Студент (табл. 7.1).
Аномалія модифікації виникає при спробі змінити прізвище декана. В цій ситуації необхідно переглянути всі кортежі. При великих розмірах БД це потребує значного часу,
при цьому можливі помилки (у разі невірного введення прізвища), які порушать цілісність БД.
Аномалія додавання виникає при додаванні інформації про нового студента, при цьому необхідно вводити інформацію, яка вже є в БД: назва факультету, прізвище декана. Крім того неможливо створити нову групу поки не існує студентів, які в ній займаються.
Аномалія вилучення виникає при спробі вилучити дані про студента, який в групі поки ще один, наприклад Лемешко. В цьому випадку зникне інформація про групу ІУСТ-22.
Виконання декомпозиції наведеного відношення дозволяє позбутися вищеозначених аномалій (табл. 7.2...7.4).
Процес проектування БД з використанням декомпозиції являє собою процес послідовної нормалізації схем відношень, при цьому кожна наступна ітерація відповідає нормальній формі більш високого рівня і має кращі властивості у порівнянні з попередньою. Кожній нормальній формі (НФ) відповідає деякий набір обмежень. Визначають такі нормальні форми: 1НФ, 2НФ, 3НФ, НФБК (нормальна форма Бойса- Кодда), 4НФ, 5НФ.
При виконанні декомпозиції зберігається множина вихідних функціональних залежностей між атрибутами і виконується зворотність. Зворотність означає можливість відновлення вихідної схеми. Функціональні залежності відображають зв'язки між атрибутами, які властиві реальному об'єкту.
Атрибут B функціонально залежить від A, якщо кожному значенню A відповідає в точності одне значення B. Математичний запис функціональної залежності (ФЗ): A^ B
Приклад. Функціональні залежності:
Студент ^ Група; Група ^ Факультет;
Викладач, Студент, Дисципліна ^ Оцінка.
Якщо існує ФЗ A ^ B, то це означає, що у всіх кортежах з однаковим значенням атрибуту A атрибут B буде мати також одне й те ж значення. A і B можуть складатися з декількох атрибутів.
Нормальні форми
Перша нормальна форма. Відношення знаходиться в 1НФ тоді і тільки тоді, коли всі його атрибути є атомарними.
Значення атрибуту вважається атомарним, якщо воно є неподільним у всіх застосуваннях.
Приклад. Представлення даних у таблицях може вважатися як атомарним, так і неатомарним залежно від використання. Засіб представлення визначається необхідним
ступенем деталізації і повинен підтримуватися у всіх застосуваннях (табл. 7.5).
Друга нормальна форма. Відношення знаходиться в 2НФ, якщо воно знаходиться в 1НФ і кожен його непервинний атрибут функціонально повно залежить від первинного ключа.
Неповною функціональною залежністю називається залежність неключового атрибуту від частини ключа, що складається з декількох атрибутів. Повна функціональна залежність передбачає залежність неключового атрибуту від всіх атрибутів одночасно, що входять до складу ключа.
Приклад. Розглянемо відношення Студент (табл. 7.6).
Функціональні залежності:
№ залік. кн., Дисципліна ^ Прізвище, Група, Оцінка № залік. кн. ^ Прізвище, Група
Для приведення даного відношення до 2НФ необхідно розбити його на проекції, при цьому повинна бути виконана
умова відновлення вихідного відношення без втрат. Проекції мають такий вигляд (табл. 7.7...7.8).
Відсутність втрат при декомпозиції відношення R(x,y,z) на відношення Rj(x,y) і R2(x,z) виконується, якщо від спільного атрибуту двох отриманих відношень (x) залежить хоча б один атрибут з двох, що залишилися (y або z), тобто якщо виконується (x ^y) або (x ^ z).
Третя нормальна форма. Відношення знаходиться в 3НФ, якщо воно знаходиться в 2НФ і жоден з непервинних атрибутів у відношенні не є транзитивно залежним від первинного ключа.
Атрибут C транзитивно залежить від атрибуту A, якщо для атрибутів A, B, C виконуються такі умови A ^ B і B ^ C, але зворотня залежність відсутня.
Приклад. Розглянемо відношення Студент (табл. 7.9).
Функціональні залежності: № залік. кн. ^ Прізвище, Група, Факультет Група ^ Факультет
Між атрибутами існує транзитивна залежність. Для того щоби запобігти цьому необхідно виконати декомпозицію відношення (табл. 7.10, 7.11):
Нормальна форма Бойса-Кодда. Відношення знаходить-ся в НФБК, якщо воно знаходиться в 3НФ і у ньому відсутні залежності атрибутів первинного ключа від неключових атрибутів.
Приклад. Розглянемо відношення Спеціальність (табл. 7.12).
Припустимо, що на кожній спеціальності певну дисцип-ліну може викладати тільки один викладач і кожен викладач викладає тільки одну дисципліну. У цьому випадку мають місце такі залежності:
Спеціальність, Дисципліна ^ Викладач Викладач ^ Дисципліна
Відношення знаходиться в 3НФ, але неключовий атрибут Викладач визначає атрибут Дисципліна, що входить у ключ.
Для того щоби позбутися аномалій необхідно виконати декомпозицію відношення (табл. 7.13, 7.14).
Четверта нормальна форма. Відношення знаходиться в 4НФ тоді і тільки тоді, коли у випадку існування багатозначної залежності A^^B всі інші атрибути відношення функціонально залежать від A.
У відношенні R(A,B,C) існує багатозначна залежність A^^B в тому і тільки в тому випадку, коли множина значень B, що відповідає парі значень A і C залежить тільки від A і не залежить від C.
Відношення R(A,B,C) можна розбити без втрат інформації на відношення Rj(A,B) і R2(A,C) в тому і тільки в тому випадку, якщо існують багатозначні залежності A^^B і A^^C.
Приклад. Розглянемо відношення Кафедра (табл.7.15).
У даному відношенні існують дві багатозначні залежності:
Кафедра ^^ Викладач Кафедра ^^ Група
Це означає, що кожній кафедрі відповідає перелік викладачів, які на ній працюють і кожній кафедрі відповідає перелік груп, яким ця кафедра викладає дисципліни.
Для того, щоби звести відношення до 4НФ, необхідно виконати його декомпозицію (табл. 7.16, 7.17).
П'ята нормальна форма. Відношення знаходиться в 5НФ тоді і тільки тоді, коли будь-яка залежність з'єднання у відношенні виходить з існування деякого можливого ключа у відношенні.
Відношення R(X,Y,...,Z) задовольняє залежності з'єднання (X,Y,...,Z тоді і тільки тоді, коли R відновлюється без втрат інформації шляхом з'єднання своїх проекцій на X, Y,..., Z. Залежність з'єднання є узагальненням функціональної і багатозначної залежностей.
Приклад. Розглянемо відношення Заняття: Заняття (Студент, Викладач, Дисципліна) Кожен студент слухає лекції багатьох викладачів, кожен викладач викладає для багатьох студентів, кожен студент вивчає багато дисциплін, кожен викладач викладає багато
дисциплін. У відношенні відсутні багатозначні і функціональні залежності й воно знаходиться в 4НФ. У відношенні можливі аномалії, які пов'язані з повтором значень атрибутів в декількох кортежах. Наприклад, якщо студент навчається у багатьох викладачів, то при його відрахуванні з університету необхідно знайти і вилучити декілька записів з відношення. Утворимо такі складені атрибути відношення: СВ (Студент, Викладач) СД (Студент, Дисципліна) ВД (Викладач, Дисципліна).
Якщо відношення R спроектувати на складені атрибути СВ, СД, ВД, то з'єднання цих проекцій дасть вихідне відношення. Це означає, що у відношенні Заняття існувала залежність з'єднання. Результатом декомпозиції відношення Заняття буде отримання таких відношень: R1(Студент, Викладач), R2(Студент, Дисципліна), R3(Викладач, Дисципліна).
Для зведення вихідного відношення до 5НФ виконують його декомпозицію на відношення, кількість яких перевищує два.
Результати зведення до нормальних форм наведені в табл. 7.18.
Денормалізація
Денормалізація - модифікація реляційної моделі, при якій ступінь нормалізації модифікованого відношення стає нижче, ніж ступінь нормалізації щонайменше одного з вихідних відношень.
Денормалізація застосовується у тих випадках, коли нормалізована БД не задовольняє вимогам, що висуваються до продуктивності системи. Денормалізація може застосовуватися у таких випадках:
- об'єднання таблиць зі зв'язками "один до одного";
- дублювання неключових атрибутів у зв'язках "один до багатьох" для зменшення кількості з'єднань;
- дублювання атрибутів зовнішнього ключа у зв'язках "один до багатьох" для зменшення кількості з'єднань;
- дублювання атрибутів "багато до багатьох" для зменшення кількості з'єднань;
- створення таблиць з даних, що містяться в інших таблицях;
- введення груп полів, що повторюються.
Застосовуючи денормалізацію слід враховувати, що цей процес має такі негативні наслідки:
- призводить до появи аномалій БД;
- знижує гнучкість системи;
- може зменшити час на відповіді до БД, але при цьому уповільнює операції оновлення даних;
- може ускладнити фізичну реалізацію системи.
Література
1. Гайдамакин Н.А. Автоматизированные информационные системы, базы и банки данных. Вводный курс. - М.: Гелиос АРВ, 2002. - 368 с.
2. Гайна Г.А. Організація баз даних і знань. Мови баз даних: Конспект лекцій.-К .:КНУБА, 2002. - 64 с.
3. Гайна Г.А., Попович Н.Л. Організація баз даних і знань. Організація реляційних баз