Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 4.doc
Скачиваний:
4
Добавлен:
12.02.2016
Размер:
150.53 Кб
Скачать

4.4. Елементи теорії нормалізації

Основна ідея нормалізації - розбити великий "не добре" спроектований зв'язок на кшька "добре спроектованих" зв'язків. У результаті нормалізації склад атрибутів відношень БД має відповідати таким вимогам:

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

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

• забезпечувати обробку і поновлення атрибутів без ускладнень. До значень "недоброго проектування" можна зарахувати: введення, вилучення та аномалп оновлення. Хороший проект БД:

Юпент Пм'я. адреса, номер телефону)

Резерви (назва*. адреса*, номер*, дата*)

Рейс (номер, дата. час)

Для побудови хорошого проекту БД необхідно:

• мпшпзувати аномалп (надм1ртсть);

• ввести / вилучити аномалп;

• забезпечити оновлення аномалш;

• забезпечити чггкий синтаксис / семантику.

• дотримуватись правил щл1сност1, зокрема:

• • ццпсносп об'екта (вс1 об'екти ун1кальн1, не може бути н1яких нульових проводок у первинному ключ!);

• • ццпсносп ввдносин (зовн1шнш ключ мае бути або нульовим, або ввдповвдати розм1ру первинного ключа у зв'язанш таблищ).

Аномали введения / вилучення. Що буде, якщо ми вилучимо запис про такого юпента, який вже зробив попередне замовлення на рейс? Яким повинно бути р1шення?

АномалГ! оновлення. Що буде, якщо змшюеться адреса юпента в БД Юпент? -Яким повинно бути р1шення?

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

Нормал1защя ввдношень виконуегься за кшька кромв (рис. 4.5).

1-й крок (перша пгперацЫ). - зведення ввдношень до 1НФ.

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

• ус1 атрибута ввдношення мають бути атомарними (неподыьними);

ус\ рядки таблищ мають бути однаково! структури, тобто мати одну и ту саму кшьюсть атрибупв з 1менами, що ввдповвдно зб1гаються;

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

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

Рис. 4.5. Схема етатв норматзацпв1дношень

Кожне вцщошення БД м1стить структурну (задаеться схемою вщношення) ^ семантичну (функц1ональш зв'язки м1ж атрибутами) шформацио.

Приклад. Зароб1тна плата е атомарним атрибутом. Перел1к автор1в не е атомарним атрибутом. Попередня щформащя про зароб1тну плату не е атомарною.

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

Означення 1. Атрибут Б функцюнально залежить ввд А у ввдношенш К тод1, коли в кожний момент часу одному I тому самому значению А ввдповвдае не бшып н1ж одне значения Б. Функцюнальшй залежносэт ввдповвдае ввд-ношення 1:1 м1ж атрибутами.

Приклад. ПРОДУКТ (Код продукту, Назва, Юнцева обробка, При-м1щення, Цша).

Код продукту —> Назва, Юнцева обробка, Примщення, Цюа. Назва, Юнцева обробка, Примицення —> Код продукту.

Не можемо мати два продукта з однаковою назвою, як1 кшцево обробляються та використовуються в одному примщент.

Означення 2. Атрибут перебувае у повнш функщональюй залежност!, якщо вш залежить ввд усього ключа 1 не залежить вщ його складових.

Якщо вадношення мае неповн! функц1ональн1 залежносп, то виконують його декомпозици на два чи бшьше 1нших вщношень, яю не мають неповних функщональних залежностей ^ об'еднання яких дасть початкове ввдношення.

Основна вдея декомпозици - розкласти на частини великий "недобре спроек-тований зв'язок" на деюлька малих "добре спроектованих" зв'язюв так, щоб

• зберегти властивюгь розкладення (декомпозици') без втрат при об'еднант;

• зберегти залежност! (без втрати функщональних залежностей). Приклад. В1зьмемо вщношення КЛ1еНТ (Код кл1ента, 1м'я, Адреса, № рахунку, Тип, Залишок).

Якщо ми роз1б'емо його на два:

ПОКУПЕЦЬ (Код кл1ента, 1м'я, Адреса)

РАХУНОК (Номер рахунку. Тип, Залишок),

то ми втрачаемо шформащю. Однак, якщо ЮПСНТ розкласти на:

ПОКУПЕЦЬ (Код кгпента, 1м'я, Адреса) та

РАХУНОК (Код юпента, № рахунку. Тип, Залишок),

то КЛ1СНТ можна реконструювати без жодно'1 втрати шформаци.

3-й крок (третя 1терацш) нормал1зацц - це вилучення транзитивних залежностей, тобто залежностей муж. неключовими атрибутами.

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

Транзитивш залежносп вилучають також за допомогою декомпозицц ввдношення на шип два чи бшыые ввдношень, яю не мютять транзитивних ввдношень I об'еднання яких дасть початкове вщношення. Внаслвдок деком-позици отримаемо два нових ввдношення К1 (А*, В) та К2 (В*, С).

Приклад. ПРОДАЖ! (Цша, Назва товару, Продавець, Область);

Функц1ональн1 залежнос-п:

Цша —> Назва товару, Продавець, Область

Продавець-> область

У цьому приклад! транзитивною залежшстю е Продавець —> область.

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

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

Приклад. В1зьмемо базу даних Заняття (Курс, Викладач, Книжка), де Заняття (С, I, Ь) означае, що викладач I може читати курс С 1 що Ь-це необхщний пвдручник для С.

Це означае, що для викладання кожного курсу е наб^р викладач1в 1 наб1р придатних тдручниюв, 1 що щ два набори е незалежними один вщ одного.

Зважаючи на наведении приклад, багатозначна залежшсть - це такий тип залежност!, який 1снуе, коли у таблищ зв'язк1в е щонайменше три атрибута (наприклад. А, В та С) 1 для кожного значения А юнуе чггко визначений наб1р значень В I чггко визначений наб1р значень С, 1 щ два набори (В 1 С) е неза­лежними один ввд одного.

Для усунення багатофункцюнальнои залежносп роз1б'емо базу даних Заняття на дв1 таблищ:

МОЖЕ ВЧИТИ (Курс, Викладач) та

КНИЖКА КУРСУ (Курс, Книжка)

При такому розбитп ми не втрачаемо н1яко'1 шформаци (БД Заняття можна реконструювати на основ! них двох таблиць).

Будь-яку таблицю зв'язюв можна без втрат розбити на екв1валентний наб1р таблиць у 4 НФ (як це зроблено вище).

Декомпозищя початкового вщношення на кшька шших мае гарантувати його оборотшсть, тобто забезпечувати отримання початкового ввдношення об'еднанням ввдношень, знайдених внаслщок декомпозищ!.

.Проте не завжди декомпозищя гарантуе оборотшсть. Вщношення, яке мютить бшып як три багатозначш залежности, потребуе спещальних заход^в щодо забезпечення оборотност! декомпозицп. Для цього юнуе 5НФ. При декомпозицц з 4НФ д1стають таю проекцц, щоб кожна з них м1стила не менш як один можливий ключ I щонайменше один неключовий атрибут початкового ввдношення.

Нормал1зована БД виключае дублювання даних 1 можливють виникнення аномалш при виконанш операщй поповнення, замши та вилучення даних з БД. Крш того, нормал1зована база даних вимагае значно менше пам'ят1 для ц збери'ання, н1ж не нормал1зована БД.