Головна    Статті    Карта    Зв'язок   

Нормалізація схеми бази даних за посібником Гайна Г.А.

березень 2015

Аналіз інформації за тематикою "Нормалізація схеми бази даних" за посібником Гайна Г.А.
Г12 Основи проектування баз даних: Навчальний посібник. К.: КНУБА, 2005. – 204 с.

Скачати посібник Г.А.Гайна Основи проектування баз даних.

Для аналізу розглянуто лише перші три форми нормалізації.



Таблиця даних реляційної Бази Даних.

представлення таблиці Баз Даних

Нормальні форми:
Перша нормальна форма (1НФ, 1NF)
Друга нормальна форма (2НФ, 2NF)
Третя нормальна форма (3НФ, 3NF)
Нормальна форма Бойса — Кодда (НФБК, BCNF)
Четверта нормальна форма (4НФ, 4NF)
П'ята нормальна форма (5НФ, 5NF)
Доменно-ключова нормальна форма (ДКНФ, DKNF).



Глава 7. НОРМАЛІЗАЦІЯ

7.1. Постановка задачі

Нормалізація – це процедура визначення того, які атрибути зв'язані у відношенні. Одна з головних задач при розробці реляційної БД – об'єднання в одному відношенні тих атрибутів, які зв'язані між собою (між якими є функціональні залежності). Нормалізація являє собою поетапний процес заміни сукупності відношень іншою сукупністю (схемою), в якій відношення мають просту і регулярну структуру. Результатом нормалізаії є логічна модель БД.

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

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

Аномаліями називається така ситуація в БД, яка призводить до протирічь у БД, або суттєво ускладнює обробку даних.

Розрізняють аномалії модифікації, додавання і вилучення.



Приклад. Розглянемо відношення Студент (табл. 7.1).

приклад нормалізації таблиці

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

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

Аномалія вилучення виникає при спробі вилучити дані про студента, який в групі поки ще один, наприклад Лемешко. В цьому випадку зникне інформація про групу ІУСТ-22. Виконання декомпозиції наведеного відношення дозволяє позбутися вищеозначених аномалій (табл. 7.2...7.4).

приклад нормалізації таблиці

Процес проектування БД з використанням декомпозиції являє собою процес послідовної нормалізації схем відношень, при цьому кожна наступна ітерація відповідає нормальній формі більш високого рівня і має кращі властивості у порівнянні з попередньою. Кожній нормальній формі (НФ) відповідає деякий набір обмежень. Визначають такі нормальні форми: 1НФ, 2НФ, 3НФ, НФБК (нормальна форма Бойса-Кодда), 4НФ, 5НФ.

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

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

Математичний запис функціональної залежності (ФЗ): A>B
Приклад. Функціональні залежності:
Студент > Група;
Група > Факультет;
Викладач, Студент, Дисципліна > Оцінка.

Якщо існує ФЗ A > B, то це означає, що у всіх кортежах з однаковим значенням атрибуту A атрибут B буде мати також одне й те ж значення. A і B можуть складатися з декількох атрибутів.




7.2. Нормальні форми

Перша нормальна форма (1НФ, 1NF)

Перша нормальна форма. Відношення знаходиться в 1НФ тоді і тільки тоді, коли всі його атрибути є атомарними. Значення атрибуту вважається атомарним, якщо воно є неподільним у всіх застосуваннях.

Приклад. Представлення даних у таблицях може вважатися як атомарним, так і неатомарним залежно від використання. Засіб представлення визначається необхідним ступенем деталізації і повинен підтримуватися у всіх застосуваннях (табл. 7.5).

приклад нормалізації таблиці

Друга нормальна форма (2НФ, 2NF)

Друга нормальна форма. Відношення знаходиться в 2НФ, якщо воно знаходиться в 1НФ і кожен його непервинний атрибут функціонально повно залежить від первинного ключа.

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

Приклад. Розглянемо відношення Студент (табл. 7.6).

приклад нормалізації таблиці

Для приведення даного відношення до 2НФ необхідно розбити його на проекції, при цьому повинна бути виконана умова відновлення вихідного відношення без втрат. Проекції мають такий вигляд (табл. 7.7...7.8).

приклад нормалізації таблиці

Відсутність втрат при декомпозиції відношення R(x,y,z) на відношення R1(x,y) і R2(x,z) виконується, якщо від спільного атрибуту двох отриманих відношень (x) залежить хоча б один атрибут з двох, що залишилися (y або z), тобто якщо виконується (x > y) або (x > z).



Третя нормальна форма (3НФ, 3NF)

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

Атрибут C транзитивно залежить від атрибуту A, якщо для атрибутів A, B, C виконуються такі умови A > B і B > C, але зворотня залежність відсутня.

Приклад. Розглянемо відношення Студент (табл. 7.9).

приклад нормалізації таблиці

Функціональні залежності:
№ залік. кн. > Прізвище, Група, Факультет
Група > Факультет

Між атрибутами існує транзитивна залежність. Для того щоб запобігти цьому необхідно виконати декомпозицію відношення (табл. 7.10, 7.11):

приклад нормалізації таблиці

7.3. Денормалізація

Денормалізація – модифікація реляційної моделі, при якій ступінь нормалізації модифікованого відношення стає нижче, ніж ступінь нормалізації щонайменше одного з вихідних відношень.

Денормалізація застосовується у тих випадках, коли нормалізована БД не задовольняє вимогам, що висуваються до продуктивності системи. Денормалізація може застосовуватися у таких випадках:
- об'єднання таблиць зі зв#39;язками "один до одного";
- дублювання неключових атрибутів у зв#39;язках "один до багатьох" для зменшення кількості з#39;єднань;
- дублювання атрибутів зовнішнього ключа у зв#39;язках "один до багатьох" для зменшення кількості з#39;єднань;
- дублювання атрибутів "багато до багатьох" для зменшення кількості з#39;єднань;
- створення таблиць з даних, що містяться в інших таблицях;
- введення груп полів, що повторюються.

Застосовуючи денормалізацію слід враховувати, що цей процес має такі негативні наслідки:
- призводить до появи аномалій БД;
- знижує гнучкість системи;
- може зменшити час на відповіді до БД, але при цьому уповільнює операції оновлення даних;
- може ускладнити фізичну реалізацію системи.

правила нормалізації таблиці

Заключення

- Власне нормалізація таблиць Баз даних насправді корисна штука, але, вважаю, для великих проектів, де справді можливо наплутати з введенням, оновленням, видаленням даних.

- Якщо ж даних мало, то форми визначення структурування таблиць дещо складноваті :)
Хоча можливо все це лише справа практики.

Та ще раз, можете переглянути версію Посібник Г.А.Гайна Основи проектування баз даних.