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

Третя нормальна форма. Можливі недоліки відношення в 3нф

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

Стосунки Cities і Regions знаходяться в третій нормальній формі. Таким чином другим етапом нормалізації є створення проекцій для виключення транзитивних залежностей.

Збереження залежності

В процесі приведення стосунків часто виникають ситуації, коли це відношення може бути піддане операції декомпозиції різними способами. Розглянемо знову приведене вище відношення CNR з функціональними залежностями CityNo(CityName, CityNo(RgNo, CityNo(RgNаме, RgNo(RgName і, отже, транзитивною залежністю CityNo(RgName (на Рисунок 3.5 транзитивна залежність показана пунктирною стрілкою).

Рисунок 3.5 Функціональних залежностей відносно CNR

Вище відзначалося, що аномалії оновлення, які супроводжують відношення CNR, можна здолати за допомогою декомпозиції із заміною цього відношення двома проекціями в ЗНФ.

Cities{CityNo, CityName, RgNo} і Regions{RgNo, RgName}

Назвемо цю декомпозицію просто "декомпозицією №1", маючи на увазі, що для неї існує альтернативна "декомпозиція №2":

Cities{CityNo, CityName, RgNo} і Regions{CityNo, RgName}

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

Розглянемо цей приклад детальніше. Передусім помітимо, що залежності проекцій в декомпозиції №1 відмічені суцільними стрілками, тоді як одна, із залежностей проекцій декомпозиції №1 відмічена пунктирною стрілкою. У декомпозиції №1 дві проекції незалежні один від одного в наступному сенсі: оновлення в кожній з проекцій можуть бути виконані абсолютно незалежно один від одного. (Звичайно, за винятком обмеження цілісності для Cities і Regions) Якщо таке оновлення допустиме тільки в контексті цієї проекції, тобто не порушується унікальність первинного ключа для цієї проекції, то з'єднання цих двох проекцій після оновлення завжди буде рівносильне відношенню CNR (тобто при з'єднанні не будуть порушені обмеження, накладені на ФЗ відносно CNR). У декомпозиції №2, навпаки, оновлення будь-якої з двох проекцій повинне ретельно фіксуватися, щоб гарантувати відсутність порушення залежності RgNo(RgName (якщо два міста знаходяться в одній і тій же області, вони повинні мати однаковий код області). Інакше кажучи, обидві проекції декомпозиції №2 не є незалежними одна від одної.

Основна проблема полягає в тому, що в декомпозиції №2 функціональна залежність RgNo(RgName стає обмеженням між стосунками. (Слід зазначити, що в багатьох сучасних програмних продуктах це обмеження повинне підтримуватися за допомогою процедурної обробки.) У декомпозиції №1, навпаки, транзитивна залежність SityNo(RgName є обмеженням між стосунками, яке автоматично виконується при задіюванні двох обмежень усередині стосунків, : CityNo(RgNo і RgNo(RgName. Привести в дію ці обмеження досить просто за рахунок відповідних обмежень, накладених на унікальність первинних ключів.

Концепція незалежних проекцій, таким чином, забезпечує критерій вибору однієї з декількох можливих декомпозиції. Декомпозиція з незалежними проекціями в приведеному вище загальному сенсі прийнятніше за ту, в якій проекції залежні. Риссанен (Rissanen) показав, що проекції R1 і R2 відношення R незалежні в згаданому вище сенсі тоді і тільки тоді, коли:

  1. кожна ФЗ відносно R є логічним наслідком функціональних залежностей в проекціях R1 і R2;

  2. загальні атрибути проекцій R1 і R2 утворюють потенційний ключ, принаймні, для однієї з них.

Відношення, яке не може бути піддане декомпозиції з отриманням незалежних проекцій, називається атомарним. Проте це не означає, що будь-яке неатомарне відношення може бути розбите на атомарні компоненти. Ідея нормалізації з декомпозицією на незалежні проекції називається декомпозицією із збереженням залежності.