Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
самост. робота.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.12 Mб
Скачать
  1. Теорія нормалізації відношень

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

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

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

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

Апарат нормалізації був розроблений американським вченим Е.Ф. Коддом. Кожна нормальна форма обмежує тип допустимих залежностей між атрибутами. Кодд виділив три нормальні форми (скорочена назва 1НФ, 2НФ і 3НФ). Найдосконаліша з них — це 3НФ. Тепер уже відомі і визначені 4НФ, 5НФ.

Нормалізація відношень виконується за кілька кроків (рис. 9).

Рис. 2. Схема етапів нормалізації відношень

1-й крок (1-ша ітерація) — зведення відношень до першої нор­мальної форми (1НФ).

Відношення в 1НФ мають відповідати таким вимогам:

  • усі атрибути відношення мають бути атомарними, тобто неподільними;

  • усі рядки таблиці мають бути однакової структури, тобто мати одну й ту саму кількість атрибутів з іменами, що відповідно збігаються;

  • імена стовпців мають бути різними, а значення однорідними (мати однаковий формат);

  • порядок рядків у таблиці неістотний.

Кожне відношення БД містить як структурну, так і семантич­ну інформацію. Структурна інформація задається схемою від­ношення, а семантична виражає функціональні зв’язки між атрибутами.

На 2-му кроці (2-га ітерація) нормалізації виявляються ключі атрибути та аналізуються відповідні залежності з метою вилучення неповних функціональних залежностей.

3-й крок (3-тя ітерація) нормалізації — це вилучення транзитивних залежностей. Відношення в 2НФ має аналізуватися на присутність транзитивних залежностей. Транзитивна залежність — це залежність між неключовими атрибутами.

Наприклад, дано відношення R (A*, B, C), в якому атрибут B не залежить безпосередньо від ключа, а C залежить від неключового атрибута B, який залежить від А, то тоді С транзитивно залежить від А.

Транзитивні залежності вилучаються також за допомогою декомпозиції відношення на інші два чи більше відношень, які не містять транзитивних відношень і об’єднання яких дасть початкове відношення. У результаті декомпозиції отримаємо два нових відношення R1 (A*, B) та R2 (В*, С).

На 4-му кроці (4-та ітерація) нормалізації виконується аналіз на присутність незалежних багатозначних залежностей у відношенні. Якщо вони є, то виконується декомпозиція відношення.

Багатозначна залежність — це різновид функціональної залежності. Атрибут В знаходиться у багатозначній залежності від атрибута А, тоді коди одному значення атрибута А відповідає багато значень атрибута В. Наприклад, між атрибутами код структурного підрозділу : табельний номер = 1 : Б, так як в одному підрозділі може працювати багато співробітників. Тобто багатозначній залежності відповідає відношення 1:Б між атрибутами.

Існують поняття тривіальної і нетривіальної багатозначної залежності.

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

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