ЗБЕРЕЖЕННЯ ЗАЛЕЖНОСТЕЙ

У процесі нормалізації часто виникає ситуація, коли змінна відносини може бути піддана декомпозиції без втрат кількома різними способами Знову звернімося до наведеної вище змінної відносини SECOND з функціональними

8 З цього випливає, що комбінація змінних відносини SECOND-SP трохи краще представляє реальний світ в порівнянні з змінної відносини FIRST, що знаходиться в 1НФ, а комбінація змінних відносини SC-CS – Трохи краще в порівнянні з змінної відносини SECOND, що знаходиться в2НФ

476     Частина III Проектування бази даних

залежностями S # CITY і CITY STATUS і, отже, з ще однією транзитивної залежністю S # → STATUS (на рис 1211 ця транзитивна залежність показана пунктирною стрілкою) У розділі 123 зазначалося, що аномалії оновлення, характерні для змінної відносини SECOND, можна запобігти за допомогою її декомпозиції з наступною заміною двома проекціями в ЗНФ

Рис 1211 Функціональні залежності у змінній відносини SECOND SC {S #, CITY}

CS { CITY, STATUS }

Назвемо цю декомпозицію декомпозицией А. Нижче наведено ще один варіант декомпозиції (декомпозиція в)

SC { S#, CITY } SS { S#, STATUS }

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

Розглянемо цей приклад докладніше Насамперед зазначимо, що залежності, використані для створення проекцій в декомпозиції А, відповідають суцільними стрільцям (див рис 1211), тоді як одна з залежностей, використана для створення проекцій в декомпозиції в, відзначена пунктирною стрілкою У декомпозиції А обидві проекції незалежні одна від іншої в тому сенсі, що оновлення в кожній з них можуть виконуватися абсолютно незавісімо9 Якщо гарантується, що виконуються оновлення будуть припустимі в контексті даної проекції (тобто унікальність її первинного ключа не порушується), то поєднання цих двох проекцій після оновлення завжди буде мати результатом допустиме значення змінної відносини SECOND Це слід розуміти так, що при зєднанні не порушуватимуться обмеження, накладені на функціональні залежності у змінній відносини SECOND Однак у випадку декомпозиції в, що вносяться в будь-яку з двох проекцій оновлення повинні ретельно контролюватися, щоб можна було виключити можливі порушення функціональної залежності CITY → STATUS (Порушення можуть мати місце, якщо два і більше постачальників знаходяться в одному і тому ж місті в цьому випадку вони повинні мати один статус Як приклад розберіть випадок, коли в декомпозиції в постачальник з номером S1 переміщається з Лондона в Париж) Інакше кажучи, дві проекції декомпозиції в не є незалежними один від одного

9Еслинеучитыватьограничениессылочнойцелостности,котороесвязываетмеждусобойпеременныеотношения SC і CS

Основна проблема полягає в тому, що в декомпозиції в функціональна залежність CITY → STATUS перетворюється (відповідно до термінологією глави 9) в обмеження бази даних, охоплює дві змінні відносини (Слід зазначити, що в багатьох сучасних програмних продуктах подібні обмеження повинні підтримуватися за допомогою спеціального процедурного коду) На противагу цього, в декомпозиції А обмеженням бази даних є транзитивна залежність S # → STATUS, яка підтримується автоматично, якщо забезпечена підтримка двох обмежень змінних відносини: S# → STATUS і CITY STATUS Реалізувати ці обмеження дуже просто, оскільки, по суті, вони зводяться до підтримки унікальності значень первинних ключів у відповідних змінних відносини

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

■ кожна функціональна залежність у змінній відносини R є логічні ським наслідком функціональних залежностей в її проекція Rl і R2

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

Розглянемо задані вище декомпозиції А і в У декомпозиції А обидві проекції незалежні, оскільки їх загальний атрибут CITY є первинним ключем для змінної відносини CS і кожна функціональна залежність змінної відносини SECOND або представлена ​​в одній з проекцій, або є логічним наслідком інших наявних у них ФЗ У декомпозиції в, навпаки, дві складові її проекції не є незалежними, оскільки функціональна залежність CITY → STATUS не може бути виведена з ФЗ, які існують у цих проекціях, навіть незважаючи на те, що їх спільний атрибут S # є потенційним ключем для обох проекцій

Примітка Третій варіант декомпозиції із заміною змінної відносини SECOND проекціями {S #, STATUS} і {CITY, STATUS} не є припустимою декомпозицией, оскільки супроводжується втратою інформації(УпражненіеДоведіть це твердження)

В [126] змінна відносини, яка не може бути піддана декомпозиції з отриманням незалежних проекцій, називається атомарної (Це – не дуже вдалий термін) Однак це зовсім не означає, що кожну змінну відносини, відмінну від атомарної (у зазначеному сенсі), слід обовязково розбивати на атомарні компоненти Наприклад, змінні відносини S і р з згадуваної вище бази даних постачальників і деталей не є атомарними, однак подальша їх декомпозиція мала б мало сенсу Мінлива відносини SP, навпаки, є атомарної

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

i 1 Нехай дана змінна відносини R, яка після виконання всіх етапів нормалізації замінюється безліччю змінних відносини Rl, R2, .., Rn, що є проекціями змінної відносини R

2 Нехай також задано безліч функціональних залежностей S, що мають місце в початкової змінної відносини R, і безліч функціональних залежностей S1, S2, .., Sn, які, відповідно, виконуються в змінних відносини R1, R2, .., Rn

. 3 Кожна функціональна залежність в безлічі Si відноситься тільки до атрибутів проекції Ri (де i = l, 2, 3, .., п) У результаті реалізація обмежень (встановлюваних існуючими ФЗ) для будь-якого даного безлічі Si набагато спрощується Проте насправді необхідно реалізувати всі обмеження, які визначаються вихідним безліччю функціональних залежностей S Отже, доцільно вибрати такий варіант декомпозиції початкової змінної відносини на проекції Rl, R2, .., Rn, при якому спільний ефект від реалізації обмежень для окремих множин S1, S2, .., Sn буде еквівалентний реалізації всіх обмежень для вихідного безлічі функціональних залежностей S Інакше кажучи, декомпозиція повинна забезпечувати збереження залежностей

4 Нехай S є обєднанням безлічі залежностей S1, S2, .., Sn Про ратіте увагу на те, що в загальному випадку рівність S = S НЕ виконується Для декомпозиції із збереженням залежностей достатньо, щоб були рівні зами кания множин S і S (поняття замикання безлічі функціональних залежностей розглядалося в розділі 114 глави 11)

5 У загальному випадку не існує ефективного методу обчислення замикання S + для заданої множини функціональних залежностей, тому завдання вичис лення цих двох замикань і перевірки їх на рівність фактично є не здійсненним

Тим не менш, існує ефективний метод перевірки того, чи буде декомпозиція виконуватися із збереженням залежностей Опис усіх нюансів цього алгоритму виходить за рамки даної глави, але зацікавлений читач зможе знайти його в [813]

Нижче наведений що складається з девяти етапів алгоритм, за допомогою якого може бути виконана декомпозиція без втрат довільної змінної відношення R (зі збереженням функціональних залежностей) на безліч D проекцій, що знаходяться в ЗНФ Припустимо, що дано безліч функціональних залежностей S, що задовольняються у змінній відносини R У такому випадку декомпозиція може бути виконана, як показано далі

1 Ініціалізувати D значенням порожнього множини

2 Нехай I є непріводімим покриттям для S

3 Нехай х – безліч атрибутів, присутніх у лівій частині деякої функ циональной залежності X → У з I

4 Нехай повним безліччю функціональних залежностей з I з лівою частиною X

є X → Y1, X Y2,..,X Yn

5 Нехай обєднанням Yl, Y2, .., Yn є z

6 Замінити безліч D обєднанням безлічі D і проекції R по X і z

7 Повторити кроки 4-6 для кожного окремого X

8 Нехай Al, A2, .., An є тими атрибутами R (якщо тільки вони взагалі є), які все ще не охоплені цим алгоритмом (тобто не включені ні в одну змінну відносини з D) замінити безліч D обєднанням множе ства D і проекції R по А1, А2, .., An

9 Якщо ні одна змінна відносини з D не включає деякий потенційний ключ змінної відносини R, замінити D обєднанням D і проекції R по рас сматривать потенційному ключу змінної відносини R

Джерело: Дейт К Дж, Введення в системи баз даних, 8-е видання: Пер з англ – М: Видавничий дім «Вільямс», 2005 – 1328 с: Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*